From 08b7854363cb3771725813b4624393c9fc6d1b0d Mon Sep 17 00:00:00 2001 From: Adrian Szyndela Date: Fri, 6 Mar 2020 12:56:35 +0100 Subject: [PATCH] sd-bus: ensure freeing memory on errors Change-Id: I471ab19aca7fb06cbaf8e0abd1d0d405c601b3ca --- src/libsystemd/sd-bus/bus-control-kernel.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/libsystemd/sd-bus/bus-control-kernel.c b/src/libsystemd/sd-bus/bus-control-kernel.c index 5588734..10c7eb9 100644 --- a/src/libsystemd/sd-bus/bus-control-kernel.c +++ b/src/libsystemd/sd-bus/bus-control-kernel.c @@ -140,7 +140,7 @@ static int enqueue_kernel_reply( { int ret; _cleanup_(sd_bus_slot_unrefp) sd_bus_slot *s = NULL; - sd_bus_message *m; + _cleanup_(sd_bus_message_unrefp) sd_bus_message *m = NULL; uint64_t cookie; cookie = ++bus->cookie; @@ -187,6 +187,7 @@ static int enqueue_kernel_reply( } bus->rqueue[bus->rqueue_size++] = m; + m = NULL; if (ret_slot) *ret_slot = s; @@ -246,9 +247,6 @@ int bus_release_name_kernel_async( sd_bus_message_handler_t callback, void *userdata) { int ret; - sd_bus_message *m; - uint64_t cookie; - _cleanup_(sd_bus_slot_unrefp) sd_bus_slot *s = NULL; ret = prepare_for_kernel_request(bus); if (ret < 0) @@ -1195,7 +1193,7 @@ int bus_add_match_internal_kernel_async( void *userdata) { int ret; - sd_bus_message *m; + _cleanup_(sd_bus_message_unrefp) sd_bus_message *m = NULL; /* we want room for the return message */ ret = bus_rqueue_make_room(bus); @@ -1226,6 +1224,7 @@ int bus_add_match_internal_kernel_async( return ret; bus->rqueue[bus->rqueue_size++] = m; + m = NULL; return ret; } -- 2.7.4