Re: [PATCH] infinibad: fix memory leak in function send_flowc

From: Steve Wise
Date: Mon Jun 16 2014 - 14:34:34 EST


On 6/16/2014 1:30 PM, Nicholas Krause wrote:
Signed-off-by: Nicholas Krause <xerofoify@xxxxxxxxx>
---
drivers/infiniband/hw/cxgb4/cm.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/infiniband/hw/cxgb4/cm.c b/drivers/infiniband/hw/cxgb4/cm.c
index 5e153f6..c518411 100644
--- a/drivers/infiniband/hw/cxgb4/cm.c
+++ b/drivers/infiniband/hw/cxgb4/cm.c
@@ -455,7 +455,10 @@ static void send_flowc(struct c4iw_ep *ep, struct sk_buff *skb)
unsigned int flowclen = 80;
struct fw_flowc_wr *flowc;
int i;

+ if (!skb) {
+ kfree_skb();
+ pr_warn(MOD "%s failed to allocate skb.\n", __func__);
+ }
skb = get_skb(skb, flowclen, GFP_KERNEL);

Oops, shouldn't the if statement be after the call to get_skb()? :) (you're having a bad day ;))

flowc = (struct fw_flowc_wr *)__skb_put(skb, flowclen);

One more nit: The comment is no longer correct. It should be something like:

iw_cxgb4: in send_flowc(), handle a null skb return from get_skb()


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/