Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ipv4: fix a memory leak in ic_bootp_send_if

when dev_hard_header() failed, the newly allocated skb should be freed.

Signed-off-by: RongQing.Li <roy.qing.li@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by

RongQing.Li and committed by
David S. Miller
ad79eefc 5219e4c9

+7 -2
+7 -2
net/ipv4/ipconfig.c
··· 822 822 skb->dev = dev; 823 823 skb->protocol = htons(ETH_P_IP); 824 824 if (dev_hard_header(skb, dev, ntohs(skb->protocol), 825 - dev->broadcast, dev->dev_addr, skb->len) < 0 || 826 - dev_queue_xmit(skb) < 0) 825 + dev->broadcast, dev->dev_addr, skb->len) < 0) { 826 + kfree_skb(skb); 827 + printk("E"); 828 + return; 829 + } 830 + 831 + if (dev_queue_xmit(skb) < 0) 827 832 printk("E"); 828 833 } 829 834