From b7e6906c2d34679783ca0261f64be92d5967521e Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes Date: Fri, 1 Feb 2008 20:45:02 +1100 Subject: [PATCH] msxml3: Validated attribute name. --- dlls/msxml3/element.c | 9 +++++++-- dlls/msxml3/tests/domdoc.c | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/dlls/msxml3/element.c b/dlls/msxml3/element.c index ba012473d76..6ee88817c00 100644 --- a/dlls/msxml3/element.c +++ b/dlls/msxml3/element.c @@ -458,7 +458,7 @@ static HRESULT WINAPI domelem_getAttribute( { domelem *This = impl_from_IXMLDOMElement( iface ); xmlNodePtr element; - xmlChar *xml_name, *xml_value; + xmlChar *xml_name, *xml_value = NULL; HRESULT hr = S_FALSE; TRACE("(%p)->(%s,%p)\n", This, debugstr_w(name), value); @@ -474,7 +474,12 @@ static HRESULT WINAPI domelem_getAttribute( V_VT(value) = VT_NULL; xml_name = xmlChar_from_wchar( name ); - xml_value = xmlGetNsProp(element, xml_name, NULL); + + if(!xmlValidateNameValue(xml_name)) + hr = E_FAIL; + else + xml_value = xmlGetNsProp(element, xml_name, NULL); + HeapFree(GetProcessHeap(), 0, xml_name); if(xml_value) { diff --git a/dlls/msxml3/tests/domdoc.c b/dlls/msxml3/tests/domdoc.c index 4507d08710b..e5dfbccd109 100644 --- a/dlls/msxml3/tests/domdoc.c +++ b/dlls/msxml3/tests/domdoc.c @@ -719,7 +719,7 @@ static void test_domnode( void ) V_VT(&var) = VT_I4; V_I4(&var) = 0x1234; r = IXMLDOMElement_getAttribute( element, str, &var ); - ok( r == S_FALSE, "getAttribute ret %08x\n", r ); + ok( r == E_FAIL, "getAttribute ret %08x\n", r ); ok( V_VT(&var) == VT_NULL, "vt = %x\n", V_VT(&var)); VariantClear(&var); SysFreeString( str ); -- 2.11.4.GIT