[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20170317205234.GA2888@mwanda>
Date: Fri, 17 Mar 2017 23:52:35 +0300
From: Dan Carpenter <dan.carpenter@...cle.com>
To: Rasesh Mody <rasesh.mody@...ium.com>,
Krishna Gudipati <kgudipat@...cade.com>
Cc: Sudarsana Kalluru <sudarsana.kalluru@...ium.com>,
Dept-GELinuxNICDev@...ium.com, netdev@...r.kernel.org,
kernel-janitors@...r.kernel.org
Subject: [PATCH] bna: integer overflow bug in debugfs
We could allocate less memory than intended because we do:
bnad->regdata = kzalloc(len << 2, GFP_KERNEL);
The shift can overflow leading to a crash. This is debugfs code so the
impact is very small.
Fixes: 7afc5dbde091 ("bna: Add debugfs interface.")
Signed-off-by: Dan Carpenter <dan.carpenter@...cle.com>
diff --git a/drivers/net/ethernet/brocade/bna/bnad_debugfs.c b/drivers/net/ethernet/brocade/bna/bnad_debugfs.c
index 05c1c1dd7751..cebfe3bd086e 100644
--- a/drivers/net/ethernet/brocade/bna/bnad_debugfs.c
+++ b/drivers/net/ethernet/brocade/bna/bnad_debugfs.c
@@ -325,7 +325,7 @@ bnad_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) {
netdev_warn(bnad->netdev, "failed to read user buffer\n");
kfree(kern_buf);
return -EINVAL;
Powered by blists - more mailing lists