diff options
Diffstat (limited to 'drivers/net/tun.c')
| -rw-r--r-- | drivers/net/tun.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/net/tun.c b/drivers/net/tun.c index 50b8c6754b1e..a1ed2d983740 100644 --- a/drivers/net/tun.c +++ b/drivers/net/tun.c | |||
| @@ -249,8 +249,11 @@ static __inline__ ssize_t tun_get_user(struct tun_struct *tun, struct iovec *iv, | |||
| 249 | 249 | ||
| 250 | if (align) | 250 | if (align) |
| 251 | skb_reserve(skb, align); | 251 | skb_reserve(skb, align); |
| 252 | if (memcpy_fromiovec(skb_put(skb, len), iv, len)) | 252 | if (memcpy_fromiovec(skb_put(skb, len), iv, len)) { |
| 253 | tun->stats.rx_dropped++; | ||
| 254 | kfree_skb(skb); | ||
| 253 | return -EFAULT; | 255 | return -EFAULT; |
| 256 | } | ||
| 254 | 257 | ||
| 255 | skb->dev = tun->dev; | 258 | skb->dev = tun->dev; |
| 256 | switch (tun->flags & TUN_TYPE_MASK) { | 259 | switch (tun->flags & TUN_TYPE_MASK) { |
