Subject: Re: bug#7113: 23.2; Crash on invalid path argument to dbus-introspect-xml

From: Thomas Fitzsimmons <[email-masked]>
Date: Mon, 27 Sep 2010 00:34:12 -0700

Ari Roponen <[email-masked]> writes:

> Thomas Fitzsimmons <[email-masked]> writes:
>
>> $ /usr/bin/emacs -Q --eval "(require 'dbus)" --eval '(dbus-introspect-xml :session "org.freedesktop.DBus" "")'
>> process 23699: arguments to dbus_message_new_method_call() were incorrect, assertion "_dbus_check_is_valid_path (path)" failed in file dbus-message.c line 1078.
>> This is normally a bug in some application using the D-Bus library.
>>   D-Bus not built with -rdynamic so unable to print a backtrace
>> Fatal error (6)Aborted (core dumped)
>>
>
> The crash happens because DBUS uses fatal warnings. Setting the
> environment variable DBUS_FATAL_WARNINGS to 0 helps:
>
>   DBUS_FATAL_WARNINGS=0 emacs -Q --eval "(require 'dbus)" --eval
>   '(dbus-introspect-xml :session "org.freedesktop.DBus" "")'
>
> This way the warning message is still printed but Emacs doesn't crash.

OK, that does improve the situation for me but it doesn't solve the
problem in general.  By default an unsuspecting user developing D-Bus
Lisp code (e.g. in ielm) can easily crash their Emacs session.  Is there
a way for the Emacs D-Bus bindings to disable fatal warnings and/or to
intercept their causes and report the errors?

Thomas