cxgb4: fix a memory leak bug [Linux 4.19.72]

This Linux kernel change "cxgb4: fix a memory leak bug" is included in the Linux 4.19.72 release. This change is authored by Wenwen Wang <wenwen [at] cs.uga.edu> on Tue Aug 13 04:18:52 2019 -0500. The commit for this change in Linux stable tree is 2c3dd20 (patch) which is from upstream commit c554336. The same Linux upstream change may have been applied to various maintained Linux releases and you can find all Linux releases containing changes from upstream c554336.

cxgb4: fix a memory leak bug

[ Upstream commit c554336efa9bbc28d6ec14efbee3c7d63c61a34f ]

In blocked_fl_write(), 't' is not deallocated if bitmap_parse_user() fails,
leading to a memory leak bug. To fix this issue, free t before returning
the error.

Signed-off-by: Wenwen Wang <wenwen@cs.uga.edu>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>

There are 4 lines of Linux source code added/deleted in this change. Code changes to Linux kernel are as follows.

 drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c
index 0f72f9c..b429b72 100644
--- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c
+++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.c
@@ -3276,8 +3276,10 @@ static ssize_t blocked_fl_write(struct file *filp, const char __user *ubuf,
        return -ENOMEM;

    err = bitmap_parse_user(ubuf, count, t, adap->sge.egr_sz);
-   if (err)
+   if (err) {
+       kvfree(t);
        return err;
+   }

    bitmap_copy(adap->sge.blocked_fl, t, adap->sge.egr_sz);
    kvfree(t);

Leave a Reply

Your email address will not be published. Required fields are marked *