ntdll: Allow explicitly specified asm.v2 namespace for "trustInfo".

Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Nikolay Sivov 2018-03-06 20:06:13 +03:00 committed by Alexandre Julliard
parent 105b3dc816
commit 697d4a710d
2 changed files with 33 additions and 7 deletions

View File

@ -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)) {

View File

@ -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
{