Skip to content
  • David Howells's avatar
    bcf945d3
    [PATCH] Error during attempt to join key management session can leave semaphore pinned · bcf945d3
    David Howells authored
    
    
    The attached patch prevents an error during the key session joining operation
    from hanging future joins in the D state [CAN-2005-2098].
    
    The problem is that the error handling path for the KEYCTL_JOIN_SESSION_KEYRING
    operation has one error path that doesn't release the session management
    semaphore. Further attempts to get the semaphore will then sleep for ever in
    the D state.
    
    This can happen in four situations, all involving an attempt to allocate a new
    session keyring:
    
     (1) ENOMEM.
    
     (2) The users key quota being reached.
    
     (3) A keyring name that is an empty string.
    
     (4) A keyring name that is too long.
    
    Any user may attempt this operation, and so any user can cause the problem to
    occur.
    
    Signed-Off-By: default avatarDavid Howells <dhowells@redhat.com>
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    bcf945d3
    [PATCH] Error during attempt to join key management session can leave semaphore pinned
    David Howells authored
    
    
    The attached patch prevents an error during the key session joining operation
    from hanging future joins in the D state [CAN-2005-2098].
    
    The problem is that the error handling path for the KEYCTL_JOIN_SESSION_KEYRING
    operation has one error path that doesn't release the session management
    semaphore. Further attempts to get the semaphore will then sleep for ever in
    the D state.
    
    This can happen in four situations, all involving an attempt to allocate a new
    session keyring:
    
     (1) ENOMEM.
    
     (2) The users key quota being reached.
    
     (3) A keyring name that is an empty string.
    
     (4) A keyring name that is too long.
    
    Any user may attempt this operation, and so any user can cause the problem to
    occur.
    
    Signed-Off-By: default avatarDavid Howells <dhowells@redhat.com>
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
Loading