• Herbert Xu's avatar
    [NET]: Fix race condition in sk_stream_wait_connect · 6151b31c
    Herbert Xu authored
    When sk_stream_wait_connect detects a state transition to ESTABLISHED
    or CLOSE_WAIT prior to it going to sleep, it will return without
    calling finish_wait and decrementing sk_write_pending.
    
    This may result in crashes and other unintended behaviour.
    
    The fix is to always call finish_wait and update sk_write_pending since
    it is safe to do so even if the wait entry is no longer on the queue.
    
    This bug was tracked down with the help of Alex Sidorenko and the
    fix is also based on his suggestion.
    Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@mandriva.com>
    6151b31c
stream.c 7.06 KB