diff options
Diffstat (limited to 'src/sbus')
-rw-r--r-- | src/sbus/sssd_dbus_properties.c | 4 | ||||
-rw-r--r-- | src/sbus/sssd_dbus_request.c | 11 |
2 files changed, 10 insertions, 5 deletions
diff --git a/src/sbus/sssd_dbus_properties.c b/src/sbus/sssd_dbus_properties.c index 703f6eb81..c6bdffda7 100644 --- a/src/sbus/sssd_dbus_properties.c +++ b/src/sbus/sssd_dbus_properties.c @@ -358,9 +358,7 @@ dispatch_properties_get_all(struct sbus_connection *conn, "No such interface")); } - sbus_request_invoke_or_finish(req, NULL, - intf->instance_data, - meta->invoker_get_all); + sbus_request_invoke_or_finish(req, NULL, NULL, meta->invoker_get_all); return EOK; } diff --git a/src/sbus/sssd_dbus_request.c b/src/sbus/sssd_dbus_request.c index 2852f87d8..7729d4e0d 100644 --- a/src/sbus/sssd_dbus_request.c +++ b/src/sbus/sssd_dbus_request.c @@ -63,10 +63,12 @@ sbus_request_invoke_or_finish(struct sbus_request *dbus_req, DBusError error; int ret; - if (invoker_fn) { + if (invoker_fn != NULL) { ret = invoker_fn(dbus_req, handler_fn); - } else { + } else if (handler_fn != NULL) { ret = handler_fn(dbus_req, handler_data); + } else { + ret = EINVAL; } switch(ret) { @@ -313,6 +315,11 @@ int sbus_request_fail_and_finish(struct sbus_request *dbus_req, DBusMessage *reply; int ret; + if (error == NULL) { + sbus_request_finish(dbus_req, NULL); + return ENOMEM; + } + reply = dbus_message_new_error(dbus_req->message, error->name, error->message); if (!reply) { DEBUG(SSSDBG_CRIT_FAILURE, "Out of memory allocating DBus message\n"); |