From bc1b79d030eb9e2b9076edb90cce7807dae5d949 Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Thu, 28 Mar 2013 12:06:34 -0400 Subject: [PATCH] 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 --- src/WINNT/afsrdr/kernel/lib/AFSGeneric.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/WINNT/afsrdr/kernel/lib/AFSGeneric.cpp b/src/WINNT/afsrdr/kernel/lib/AFSGeneric.cpp index 5a9c833..f5bb20c 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); -- 1.9.4