Re: [PATCH V2] jfs: add sanity check for agwidth in dbMount

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2/20/25 5:24AM, Edward Adam Davis wrote:
The width in dmapctl of the AG is zero, it trigger a divide error when
calculating the control page level in dbAllocAG.

To avoid this issue, add a check for agwidth in dbAllocAG.

Looks good. Will add this to jfs-next.

Thanks,
Shaggy


Reported-and-tested-by: syzbot+7c808908291a569281a9@xxxxxxxxxxxxxxxxxxxxxxxxx
Closes: https://syzkaller.appspot.com/bug?extid=7c808908291a569281a9
Signed-off-by: Edward Adam Davis <eadavis@xxxxxx>
---
V1 -> V2: move the check to dbMount

  fs/jfs/jfs_dmap.c | 4 ++++
  1 file changed, 4 insertions(+)

diff --git a/fs/jfs/jfs_dmap.c b/fs/jfs/jfs_dmap.c
index f9009e4f9ffd..62f55e7ed840 100644
--- a/fs/jfs/jfs_dmap.c
+++ b/fs/jfs/jfs_dmap.c
@@ -204,6 +204,10 @@ int dbMount(struct inode *ipbmap)
  	bmp->db_aglevel = le32_to_cpu(dbmp_le->dn_aglevel);
  	bmp->db_agheight = le32_to_cpu(dbmp_le->dn_agheight);
  	bmp->db_agwidth = le32_to_cpu(dbmp_le->dn_agwidth);
+	if (!bmp->db_agwidth) {
+		err = -EINVAL;
+		goto err_release_metapage;
+	}
  	bmp->db_agstart = le32_to_cpu(dbmp_le->dn_agstart);
  	bmp->db_agl2size = le32_to_cpu(dbmp_le->dn_agl2size);
  	if (bmp->db_agl2size > L2MAXL2SIZE - L2MAXAG ||





[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux