hc
2024-12-19 9370bb92b2d16684ee45cf24e879c93c509162da
kernel/fs/ext4/ialloc.c
....@@ -91,7 +91,7 @@
9191
9292 if (buffer_verified(bh))
9393 return 0;
94
- if (EXT4_MB_GRP_IBITMAP_CORRUPT(grp))
94
+ if (!grp || EXT4_MB_GRP_IBITMAP_CORRUPT(grp))
9595 return -EFSCORRUPTED;
9696
9797 ext4_lock_group(sb, block_group);
....@@ -293,7 +293,7 @@
293293 }
294294 if (!(sbi->s_mount_state & EXT4_FC_REPLAY)) {
295295 grp = ext4_get_group_info(sb, block_group);
296
- if (unlikely(EXT4_MB_GRP_IBITMAP_CORRUPT(grp))) {
296
+ if (!grp || unlikely(EXT4_MB_GRP_IBITMAP_CORRUPT(grp))) {
297297 fatal = -EFSCORRUPTED;
298298 goto error_return;
299299 }
....@@ -1048,7 +1048,7 @@
10481048 * Skip groups with already-known suspicious inode
10491049 * tables
10501050 */
1051
- if (EXT4_MB_GRP_IBITMAP_CORRUPT(grp))
1051
+ if (!grp || EXT4_MB_GRP_IBITMAP_CORRUPT(grp))
10521052 goto next_group;
10531053 }
10541054
....@@ -1183,6 +1183,10 @@
11831183
11841184 if (!(sbi->s_mount_state & EXT4_FC_REPLAY)) {
11851185 grp = ext4_get_group_info(sb, group);
1186
+ if (!grp) {
1187
+ err = -EFSCORRUPTED;
1188
+ goto out;
1189
+ }
11861190 down_read(&grp->alloc_sem); /*
11871191 * protect vs itable
11881192 * lazyinit
....@@ -1526,7 +1530,7 @@
15261530 }
15271531
15281532 gdp = ext4_get_group_desc(sb, group, &group_desc_bh);
1529
- if (!gdp)
1533
+ if (!gdp || !grp)
15301534 goto out;
15311535
15321536 /*