ErrorF in SIGIO context

Christopher James Halse Rogers christopher.halse.rogers at canonical.com
Tue Apr 3 23:57:27 PDT 2012


I've been getting SIGSEGVs in mieqEnqueue while valgrinding the server
hoping to find the source of an Ubuntu crash bug (which doesn't appear
to affect the upstream server).

Upon inspection, it was dying when trying to print the EQ overflowing
message.  Digging down, ErrorF appears to end up calling a whole bunch
of functions that aren't listed as signal-safe - sprintf (which is where
the segfault happens under valgrind), strlen (!?), vsnprintf, fwrite,
and fflush.

Some of those (hello, strlen!) should be signal safe under any
reasonable implementation, but it seems that sprintf isn't, at least
under valgrind.

Is my analysis correct?  What, if anything, should be done about this -
it doesn't seem like anything's terribly broken when running X on glibc.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part
URL: <http://lists.x.org/archives/xorg-devel/attachments/20120404/27e696e9/attachment.pgp>


More information about the xorg-devel mailing list