[PATCH 1/2] hfsplus: Fix kfree of wrong pointers inhfsplus_fill_super() error path

From: Christoph Hellwig
Date: Thu Sep 15 2011 - 10:48:33 EST


From: Seth Forshee <seth.forshee@xxxxxxxxxxxxx>

Commit 6596528 (hfsplus: ensure bio requests are not smaller than the
hardware sectors) changed the pointers used for volume header allocations
but failed to free the correct pointers in the error path path of
hfsplus_fill_super() and hfsplus_read_wrapper.

The second hunk came from a separate patch by Pavel Ivanov.

Reported-by: Pavel Ivanov <paivanof@xxxxxxxxx>
Signed-off-by: Seth Forshee <seth.forshee@xxxxxxxxxxxxx>
Signed-off-by: Christoph Hellwig <hch@xxxxxxxxxx>
Cc: <stable@xxxxxxxxxx>
---
fs/hfsplus/super.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)

Index: linux-2.6/fs/hfsplus/super.c
===================================================================
--- linux-2.6.orig/fs/hfsplus/super.c 2011-09-10 11:34:46.271616471 -0400
+++ linux-2.6/fs/hfsplus/super.c 2011-09-11 10:44:13.349746484 -0400
@@ -525,8 +525,8 @@ out_close_cat_tree:
out_close_ext_tree:
hfs_btree_close(sbi->ext_tree);
out_free_vhdr:
- kfree(sbi->s_vhdr);
- kfree(sbi->s_backup_vhdr);
+ kfree(sbi->s_vhdr_buf);
+ kfree(sbi->s_backup_vhdr_buf);
out_unload_nls:
unload_nls(sbi->nls);
unload_nls(nls);
Index: linux-2.6/fs/hfsplus/wrapper.c
===================================================================
--- linux-2.6.orig/fs/hfsplus/wrapper.c 2011-09-11 10:44:36.949746343 -0400
+++ linux-2.6/fs/hfsplus/wrapper.c 2011-09-11 10:44:49.679746266 -0400
@@ -272,9 +272,9 @@ reread:
return 0;

out_free_backup_vhdr:
- kfree(sbi->s_backup_vhdr);
+ kfree(sbi->s_backup_vhdr_buf);
out_free_vhdr:
- kfree(sbi->s_vhdr);
+ kfree(sbi->s_vhdr_buf);
out:
return error;
}
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/