• David Howells's avatar
    rxrpc: Fix insufficient receive notification generation · dba85332
    David Howells authored
    [ Upstream commit f71dbf2f ]
    
    In rxrpc_input_data(), rxrpc_notify_socket() is called if the base sequence
    number of the packet is immediately following the hard-ack point at the end
    of the function.  However, this isn't sufficient, since the recvmsg side
    may have been advancing the window and then overrun the position in which
    we're adding - at which point rx_hard_ack >= seq0 and no notification is
    generated.
    
    Fix this by always generating a notification at the end of the input
    function.
    
    Without this, a long call may stall, possibly indefinitely.
    
    Fixes: 248f219c ("rxrpc: Rewrite the data and ack handling code")
    Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    dba85332
input.c 36.7 KB