net: ipv6: rpl_iptunnel: Fix potential memory leak in rpl_do_srh_inline
authorGustavo A. R. Silva <gustavo@embeddedor.com>
Tue, 31 Mar 2020 16:35:06 +0000 (11:35 -0500)
committerDavid S. Miller <davem@davemloft.net>
Tue, 31 Mar 2020 17:12:51 +0000 (10:12 -0700)
In case memory resources for buf were allocated, release them before
return.

Addresses-Coverity-ID: 1492011 ("Resource leak")
Fixes: a7a29f9c361f ("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>
net/ipv6/rpl_iptunnel.c

index 203037a..a49ddc6 100644 (file)
@@ -155,8 +155,10 @@ static int rpl_do_srh_inline(struct sk_buff *skb, const struct rpl_lwt *rlwt,
        hdrlen = ((csrh->hdrlen + 1) << 3);
 
        err = skb_cow_head(skb, hdrlen + skb->mac_len);
-       if (unlikely(err))
+       if (unlikely(err)) {
+               kfree(buf);
                return err;
+       }
 
        skb_pull(skb, sizeof(struct ipv6hdr));
        skb_postpull_rcsum(skb, skb_network_header(skb),