Jacek Caban : urlmon: Return E_INVALIDARG for empty pwzURI in CreateUri.

Alexandre Julliard julliard at winehq.org
Thu Sep 2 12:01:24 CDT 2010


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Thu Sep  2 00:26:13 2010 +0200

urlmon: Return E_INVALIDARG for empty pwzURI in CreateUri.

---

 dlls/urlmon/tests/uri.c |    6 ++++++
 dlls/urlmon/uri.c       |    2 +-
 2 files changed, 7 insertions(+), 1 deletions(-)

diff --git a/dlls/urlmon/tests/uri.c b/dlls/urlmon/tests/uri.c
index d6bff96..09cc3b6 100644
--- a/dlls/urlmon/tests/uri.c
+++ b/dlls/urlmon/tests/uri.c
@@ -4492,6 +4492,7 @@ static void test_CreateUri_InvalidArgs(void) {
     IUri *uri = (void*) 0xdeadbeef;
 
     const WCHAR invalidW[] = {'i','n','v','a','l','i','d',0};
+    static const WCHAR emptyW[] = {0};
 
     hr = pCreateUri(http_urlW, 0, 0, NULL);
     ok(hr == E_INVALIDARG, "Error: CreateUri returned 0x%08x, expected 0x%08x\n", hr, E_INVALIDARG);
@@ -4504,6 +4505,11 @@ static void test_CreateUri_InvalidArgs(void) {
     hr = pCreateUri(invalidW, 0, 0, &uri);
     ok(hr == E_INVALIDARG, "Error: CreateUri returned 0x%08x, expected 0x%08x.\n", hr, E_INVALIDARG);
     ok(uri == NULL, "Error: Expected the IUri to be NULL, but it was %p instead\n", uri);
+
+    uri = (void*) 0xdeadbeef;
+    hr = pCreateUri(emptyW, 0, 0, &uri);
+    ok(hr == E_INVALIDARG, "Error: CreateUri returned 0x%08x, expected 0x%08x.\n", hr, E_INVALIDARG);
+    ok(uri == NULL, "Error: Expected the IUri to be NULL, but it was %p instead\n", uri);
 }
 
 static void test_CreateUri_InvalidUri(void) {
diff --git a/dlls/urlmon/uri.c b/dlls/urlmon/uri.c
index e2bec70..4377548 100644
--- a/dlls/urlmon/uri.c
+++ b/dlls/urlmon/uri.c
@@ -4058,7 +4058,7 @@ HRESULT WINAPI CreateUri(LPCWSTR pwzURI, DWORD dwFlags, DWORD_PTR dwReserved, IU
     if(!ppURI)
         return E_INVALIDARG;
 
-    if(!pwzURI) {
+    if(!pwzURI || !*pwzURI) {
         *ppURI = NULL;
         return E_INVALIDARG;
     }




More information about the wine-cvs mailing list