From: Gao Feng <f...@ikuai8.com> Current tun driver permits the ifr_flags is set with IFF_TUN and IFF_TAP at the same time. But actually there is only IFF_TUN flag works. And it does not make sense these two flags are set, so add this check.
Signed-off-by: Gao Feng <f...@ikuai8.com> --- drivers/net/tun.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/net/tun.c b/drivers/net/tun.c index 8093e39..c1f89c1 100644 --- a/drivers/net/tun.c +++ b/drivers/net/tun.c @@ -1752,6 +1752,10 @@ static int tun_set_iff(struct net *net, struct file *file, struct ifreq *ifr) if (err < 0) return err; + if ((ifr->ifr_flags & (IFF_TUN | IFF_TAP)) == (IFF_TUN | IFF_TAP)) { + return -EINVAL; + } + /* Set dev type */ if (ifr->ifr_flags & IFF_TUN) { /* TUN device */ -- 1.9.1