]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
json: fix memleak on OOM
authorLennart Poettering <lennart@poettering.net>
Fri, 12 Oct 2018 16:38:40 +0000 (18:38 +0200)
committerLennart Poettering <lennart@poettering.net>
Sat, 13 Oct 2018 10:37:13 +0000 (12:37 +0200)
CID 1396083

src/basic/json.c

index df3141fb2a5d47abf7672037e6793122b35508d5..426ed0328e26ddbc5f584b51131a8897cf8a1019 100644 (file)
@@ -2560,7 +2560,7 @@ int json_buildv(JsonVariant **ret, va_list ap) {
         };
 
         for (;;) {
-                JsonVariant *add = NULL;
+                _cleanup_(json_variant_unrefp) JsonVariant *add = NULL;
                 JsonStack *current;
                 int command;
 
@@ -2899,7 +2899,7 @@ int json_buildv(JsonVariant **ret, va_list ap) {
                                 goto finish;
                         }
 
-                        current->elements[current->n_elements++] = add;
+                        current->elements[current->n_elements++] = TAKE_PTR(add);
                 }
         }