lkml.org 
[lkml]   [2010]   [Aug]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
Subject[081/111] Btrfs: kfree correct pointer during mount option parsing
2.6.32-stable review patch.  If anyone has any objections, please let us know.

------------------
From: Josef Bacik <josef@redhat.com>

commit da495ecc0fb096b383754952a1c152147bc95b52 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>

---
fs/btrfs/super.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
--- a/fs/btrfs/super.c
+++ b/fs/btrfs/super.c
@@ -126,7 +126,7 @@ int btrfs_parse_options(struct btrfs_roo
{
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_roo
if (!options)
return -ENOMEM;

+ orig = options;

while ((p = strsep(&options, ",")) != NULL) {
int token;
@@ -273,7 +274,7 @@ int btrfs_parse_options(struct btrfs_roo
}
}
out:
- kfree(options);
+ kfree(orig);
return ret;
}




\
 
 \ /
  Last update: 2010-08-12 02:35    [from the cache]
©2003-2011 Jasper Spaans