X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=plugins%2Fafm-main-plugin%2Futils-jbus.c;h=c38919d5ae7fc0ce8acbb05c79a29b7acfca2754;hb=36a165503297903204be32a07e0440ca56dac7f0;hp=d3f23021b6a449c80ba0de8da4cc614122e4a9fe;hpb=3d705a894b13759904b0601f8cdef1f2c226d8cc;p=src%2Fapp-framework-binder.git diff --git a/plugins/afm-main-plugin/utils-jbus.c b/plugins/afm-main-plugin/utils-jbus.c index d3f23021..c38919d5 100644 --- a/plugins/afm-main-plugin/utils-jbus.c +++ b/plugins/afm-main-plugin/utils-jbus.c @@ -24,8 +24,9 @@ #include #include -#include +#include #include +#include #include "utils-jbus.h" @@ -152,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) { @@ -518,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, "error", "%s", error)); + int rc = sd_bus_reply_method_errorf(smsg, SD_BUS_ERROR_FAILED, "%s", error); + sd_bus_message_unref(smsg); + return mkerrno(rc); } /* @@ -541,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); } /*