Hans Leidekker : msvcrt: Handle NULL arguments in _mbscmp.
Alexandre Julliard
julliard at wine.codeweavers.com
Fri Apr 24 08:48:52 CDT 2015
Module: wine
Branch: master
Commit: bbd0e56a5832b8b6135d9300005747d07ec33cd2
URL: http://source.winehq.org/git/wine.git/?a=commit;h=bbd0e56a5832b8b6135d9300005747d07ec33cd2
Author: Hans Leidekker <hans at codeweavers.com>
Date: Fri Apr 24 14:48:04 2015 +0200
msvcrt: Handle NULL arguments in _mbscmp.
---
dlls/msvcrt/mbcs.c | 3 +++
dlls/msvcrt/tests/string.c | 31 +++++++++++++++++++++++++++++++
2 files changed, 34 insertions(+)
diff --git a/dlls/msvcrt/mbcs.c b/dlls/msvcrt/mbcs.c
index 044c2bd..4c85b90 100644
--- a/dlls/msvcrt/mbcs.c
+++ b/dlls/msvcrt/mbcs.c
@@ -24,6 +24,7 @@
*/
#include <stdio.h>
+#include <limits.h>
#include "msvcrt.h"
#include "wine/unicode.h"
@@ -769,6 +770,8 @@ unsigned char* CDECL _mbsnbcpy(unsigned char* dst, const unsigned char* src, MSV
*/
int CDECL _mbscmp(const unsigned char* str, const unsigned char* cmp)
{
+ if (!str || !cmp) return INT_MAX;
+
if(get_mbcinfo()->ismbcodepage)
{
unsigned int strc, cmpc;
diff --git a/dlls/msvcrt/tests/string.c b/dlls/msvcrt/tests/string.c
index cf609f7..3893ba7 100644
--- a/dlls/msvcrt/tests/string.c
+++ b/dlls/msvcrt/tests/string.c
@@ -2874,6 +2874,36 @@ static void test__wcsset_s(void)
ok(str[2] == 'b', "str[2] = %d\n", str[2]);
}
+static void test__mbscmp(void)
+{
+ static const unsigned char a[] = {'a',0}, b[] = {'b',0};
+ int ret;
+
+ if (!p_mbrlen)
+ {
+ win_skip("_mbscmp tests\n");
+ return;
+ }
+
+ ret = _mbscmp(NULL, NULL);
+ ok(ret == INT_MAX, "got %d\n", ret);
+
+ ret = _mbscmp(a, NULL);
+ ok(ret == INT_MAX, "got %d\n", ret);
+
+ ret = _mbscmp(NULL, a);
+ ok(ret == INT_MAX, "got %d\n", ret);
+
+ ret = _mbscmp(a, a);
+ ok(!ret, "got %d\n", ret);
+
+ ret = _mbscmp(a, b);
+ ok(ret == -1, "got %d\n", ret);
+
+ ret = _mbscmp(b, a);
+ ok(ret == 1, "got %d\n", ret);
+}
+
START_TEST(string)
{
char mem[100];
@@ -2981,4 +3011,5 @@ START_TEST(string)
test_strxfrm();
test__strnset_s();
test__wcsset_s();
+ test__mbscmp();
}
More information about the wine-cvs
mailing list