From: Jeffrey Altman Date: Mon, 13 May 2013 14:09:11 +0000 (-0400) Subject: Windows: NotifyHardLink avoid null ptr reference X-Git-Tag: upstream/1.8.0_pre1^2~1160 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=975c11cb357f553f9f90a231546e0b42c6e79d31;p=packages%2Fo%2Fopenafs.git 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 --- diff --git a/src/WINNT/afsrdr/kernel/lib/AFSCommSupport.cpp b/src/WINNT/afsrdr/kernel/lib/AFSCommSupport.cpp index 3df59397a..858aba0c8 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; }