Bug 23475 - libspicommon is not linked correctly, leading to crashes in error paths
Summary: libspicommon is not linked correctly, leading to crashes in error paths
Status: RESOLVED FIXED
Alias: None
Product: at-spi2
Classification: Unclassified
Component: atk (show other bugs)
Version: unspecified
Hardware: Other All
: medium major
Assignee: Rob Taylor
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-08-23 16:31 UTC by Mario Lang
Modified: 2010-01-14 04:05 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments

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.