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.

It might be too late to add this check without a grace period.



Reply via email to