diff options
author | Pavel Březina <pbrezina@redhat.com> | 2014-07-02 13:26:55 +0200 |
---|---|---|
committer | Jakub Hrozek <jhrozek@redhat.com> | 2014-07-09 17:21:09 +0200 |
commit | 8f2eceef78ee59146b32c7b385c402d19ca32a3b (patch) | |
tree | b536a811a299c8230f2179f6724e78c1c2fc5623 | |
parent | c9ca60fd22c6b77a12a9a7490bbebba4cf2e59a5 (diff) | |
download | sssd-8f2eceef78ee59146b32c7b385c402d19ca32a3b.tar.gz sssd-8f2eceef78ee59146b32c7b385c402d19ca32a3b.tar.xz sssd-8f2eceef78ee59146b32c7b385c402d19ca32a3b.zip |
sbus_request: fix potential NULL dereference
Reviewed-by: Lukáš Slebodník <lslebodn@redhat.com>
-rw-r--r-- | src/sbus/sssd_dbus_request.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/sbus/sssd_dbus_request.c b/src/sbus/sssd_dbus_request.c index 2d23931aa..2e3b9310e 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) { @@ -131,6 +133,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"); |