Module: wine Branch: master Commit: c134466224d0e709ab7ffc206013f79d70fe27d4 URL: http://source.winehq.org/git/wine.git/?a=commit;h=c134466224d0e709ab7ffc2060...
Author: Nikolay Sivov nsivov@codeweavers.com Date: Fri Dec 26 21:07:46 2014 +0300
ntdll: Fix 'description' element parsing to allow empty elements.
---
dlls/kernel32/tests/actctx.c | 1 + dlls/ntdll/actctx.c | 13 +++++++++---- 2 files changed, 10 insertions(+), 4 deletions(-)
diff --git a/dlls/kernel32/tests/actctx.c b/dlls/kernel32/tests/actctx.c index 97e7dd2..e30d985 100644 --- a/dlls/kernel32/tests/actctx.c +++ b/dlls/kernel32/tests/actctx.c @@ -97,6 +97,7 @@ static const char manifest3[] = "<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">" "<assemblyIdentity version="1.2.3.4" name="Wine.Test" type="win32"" " publicKeyToken="6595b6414666f1df" />" +"<description />" "<file name="testlib.dll">" "<windowClass>wndClass</windowClass>" " <comClass description="Test com class"" diff --git a/dlls/ntdll/actctx.c b/dlls/ntdll/actctx.c index 8fb6624..ba6378e 100644 --- a/dlls/ntdll/actctx.c +++ b/dlls/ntdll/actctx.c @@ -1834,11 +1834,16 @@ static BOOL parse_binding_redirect_elem(xmlbuf_t* xmlbuf)
static BOOL parse_description_elem(xmlbuf_t* xmlbuf) { - xmlstr_t elem, content; - BOOL end = FALSE, ret = TRUE; + xmlstr_t elem, content, attr_name, attr_value; + BOOL end = FALSE, ret = TRUE, error = FALSE;
- if (!parse_expect_no_attr(xmlbuf, &end) || end || - !parse_text_content(xmlbuf, &content)) + while (next_xml_attr(xmlbuf, &attr_name, &attr_value, &error, &end)) + WARN("unknown attr %s=%s\n", debugstr_xmlstr(&attr_name), debugstr_xmlstr(&attr_value)); + + if (error) return FALSE; + if (end) return TRUE; + + if (!parse_text_content(xmlbuf, &content)) return FALSE;
TRACE("Got description %s\n", debugstr_xmlstr(&content));