Shouldn't gerror_to_dbus_error_message check for both DBUS_GERROR and DBUS_GERROR_REMOTE_EXCEPTION?

Simon McVittie simon.mcvittie at collabora.co.uk
Fri Sep 6 07:30:32 PDT 2013


On 06/09/13 15:14, Marcel Tünnissen wrote:
> This is obtained through a call to dbus_g_error_get_name
> Apparently the function requires both DBUS_GERROR and
> DBUS_GERROR_REMOTE_EXCEPTION.

Yes, as the documentation says.

> However the calling function only checks for DBUS_GERROR.
...
>       if (error->domain == DBUS_GERROR)
>        reply = dbus_message_new_error (message,
>                                    dbus_g_error_get_name (error),
>                                    error->message);

That looks like <https://bugs.freedesktop.org/show_bug.cgi?id=16776>,
which I fixed in 2009 (dbus-glib 0.82). What version of dbus-glib is
this? Update dbus-glib to the current release if possible.

Workaround, if you can't upgrade: never pass (DBUS_GERROR, x, "...") to
dbus_g_method_return(), unless x == DBUS_GERROR_REMOTE_EXCEPTION.

(Also be aware that dbus-glib from 2009 was really quite buggy in
general, and dbus-glib from 2013 is also pretty bad. Use GDBus, part of
recent GLib, if you can.)

    S



More information about the dbus mailing list