OpenAFS Master Repository branch, openafs-stable-1_4_x, updated. openafs-stable-1_4_12-117-g1465946

Gerrit Code Review gerrit@openafs.org
Sun, 22 May 2011 07:02:41 -0700 (PDT)


The following commit has been merged in the openafs-stable-1_4_x branch:
commit 1465946bb6863430bf0efebd024d394549a8775f
Author: Andrew Deason <adeason@sinenomine.net>
Date:   Wed May 4 12:34:20 2011 -0500

    libafs: Avoid using changing unixuser ticket data
    
    PSetTokens was afs_osi_Alloc'ing after afs_osi_Free'ing the previous
    token data. This can sleep, causing tu->stp to be pointing to garbage
    while we wait to alloc. Additionally, rxkad_NewClientSecurityObject
    can sleep while waiting to alloc memory, and so the given tu->stp
    pointer given to it by afs_ConnBySA may be invalid by the time it
    actually uses the data.
    
    To fix this, we could implement unixuser locking to ensure mutual
    exclusion of these events. However, this implements a more
    conservative change for the 1.4 branch. In PSetTokens we alloc the new
    memory before we change anything, and in afs_ConnBySA we make copies
    of the ticket data before giving it to rxkad. With these changes, the
    glock gives us enough serialization to avoid issues with tu->stp
    changing underneath us.
    
    This change is 1.4-specific. On the master branch, this issue is fixed
    by implementing unixuser locks in change
    Idd66d72f716b7e7dc08faa31ae43e9a23639bae3.
    
    Change-Id: I3eb59e611531eca8105cf4d4f67eb1bb1196fd9c
    Reviewed-on: http://gerrit.openafs.org/4649
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Reviewed-by: Derrick Brashear <shadow@dementia.org>

 src/afs/afs_conn.c   |   18 +++++++++++++++---
 src/afs/afs_pioctl.c |   27 +++++++++++++++++----------
 2 files changed, 32 insertions(+), 13 deletions(-)

-- 
OpenAFS Master Repository