From 36fee95e32835cf20286c5225e56b303dd4563da Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Tue, 26 Mar 2013 08:52:59 -0400 Subject: [PATCH] Windows: AFSExamineObject() refcnt underflows Now that the reference counting is likely to be correct, do not garbage collect objects with negative reference counts. If the reference counts are wrong the objects will never be destroyed but that is now a safer choice than freeing memory that might be in use. Change-Id: Ic8e781c4a775f8bcc66227b6f08f894c2fb85157 Reviewed-on: http://gerrit.openafs.org/9670 Reviewed-by: Mark Vitale Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman --- src/WINNT/afsrdr/kernel/lib/AFSWorker.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/WINNT/afsrdr/kernel/lib/AFSWorker.cpp b/src/WINNT/afsrdr/kernel/lib/AFSWorker.cpp index 32cab20..ee5d1d4 100644 --- a/src/WINNT/afsrdr/kernel/lib/AFSWorker.cpp +++ b/src/WINNT/afsrdr/kernel/lib/AFSWorker.cpp @@ -1117,7 +1117,7 @@ AFSExamineObjectInfo( IN AFSObjectInfoCB * pCurrentObject, // if( BooleanFlagOn( pCurrentObject->Flags, AFS_OBJECT_FLAGS_DELETED) && - pCurrentObject->ObjectReferenceCount <= 0 && + pCurrentObject->ObjectReferenceCount == 0 && ( pCurrentObject->Fcb == NULL || pCurrentObject->Fcb->OpenReferenceCount == 0) && pCurrentObject->Specific.Directory.DirectoryNodeListHead == NULL && @@ -1138,7 +1138,7 @@ AFSExamineObjectInfo( IN AFSObjectInfoCB * pCurrentObject, AFSAcquireExcl( &pCurrentObject->NonPagedInfo->ObjectInfoLock, TRUE); - if ( pCurrentObject->ObjectReferenceCount <= 0) + if ( pCurrentObject->ObjectReferenceCount == 0) { AFSRemoveFcb( &pCurrentObject->Fcb); -- 1.9.4