[PATCH] ntdll: Allow explicitly specified asm.v2 namespace for "trustInfo"
Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com> --- dlls/kernel32/tests/actctx.c | 26 ++++++++++++++++++++++++++ dlls/ntdll/actctx.c | 14 +++++++------- 2 files changed, 33 insertions(+), 7 deletions(-) diff --git a/dlls/kernel32/tests/actctx.c b/dlls/kernel32/tests/actctx.c index 263fe3997c..9aa081f705 100644 --- a/dlls/kernel32/tests/actctx.c +++ b/dlls/kernel32/tests/actctx.c @@ -299,6 +299,18 @@ static const char manifest9[] = "</trustInfo>" "</assembly>"; +static const char manifest10[] = +"<assembly xmlns=\"urn:schemas-microsoft-com:asm.v1\" xmlns:asmv2=\"urn:schemas-microsoft-com:asm.v2\" manifestVersion=\"1.0\">" +"<assemblyIdentity version=\"1.0.0.0\" name=\"Wine.Test\" type=\"win32\"></assemblyIdentity>" +"<asmv2:trustInfo>" +" <asmv2:security>" +" <asmv2:requestedPrivileges>" +" <asmv2:requestedExecutionLevel level=\"requireAdministrator\" uiAccess=\"true\"></asmv2:requestedExecutionLevel>" +" </asmv2:requestedPrivileges>" +" </asmv2:security>" +"</asmv2:trustInfo>" +"</assembly>"; + static const char testdep_manifest1[] = "<assembly xmlns=\"urn:schemas-microsoft-com:asm.v1\" manifestVersion=\"1.0\">" "<assemblyIdentity type=\"win32\" name=\"testdep\" version=\"6.5.4.3\" processorArchitecture=\"" ARCH "\"/>" @@ -2218,6 +2230,20 @@ static void test_actctx(void) else skip("Could not create manifest file 9\n"); + if(create_manifest_file("test10.manifest", manifest10, -1, NULL, NULL)) { + handle = test_create("test10.manifest"); + ok(handle != INVALID_HANDLE_VALUE, "handle == INVALID_HANDLE_VALUE, error %u\n", GetLastError()); + DeleteFileA("test10.manifest"); + DeleteFileA("testdep.manifest"); + if(handle != INVALID_HANDLE_VALUE) + { + test_runlevel_info(handle, &runlevel_info8, __LINE__); + pReleaseActCtx(handle); + } + } + else + skip("Could not create manifest file 10\n"); + trace("manifest4\n"); if(!create_manifest_file("test4.manifest", manifest4, -1, NULL, NULL)) { diff --git a/dlls/ntdll/actctx.c b/dlls/ntdll/actctx.c index 27d6ad864c..14d71bc7da 100644 --- a/dlls/ntdll/actctx.c +++ b/dlls/ntdll/actctx.c @@ -2385,7 +2385,7 @@ static BOOL parse_requested_execution_level_elem(xmlbuf_t* xmlbuf, struct assemb while (ret && (ret = next_xml_elem(xmlbuf, &elem))) { - if (xmlstr_cmp_end(&elem, requestedExecutionLevelW)) + if (xml_elem_cmp_end(&elem, requestedExecutionLevelW, asmv2W)) { ret = parse_end_element(xmlbuf); break; @@ -2407,12 +2407,12 @@ static BOOL parse_requested_privileges_elem(xmlbuf_t* xmlbuf, struct assembly* a while (ret && (ret = next_xml_elem(xmlbuf, &elem))) { - if (xmlstr_cmp_end(&elem, requestedPrivilegesW)) + if (xml_elem_cmp_end(&elem, requestedPrivilegesW, asmv2W)) { ret = parse_end_element(xmlbuf); break; } - else if (xmlstr_cmp(&elem, requestedExecutionLevelW)) + else if (xml_elem_cmp(&elem, requestedExecutionLevelW, asmv2W)) ret = parse_requested_execution_level_elem(xmlbuf, assembly, acl); else { @@ -2431,12 +2431,12 @@ static BOOL parse_security_elem(xmlbuf_t *xmlbuf, struct assembly *assembly, str while (ret && (ret = next_xml_elem(xmlbuf, &elem))) { - if (xmlstr_cmp_end(&elem, securityW)) + if (xml_elem_cmp_end(&elem, securityW, asmv2W)) { ret = parse_end_element(xmlbuf); break; } - else if (xmlstr_cmp(&elem, requestedPrivilegesW)) + else if (xml_elem_cmp(&elem, requestedPrivilegesW, asmv2W)) ret = parse_requested_privileges_elem(xmlbuf, assembly, acl); else { @@ -2455,12 +2455,12 @@ static BOOL parse_trust_info_elem(xmlbuf_t *xmlbuf, struct assembly *assembly, s while (ret && (ret = next_xml_elem(xmlbuf, &elem))) { - if (xmlstr_cmp_end(&elem, trustInfoW)) + if (xml_elem_cmp_end(&elem, trustInfoW, asmv2W)) { ret = parse_end_element(xmlbuf); break; } - else if (xmlstr_cmp(&elem, securityW)) + else if (xml_elem_cmp(&elem, securityW, asmv2W)) ret = parse_security_elem(xmlbuf, assembly, acl); else { -- 2.16.1
participants (1)
-
Nikolay Sivov