From dceb8d6336e574a735b9887cf670c229bc6ee446 Mon Sep 17 00:00:00 2001 From: pete scott Date: Mon, 11 Aug 2014 13:18:16 -0400 Subject: [PATCH] Windows: LocateName skip DFS Link only last component As with Mount Points and Symlinks, when AFSLocateName() is called to process a CreateFile with Open_Reparse_Point enabled, DFS Link processing must be disabled only for the last component in the path. Failure to do so results in the AFS Redirector succeeding IRP_MJ_CREATE calls that should be given back to the IO Manager so the path can be evaluated by another file system. Change-Id: I1627e7c6582d3a80d99dd2acc5171135a6a7bc4b Reviewed-on: http://gerrit.openafs.org/11398 Reviewed-by: Peter Scott Tested-by: BuildBot Reviewed-by: Jeffrey Altman --- src/WINNT/afsrdr/kernel/lib/AFSNameSupport.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/WINNT/afsrdr/kernel/lib/AFSNameSupport.cpp b/src/WINNT/afsrdr/kernel/lib/AFSNameSupport.cpp index 70b341b51..bf7851241 100644 --- a/src/WINNT/afsrdr/kernel/lib/AFSNameSupport.cpp +++ b/src/WINNT/afsrdr/kernel/lib/AFSNameSupport.cpp @@ -1122,7 +1122,8 @@ AFSLocateNameEntry( IN GUID *AuthGroup, case AFS_FILE_TYPE_DFSLINK: { - if( BooleanFlagOn( Flags, AFS_LOCATE_FLAGS_NO_DFS_LINK_EVAL)) + if( BooleanFlagOn( Flags, AFS_LOCATE_FLAGS_NO_DFS_LINK_EVAL) && + uniRemainingPath.Length == 0) { // -- 2.39.5