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
This commit is contained in:
Michal Schmidt
2011-05-25 18:07:31 +02:00
committed by Lennart Poettering
parent d636fa3d67
commit cda2b84a69
+7 -3
View File
@@ -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) {