From: Andrea Faulds Date: Sat, 13 Dec 2014 22:06:27 +0000 (+0000) Subject: Fix undefined behaviour in strnatcmp X-Git-Tag: PRE_PHP7_REMOVALS~38^2~4 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=2cca4d01935ffd5bd2ec6aad9eeccf6aee269933;p=php Fix undefined behaviour in strnatcmp --- diff --git a/ext/standard/strnatcmp.c b/ext/standard/strnatcmp.c index de6f727343..0decda3df9 100644 --- a/ext/standard/strnatcmp.c +++ b/ext/standard/strnatcmp.c @@ -118,11 +118,11 @@ PHPAPI int strnatcmp_ex(char const *a, size_t a_len, char const *b, size_t b_len ca = *ap; cb = *bp; /* skip over leading zeros */ - while (leading && ca == '0' && (ap+1 < aend) && isdigit(*(ap+1))) { + while (leading && ca == '0' && (ap+1 < aend) && isdigit((int)(unsigned char)*(ap+1))) { ca = *++ap; } - while (leading && cb == '0' && (bp+1 < bend) && isdigit(*(bp+1))) { + while (leading && cb == '0' && (bp+1 < bend) && isdigit((int)(unsigned char)*(bp+1))) { cb = *++bp; }