]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
json: fix a mem leak
authorThomas Hindoe Paaboel Andersen <phomes@gmail.com>
Tue, 19 May 2015 21:19:29 +0000 (23:19 +0200)
committerThomas Hindoe Paaboel Andersen <phomes@gmail.com>
Tue, 19 May 2015 21:19:54 +0000 (23:19 +0200)
src/shared/json.c
src/test/test-json.c

index f6c44f46f86f7ef717c5f4c661d9dc8b10b4334b..5d7d0dba808610e46a54cbb37f135df3783b804d 100644 (file)
@@ -126,7 +126,7 @@ JsonVariant *json_variant_unref(JsonVariant *variant) {
                 return NULL;
 
         if (variant->type == JSON_VARIANT_ARRAY || variant->type == JSON_VARIANT_OBJECT)
-                return json_object_unref(variant);
+                json_object_unref(variant);
 
         else if (variant->type == JSON_VARIANT_STRING)
                 free(variant->string);
index c4b4a222f9f9b00acbfff087548b107ebde8353b..0be69f88e18422dfdeb2bf870aee80bc24f8fd2c 100644 (file)
@@ -75,7 +75,7 @@ static void test_one(const char *data, ...) {
 typedef void (*Test)(JsonVariant *);
 
 static void test_file(const char *data, Test test) {
-        JsonVariant *v = NULL;
+        _cleanup_jsonunref_ JsonVariant *v = NULL;
         int r = json_parse(data, &v);
 
         assert_se(r == 0);
@@ -84,8 +84,6 @@ static void test_file(const char *data, Test test) {
 
         if (test)
                 test(v);
-
-        json_variant_unref(v);
 }
 
 static void test_1(JsonVariant *v) {