diff options
author | Andrea Faulds <ajf@ajf.me> | 2014-12-13 22:06:27 +0000 |
---|---|---|
committer | Andrea Faulds <ajf@ajf.me> | 2014-12-13 22:27:10 +0000 |
commit | 034e6decb3d1effa85afadcf07973bb8db433960 (patch) | |
tree | 3a5753e9c63aeedf8aec2ca30aab0ce726259daf | |
parent | 97df260b27c9584c6299700ac8ceb267c6fd61a2 (diff) | |
download | php-git-034e6decb3d1effa85afadcf07973bb8db433960.tar.gz |
Fix undefined behaviour in strnatcmp
-rw-r--r-- | ext/standard/strnatcmp.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/ext/standard/strnatcmp.c b/ext/standard/strnatcmp.c index face191a6e..4b07740bea 100644 --- a/ext/standard/strnatcmp.c +++ b/ext/standard/strnatcmp.c @@ -117,11 +117,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; } |