From 282e2bdd7f34f26073e003a84a85cb4f8b59f0cd Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Mon, 26 Nov 2012 07:10:05 -0500 Subject: [PATCH] Windows: Missing DirEntry Ref incr AFSLocateName In the STATUS_NAME_COLLISION error path the DirEntry refcnt must be incremented because it will be decremented before exit from AFSLocateName(). Change-Id: I7cf976afa8e62d0d9803549b64a5d0dae27cd9b1 Reviewed-on: http://gerrit.openafs.org/8518 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman --- src/WINNT/afsrdr/kernel/lib/AFSNameSupport.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/WINNT/afsrdr/kernel/lib/AFSNameSupport.cpp b/src/WINNT/afsrdr/kernel/lib/AFSNameSupport.cpp index c4405a2c5..0f22bba82 100644 --- a/src/WINNT/afsrdr/kernel/lib/AFSNameSupport.cpp +++ b/src/WINNT/afsrdr/kernel/lib/AFSNameSupport.cpp @@ -1518,6 +1518,20 @@ AFSLocateNameEntry( IN GUID *AuthGroup, pDirEntry->CaseInsensitiveList.fLink != NULL) { + // + // Increment our dir entry ref count since we will decrement it on exit + // + + lCount = InterlockedIncrement( &pDirEntry->OpenReferenceCount); + + AFSDbgLogMsg( AFS_SUBSYSTEM_DIRENTRY_REF_COUNTING, + AFS_TRACE_LEVEL_VERBOSE, + "AFSLocateNameEntry Increment5 count on %wZ DE %p Ccb %p Cnt %d\n", + &pDirEntry->NameInformation.FileName, + pDirEntry, + NULL, + lCount); + AFSReleaseResource( pParentDirEntry->ObjectInformation->Specific.Directory.DirectoryNodeHdr.TreeLock); try_return(ntStatus = STATUS_OBJECT_NAME_COLLISION); -- 2.39.5