net: ipv6: rpl_iptunnel: Fix potential memory leak in rpl_do_srh_inline
In case memory resources for buf were allocated, release them before
return.
Addresses-Coverity-ID: 1492011 ("Resource leak")
Fixes: a7a29f9c36
("net: ipv6: add rpl sr tunnel")
Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
a0190431d1
commit
7f80ccfe99
@@ -155,8 +155,10 @@ static int rpl_do_srh_inline(struct sk_buff *skb, const struct rpl_lwt *rlwt,
|
|||||||
hdrlen = ((csrh->hdrlen + 1) << 3);
|
hdrlen = ((csrh->hdrlen + 1) << 3);
|
||||||
|
|
||||||
err = skb_cow_head(skb, hdrlen + skb->mac_len);
|
err = skb_cow_head(skb, hdrlen + skb->mac_len);
|
||||||
if (unlikely(err))
|
if (unlikely(err)) {
|
||||||
|
kfree(buf);
|
||||||
return err;
|
return err;
|
||||||
|
}
|
||||||
|
|
||||||
skb_pull(skb, sizeof(struct ipv6hdr));
|
skb_pull(skb, sizeof(struct ipv6hdr));
|
||||||
skb_postpull_rcsum(skb, skb_network_header(skb),
|
skb_postpull_rcsum(skb, skb_network_header(skb),
|
||||||
|
Reference in New Issue
Block a user