Merge tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4
Pull ext4 fixes from Ted Ts'o: "Some bug fixes, and an update to the URL's for the final version of Unicode 12.1.0" * tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: ext4: avoid panic during forced reboot due to aborted journal ext4: fix block validity checks for journal inodes using indirect blocks unicode: update to Unicode 12.1.0 final unicode: add missing check for an error return from utf8lookup() ext4: fix miscellaneous sparse warnings ext4: unsigned int compared against zero ext4: fix use-after-free in dx_release() ext4: fix data corruption caused by overlapping unaligned and aligned IO jbd2: fix potential double free ext4: zero out the unused memory region in the extent tree block
This commit is contained in:
@@ -872,12 +872,15 @@ static void dx_release(struct dx_frame *frames)
|
||||
{
|
||||
struct dx_root_info *info;
|
||||
int i;
|
||||
unsigned int indirect_levels;
|
||||
|
||||
if (frames[0].bh == NULL)
|
||||
return;
|
||||
|
||||
info = &((struct dx_root *)frames[0].bh->b_data)->info;
|
||||
for (i = 0; i <= info->indirect_levels; i++) {
|
||||
/* save local copy, "info" may be freed after brelse() */
|
||||
indirect_levels = info->indirect_levels;
|
||||
for (i = 0; i <= indirect_levels; i++) {
|
||||
if (frames[i].bh == NULL)
|
||||
break;
|
||||
brelse(frames[i].bh);
|
||||
|
Reference in New Issue
Block a user