diff options
author | Wolfgang Denk <wd@denx.de> | 2011-07-28 17:27:22 +0400 |
---|---|---|
committer | Stefan Roese <sr@denx.de> | 2011-08-19 19:21:02 +0400 |
commit | 3267bc1b2b52a8ffd0dfda663c02c86eaab6f70d (patch) | |
tree | 56a6d6265adbaea79ebb5264145212b29bb1b47d /fs/ubifs/ubifs.c | |
parent | fa82f871c8dbc9a15e8dc274b3f99dd5fa0da458 (diff) | |
download | u-boot-3267bc1b2b52a8ffd0dfda663c02c86eaab6f70d.tar.xz |
ubifs: Fix bad free() sequence in ubifs_finddir()
Free private_data member element before freeing file structure.
This was causing malloc to crash. Also remove unnecessary variable
assigments as file structure gets free'd as well.
Signed-off-by: Rod Boyce <uboot@teamboyce.co.uk>
Signed-off-by: Wolfgang Denk <wd@denx.de>
Cc: Stefan Roese <sr@denx.de>
Signed-off-by: Stefan Roese <sr@denx.de>
Diffstat (limited to 'fs/ubifs/ubifs.c')
-rw-r--r-- | fs/ubifs/ubifs.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/fs/ubifs/ubifs.c b/fs/ubifs/ubifs.c index 5a5c739b53..61f70b2960 100644 --- a/fs/ubifs/ubifs.c +++ b/fs/ubifs/ubifs.c @@ -360,6 +360,8 @@ out: return err; } + if (file->private_data) + kfree(file->private_data); if (file) free(file); if (dentry) @@ -367,10 +369,6 @@ out: if (dir) free(dir); - if (file->private_data) - kfree(file->private_data); - file->private_data = NULL; - file->f_pos = 2; return 0; } |