mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-09 12:17:12 +09:00
Btrfs: kfree correct pointer during mount option parsing
commit da495ecc0f upstream.
We kstrdup the options string, but then strsep screws with the pointer,
so when we kfree() it, we're not giving it the right pointer.
Tested-by: Andy Lutomirski <luto@mit.edu>
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Acked-by: Jeff Mahoney <jeffm@suse.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
f827e15f9f
commit
55f32f8ac6
@@ -126,7 +126,7 @@ int btrfs_parse_options(struct btrfs_root *root, char *options)
|
||||
{
|
||||
struct btrfs_fs_info *info = root->fs_info;
|
||||
substring_t args[MAX_OPT_ARGS];
|
||||
char *p, *num;
|
||||
char *p, *num, *orig;
|
||||
int intarg;
|
||||
int ret = 0;
|
||||
|
||||
@@ -141,6 +141,7 @@ int btrfs_parse_options(struct btrfs_root *root, char *options)
|
||||
if (!options)
|
||||
return -ENOMEM;
|
||||
|
||||
orig = options;
|
||||
|
||||
while ((p = strsep(&options, ",")) != NULL) {
|
||||
int token;
|
||||
@@ -273,7 +274,7 @@ int btrfs_parse_options(struct btrfs_root *root, char *options)
|
||||
}
|
||||
}
|
||||
out:
|
||||
kfree(options);
|
||||
kfree(orig);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user