[TUN]: Fix leak in tun_get_user()
We're leaking an skb in a failure path in this function. Coverity #632 Signed-off-by: Dave Jones <davej@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
535744878e
commit
8f22757ee8
|
@ -249,8 +249,11 @@ static __inline__ ssize_t tun_get_user(struct tun_struct *tun, struct iovec *iv,
|
||||||
|
|
||||||
if (align)
|
if (align)
|
||||||
skb_reserve(skb, align);
|
skb_reserve(skb, align);
|
||||||
if (memcpy_fromiovec(skb_put(skb, len), iv, len))
|
if (memcpy_fromiovec(skb_put(skb, len), iv, len)) {
|
||||||
|
tun->stats.rx_dropped++;
|
||||||
|
kfree_skb(skb);
|
||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
|
}
|
||||||
|
|
||||||
skb->dev = tun->dev;
|
skb->dev = tun->dev;
|
||||||
switch (tun->flags & TUN_TYPE_MASK) {
|
switch (tun->flags & TUN_TYPE_MASK) {
|
||||||
|
|
Loading…
Reference in a new issue