• Eric Dumazet's avatar
    inet: fix IP_TRANSPARENT error handling · 8be6f88b
    Eric Dumazet authored
    My recent patch forgot to change error handling for IP_TRANSPARENT
    socket option.
    
    WARNING: bad unlock balance detected!
    6.5.0-rc7-syzkaller-01717-g59da9885 #0 Not tainted
    -------------------------------------
    syz-executor151/5028 is trying to release lock (sk_lock-AF_INET) at:
    [<ffffffff88213983>] sockopt_release_sock+0x53/0x70 net/core/sock.c:1073
    but there are no more locks to release!
    
    other info that might help us debug this:
    1 lock held by syz-executor151/5028:
    
    stack backtrace:
    CPU: 0 PID: 5028 Comm: syz-executor151 Not tainted 6.5.0-rc7-syzkaller-01717-g59da9885 #0
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/26/2023
    Call Trace:
    <TASK>
    __dump_stack lib/dump_stack.c:88 [inline]
    dump_stack_lvl+0xd9/0x1b0 lib/dump_stack.c:106
    __lock_release kernel/locking/lockdep.c:5438 [inline]
    lock_release+0x4b5/0x680 kernel/locking/lockdep.c:5781
    sock_release_ownership include/net/sock.h:1824 [inline]
    release_sock+0x175/0x1b0 net/core/sock.c:3527
    sockopt_release_sock+0x53/0x70 net/core/sock.c:1073
    do_ip_setsockopt+0x12c1/0x3640 net/ipv4/ip_sockglue.c:1364
    ip_setsockopt+0x59/0xe0 net/ipv4/ip_sockglue.c:1419
    raw_setsockopt+0x218/0x290 net/ipv4/raw.c:833
    __sys_setsockopt+0x2cd/0x5b0 net/socket.c:2305
    __do_sys_setsockopt net/socket.c:2316 [inline]
    __se_sys_setsockopt net/socket.c:2313 [inline]
    
    Fixes: 4bd0623f ("inet: move inet->transparent to inet->inet_flags")
    Reported-by: default avatarsyzbot <syzkaller@googlegroups.com>
    Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
    Cc: Soheil Hassas Yeganeh <soheil@google.com>
    Cc: Simon Horman <horms@kernel.org>
    Cc: Matthieu Baerts <matthieu.baerts@tessares.net>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    8be6f88b
ip_sockglue.c 42.2 KB