mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 21:38:32 +08:00
net: tun: release the reference of tun device in tun_recvmsg
We forget to release the reference of tun device in tun_recvmsg.
bug introduced in commit 54f968d6ef
(tuntap: move socket to tun_file)
Signed-off-by: Gao feng <gaofeng@cn.fujitsu.com>
Acked-by: Jason Wang <jasowang@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
b9e48de110
commit
3811ae76bc
@ -1471,14 +1471,17 @@ static int tun_recvmsg(struct kiocb *iocb, struct socket *sock,
|
||||
if (!tun)
|
||||
return -EBADFD;
|
||||
|
||||
if (flags & ~(MSG_DONTWAIT|MSG_TRUNC))
|
||||
return -EINVAL;
|
||||
if (flags & ~(MSG_DONTWAIT|MSG_TRUNC)) {
|
||||
ret = -EINVAL;
|
||||
goto out;
|
||||
}
|
||||
ret = tun_do_read(tun, tfile, iocb, m->msg_iov, total_len,
|
||||
flags & MSG_DONTWAIT);
|
||||
if (ret > total_len) {
|
||||
m->msg_flags |= MSG_TRUNC;
|
||||
ret = flags & MSG_TRUNC ? ret : total_len;
|
||||
}
|
||||
out:
|
||||
tun_put(tun);
|
||||
return ret;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user