Fix a few memory leaks in json_parse_object()
authorPetri Lehtinen <petri@digip.org>
Sat, 13 Jun 2009 19:54:57 +0000 (22:54 +0300)
committerPetri Lehtinen <petri@digip.org>
Mon, 15 Jun 2009 10:53:53 +0000 (13:53 +0300)
src/load.c

index 912f97d..14022ca 100644 (file)
@@ -309,6 +309,7 @@ static json_t *json_parse_object(json_lex *lex, json_error_t *error)
 
         json_lex_scan(lex);
         if(lex->token != ':') {
+            free(key);
             json_set_error(error, lex, "':' expected");
             goto error;
         }
@@ -316,10 +317,13 @@ static json_t *json_parse_object(json_lex *lex, json_error_t *error)
         json_lex_scan(lex);
 
         value = json_parse(lex, error);
-        if(!value)
+        if(!value) {
+            free(key);
             goto error;
+        }
 
         if(json_object_set(object, key, value)) {
+            free(key);
             json_decref(value);
             goto error;
         }