[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