Jacek Caban : urlmon: Better error handling in file protocol.

Alexandre Julliard julliard at winehq.org
Mon May 12 07:12:27 CDT 2008


Module: wine
Branch: master
Commit: 02bf65a752400c20b1bfbf931a119c782774b8c6
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=02bf65a752400c20b1bfbf931a119c782774b8c6

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Sat May 10 14:20:53 2008 +0200

urlmon: Better error handling in file protocol.

---

 dlls/urlmon/file.c           |    3 +++
 dlls/urlmon/tests/protocol.c |   10 ++++++++++
 2 files changed, 13 insertions(+), 0 deletions(-)

diff --git a/dlls/urlmon/file.c b/dlls/urlmon/file.c
index 5c059d1..d3004ac 100644
--- a/dlls/urlmon/file.c
+++ b/dlls/urlmon/file.c
@@ -119,6 +119,9 @@ static HRESULT WINAPI FileProtocol_Start(IInternetProtocol *iface, LPCWSTR szUrl
 
     ReleaseBindInfo(&bindinfo);
 
+    if(!szUrl || !*szUrl)
+        return E_INVALIDARG;
+
     if(lstrlenW(szUrl) < sizeof(wszFile)/sizeof(WCHAR)
             || memcmp(szUrl, wszFile, sizeof(wszFile)))
         return MK_E_SYNTAX;
diff --git a/dlls/urlmon/tests/protocol.c b/dlls/urlmon/tests/protocol.c
index 60d0ae8..6361403 100644
--- a/dlls/urlmon/tests/protocol.c
+++ b/dlls/urlmon/tests/protocol.c
@@ -1384,6 +1384,16 @@ static void test_file_protocol_fail(void)
     CHECK_CALLED(ReportProgress_SENDINGREQUEST);
     CHECK_CALLED(ReportResult);
 
+    SET_EXPECT(GetBindInfo);
+    hres = IInternetProtocol_Start(protocol, NULL, &protocol_sink, &bind_info, 0, 0);
+    ok(hres == E_INVALIDARG, "Start failed: %08x, expected E_INVALIDARG\n", hres);
+    CHECK_CALLED(GetBindInfo);
+
+    SET_EXPECT(GetBindInfo);
+    hres = IInternetProtocol_Start(protocol, emptyW, &protocol_sink, &bind_info, 0, 0);
+    ok(hres == E_INVALIDARG, "Start failed: %08x, expected E_INVALIDARG\n", hres);
+    CHECK_CALLED(GetBindInfo);
+
     IInternetProtocol_Release(protocol);
 }
 




More information about the wine-cvs mailing list