summaryrefslogtreecommitdiff
path: root/ext/ereg/ereg.c
diff options
context:
space:
mode:
authorMoriyoshi Koizumi <moriyoshi@php.net>2003-02-24 16:29:00 +0000
committerMoriyoshi Koizumi <moriyoshi@php.net>2003-02-24 16:29:00 +0000
commitf73f94f2583875b12e8679bf577e22b1a1cf608f (patch)
tree9d667515adefab87687631d743bf103ffd22b523 /ext/ereg/ereg.c
parent73bae37f26c920e608f33bd369a42ad849e624ad (diff)
downloadphp-git-f73f94f2583875b12e8679bf577e22b1a1cf608f.tar.gz
Fixed a signed / unsigned issue.
# imagine the case like "\\\xfe" where walk[1] takes a value that is greater # than 127 in integer...
Diffstat (limited to 'ext/ereg/ereg.c')
-rw-r--r--ext/ereg/ereg.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/ext/ereg/ereg.c b/ext/ereg/ereg.c
index d641cf9cfd..1eb83f0187 100644
--- a/ext/ereg/ereg.c
+++ b/ext/ereg/ereg.c
@@ -324,7 +324,7 @@ PHPAPI char *php_reg_replace(const char *pattern, const char *replace, const cha
new_l = strlen(buf) + subs[0].rm_so; /* part before the match */
walk = replace;
while (*walk) {
- if ('\\' == *walk && isdigit(walk[1]) && walk[1] - '0' <= ((char) re.re_nsub)) {
+ if ('\\' == *walk && isdigit(walk[1]) && ((unsigned char)walk[1]) - '0' <= re.re_nsub) {
if (subs[walk[1] - '0'].rm_so > -1 && subs[walk[1] - '0'].rm_eo > -1) {
new_l += subs[walk[1] - '0'].rm_eo - subs[walk[1] - '0'].rm_so;
}