From: Jacek Caban Subject: mshtml: Check if event_table entry is allocated before using it in remove_event_handler. Message-Id: <4C16503C.8080909@codeweavers.com> Date: Mon, 14 Jun 2010 17:52:28 +0200 --- dlls/mshtml/htmlevent.c | 2 +- dlls/mshtml/tests/events.c | 4 ++++ 2 files changed, 5 insertions(+), 1 deletions(-) diff --git a/dlls/mshtml/htmlevent.c b/dlls/mshtml/htmlevent.c index d434034..41adffd 100644 --- a/dlls/mshtml/htmlevent.c +++ b/dlls/mshtml/htmlevent.c @@ -1083,7 +1083,7 @@ static HRESULT ensure_nsevent_handler(HTMLDocumentNode *doc, event_target_t *eve static HRESULT remove_event_handler(event_target_t **event_target, eventid_t eid) { - if(*event_target && (*event_target)->event_table[eid]->handler_prop) { + if(*event_target && (*event_target)->event_table[eid] && (*event_target)->event_table[eid]->handler_prop) { IDispatch_Release((*event_target)->event_table[eid]->handler_prop); (*event_target)->event_table[eid]->handler_prop = NULL; } diff --git a/dlls/mshtml/tests/events.c b/dlls/mshtml/tests/events.c index d62df7a..1ac65ec 100644 --- a/dlls/mshtml/tests/events.c +++ b/dlls/mshtml/tests/events.c @@ -1204,6 +1204,10 @@ static void test_onclick(IHTMLDocument2 *doc) hres = IHTMLElement_put_onclick(div, v); ok(hres == S_OK, "put_onclick failed: %08x\n", hres); + V_VT(&v) = VT_NULL; + hres = IHTMLElement_put_ondblclick(div, v); + ok(hres == S_OK, "put_ondblclick failed: %08x\n", hres); + V_VT(&v) = VT_EMPTY; hres = IHTMLElement_get_onclick(div, &v); ok(hres == S_OK, "get_onclick failed: %08x\n", hres);