Module: wine Branch: master Commit: 32fda2113dc9598b187b81b90b366e72f4beb7dd URL: http://source.winehq.org/git/wine.git/?a=commit;h=32fda2113dc9598b187b81b90b... Author: Lei Zhang <thestig(a)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) {