pktgen: fix skb leak in case of failure
Seems that skb goes into void unless something magic happened in pskb_expand_head in case of failure. Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi> Acked-by: Arnaldo Carvalho de Melo <acme@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
9e9540b8f7
commit
b4bb4ac8cb
|
@ -2474,7 +2474,7 @@ static inline int process_ipsec(struct pktgen_dev *pkt_dev,
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
printk(KERN_ERR "Error expanding "
|
printk(KERN_ERR "Error expanding "
|
||||||
"ipsec packet %d\n",ret);
|
"ipsec packet %d\n",ret);
|
||||||
return 0;
|
goto err;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2484,8 +2484,7 @@ static inline int process_ipsec(struct pktgen_dev *pkt_dev,
|
||||||
if (ret) {
|
if (ret) {
|
||||||
printk(KERN_ERR "Error creating ipsec "
|
printk(KERN_ERR "Error creating ipsec "
|
||||||
"packet %d\n",ret);
|
"packet %d\n",ret);
|
||||||
kfree_skb(skb);
|
goto err;
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
/* restore ll */
|
/* restore ll */
|
||||||
eth = (__u8 *) skb_push(skb, ETH_HLEN);
|
eth = (__u8 *) skb_push(skb, ETH_HLEN);
|
||||||
|
@ -2494,6 +2493,9 @@ static inline int process_ipsec(struct pktgen_dev *pkt_dev,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return 1;
|
return 1;
|
||||||
|
err:
|
||||||
|
kfree_skb(skb);
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue