@@ -2745,6 +2745,8 @@ static HRESULT internal_parseURL( TRACE("(%p)->(%s)\n", This, debugstr_w(url)); + if (!url) return E_INVALIDARG;
hr = create_moniker_from_url(url, &mon); if(FAILED(hr)) return hr;
This is used in IVB* interface too, which is not tested.
+ /* crashes on new versions */ + if (IsEqualGUID(table->clsid, &CLSID_SAXXMLReader) || + IsEqualGUID(table->clsid, &CLSID_SAXXMLReader30)) { + hr = ISAXXMLReader_parseURL(reader, NULL); + EXPECT_HR(hr, E_INVALIDARG); + }
We might want to do the same, there is a 'version' field to account for that.
On 6/15/2021 7:36 AM, Nikolay Sivov wrote:
This is used in IVB* interface too, which is not tested.
Correct, it looks like only Invoke is tested on that interface. It would be a much bigger change to add comprehensive tests for the IVB interface (the interface is not queried in test_saxreader).
We might want to do the same, there is a 'version' field to account for that.
This seems like a place to do the "right thing" instead of maintaining bug-for-bug compatibility - unless a program depends on the process crashing due to a null pointer access.