Bug 23475

Summary: libspicommon is not linked correctly, leading to crashes in error paths
Product: at-spi2 Reporter: Mario Lang <mlang>
Component: atkAssignee: Rob Taylor <rob.taylor>
Status: RESOLVED FIXED QA Contact:
Severity: major    
Priority: medium CC: mlang
Version: unspecified   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:

Description Mario Lang 2009-08-23 16:31:53 UTC
I just got the following error message, then gedit terminated
gedit: symbol lookup error: /usr/lib/gtk-2.0/modules/libspiatk.so: undefined symbol: spi_dbus_general_error

Apparently, adding libspicommon.la to LIBADD does not cause it to
be linked statically.  What really happens is what libspiatk.so
simply misses the necessary symbols, leading to a crash if they are needed.

This is not visible normally because only the error path in
accessible-adaptor.c:impl_getChildAtIndex() (and collection-adaptor.c)
uses spi_dbus_general_error, in particular, getChildAtIndex needs
spi_dbus_general_error if it is missing its argument.

Consequently, a D-Bus getChildAtIndex method call on a random accessible
will crash the target application.

My automake/libtool knowledge is too much lacking to provide a patch right
away, it should be relatively easy to sort out though.
Comment 1 Mario Lang 2009-08-23 16:37:28 UTC
Correcting myself, of course not every random getChildAtIndex
D-Bus method call will crash the target application, only one
with a missing argument.
Comment 2 Mark Doffman 2010-01-14 04:05:50 UTC
spi_dbus_general_error is no longer used in getChildAtIndex. The method has been re-introduced, and is used in the collections API. It was previously not being built.

The re-introduction of the method is in commit f3a607bd94d3a48a7de1dbcac.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.