]> granicus.if.org Git - php/commitdiff
Omitted GCC warning "comparison is always false"
authorXinchen Hui <laruence@php.net>
Fri, 12 Aug 2011 07:47:03 +0000 (07:47 +0000)
committerXinchen Hui <laruence@php.net>
Fri, 12 Aug 2011 07:47:03 +0000 (07:47 +0000)
ext/ereg/ereg.c
ext/ereg/regex.patch
ext/ereg/regex/regerror.c
ext/standard/var.c
main/streams/cast.c

index c2b065210a5614a11651cc5c8eb1f08c5f376e94..0dd6845d628b8edf07731d4e935763f1da946bbc 100644 (file)
@@ -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) {
index 9bc448d7a7dded42ba83af376075cd2803407ea9..864e6bb6d81c92e93bc711e61e130c9567425e37 100644 (file)
@@ -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&REG_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");
  
index 1c66d4114e37c81eca77a8e438a05b26bf1c3f07..7bf741967ddcb501c3daa32873a9cf71539c7cd0 100644 (file)
@@ -82,10 +82,12 @@ size_t errbuf_size)
                                break;
        
                if (errcode&REG_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
index cf9342db4f193f7c923abb4f68b97c399626ee9d..404504a1f37319d46542d05b12a2343701d14eda 100644 (file)
@@ -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, '}');
index debbd82707492dbd242df4e156fe1e431b024ef7..38eb1a987c009d8b5ab7167271ffb1845bda78c7 100644 (file)
@@ -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);