From mboxrd@z Thu Jan 1 00:00:00 1970 From: Christoph Hellwig Subject: [PATCH 1/2] hfsplus: Fix kfree of wrong pointers in hfsplus_fill_super() error path Date: Thu, 15 Sep 2011 10:48:27 -0400 Message-ID: <20110915144827.GA19082@infradead.org> References: <20110722152722.GA11946@infradead.org> <20110915144810.GA18876@infradead.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org To: torvalds@linux-foundation.org Return-path: Received: from 173-166-109-252-newengland.hfc.comcastbusiness.net ([173.166.109.252]:44797 "EHLO bombadil.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933524Ab1IOOs2 (ORCPT ); Thu, 15 Sep 2011 10:48:28 -0400 Content-Disposition: inline In-Reply-To: <20110915144810.GA18876@infradead.org> Sender: linux-fsdevel-owner@vger.kernel.org List-ID: From: Seth Forshee 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 Signed-off-by: Seth Forshee Signed-off-by: Christoph Hellwig Cc: --- 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; }