[lvc-project] [PATCH 6.1/6.12] gfs2: validate rindex bitmap length before allocation
Makar Semyonov
m.semenov at tssltd.ru
Fri Aug 7 14:28:24 MSK 2026
Validate ri_length against ri_bitbytes before allocating rd_bits.
Fix a WARNING in gfs2_ri_update().
Signed-off-by: Makar Semyonov <m.semenov at tssltd.ru>
---
fs/gfs2/rgrp.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/fs/gfs2/rgrp.c b/fs/gfs2/rgrp.c
index f602fb844951..91b02201bb1d 100644
--- a/fs/gfs2/rgrp.c
+++ b/fs/gfs2/rgrp.c
@@ -763,6 +763,16 @@ static int compute_bitstructs(struct gfs2_rgrpd *rgd)
if (!length)
return -EINVAL;
+ if (length > 1) {
+ u32 bitmap_bytes_per_block = sdp->sd_sb.sb_bsize - sizeof(struct gfs2_meta_header);
+ u32 max_bitmap_blocks = DIV_ROUND_UP(rgd->rd_bitbytes, bitmap_bytes_per_block) + 1;
+ if (length > max_bitmap_blocks) {
+ gfs2_lm(sdp, "invalid rindex: ri_length=%u ri_bitbytes=%u max=%u\n", length,
+ rgd->rd_bitbytes, max_bitmap_blocks);
+ return -EIO;
+ }
+ }
+
rgd->rd_bits = kcalloc(length, sizeof(struct gfs2_bitmap), GFP_NOFS);
if (!rgd->rd_bits)
return -ENOMEM;
--
2.43.0
More information about the lvc-project
mailing list