The following commit has been merged in the openafs-stable-1_8_x branch:
commit c80af69e04bb39b0aa3d1b6705034fd26358f7c7
Author: Benjamin Kaduk <[email protected]>
Date:   Fri Apr 13 08:07:59 2018 -0500

    BSD: Work around panic in FlushVCache
    
    Commit 64cc7f0ca7a44bb214396c829268a541ab286c69 created the very useful
    afs_StaleVCache() helper function, but unfortunately it also introduced
    a subtle change into how we check for whether a vcache may be a directory.
    Previously, we just used the low bit of the Fid's Vnode number, since files
    have an even number and non-files an odd number.  The new version uses
    that check but also explicitly checks `vType(avc)` against VDIR, and this 
new
    check involves consulting information stored in the associated vnode entry,
    not the vcache directly.  The afs_FlushVCache() implementation for
    XBSD and DARWIN NULLs removes the cross-linkage between vcache and vnode,
    so that AFSTOV(avc) becomes NULL.  Just a few lines later, it calls
    afs_StaleVCacheFlags(), at which point vType() dereferences a bad pointer
    (offset from a NULL pointer) and panics.  This would happen during shutdown,
    or other periodic reclaim/flush events that can be scheduled.
    
    Reviewed-on: https://gerrit.openafs.org/13014
    Reviewed-by: Mark Vitale <[email protected]>
    Tested-by: BuildBot <[email protected]>
    Reviewed-by: Andrew Deason <[email protected]>
    Reviewed-by: Benjamin Kaduk <[email protected]>
    (cherry picked from commit 54e84a98f9747bb5bb2ad4b8031115ad7684c914)
    
    Change-Id: I810f72e0be8ab98ea6b4ac05c23bc0cb44e4da3a
    Reviewed-on: https://gerrit.openafs.org/13113
    Tested-by: BuildBot <[email protected]>
    Reviewed-by: Benjamin Kaduk <[email protected]>

 src/afs/afs_vcache.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

-- 
OpenAFS Master Repository
_______________________________________________
OpenAFS-cvs mailing list
[email protected]
https://lists.openafs.org/mailman/listinfo/openafs-cvs

Reply via email to