Alexandre Julliard : ntdll: Fix return status when failing to load the associated manifest for a module .

Alexandre Julliard julliard at wine.codeweavers.com
Thu Jul 26 06:36:41 CDT 2007


Module: wine
Branch: master
Commit: 5b844fe84429caaeacb53ebfb13699aedad70ba1
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=5b844fe84429caaeacb53ebfb13699aedad70ba1

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Wed Jul 25 18:10:17 2007 +0200

ntdll: Fix return status when failing to load the associated manifest for a module.

---

 dlls/ntdll/actctx.c |   10 +++++-----
 1 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/dlls/ntdll/actctx.c b/dlls/ntdll/actctx.c
index e712911..f7b0b43 100644
--- a/dlls/ntdll/actctx.c
+++ b/dlls/ntdll/actctx.c
@@ -1629,7 +1629,7 @@ static NTSTATUS get_manifest_in_associated_manifest( struct actctx_loader* acl,
             if (resid != 1) sprintfW( name.Buffer + strlenW(name.Buffer), fmtW, resid );
             strcatW( name.Buffer, dotManifestW );
             if (!RtlDosPathNameToNtPathName_U( name.Buffer, &nameW, NULL, NULL ))
-                status = STATUS_NO_SUCH_FILE;
+                status = STATUS_RESOURCE_DATA_NOT_FOUND;
             RtlFreeUnicodeString( &name );
         }
         if (status) return status;
@@ -1645,12 +1645,12 @@ static NTSTATUS get_manifest_in_associated_manifest( struct actctx_loader* acl,
         RtlInitUnicodeString( &nameW, buffer );
     }
 
-    status = open_nt_file( &file, &nameW );
-    if (status == STATUS_SUCCESS)
+    if (!open_nt_file( &file, &nameW ))
     {
         status = get_manifest_in_manifest_file( acl, ai, nameW.Buffer, directory, file );
         NtClose( file );
     }
+    else status = STATUS_RESOURCE_DATA_NOT_FOUND;
     RtlFreeUnicodeString( &nameW );
     return status;
 }
@@ -1987,7 +1987,7 @@ NTSTATUS WINAPI RtlCreateActivationContext( HANDLE *handle, const void *ptr )
         {
             status = get_manifest_in_module( &acl, NULL, NULL, directory, pActCtx->hModule,
                                              pActCtx->lpResourceName, lang );
-            if (status)
+            if (status && status != STATUS_SXS_CANT_GEN_ACTCTX)
                 /* FIXME: what to do if pActCtx->lpSource is set */
                 status = get_manifest_in_associated_manifest( &acl, NULL, NULL, directory,
                                                               pActCtx->hModule, pActCtx->lpResourceName );
@@ -1996,7 +1996,7 @@ NTSTATUS WINAPI RtlCreateActivationContext( HANDLE *handle, const void *ptr )
         {
             status = get_manifest_in_pe_file( &acl, NULL, nameW.Buffer, directory,
                                               file, pActCtx->lpResourceName, lang );
-            if (status)
+            if (status && status != STATUS_SXS_CANT_GEN_ACTCTX)
                 status = get_manifest_in_associated_manifest( &acl, NULL, nameW.Buffer, directory,
                                                               NULL, pActCtx->lpResourceName );
         }




More information about the wine-cvs mailing list