Skip to content
  • Federico Sauter's avatar
    CIFS: Fix race condition on RFC1002_NEGATIVE_SESSION_RESPONSE · 4afe260b
    Federico Sauter authored
    This patch fixes a race condition that occurs when connecting
    to a NT 3.51 host without specifying a NetBIOS name.
    In that case a RFC1002_NEGATIVE_SESSION_RESPONSE is received
    and the SMB negotiation is reattempted, but under some conditions
    it leads SendReceive() to hang forever while waiting for srv_mutex.
    This, in turn, sets the calling process to an uninterruptible sleep
    state and makes it unkillable.
    
    The solution is to unlock the srv_mutex acquired in the demux
    thread *before* going to sleep (after the reconnect error) and
    before reattempting the connection.
    4afe260b