Piotr Caban : msvcrt: Handle null mbstr parameter in mbstowcs.

Alexandre Julliard julliard at winehq.org
Wed Jan 8 13:41:31 CST 2014


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

Author: Piotr Caban <piotr at 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");
 




More information about the wine-cvs mailing list