From: Lennart Poettering Date: Mon, 9 Aug 2010 15:02:09 +0000 (+0200) Subject: dbus: don't call bus_path_escape() with NULL unit name X-Git-Tag: v7~12 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=04ade7d215ce05f1ac2bd33a8d6126f6994168fa;p=systemd dbus: don't call bus_path_escape() with NULL unit name Fixes an assertion triggerable via D-Bus. https://bugzilla.redhat.com/show_bug.cgi?id=622008 --- diff --git a/src/dbus-unit.c b/src/dbus-unit.c index d25f3250..c9ccac14 100644 --- a/src/dbus-unit.c +++ b/src/dbus-unit.c @@ -434,6 +434,9 @@ void bus_unit_send_change_signal(Unit *u) { u->meta.in_dbus_queue = false; } + if (!u->meta.id) + return; + if (!bus_has_subscriber(u->meta.manager)) { u->meta.sent_dbus_new_signal = true; return; @@ -491,6 +494,9 @@ void bus_unit_send_removed_signal(Unit *u) { if (!u->meta.sent_dbus_new_signal) bus_unit_send_change_signal(u); + if (!u->meta.id) + return; + if (!(p = unit_dbus_path(u))) goto oom; diff --git a/src/unit.c b/src/unit.c index 840c1d1f..dd665e2d 100644 --- a/src/unit.c +++ b/src/unit.c @@ -1551,6 +1551,9 @@ char *unit_dbus_path(Unit *u) { assert(u); + if (!u->meta.id) + return NULL; + if (!(e = bus_path_escape(u->meta.id))) return NULL;