• Eric Dumazet's avatar
    tun: add mutex_unlock() call and napi.skb clearing in tun_get_user() · 1efba987
    Eric Dumazet authored
    If both IFF_NAPI_FRAGS mode and XDP are enabled, and the XDP program
    consumes the skb, we need to clear the napi.skb (or risk
    a use-after-free) and release the mutex (or risk a deadlock)
    
    WARNING: lock held when returning to user space!
    5.5.0-rc6-syzkaller #0 Not tainted
    ------------------------------------------------
    syz-executor.0/455 is leaving the kernel with locks still held!
    1 lock held by syz-executor.0/455:
     #0: ffff888098f6e748 (&tfile->napi_mutex){+.+.}, at: tun_get_user+0x1604/0x3fc0 drivers/net/tun.c:1835
    
    Fixes: 90e33d45 ("tun: enable napi_gro_frags() for TUN/TAP driver")
    Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
    Reported-by: default avatarsyzbot <syzkaller@googlegroups.com>
    Cc: Petar Penkov <ppenkov@google.com>
    Cc: Willem de Bruijn <willemb@google.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    1efba987
tun.c 86.4 KB