Dmitry Kislyuk : mshtml: Fix NULL offset parent handling in IHTMLElement::get_offsetParent.
Alexandre Julliard
julliard at winehq.org
Tue Oct 26 09:40:26 CDT 2021
Module: wine
Branch: stable
Commit: 506a20a1da58b7b6f6a2e1328113a7c677e9fb84
URL: https://source.winehq.org/git/wine.git/?a=commit;h=506a20a1da58b7b6f6a2e1328113a7c677e9fb84
Author: Dmitry Kislyuk <dimaki at rocketmail.com>
Date: Mon Mar 29 13:21:43 2021 +0200
mshtml: Fix NULL offset parent handling in IHTMLElement::get_offsetParent.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50875
Signed-off-by: Dmitry Kislyuk <dimaki at rocketmail.com>
Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
(cherry picked from commit 35d0fda0f044497df90d1ef5c1e2e359e8d3166e)
Signed-off-by: Michael Stefaniuc <mstefani at winehq.org>
---
dlls/mshtml/htmlelem.c | 2 +-
dlls/mshtml/tests/dom.c | 15 +++++++++++----
2 files changed, 12 insertions(+), 5 deletions(-)
diff --git a/dlls/mshtml/htmlelem.c b/dlls/mshtml/htmlelem.c
index 732db50a78c..584f2e6a9d3 100644
--- a/dlls/mshtml/htmlelem.c
+++ b/dlls/mshtml/htmlelem.c
@@ -1628,7 +1628,7 @@ static HRESULT WINAPI HTMLElement_get_offsetParent(IHTMLElement *iface, IHTMLEle
if(!nsparent) {
*p = NULL;
- hres = S_OK;
+ return S_OK;
}
hres = get_element(nsparent, &parent);
diff --git a/dlls/mshtml/tests/dom.c b/dlls/mshtml/tests/dom.c
index 94923d83add..e46fc54bb70 100644
--- a/dlls/mshtml/tests/dom.c
+++ b/dlls/mshtml/tests/dom.c
@@ -1298,11 +1298,14 @@ static void _test_elem_offset(unsigned line, IUnknown *unk, const WCHAR *parent_
hres = IHTMLElement_get_offsetParent(elem, &off_parent);
ok_(__FILE__,line) (hres == S_OK, "get_offsetParent failed: %08x\n", hres);
-
- _test_elem_tag(line, (IUnknown*)off_parent, parent_tag);
- IHTMLElement_Release(off_parent);
-
IHTMLElement_Release(elem);
+
+ if(off_parent) {
+ _test_elem_tag(line, (IUnknown*)off_parent, parent_tag);
+ IHTMLElement_Release(off_parent);
+ }else {
+ ok_(__FILE__,line) (parent_tag == NULL, "Offset parent is NULL. %s expected\n", wine_dbgstr_w(parent_tag));
+ }
}
#define test_elem_source_index(a,b) _test_elem_source_index(__LINE__,a,b)
@@ -8902,6 +8905,10 @@ static void test_elems(IHTMLDocument2 *doc)
IHTMLElement_Release(elem);
}
+ elem = doc_get_body(doc);
+ test_elem_offset((IUnknown*)elem, NULL);
+ IHTMLElement_Release(elem);
+
elem = get_elem_by_id(doc, L"sc", TRUE);
if(elem) {
IHTMLScriptElement *script;
More information about the wine-cvs
mailing list