> To prevent this from happening, the X server will install a signal > handler for SIGBUS, check if a shared memory object is being accessed > and patch things up (by mmap'ing anonymous memory on top of the > mapping). This code can be extended of course by handling SIGSEGV as > well. But this means more work in xenocara and ports, and we might > miss some places where this needs to be done.
I actually don't believe this theory about a SIGBUS (or even SIGSEGV) handler "fixing things up". Over the last two decades, I've done more than a little auditing of signal handlers. The only general principle I can report back about them is that in general is that safe ones are exceedingly rare. Fixups are a myth. If it does happen, SIGBUS and SIGSEGV can be handled the same unsafe way...