• Shaun Pereira's avatar
    [X25]: Fix for broken x25 module. · a20a8554
    Shaun Pereira authored
    When a user-space server application calls bind on a socket, then in kernel
    space this bound socket is considered 'x25-linked' and the SOCK_ZAPPED flag
    is unset.(As in x25_bind()/af_x25.c).
    
    Now when a user-space client application attempts to connect to the server
    on the listening socket, if the kernel accepts this in-coming call, then it
    returns a new socket to userland and attempts to reply to the caller.
    
    The reply/x25_sendmsg() will fail, because the new socket created on
    call-accept has its SOCK_ZAPPED flag set by x25_make_new().
    (sock_init_data() called by x25_alloc_socket() called by x25_make_new()
    sets the flag to SOCK_ZAPPED)).
    
    Fix: Using the sock_copy_flag() routine available in sock.h fixes this.
    
    Tested on 32 and 64 bit kernels with x25 over tcp.
    Signed-off-by: default avatarShaun Pereira <pereira.shaun@gmail.com>
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    a20a8554
af_x25.c 32.9 KB