Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com> --- Showed up at https://bugs.winehq.org/show_bug.cgi?id=50030. dlls/kernel32/tests/actctx.c | 19 +++++++++++++++++++ dlls/ntdll/actctx.c | 2 ++ 2 files changed, 21 insertions(+) diff --git a/dlls/kernel32/tests/actctx.c b/dlls/kernel32/tests/actctx.c index 4a9adc15748..4a6a22680e2 100644 --- a/dlls/kernel32/tests/actctx.c +++ b/dlls/kernel32/tests/actctx.c @@ -290,6 +290,13 @@ static const char manifest10[] = "</asmv2:trustInfo>" "</assembly>"; +/* Empty <dependency> element */ +static const char manifest11[] = +"<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>" +"<dependency />" +"</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 "\"/>" @@ -2240,6 +2247,18 @@ static void test_actctx(void) else skip("Could not create manifest file 10\n"); + if (create_manifest_file("test11.manifest", manifest11, -1, NULL, NULL)) + { + handle = test_create("test11.manifest"); + ok(handle != INVALID_HANDLE_VALUE, "Failed to create activation context for %s, error %u\n", + "manifest11", GetLastError()); + DeleteFileA("test11.manifest"); + if (handle != INVALID_HANDLE_VALUE) + ReleaseActCtx(handle); + } + else + skip("Could not create manifest file 11\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 7e18544cda8..b99d1655d22 100644 --- a/dlls/ntdll/actctx.c +++ b/dlls/ntdll/actctx.c @@ -2307,6 +2307,8 @@ static void parse_dependency_elem( xmlbuf_t *xmlbuf, struct actctx_loader *acl, } } + if (end) return; + while (next_xml_elem(xmlbuf, &elem, parent)) { if (xml_elem_cmp(&elem, dependentAssemblyW, asmv1W)) -- 2.28.0