bfa: integer overflow bug in debugfs
Subsystems (3)
PATCH 1/1 bfa: integer overflow bug in debugfs
The "len << 2" operation can have an integer overflow and leading to a kernel crash. This is debugfs and thus root only so no one really cares, but we should fix it anyway just to make the static checker happy.
Signed-off-by Dan Carpenter <[email protected]>
drivers/scsi/bfa/bfad_debugfs.c +3 -2
@@ -254,7 +254,8 @@ bfad_debugfs_write_regrd(struct file *file, const char __user *buf,struct bfad_s *bfad = port->bfad;struct bfa_s *bfa = &bfad->bfa;struct bfa_ioc_s *ioc = &bfa->ioc; -int addr, len, rc, i; +unsigned int len; +int addr, rc, i;u32 *regbuf;void __iomem *rb, *reg_addr;unsigned long flags;
@@ -265,7 +266,7 @@ bfad_debugfs_write_regrd(struct file *file, const char __user *buf,return PTR_ERR (kern_buf); rc =sscanf (kern_buf,"%x:%x" , &addr, &len); -if (rc <2 ) { +if (rc <2 || len >UINT_MAX >>2 ) {printk (KERN_INFO "bfad[%d]: %s failed to read user buf\n" , bfad->inst_no, __func__);