Nikolay Sivov : msxml3: Avoid SysStringLen() testing for an empty string in ::createNode().
Alexandre Julliard
julliard at winehq.org
Mon Jun 14 13:01:16 CDT 2010
Module: wine
Branch: master
Commit: 36117911171dc30fd1c64ce972ecf7cc479bb63f
URL: http://source.winehq.org/git/wine.git/?a=commit;h=36117911171dc30fd1c64ce972ecf7cc479bb63f
Author: Nikolay Sivov <nsivov at codeweavers.com>
Date: Sun Jun 13 04:23:23 2010 +0400
msxml3: Avoid SysStringLen() testing for an empty string in ::createNode().
---
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;
More information about the wine-cvs
mailing list