diff options
author | Vinay Kumar Yadav <vinay.yadav@chelsio.com> | 2020-11-02 18:39:10 +0100 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2020-11-03 22:50:15 +0100 |
commit | dbfe394dad33f99cf8458be50483ec40a5d29c34 (patch) | |
tree | 18f44a1ce043d0a11f969e485604a32e8b7f0cf7 /drivers/net/ethernet | |
parent | chelsio/chtls: fix memory leaks caused by a race (diff) | |
download | linux-dbfe394dad33f99cf8458be50483ec40a5d29c34.tar.xz linux-dbfe394dad33f99cf8458be50483ec40a5d29c34.zip |
chelsio/chtls: fix always leaking ctrl_skb
Correct skb refcount in alloc_ctrl_skb(), causing skb memleak
when chtls_send_abort() called with NULL skb.
it was always leaking the skb, correct it by incrementing skb
refs by one.
Fixes: cc35c88ae4db ("crypto : chtls - CPL handler definition")
Signed-off-by: Vinay Kumar Yadav <vinay.yadav@chelsio.com>
Link: https://lore.kernel.org/r/20201102173909.24826-1-vinay.yadav@chelsio.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'drivers/net/ethernet')
-rw-r--r-- | drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_cm.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_cm.c b/drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_cm.c index d581c4e623f8..96d561653496 100644 --- a/drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_cm.c +++ b/drivers/net/ethernet/chelsio/inline_crypto/chtls/chtls_cm.c @@ -212,7 +212,7 @@ static struct sk_buff *alloc_ctrl_skb(struct sk_buff *skb, int len) { if (likely(skb && !skb_shared(skb) && !skb_cloned(skb))) { __skb_trim(skb, 0); - refcount_add(2, &skb->users); + refcount_inc(&skb->users); } else { skb = alloc_skb(len, GFP_KERNEL | __GFP_NOFAIL); } |