From fa1883de19b15ab224740d3f8347761013627157 Mon Sep 17 00:00:00 2001 From: Xinchen Hui Date: Fri, 12 Aug 2011 07:47:03 +0000 Subject: [PATCH] Omitted GCC warning "comparison is always false" --- ext/ereg/ereg.c | 5 +++-- ext/ereg/regex.patch | 20 ++++++++++++-------- ext/ereg/regex/regerror.c | 8 +++++--- ext/standard/var.c | 6 +++--- main/streams/cast.c | 2 +- 5 files changed, 24 insertions(+), 17 deletions(-) diff --git a/ext/ereg/ereg.c b/ext/ereg/ereg.c index c2b065210a..0dd6845d62 100644 --- a/ext/ereg/ereg.c +++ b/ext/ereg/ereg.c @@ -474,7 +474,8 @@ PHP_EREG_API char *php_ereg_replace(const char *pattern, const char *replace, co if (new_l + 1 > buf_len) { buf_len = 1 + buf_len + 2 * new_l; nbuf = emalloc(buf_len); - strncpy(nbuf, buf, buf_len-1); + strncpy(nbuf, buf, buf_len - 1); + nbuf[buf_len - 1] = '\0'; efree(buf); buf = nbuf; } @@ -486,7 +487,7 @@ PHP_EREG_API char *php_ereg_replace(const char *pattern, const char *replace, co walkbuf = &buf[tmp + subs[0].rm_so]; walk = replace; while (*walk) { - if ('\\' == *walk && isdigit(walk[1]) && walk[1] - '0' <= (int)re.re_nsub) { + if ('\\' == *walk && isdigit((unsigned char)walk[1]) && (unsigned char)walk[1] - '0' <= (int)re.re_nsub) { if (subs[walk[1] - '0'].rm_so > -1 && subs[walk[1] - '0'].rm_eo > -1 /* this next case shouldn't happen. it does. */ && subs[walk[1] - '0'].rm_so <= subs[walk[1] - '0'].rm_eo) { diff --git a/ext/ereg/regex.patch b/ext/ereg/regex.patch index 9bc448d7a7..864e6bb6d8 100644 --- a/ext/ereg/regex.patch +++ b/ext/ereg/regex.patch @@ -1,6 +1,6 @@ diff -u regex.orig/regerror.c regex/regerror.c --- regex.orig/regerror.c 2011-08-09 19:49:30.000000000 +0800 -+++ regex/regerror.c 2011-08-11 15:13:42.000000000 +0800 ++++ regex/regerror.c 2011-08-12 10:45:57.000000000 +0800 @@ -8,6 +8,7 @@ #include "regex.h" #include "utils.h" @@ -9,7 +9,7 @@ diff -u regex.orig/regerror.c regex/regerror.c /* = #define REG_OKAY 0 -@@ -74,7 +75,7 @@ +@@ -74,17 +75,19 @@ char convbuf[50]; if (errcode == REG_ATOI) @@ -18,19 +18,23 @@ diff -u regex.orig/regerror.c regex/regerror.c else { for (r = rerrs; r->code >= 0; r++) if (r->code == target) -@@ -82,9 +83,9 @@ + break; if (errcode®_ITOA) { - if (r->code >= 0) +- if (r->code >= 0) - (void) strcpy(convbuf, r->name); -+ (void) strncpy(convbuf, r->name, 50); - else +- else - sprintf(convbuf, "REG_0x%x", target); ++ if (r->code >= 0) { ++ (void) strncpy(convbuf, r->name, sizeof(convbuf) - 1); ++ convbuf[sizeof(convbuf) - 1] = '\0'; ++ } else { + snprintf(convbuf, sizeof(convbuf), "REG_0x%x", target); ++ } assert(strlen(convbuf) < sizeof(convbuf)); s = convbuf; } else -@@ -106,12 +107,13 @@ +@@ -106,12 +109,13 @@ /* - regatoi - internal routine to implement REG_ATOI @@ -46,7 +50,7 @@ diff -u regex.orig/regerror.c regex/regerror.c { register const struct rerr *r; -@@ -121,6 +123,6 @@ +@@ -121,6 +125,6 @@ if (r->code < 0) return("0"); diff --git a/ext/ereg/regex/regerror.c b/ext/ereg/regex/regerror.c index 1c66d4114e..7bf741967d 100644 --- a/ext/ereg/regex/regerror.c +++ b/ext/ereg/regex/regerror.c @@ -82,10 +82,12 @@ size_t errbuf_size) break; if (errcode®_ITOA) { - if (r->code >= 0) - (void) strncpy(convbuf, r->name, 50); - else + if (r->code >= 0) { + (void) strncpy(convbuf, r->name, sizeof(convbuf) - 1); + convbuf[sizeof(convbuf) - 1] = '\0'; + } else { snprintf(convbuf, sizeof(convbuf), "REG_0x%x", target); + } assert(strlen(convbuf) < sizeof(convbuf)); s = convbuf; } else diff --git a/ext/standard/var.c b/ext/standard/var.c index cf9342db4f..404504a1f3 100644 --- a/ext/standard/var.c +++ b/ext/standard/var.c @@ -601,7 +601,7 @@ static inline zend_bool php_var_serialize_class_name(smart_str *buf, zval *struc PHP_SET_CLASS_ATTRIBUTES(struc); smart_str_appendl(buf, "O:", 2); - smart_str_append_long(buf, (long)name_len); + smart_str_append_long(buf, (int)name_len); smart_str_appendl(buf, ":\"", 2); smart_str_appendl(buf, class_name, name_len); smart_str_appendl(buf, "\":", 2); @@ -767,12 +767,12 @@ static void php_var_serialize_intern(smart_str *buf, zval *struc, HashTable *var if (ce->serialize(struc, &serialized_data, &serialized_length, (zend_serialize_data *)var_hash TSRMLS_CC) == SUCCESS) { smart_str_appendl(buf, "C:", 2); - smart_str_append_long(buf, (long)Z_OBJCE_P(struc)->name_length); + smart_str_append_long(buf, (int)Z_OBJCE_P(struc)->name_length); smart_str_appendl(buf, ":\"", 2); smart_str_appendl(buf, Z_OBJCE_P(struc)->name, Z_OBJCE_P(struc)->name_length); smart_str_appendl(buf, "\":", 2); - smart_str_append_long(buf, (long)serialized_length); + smart_str_append_long(buf, (int)serialized_length); smart_str_appendl(buf, ":{", 2); smart_str_appendl(buf, serialized_data, serialized_length); smart_str_appendc(buf, '}'); diff --git a/main/streams/cast.c b/main/streams/cast.c index debbd82707..38eb1a987c 100644 --- a/main/streams/cast.c +++ b/main/streams/cast.c @@ -271,7 +271,7 @@ PHPAPI int _php_stream_cast(php_stream *stream, int castas, void **ret, int show newstream = php_stream_fopen_tmpfile(); if (newstream) { - int retval = php_stream_copy_to_stream_ex(stream, newstream, PHP_STREAM_COPY_ALL, NULL); + size_t retval = php_stream_copy_to_stream_ex(stream, newstream, PHP_STREAM_COPY_ALL, NULL); if (ret != SUCCESS) { php_stream_close(newstream); -- 2.50.1