Lei Zhang : shlwapi: Check an argument to UrlEscapeA.

Alexandre Julliard julliard at winehq.org
Thu Jan 10 06:42:01 CST 2008


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

Author: Lei Zhang <thestig at google.com>
Date:   Wed Jan  9 13:50:14 2008 -0800

shlwapi: Check an argument to UrlEscapeA.

---

 dlls/shlwapi/tests/url.c |    5 +++++
 dlls/shlwapi/url.c       |    3 +++
 2 files changed, 8 insertions(+), 0 deletions(-)

diff --git a/dlls/shlwapi/tests/url.c b/dlls/shlwapi/tests/url.c
index adb6208..3506075 100644
--- a/dlls/shlwapi/tests/url.c
+++ b/dlls/shlwapi/tests/url.c
@@ -480,6 +480,11 @@ static void test_UrlEscape(void)
     }
 
     size = 1;
+    ret = UrlEscapeA("/woningplan/woonkamer basis.swf", empty_string, NULL, URL_ESCAPE_SPACES_ONLY);
+    ok(ret == E_INVALIDARG, "got %x, expected %x\n", ret, E_INVALIDARG);
+    ok(size == 1, "got %d, expected %d\n", size, 1);
+
+    size = 1;
     ret = UrlEscapeA("/woningplan/woonkamer basis.swf", empty_string, &size, URL_ESCAPE_SPACES_ONLY);
     todo_wine {
         ok(ret == E_POINTER, "got %x, expected %x\n", ret, E_POINTER);
diff --git a/dlls/shlwapi/url.c b/dlls/shlwapi/url.c
index d1f64fe..5480357 100644
--- a/dlls/shlwapi/url.c
+++ b/dlls/shlwapi/url.c
@@ -843,6 +843,9 @@ HRESULT WINAPI UrlEscapeA(
     HRESULT ret;
     DWORD lenW = sizeof(bufW)/sizeof(WCHAR), lenA;
 
+    if (!pcchEscaped)
+        return E_INVALIDARG;
+
     if(!RtlCreateUnicodeStringFromAsciiz(&urlW, pszUrl))
         return E_INVALIDARG;
     if((ret = UrlEscapeW(urlW.Buffer, escapedW, &lenW, dwFlags)) == E_POINTER) {




More information about the wine-cvs mailing list