From: Anatol Belski Date: Tue, 16 Sep 2014 20:15:27 +0000 (+0200) Subject: fix signed/unsigned mismatch X-Git-Tag: POST_NATIVE_TLS_MERGE^2~250 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7ba43ea05241ad474d40ab199c6a710e21048cd5;p=php fix signed/unsigned mismatch --- diff --git a/ext/standard/string.c b/ext/standard/string.c index 0c41249473..7b18acf83c 100644 --- a/ext/standard/string.c +++ b/ext/standard/string.c @@ -780,7 +780,7 @@ static inline int php_charmask(unsigned char *input, size_t len, char *mask TSRM */ PHPAPI char *php_trim(char *c, size_t len, char *what, size_t what_len, zval *return_value, int mode TSRMLS_DC) { - register zend_long i; + register size_t i; size_t trimmed = 0; char mask[256]; @@ -802,12 +802,15 @@ PHPAPI char *php_trim(char *c, size_t len, char *what, size_t what_len, zval *re c += trimmed; } if (mode & 2) { - for (i = len - 1; i >= 0; i--) { - if (mask[(unsigned char)c[i]]) { - len--; - } else { - break; - } + if (len > 0) { + i = len - 1; + do { + if (mask[(unsigned char)c[i]]) { + len--; + } else { + break; + } + } while (i-- != 0); } }