From 48111674106c74013149389767a16ec24e001ccb Mon Sep 17 00:00:00 2001 From: Andrew Eikum Date: Fri, 9 Apr 2010 18:08:16 -0500 Subject: [PATCH] shlwapi: Check for NULL string in UrlIs. --- dlls/shlwapi/tests/url.c | 17 +++++++++++++++++ dlls/shlwapi/url.c | 6 ++++++ 2 files changed, 23 insertions(+) diff --git a/dlls/shlwapi/tests/url.c b/dlls/shlwapi/tests/url.c index f7c94551e3d..0dd96431811 100644 --- a/dlls/shlwapi/tests/url.c +++ b/dlls/shlwapi/tests/url.c @@ -1048,6 +1048,15 @@ static void test_UrlCreateFromPath(void) /* ########################### */ +static void test_UrlIs_null(DWORD flag) +{ + BOOL ret; + ret = pUrlIsA(NULL, flag); + ok(ret == FALSE, "pUrlIsA(NULL, %d) failed\n", flag); + ret = pUrlIsW(NULL, flag); + ok(ret == FALSE, "pUrlIsW(NULL, %d) failed\n", flag); +} + static void test_UrlIs(void) { BOOL ret; @@ -1059,6 +1068,14 @@ static void test_UrlIs(void) return; } + test_UrlIs_null(URLIS_APPLIABLE); + test_UrlIs_null(URLIS_DIRECTORY); + test_UrlIs_null(URLIS_FILEURL); + test_UrlIs_null(URLIS_HASQUERY); + test_UrlIs_null(URLIS_NOHISTORY); + test_UrlIs_null(URLIS_OPAQUE); + test_UrlIs_null(URLIS_URL); + for(i = 0; i < sizeof(TEST_PATH_IS_URL) / sizeof(TEST_PATH_IS_URL[0]); i++) { MultiByteToWideChar(CP_ACP, 0, TEST_PATH_IS_URL[i].path, -1, wurl, 80); diff --git a/dlls/shlwapi/url.c b/dlls/shlwapi/url.c index d6487b34bd9..cd83b457178 100644 --- a/dlls/shlwapi/url.c +++ b/dlls/shlwapi/url.c @@ -1719,6 +1719,9 @@ BOOL WINAPI UrlIsA(LPCSTR pszUrl, URLIS Urlis) TRACE("(%s %d)\n", debugstr_a(pszUrl), Urlis); + if(!pszUrl) + return FALSE; + switch (Urlis) { case URLIS_OPAQUE: @@ -1769,6 +1772,9 @@ BOOL WINAPI UrlIsW(LPCWSTR pszUrl, URLIS Urlis) TRACE("(%s %d)\n", debugstr_w(pszUrl), Urlis); + if(!pszUrl) + return FALSE; + switch (Urlis) { case URLIS_OPAQUE: