diff options
Diffstat (limited to 'net/ipv4/ipmr.c')
| -rw-r--r-- | net/ipv4/ipmr.c | 8 | 
1 files changed, 6 insertions, 2 deletions
diff --git a/net/ipv4/ipmr.c b/net/ipv4/ipmr.c index 757f25eb9b4..7f6273506ee 100644 --- a/net/ipv4/ipmr.c +++ b/net/ipv4/ipmr.c @@ -442,8 +442,10 @@ static netdev_tx_t reg_vif_xmit(struct sk_buff *skb, struct net_device *dev)  	int err;  	err = ipmr_fib_lookup(net, &fl, &mrt); -	if (err < 0) +	if (err < 0) { +		kfree_skb(skb);  		return err; +	}  	read_lock(&mrt_lock);  	dev->stats.tx_bytes += skb->len; @@ -1728,8 +1730,10 @@ int ip_mr_input(struct sk_buff *skb)  		goto dont_forward;  	err = ipmr_fib_lookup(net, &skb_rtable(skb)->fl, &mrt); -	if (err < 0) +	if (err < 0) { +		kfree_skb(skb);  		return err; +	}  	if (!local) {  		    if (IPCB(skb)->opt.router_alert) {  |