summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPavel Březina <pbrezina@redhat.com>2014-07-02 13:26:55 +0200
committerJakub Hrozek <jhrozek@redhat.com>2014-07-09 17:21:09 +0200
commit8f2eceef78ee59146b32c7b385c402d19ca32a3b (patch)
treeb536a811a299c8230f2179f6724e78c1c2fc5623
parentc9ca60fd22c6b77a12a9a7490bbebba4cf2e59a5 (diff)
downloadsssd-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.c11
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");