> From: Daniel Kurtz > Date: Fri, 5 Aug 2011 15:09:57 +0800 > > For Version 3: > * 0001: Make cleaner and faster per Guillem Jover review comments. > * 0002: Make slightly faster and fix some comments. > > Back in the bad old days, using xf86Msg() from a signal handler was a > big no-no, as it would deadlock the system on malloc when the prefix is > prepended. Thus, only X_NONE messages could be used to bypass this. > However, LogVWrite limits to 1024 bytes anyway, so a patch was made to > eliminate malloc in LogVMessageVerb().
I think this diff is misguided. LogVMessageVerb() still calls snprintf(), which is *not* async-signal-safe. And, no, this is not a theoretical issue. In many C libraries the code to print floating-point numbers is based on gdtoa, which calls malloc(). > However, input driver messages these days go through xf86VIDrvMsgVerb(), > which does its own asprintf()/mallocs() to prefix the driver and device > names, reintroducing the same old no-no. The input drivers should really not try to print messages from signal handlers. _______________________________________________ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel