update-activation-environment: produce better diagnostics on error

If dbus-daemon or systemd replied to our method call with an error,
we would report it as "invalid arguments" instead of the true error
name and message.

Same root cause as <https://bugs.freedesktop.org/show_bug.cgi?id=96653>.

Signed-off-by: Simon McVittie <smcv@debian.org>
This commit is contained in:
Simon McVittie 2016-07-11 10:52:44 +01:00
parent 9e79a8ff8c
commit 4729b7a5f4

View file

@ -378,7 +378,8 @@ next:
exit (EX_UNAVAILABLE);
}
if (!dbus_message_get_args (msg, &error, DBUS_TYPE_INVALID))
if (dbus_set_error_from_message (&error, msg) ||
!dbus_message_get_args (msg, &error, DBUS_TYPE_INVALID))
{
fprintf (stderr,
"%s: error from dbus-daemon: %s: %s\n",
@ -402,7 +403,8 @@ next:
"%s: warning: error sending to systemd: %s: %s\n",
PROGNAME, error.name, error.message);
}
else if (!dbus_message_get_args (msg, &error, DBUS_TYPE_INVALID))
else if (dbus_set_error_from_message (&error, msg) ||
!dbus_message_get_args (msg, &error, DBUS_TYPE_INVALID))
{
fprintf (stderr,
"%s: warning: error from systemd: %s: %s\n",