[Bug 39892] UFile crashes with runtime error when rendering certain pages

wine-bugs at winehq.org wine-bugs at winehq.org
Thu Dec 31 05:31:29 CST 2015


https://bugs.winehq.org/show_bug.cgi?id=39892

--- Comment #12 from Anthony Fok <anthony at anthonyfok.org> ---
Created attachment 53280
  --> https://bugs.winehq.org/attachment.cgi?id=53280
Prevent type mismatch error with getAttribute("onclick", 2)

It appears that UFile tries to do this:

    getAttribute("onclick", 2);

However, HTMLElement_get_onclick() somehow gives back an AttributeValue of
VT_NULL, which of course fails to be converted to VT_BSTR, thus
VariantChangeType() returns a HRESULT of 0x80020005 (Type Mismatch), which
HTMLElement_getAttribute() also returns, leading to the runtime error and
crash.

In Wine 1.7.32, HTMLElement_getAttribute() did not do any VariantChangeType(),
and happily returns S_OK as the HRESULT, so UFile kept on running happily
without crashing.

So, the attached patch adds a test case for VT_NULL and change it to a
VT_BSTR(NULL) and returns S_OK, reverting to the behaviour in Wine 1.7.32.  No
more crashing.  Yay!

However, I do suspect the real problem lies with HTMLElement_get_onclick() and
other JScript-related HTMLElement_get_xxxxxx() functions.  Shouldn't it be able
to return an AttributeValue as a string (i.e., BSTR)?  How did it become
VT_NULL?

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list