diff options
author | Moriyoshi Koizumi <moriyoshi@php.net> | 2002-12-25 20:00:12 +0000 |
---|---|---|
committer | Moriyoshi Koizumi <moriyoshi@php.net> | 2002-12-25 20:00:12 +0000 |
commit | d07f5296523ba26babf555c4f80b2e9efa313ed4 (patch) | |
tree | 0b3cbfa66885c2439a7931ac0a5de52c2f99a1e4 | |
parent | cb6d34ee25bdc26d9eeb3a07f98e0da5177d88d8 (diff) | |
download | php-git-d07f5296523ba26babf555c4f80b2e9efa313ed4.tar.gz |
Fixed bug #21182
-rw-r--r-- | ext/standard/array.c | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/ext/standard/array.c b/ext/standard/array.c index 427a1ccd04..c4d122b6af 100644 --- a/ext/standard/array.c +++ b/ext/standard/array.c @@ -1429,18 +1429,17 @@ PHP_FUNCTION(range) array_init(return_value); if (Z_TYPE_PP(zlow)==IS_STRING && Z_TYPE_PP(zhigh)==IS_STRING) { - char *low, *high; - convert_to_string_ex(zlow); - convert_to_string_ex(zhigh); - low = Z_STRVAL_PP(zlow); - high = Z_STRVAL_PP(zhigh); - if (*low>*high) { - for (; *low >= *high; (*low)--) { - add_next_index_stringl(return_value, low, 1, 1); + unsigned char low, high; + low = *((unsigned char *)Z_STRVAL_PP(zlow)); + high = *((unsigned char *)Z_STRVAL_PP(zhigh)); + + if (low>high) { + for (; low >= high; (low)--) { + add_next_index_stringl(return_value, (char *)&low, 1, 1); } } else { - for (; *low <= *high; (*low)++) { - add_next_index_stringl(return_value, low, 1, 1); + for (; low <= high; (low)++) { + add_next_index_stringl(return_value, (char *)&low, 1, 1); } } } else { |