Jacek Caban : mshtml: Properly handle NULL VT_DISPATCH refChild in IHTMLDOMNode::insertBefore.

Alexandre Julliard julliard at winehq.org
Thu Jul 26 15:34:59 CDT 2012


Module: wine
Branch: master
Commit: 13df042891254c1dfc2b860a2d86b0fb5968d56e
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=13df042891254c1dfc2b860a2d86b0fb5968d56e

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Thu Jul 26 17:52:42 2012 +0200

mshtml: Properly handle NULL VT_DISPATCH refChild in IHTMLDOMNode::insertBefore.

---

 dlls/mshtml/htmlnode.c  |    2 ++
 dlls/mshtml/tests/dom.c |    7 +++++++
 2 files changed, 9 insertions(+), 0 deletions(-)

diff --git a/dlls/mshtml/htmlnode.c b/dlls/mshtml/htmlnode.c
index 7fcff17..b0cf4c3 100644
--- a/dlls/mshtml/htmlnode.c
+++ b/dlls/mshtml/htmlnode.c
@@ -513,6 +513,8 @@ static HRESULT WINAPI HTMLDOMNode_insertBefore(IHTMLDOMNode *iface, IHTMLDOMNode
     case VT_NULL:
         break;
     case VT_DISPATCH: {
+        if(!V_DISPATCH(&refChild))
+            break;
         ref_node = get_node_obj(This->doc, (IUnknown*)V_DISPATCH(&refChild));
         if(!ref_node) {
             ERR("unvalid node\n");
diff --git a/dlls/mshtml/tests/dom.c b/dlls/mshtml/tests/dom.c
index b0c5335..00c1498 100644
--- a/dlls/mshtml/tests/dom.c
+++ b/dlls/mshtml/tests/dom.c
@@ -5920,6 +5920,13 @@ static void test_create_elems(IHTMLDocument2 *doc)
     test_elem_innertext(body, "insert test");
     test_elem_innerhtml((IUnknown*)body, "insert test");
 
+    node = test_create_text(doc, " Test");
+    V_VT(&var) = VT_DISPATCH;
+    V_DISPATCH(&var) = NULL;
+    test_node_insertbefore((IUnknown*)body, node, &var);
+    test_elem_innertext(body, "insert test Test");
+    IHTMLDOMNode_Release(node);
+
     hres = IHTMLDocument2_QueryInterface(doc, &IID_IHTMLDocument5, (void**)&doc5);
     if(hres == S_OK)
     {




More information about the wine-cvs mailing list