mirror of https://gitee.com/openkylin/linux.git
ext4: don't kfree uninitialized s_group_info members
We can call kfree on uninitialized members of the s_group_info array on an the error path. We can avoid this by kzalloc'ing the array. This doesn't entirely solve the oops on mount if we fail down this path; failed_mount4: frees the sbi, for one, which gets referenced later in the failed mount paths - I haven't worked that out yet. https://bugzilla.kernel.org/show_bug.cgi?id=30872 Reported-by: Eugene A. Shatokhin <dame_eugene@mail.ru> Signed-off-by: Eric Sandeen <sandeen@redhat.com> Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
This commit is contained in:
parent
21149d611e
commit
4596fe0767
|
@ -2386,7 +2386,7 @@ static int ext4_mb_init_backend(struct super_block *sb)
|
||||||
/* An 8TB filesystem with 64-bit pointers requires a 4096 byte
|
/* An 8TB filesystem with 64-bit pointers requires a 4096 byte
|
||||||
* kmalloc. A 128kb malloc should suffice for a 256TB filesystem.
|
* kmalloc. A 128kb malloc should suffice for a 256TB filesystem.
|
||||||
* So a two level scheme suffices for now. */
|
* So a two level scheme suffices for now. */
|
||||||
sbi->s_group_info = kmalloc(array_size, GFP_KERNEL);
|
sbi->s_group_info = kzalloc(array_size, GFP_KERNEL);
|
||||||
if (sbi->s_group_info == NULL) {
|
if (sbi->s_group_info == NULL) {
|
||||||
printk(KERN_ERR "EXT4-fs: can't allocate buddy meta group\n");
|
printk(KERN_ERR "EXT4-fs: can't allocate buddy meta group\n");
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
Loading…
Reference in New Issue