diff --git a/fs/gfs2/rgrp.c b/fs/gfs2/rgrp.c index 26d6c1eea559..a879e8030568 100644 --- a/fs/gfs2/rgrp.c +++ b/fs/gfs2/rgrp.c @@ -760,7 +760,7 @@ static int compute_bitstructs(struct gfs2_rgrpd *rgd) u32 bytes_left, bytes; int x; - if (!length) + if (!length || length > KMALLOC_MAX_SIZE / sizeof(struct gfs2_bitmap)) return -EINVAL; rgd->rd_bits = kcalloc(length, sizeof(struct gfs2_bitmap), GFP_NOFS);