]> git.ipfire.org Git - thirdparty/json-c.git/commitdiff
* Null pointer dereference fix. Fix json_object_get_boolean strlen test
authorMichael Clark <michael@metaparadigm.com>
Wed, 25 Feb 2009 01:51:40 +0000 (01:51 +0000)
committerMichael Clark <michael@metaparadigm.com>
Wed, 25 Feb 2009 01:51:40 +0000 (01:51 +0000)
    to not return TRUE for zero length string. Remove redundant includes.
    Erik Hovland, erik at hovland dot org

git-svn-id: http://svn.metaparadigm.com/svn/json-c/trunk@31 327403b1-1117-474d-bef2-5cb71233fd97

ChangeLog
arraylist.c
json_object.c
json_tokener.c
linkhash.c

index e8f0d35229ab3a7eac593546aaacb1e6e7f74721..2009a1e2a847f0b173e8d1e73e5bda2c8352989b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,7 @@
 0.9
+  * Null pointer dereference fix. Fix json_object_get_boolean strlen test
+    to not return TRUE for zero length string. Remove redundant includes.
+    Erik Hovland, erik at hovland dot org
   * Fixed warning reported by adding -Wstrict-prototypes
     -Wold-style-definition to the compilatin flags.
     Dotan Barak, dotanba at gmail dot com
index dbd075d80df985b1e2e60c9465b0c73417391c51..bc167a8ae046029ee089afd57571ac54cfb2f8a6 100644 (file)
@@ -16,7 +16,7 @@
 # include <string.h>
 #endif /* STDC_HEADERS */
 
-#if HAVE_STRINGS_H
+#if defined HAVE_STRINGS_H && !defined _STRING_H && !defined __USE_BSD
 # include <strings.h>
 #endif /* HAVE_STRINGS_H */
 
index a7468590b1f349161ec90b3da9007b5fff6dfe3c..44b6cd683a7a4f5ff821d656e9bfc6671ee00f9b 100644 (file)
@@ -22,7 +22,6 @@
 #include "arraylist.h"
 #include "json_object.h"
 #include "json_object_private.h"
-#include "json_tokener.h"
 
 #if !HAVE_STRNDUP
   char* strndup(const char* str, size_t n);
@@ -306,7 +305,7 @@ boolean json_object_get_boolean(struct json_object *this)
   case json_type_double:
     return (this->o.c_double != 0);
   case json_type_string:
-    if(strlen(this->o.c_string)) return TRUE;
+    return (strlen(this->o.c_string) != 0);
   default:
     return TRUE;
   }
index 3f196db37b08aa5a07c292e2098de033cc941f90..9c057284887e78ee267ea9a3859469facaed0cbb 100644 (file)
@@ -83,6 +83,9 @@ static void json_tokener_reset_level(struct json_tokener *tok, int depth)
 void json_tokener_reset(struct json_tokener *tok)
 {
   int i;
+  if (!tok)
+    return;
+
   for(i = tok->depth; i >= 0; i--)
     json_tokener_reset_level(tok, i);
   tok->depth = 0;
index 5d4e46f22b05a9f10c46450fae59ace825544d93..738540104ddc4779910347b2868a2359eb63ba36 100644 (file)
@@ -9,8 +9,6 @@
  *
  */
 
-#include "config.h"
-
 #include <stdio.h>
 #include <string.h>
 #include <stdlib.h>