From: Michal Schmidt Date: Wed, 25 May 2011 14:17:17 +0000 (+0200) Subject: dbus-common: fix segfault when a DBus message has no interface X-Git-Tag: v28~3 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=cda2b84a69905aafe2f8c6bd3f1c9eefe92b6bbb;p=elogind.git dbus-common: fix segfault when a DBus message has no interface dbus_message_get_interface() may return NULL. https://bugzilla.redhat.com/show_bug.cgi?id=707483 --- diff --git a/src/dbus-common.c b/src/dbus-common.c index 9bf0dabe4..5db077b74 100644 --- a/src/dbus-common.c +++ b/src/dbus-common.c @@ -418,9 +418,13 @@ DBusHandlerResult bus_default_message_handler( return bus_send_error_reply(c, message, &error, -EINVAL); } - } else if (!nulstr_contains(interfaces, dbus_message_get_interface(message))) { - dbus_set_error_const(&error, DBUS_ERROR_UNKNOWN_INTERFACE, "Unknown interface"); - return bus_send_error_reply(c, message, &error, -EINVAL); + } else { + const char *interface = dbus_message_get_interface(message); + + if (!interface || !nulstr_contains(interfaces, interface)) { + dbus_set_error_const(&error, DBUS_ERROR_UNKNOWN_INTERFACE, "Unknown interface"); + return bus_send_error_reply(c, message, &error, -EINVAL); + } } if (reply) {