mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-15 00:34:10 +08:00
Btrfs: Free correct pointer after using strsep
We must save and free the original kstrdup()'ed pointer because strsep() modifies its first argument. Signed-off-by: Tero Roponen <tero.roponen@gmail.com> Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
This commit is contained in:
parent
bdc924bb4c
commit
3f3d0bc0df
@ -277,7 +277,7 @@ static int btrfs_parse_early_options(const char *options, fmode_t flags,
|
||||
struct btrfs_fs_devices **fs_devices)
|
||||
{
|
||||
substring_t args[MAX_OPT_ARGS];
|
||||
char *opts, *p;
|
||||
char *opts, *orig, *p;
|
||||
int error = 0;
|
||||
int intarg;
|
||||
|
||||
@ -291,6 +291,7 @@ static int btrfs_parse_early_options(const char *options, fmode_t flags,
|
||||
opts = kstrdup(options, GFP_KERNEL);
|
||||
if (!opts)
|
||||
return -ENOMEM;
|
||||
orig = opts;
|
||||
|
||||
while ((p = strsep(&opts, ",")) != NULL) {
|
||||
int token;
|
||||
@ -326,7 +327,7 @@ static int btrfs_parse_early_options(const char *options, fmode_t flags,
|
||||
}
|
||||
|
||||
out_free_opts:
|
||||
kfree(opts);
|
||||
kfree(orig);
|
||||
out:
|
||||
/*
|
||||
* If no subvolume name is specified we use the default one. Allocate
|
||||
|
Loading…
Reference in New Issue
Block a user