[PATCH] Avoid SysStringLen() testing for an empty string in ::createNode()
Nikolay Sivov
nsivov at codeweavers.com
Sat Jun 12 19:23:23 CDT 2010
---
dlls/msxml3/domdoc.c | 2 +-
dlls/msxml3/tests/domdoc.c | 11 +++++++++++
2 files changed, 12 insertions(+), 1 deletions(-)
diff --git a/dlls/msxml3/domdoc.c b/dlls/msxml3/domdoc.c
index d72d20b..e24077e 100644
--- a/dlls/msxml3/domdoc.c
+++ b/dlls/msxml3/domdoc.c
@@ -1368,7 +1368,7 @@ static HRESULT WINAPI domdoc_createNode(
case NODE_ATTRIBUTE:
case NODE_ENTITY_REFERENCE:
case NODE_PROCESSING_INSTRUCTION:
- if (!name || SysStringLen(name) == 0) return E_FAIL;
+ if (!name || *name == 0) return E_FAIL;
default:
break;
}
diff --git a/dlls/msxml3/tests/domdoc.c b/dlls/msxml3/tests/domdoc.c
index a743e51..cbba0cd 100644
--- a/dlls/msxml3/tests/domdoc.c
+++ b/dlls/msxml3/tests/domdoc.c
@@ -1988,6 +1988,17 @@ static void test_create(void)
if( SUCCEEDED(r) ) IXMLDOMNode_Release( node );
SysFreeString(str);
+ /* a name is required for attribute, try a BSTR with first null wchar */
+ V_VT(&var) = VT_I1;
+ V_I1(&var) = NODE_ATTRIBUTE;
+ str = SysAllocString( szstr1 );
+ str[0] = 0;
+ node = (IXMLDOMNode*)0x1;
+ r = IXMLDOMDocument_createNode( doc, var, str, NULL, &node );
+ ok( r == E_FAIL, "returns %08x\n", r );
+ ok( node == (void*)0x1, "expected same ptr, got %p\n", node);
+ SysFreeString(str);
+
/* NODE_PROCESSING_INSTRUCTION */
V_VT(&var) = VT_I1;
V_I1(&var) = NODE_PROCESSING_INSTRUCTION;
--
1.5.6.5
--------------020207020207070104010403--
More information about the wine-patches
mailing list