xserver-multidpi/dix
Keith Packard f9a04d19ae fonts: Continue when font calls return Suspended more than once
Patch 3ab6cd31cb fixed Xinerama
interactions with font servers by not putting clients to sleep
multiple times. However, it introduced additional changes dealing with
libXfont routine returning Suspended more than once for the same
request. This additional change was to abandon processing of the
current request and free the closure data by jumping to
'xinerama_sleep' in each of the functions.

Font library functions shouldn't return Suspended more than once,
except for ListFontsWithInfo, which produces multiple replies, and
thus ends up returning Suspended many times during processing.

With the jump to xinerama_sleep occurring after the first reply was
processed, the closure for the request was freed and future calls into
the ListFontsWithInfo callback resulted in dereferencing freed
memory.

This patch removes the added branches, reverting the code to its
previous behaviour, which permitted multiple Suspended returns and
simply waited for the client to be signaled again so that the callback
could continue processing the request.

Signed-off-by: Keith Packard <keithp@keithp.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
2015-10-19 13:41:27 -04:00
..
.gitignore dix and os: gitignore dix.O and os.O 2011-09-23 17:14:47 -07:00
BuiltInAtoms R6.6 is the Xorg base-line 2003-11-14 15:54:54 +00:00
Makefile.am Allow DDX to provide a main() 2013-07-23 23:56:58 +01:00
Xserver-dtrace.h.in dix: add dtrace probes to input API 2012-03-22 11:33:42 +10:00
Xserver.d Get rid of const warnings in XSERVER_INPUT_EVENT dtrace probe calls 2015-02-10 18:14:44 -08:00
atom.c atom: make FreeAtom static 2015-07-08 16:41:29 -04:00
buildatoms XFree86 4.3.0.1 2003-11-14 16:49:22 +00:00
colormap.c configurable maximum number of clients 2015-08-24 00:00:18 -07:00
cursor.c cursor: drop ARGB_CURSOR 2015-06-30 12:17:51 +10:00
devices.c dix: fix indentation 2015-05-20 12:44:54 +10:00
dispatch.c configurable maximum number of clients 2015-08-24 00:00:18 -07:00
dispatch.h Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
dixfonts.c fonts: Continue when font calls return Suspended more than once 2015-10-19 13:41:27 -04:00
dixutils.c Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
enterleave.c dix: Unexport various implementation details 2015-07-08 16:40:57 -04:00
enterleave.h dix: Unexport various implementation details 2015-07-08 16:40:57 -04:00
eventconvert.c dix: send the current axis value in DeviceChangedEvents (#62321) 2013-05-07 09:40:42 +10:00
events.c dix/events: Set currentTime to the given time stamp in NoticeTime 2015-05-11 15:40:04 -07:00
extension.c Convert dix/* to new *allocarray functions 2015-04-21 16:57:08 -07:00
ffs.c Introduce a consistent coding style 2012-03-21 13:54:42 -07:00
gc.c Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
getevents.c dix: put warning in for scroll increments of 0 2015-09-23 10:51:45 -04:00
globals.c Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
glyphcurs.c Let calloc handle multiplication 2015-04-21 16:57:07 -07:00
grabs.c Convert dix/* to new *allocarray functions 2015-04-21 16:57:08 -07:00
initatoms.c Introduce a consistent coding style 2012-03-21 13:54:42 -07:00
inpututils.c dix: Add unaccelerated valuators to the ValuatorMask 2015-05-20 12:44:58 +10:00
main.c privates: Clear screen-specific keys during CloseScreen 2015-09-21 14:18:51 -04:00
pixmap.c prime: add rotation support for offloaded outputs (v2) 2015-07-08 11:13:09 -07:00
privates.c privates: Clear screen-specific keys during CloseScreen 2015-09-21 14:18:51 -04:00
property.c Convert dix/* to new *allocarray functions 2015-04-21 16:57:08 -07:00
protocol.txt protocol.txt: Add MIT-SHM 1.2 requests 2015-09-25 09:46:11 -04:00
ptrveloc.c dix: allow a ConstantDeceleration between 0 and 1 (#66134) 2013-07-17 14:27:26 +10:00
region.c Convert dix/* to new *allocarray functions 2015-04-21 16:57:08 -07:00
registry.c Build required portions of registry.c automatically [v2] 2014-09-18 15:29:29 -07:00
resource.c configurable maximum number of clients 2015-08-24 00:00:18 -07:00
selection.c Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
stubmain.c Allow DDX to provide a main() 2013-07-23 23:56:58 +01:00
swaprep.c Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
swapreq.c Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
tables.c Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
touch.c debug output format fix in TouchEventHistoryPush() 2015-08-28 12:07:13 +01:00
window.c dix: Silence -Wunused-variable warning by moving window.c off of legacy region defines 2015-10-19 11:52:03 -04:00