Piotr Caban : msvcrt: Handle null mbstr parameter in mbstowcs.
Module: wine Branch: master Commit: 544d179434f728fa649648aaad74d93e5abd099f URL: http://source.winehq.org/git/wine.git/?a=commit;h=544d179434f728fa649648aaad... Author: Piotr Caban <piotr(a)codeweavers.com> Date: Wed Jan 8 12:13:22 2014 +0100 msvcrt: Handle null mbstr parameter in mbstowcs. --- dlls/msvcrt/mbcs.c | 5 +++++ dlls/msvcrt/tests/string.c | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/dlls/msvcrt/mbcs.c b/dlls/msvcrt/mbcs.c index b25649b6..e7eaf5e 100644 --- a/dlls/msvcrt/mbcs.c +++ b/dlls/msvcrt/mbcs.c @@ -2127,6 +2127,11 @@ MSVCRT_size_t CDECL MSVCRT__mbstowcs_l(MSVCRT_wchar_t *wcstr, const char *mbstr, MSVCRT_pthreadlocinfo locinfo; MSVCRT_size_t i, size; + if(!mbstr) { + *MSVCRT__errno() = MSVCRT_EINVAL; + return -1; + } + if(!locale) locinfo = get_locinfo(); else diff --git a/dlls/msvcrt/tests/string.c b/dlls/msvcrt/tests/string.c index c11c364..800a06b 100644 --- a/dlls/msvcrt/tests/string.c +++ b/dlls/msvcrt/tests/string.c @@ -1635,6 +1635,11 @@ static void test_mbstowcs(void) wOut[4] = '!'; wOut[5] = '\0'; mOut[4] = '!'; mOut[5] = '\0'; + errno = 0xdeadbeef; + ret = mbstowcs(wOut, NULL, 4); + ok(ret == -1, "mbstowcs did not return -1\n"); + ok(errno == EINVAL, "errno = %d\n", errno); + ret = mbstowcs(NULL, mSimple, 0); ok(ret == 4, "mbstowcs did not return 4\n");
participants (1)
-
Alexandre Julliard