From e410b34f92fa6633dc8f518fe56228d69d2ff682 Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" Date: Fri, 24 Jul 2020 22:24:03 -0400 Subject: [PATCH] stdlib: Corrected implementation of SDL_wcsncmp. It was a copy/paste of SDL_strcmp, apparently, not SDL_strncmp, so it ignored the maxlen parameter. Thanks to Jack Powell for pointing this out! --- src/stdlib/SDL_string.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/stdlib/SDL_string.c b/src/stdlib/SDL_string.c index 857c40b79..7abeafdbd 100644 --- a/src/stdlib/SDL_string.c +++ b/src/stdlib/SDL_string.c @@ -516,13 +516,18 @@ SDL_wcsncmp(const wchar_t *str1, const wchar_t *str2, size_t maxlen) #if defined(HAVE_WCSNCMP) return wcsncmp(str1, str2, maxlen); #else - while (*str1 && *str2) { + while (*str1 && *str2 && maxlen) { if (*str1 != *str2) break; ++str1; ++str2; + --maxlen; } - return (int)(*str1 - *str2); + if (!maxlen) { + return 0; + } + return (int) (*str1 - *str2); + #endif /* HAVE_WCSNCMP */ }