From 975c11cb357f553f9f90a231546e0b42c6e79d31 Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Mon, 13 May 2013 10:09:11 -0400 Subject: [PATCH] Windows: NotifyHardLink avoid null ptr reference In AFSNotifyHardLink, if the TargetDirectoryCB out parameter is non-NULL but pDirNode is NULL, do not attempt to increment the DirOpenReferenceCount because doing so will trigger an exception. Change-Id: I9d50e05aff9a4922113f814dd3d50e115725ecca Reviewed-on: http://gerrit.openafs.org/9903 Tested-by: BuildBot Reviewed-by: Jeffrey Altman --- src/WINNT/afsrdr/kernel/lib/AFSCommSupport.cpp | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/WINNT/afsrdr/kernel/lib/AFSCommSupport.cpp b/src/WINNT/afsrdr/kernel/lib/AFSCommSupport.cpp index 3df5939..858aba0 100644 --- a/src/WINNT/afsrdr/kernel/lib/AFSCommSupport.cpp +++ b/src/WINNT/afsrdr/kernel/lib/AFSCommSupport.cpp @@ -2421,16 +2421,20 @@ try_exit: if ( TargetDirectoryCB != NULL) { - lCount = InterlockedIncrement( &pDirNode->DirOpenReferenceCount); + if ( pDirNode != NULL) + { - AFSDbgTrace(( AFS_SUBSYSTEM_DIRENTRY_REF_COUNTING, - AFS_TRACE_LEVEL_VERBOSE, - "AFSNotifyHardLink Increment count on %wZ DE %p Cnt %d\n", - &pDirNode->NameInformation.FileName, - pDirNode, - lCount)); + lCount = InterlockedIncrement( &pDirNode->DirOpenReferenceCount); - ASSERT( lCount >= 0); + AFSDbgTrace(( AFS_SUBSYSTEM_DIRENTRY_REF_COUNTING, + AFS_TRACE_LEVEL_VERBOSE, + "AFSNotifyHardLink Increment count on %wZ DE %p Cnt %d\n", + &pDirNode->NameInformation.FileName, + pDirNode, + lCount)); + + ASSERT( lCount >= 0); + } *TargetDirectoryCB = pDirNode; } -- 1.9.4