Hi Eric, On Fri, Oct 21, 2016 at 7:28 PM, Eric Dumazet <eric.duma...@gmail.com> wrote: > On Fri, 2016-10-21 at 19:02 +0800, f...@ikuai8.com wrote: >> 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> >> --- >> v2: Remove useless {} >> v1: Initial patch >> >> drivers/net/tun.c | 3 +++ >> 1 file changed, 3 insertions(+) >> >> diff --git a/drivers/net/tun.c b/drivers/net/tun.c >> index 8093e39..faaa189 100644 >> --- a/drivers/net/tun.c >> +++ b/drivers/net/tun.c >> @@ -1752,6 +1752,9 @@ 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 */ > > > This might break some applications.
Yes. I consider about this case. But I think there should be very least applications which set these two flags at the same time. > > It might be too late to add this check without a grace period. > > > Yes, It needs some discussions. Regards Feng