Commit 5aba2ba5 authored by Sabrina Dubroca's avatar Sabrina Dubroca Committed by David S. Miller

macsec: fix memory leaks when skb_to_sgvec fails

Fixes: cda7ea69 ("macsec: check return value of skb_to_sgvec always")
Signed-off-by: default avatarSabrina Dubroca <sd@queasysnail.net>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent c0576e39
...@@ -742,6 +742,7 @@ static struct sk_buff *macsec_encrypt(struct sk_buff *skb, ...@@ -742,6 +742,7 @@ static struct sk_buff *macsec_encrypt(struct sk_buff *skb,
sg_init_table(sg, ret); sg_init_table(sg, ret);
ret = skb_to_sgvec(skb, sg, 0, skb->len); ret = skb_to_sgvec(skb, sg, 0, skb->len);
if (unlikely(ret < 0)) { if (unlikely(ret < 0)) {
aead_request_free(req);
macsec_txsa_put(tx_sa); macsec_txsa_put(tx_sa);
kfree_skb(skb); kfree_skb(skb);
return ERR_PTR(ret); return ERR_PTR(ret);
...@@ -954,6 +955,7 @@ static struct sk_buff *macsec_decrypt(struct sk_buff *skb, ...@@ -954,6 +955,7 @@ static struct sk_buff *macsec_decrypt(struct sk_buff *skb,
sg_init_table(sg, ret); sg_init_table(sg, ret);
ret = skb_to_sgvec(skb, sg, 0, skb->len); ret = skb_to_sgvec(skb, sg, 0, skb->len);
if (unlikely(ret < 0)) { if (unlikely(ret < 0)) {
aead_request_free(req);
kfree_skb(skb); kfree_skb(skb);
return ERR_PTR(ret); return ERR_PTR(ret);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment