From 5b23d953d38aaf34fb6f0cc02c2e7f553c386c10 Mon Sep 17 00:00:00 2001 From: José Bollo Date: Wed, 11 May 2016 12:14:01 +0200 Subject: fix leak of messages MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: Ieb4cfcf0b791cee89fadb742d6fbf00b9739bd10 Signed-off-by: José Bollo --- plugins/afm-main-plugin/utils-jbus.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/plugins/afm-main-plugin/utils-jbus.c b/plugins/afm-main-plugin/utils-jbus.c index c4146a46..c38919d5 100644 --- a/plugins/afm-main-plugin/utils-jbus.c +++ b/plugins/afm-main-plugin/utils-jbus.c @@ -153,6 +153,7 @@ static int on_service_call(struct sd_bus_message *smsg, struct jbus *jbus, sd_bu service = jbus->services; while (service != NULL) { if (!strcmp(service->method, member)) { + sd_bus_message_ref(smsg); if (service->oncall_s) service->oncall_s(smsg, content, service->data); else if (service->oncall_j) { @@ -519,7 +520,9 @@ void jbus_unref(struct jbus *jbus) */ int jbus_reply_error_s(struct sd_bus_message *smsg, const char *error) { - return mkerrno(sd_bus_reply_method_errorf(smsg, SD_BUS_ERROR_FAILED, "%s", error)); + int rc = sd_bus_reply_method_errorf(smsg, SD_BUS_ERROR_FAILED, "%s", error); + sd_bus_message_unref(smsg); + return mkerrno(rc); } /* @@ -542,7 +545,9 @@ int jbus_reply_error_j(struct sd_bus_message *smsg, struct json_object *reply) */ int jbus_reply_s(struct sd_bus_message *smsg, const char *reply) { - return mkerrno(sd_bus_reply_method_return(smsg, "s", reply)); + int rc = sd_bus_reply_method_return(smsg, "s", reply); + sd_bus_message_unref(smsg); + return mkerrno(rc); } /* -- cgit 1.2.3-korg