Commit f6524a9f authored by Carlo Bramini's avatar Carlo Bramini Committed by Alexandre Julliard

shlwapi: Add NULL checks to StrCpyW and StrCatW.

parent d4d39736
...@@ -477,7 +477,8 @@ LPWSTR WINAPI StrCatW(LPWSTR lpszStr, LPCWSTR lpszSrc) ...@@ -477,7 +477,8 @@ LPWSTR WINAPI StrCatW(LPWSTR lpszStr, LPCWSTR lpszSrc)
{ {
TRACE("(%s,%s)\n", debugstr_w(lpszStr), debugstr_w(lpszSrc)); TRACE("(%s,%s)\n", debugstr_w(lpszStr), debugstr_w(lpszSrc));
strcatW(lpszStr, lpszSrc); if (lpszStr && lpszSrc)
strcatW(lpszStr, lpszSrc);
return lpszStr; return lpszStr;
} }
...@@ -497,7 +498,8 @@ LPWSTR WINAPI StrCpyW(LPWSTR lpszStr, LPCWSTR lpszSrc) ...@@ -497,7 +498,8 @@ LPWSTR WINAPI StrCpyW(LPWSTR lpszStr, LPCWSTR lpszSrc)
{ {
TRACE("(%p,%s)\n", lpszStr, debugstr_w(lpszSrc)); TRACE("(%p,%s)\n", lpszStr, debugstr_w(lpszSrc));
strcpyW(lpszStr, lpszSrc); if (lpszStr && lpszSrc)
strcpyW(lpszStr, lpszSrc);
return lpszStr; return lpszStr;
} }
......
...@@ -407,16 +407,28 @@ static void test_StrCpyW(void) ...@@ -407,16 +407,28 @@ static void test_StrCpyW(void)
WCHAR szSrc[256]; WCHAR szSrc[256];
WCHAR szBuff[256]; WCHAR szBuff[256];
const StrFormatSizeResult* result = StrFormatSize_results; const StrFormatSizeResult* result = StrFormatSize_results;
LPWSTR lpRes;
while(result->value) while(result->value)
{ {
MultiByteToWideChar(0,0,result->byte_size_64,-1,szSrc,sizeof(szSrc)/sizeof(WCHAR)); MultiByteToWideChar(0,0,result->byte_size_64,-1,szSrc,sizeof(szSrc)/sizeof(WCHAR));
StrCpyW(szBuff, szSrc); lpRes = StrCpyW(szBuff, szSrc);
ok(!StrCmpW(szSrc, szBuff), "Copied string %s wrong\n", result->byte_size_64); ok(!StrCmpW(szSrc, szBuff) && lpRes == szBuff, "Copied string %s wrong\n", result->byte_size_64);
result++; result++;
} }
/* this test crashes on win2k SP4 */
/*lpRes = StrCpyW(szBuff, NULL);*/
/*ok(lpRes == szBuff, "Wrong return value: got %p expected %p\n", lpRes, szBuff);*/
/* this test crashes on win2k SP4 */
/*lpRes = StrCpyW(NULL, szSrc);*/
/*ok(lpRes == NULL, "Wrong return value: got %p expected NULL\n", lpRes);*/
/* this test crashes on win2k SP4 */
/*lpRes = StrCpyW(NULL, NULL);*/
/*ok(lpRes == NULL, "Wrong return value: got %p expected NULL\n", lpRes);*/
} }
static void test_StrChrNW(void) static void test_StrChrNW(void)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment