Roman Mindalev : ntdll: Check for arch and name fields in assembly_identity structure.

Alexandre Julliard julliard at winehq.org
Wed Mar 25 10:31:32 CDT 2009


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

Author: Roman Mindalev <lists at r000n.net>
Date:   Fri Mar 13 20:14:03 2009 +0300

ntdll: Check for arch and name fields in assembly_identity structure.

---

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

diff --git a/dlls/ntdll/actctx.c b/dlls/ntdll/actctx.c
index 79d475f..25c590a 100644
--- a/dlls/ntdll/actctx.c
+++ b/dlls/ntdll/actctx.c
@@ -496,17 +496,19 @@ static WCHAR *build_assembly_dir(struct assembly_identity* ai)
     static const WCHAR noneW[] = {'n','o','n','e',0};
     static const WCHAR mskeyW[] = {'d','e','a','d','b','e','e','f',0};
 
+    const WCHAR *arch = ai->arch ? ai->arch : noneW;
     const WCHAR *key = ai->public_key ? ai->public_key : noneW;
     const WCHAR *lang = ai->language ? ai->language : noneW;
-    SIZE_T size = (strlenW(ai->arch) + 1 + strlenW(ai->name) + 1 + strlenW(key) + 24 + 1 +
-                   strlenW(lang) + 1) * sizeof(WCHAR) + sizeof(mskeyW);
+    const WCHAR *name = ai->name ? ai->name : noneW;
+    SIZE_T size = (strlenW(arch) + 1 + strlenW(name) + 1 + strlenW(key) + 24 + 1 +
+		    strlenW(lang) + 1) * sizeof(WCHAR) + sizeof(mskeyW);
     WCHAR *ret;
 
     if (!(ret = RtlAllocateHeap( GetProcessHeap(), 0, size ))) return NULL;
 
-    strcpyW( ret, ai->arch );
+    strcpyW( ret, arch );
     strcatW( ret, undW );
-    strcatW( ret, ai->name );
+    strcatW( ret, name );
     strcatW( ret, undW );
     strcatW( ret, key );
     strcatW( ret, undW );




More information about the wine-cvs mailing list