diff --git a/dlls/urlmon/mk.c b/dlls/urlmon/mk.c index 2af01f2a0fc..2ae76ed9587 100644 --- a/dlls/urlmon/mk.c +++ b/dlls/urlmon/mk.c @@ -122,6 +122,9 @@ static HRESULT WINAPI MkProtocol_Start(IInternetProtocol *iface, LPCWSTR szUrl, TRACE("(%p)->(%s %p %p %08x %d)\n", This, debugstr_w(szUrl), pOIProtSink, pOIBindInfo, grfPI, dwReserved); + if(strncmpiW(szUrl, wszMK, sizeof(wszMK)/sizeof(WCHAR))) + return INET_E_INVALID_URL; + memset(&bindinfo, 0, sizeof(bindinfo)); bindinfo.cbSize = sizeof(BINDINFO); hres = IInternetBindInfo_GetBindInfo(pOIBindInfo, &bindf, &bindinfo); @@ -132,9 +135,6 @@ static HRESULT WINAPI MkProtocol_Start(IInternetProtocol *iface, LPCWSTR szUrl, ReleaseBindInfo(&bindinfo); - if(strncmpiW(szUrl, wszMK, sizeof(wszMK)/sizeof(WCHAR))) - return MK_E_SYNTAX; - IInternetProtocolSink_ReportProgress(pOIProtSink, BINDSTATUS_DIRECTBIND, NULL); IInternetProtocolSink_ReportProgress(pOIProtSink, BINDSTATUS_SENDINGREQUEST, NULL); diff --git a/dlls/urlmon/tests/protocol.c b/dlls/urlmon/tests/protocol.c index 13b0f1532aa..00335b379f8 100644 --- a/dlls/urlmon/tests/protocol.c +++ b/dlls/urlmon/tests/protocol.c @@ -1404,8 +1404,9 @@ static void test_mk_protocol(void) SET_EXPECT(GetBindInfo); hres = IInternetProtocol_Start(protocol, wrong_url1, &protocol_sink, &bind_info, 0, 0); - ok(hres == MK_E_SYNTAX, "Start failed: %08x, expected MK_E_SYNTAX\n", hres); - CHECK_CALLED(GetBindInfo); + ok(hres == MK_E_SYNTAX || hres == INET_E_INVALID_URL, + "Start failed: %08x, expected MK_E_SYNTAX or INET_E_INVALID_URL\n", hres); + CLEAR_CALLED(GetBindInfo); SET_EXPECT(GetBindInfo); SET_EXPECT(ReportProgress_DIRECTBIND);