Browse Source

Take out len from condition check.

Otherwise, the check is just undefined behaviour. gcc even takes out
this check because len can never be zero if len does not wrap around.

Found with -Wstrict-overflow=2
Stephan 8 years ago
parent
commit
038b04d80a
1 changed files with 2 additions and 1 deletions
  1. 2 1
      cJSON.c

+ 2 - 1
cJSON.c

@@ -712,8 +712,9 @@ static char *print_string_ptr(const char *str, printbuffer *p)
 
 
     ptr = str;
     ptr = str;
     /* calculate additional space that is needed for escaping */
     /* calculate additional space that is needed for escaping */
-    while ((token = *ptr) && ++len)
+    while ((token = *ptr))
     {
     {
+        ++len;
         if (strchr("\"\\\b\f\n\r\t", token))
         if (strchr("\"\\\b\f\n\r\t", token))
         {
         {
             len++; /* +1 for the backslash */
             len++; /* +1 for the backslash */