summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNamjae Jeon <namjae.jeon@samsung.com>2013-01-14 22:53:47 +0100
committerJan Kara <jack@suse.cz>2013-01-14 22:53:47 +0100
commit1b1baff6e50df855238ce5e6c0e7dbb8a261fb32 (patch)
tree7e7454076c196c01fd262d8c8e3f735a2ca6ddd4
parentjbd: don't wake kjournald unnecessarily (diff)
downloadlinux-1b1baff6e50df855238ce5e6c0e7dbb8a261fb32.tar.xz
linux-1b1baff6e50df855238ce5e6c0e7dbb8a261fb32.zip
UDF: Fix a null pointer dereference in udf_sb_free_partitions
This patch fixes a regression caused by commit bff943af6fe "udf: Fix memory leak when mounting" due to which it was triggering a kernel null point dereference in case of interrupted mount OR when allocating memory to sbi->s_partmaps failed in function udf_sb_alloc_partition_maps. Reported-and-tested-by: James Hogan <james@albanarts.com> Signed-off-by: Namjae Jeon <namjae.jeon@samsung.com> Signed-off-by: Ashish Sangwan <a.sangwan@samsung.com> Signed-off-by: Jan Kara <jack@suse.cz>
-rw-r--r--fs/udf/super.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/udf/super.c b/fs/udf/super.c
index d44fb568abe1..e9be396a558d 100644
--- a/fs/udf/super.c
+++ b/fs/udf/super.c
@@ -307,7 +307,8 @@ static void udf_sb_free_partitions(struct super_block *sb)
{
struct udf_sb_info *sbi = UDF_SB(sb);
int i;
-
+ if (sbi->s_partmaps == NULL)
+ return;
for (i = 0; i < sbi->s_partitions; i++)
udf_free_partition(&sbi->s_partmaps[i]);
kfree(sbi->s_partmaps);