From b3e6db22a1755b7633b522dfe5cbb61949e06466 Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Fri, 16 Dec 2011 11:43:32 -0500 Subject: [PATCH] Windows: propagate directory enumeration failures If a directory is enumerated with an AuthGroup that has no permissions, do not treat the enumeration as successful. Change-Id: I6a543a1b19b9d2e68ee2c99f67398ed94ad52896 Reviewed-on: http://gerrit.openafs.org/6344 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman --- src/WINNT/afsrdr/kernel/lib/AFSGeneric.cpp | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/src/WINNT/afsrdr/kernel/lib/AFSGeneric.cpp b/src/WINNT/afsrdr/kernel/lib/AFSGeneric.cpp index 4146ced5a..cd8dffd27 100644 --- a/src/WINNT/afsrdr/kernel/lib/AFSGeneric.cpp +++ b/src/WINNT/afsrdr/kernel/lib/AFSGeneric.cpp @@ -2898,10 +2898,16 @@ AFSVerifyEntry( IN GUID *AuthGroup, AFSAcquireExcl( pObjectInfo->Specific.Directory.DirectoryNodeHdr.TreeLock, TRUE); - AFSValidateDirectoryCache( pObjectInfo, - AuthGroup); + ntStatus = AFSValidateDirectoryCache( pObjectInfo, + AuthGroup); AFSReleaseResource( pObjectInfo->Specific.Directory.DirectoryNodeHdr.TreeLock); + + if ( !NT_SUCCESS( ntStatus)) + { + + try_return( ntStatus); + } } // @@ -3323,8 +3329,13 @@ AFSValidateDirectoryCache( IN AFSObjectInfoCB *ObjectInfo, // Reget the directory contents // - AFSVerifyDirectoryContent( ObjectInfo, - AuthGroup); + ntStatus = AFSVerifyDirectoryContent( ObjectInfo, + AuthGroup); + + if ( !NT_SUCCESS( ntStatus)) + { + try_return( ntStatus); + } // // Now start again and tear down any entries not valid @@ -3439,6 +3450,8 @@ AFSValidateDirectoryCache( IN AFSObjectInfoCB *ObjectInfo, } #endif +try_exit: + if( bAcquiredLock) { -- 2.39.5