From: Jeffrey Altman Date: Thu, 28 Mar 2013 16:06:34 +0000 (-0400) Subject: Windows: AFSDeleteObjectInfo InterlockedCompareExchangePointer X-Git-Tag: upstream/1.8.0_pre1^2~1257 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=bc1b79d030eb9e2b9076edb90cce7807dae5d949;p=packages%2Fo%2Fopenafs.git Windows: AFSDeleteObjectInfo InterlockedCompareExchangePointer Correct the third parameter passed to InterlockedCompareExchangePointer in AFSDeleteObjectInfo() which prevented *ppObjectInfo from being set to NULL. Change-Id: I4edc1d69114c02ffff8181b176a5f0bac82f6802 Reviewed-on: http://gerrit.openafs.org/9689 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman --- diff --git a/src/WINNT/afsrdr/kernel/lib/AFSGeneric.cpp b/src/WINNT/afsrdr/kernel/lib/AFSGeneric.cpp index 5a9c8335a..f5bb20c5b 100644 --- a/src/WINNT/afsrdr/kernel/lib/AFSGeneric.cpp +++ b/src/WINNT/afsrdr/kernel/lib/AFSGeneric.cpp @@ -6848,14 +6848,14 @@ AFSDeleteObjectInfo( IN AFSObjectInfoCB **ppObjectInfo) // embedded in the VolumeCB. // - ASSERT( TRUE); + ASSERT( FALSE); return; } pObjectInfo = (AFSObjectInfoCB *) InterlockedCompareExchangePointer( (PVOID *)ppObjectInfo, NULL, - (PVOID *)ppObjectInfo); + *ppObjectInfo); if ( pObjectInfo == NULL) { @@ -6863,6 +6863,8 @@ AFSDeleteObjectInfo( IN AFSObjectInfoCB **ppObjectInfo) return; } + ASSERT( *ppObjectInfo == NULL); + ASSERT( pObjectInfo->ObjectReferenceCount == 0); bHeldInService = BooleanFlagOn( pObjectInfo->Flags, AFS_OBJECT_HELD_IN_SERVICE);