xserver-multidpi/dix
Keith Packard 0ca79007c9 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>
(cherry picked from commit f9a04d19ae)
2015-10-26 12:20:46 -04:00
..
.gitignore dix and os: gitignore dix.O and os.O 2011-09-23 17:14:47 -07:00
atom.c Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
buildatoms XFree86 4.3.0.1 2003-11-14 16:49:22 +00:00
BuiltInAtoms R6.6 is the Xorg base-line 2003-11-14 15:54:54 +00:00
colormap.c Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
cursor.c Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
devices.c dix: Do not allow device transform to be set on valuatorless devices 2015-06-03 09:05:38 -04:00
dispatch.c Get rid of const warnings in XSERVER_INPUT_EVENT dtrace probe calls 2015-07-29 11:16:32 -04: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-26 12:20:46 -04:00
dixutils.c Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
enterleave.c input: drop FP1616 macro 2012-11-19 12:12:23 +10:00
enterleave.h dix: Move DeviceFocusEvent from Xi into enterleave.c 2012-05-17 08:50:44 +10:00
eventconvert.c dix: send the current axis value in DeviceChangedEvents (#62321) 2013-05-07 09:40:42 +10:00
events.c Get rid of const warnings in XSERVER_INPUT_EVENT dtrace probe calls 2015-07-29 11:16:32 -04:00
extension.c Drop trailing whitespaces 2014-11-12 10:25:00 +10: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 Get rid of const warnings in XSERVER_INPUT_EVENT dtrace probe calls 2015-07-29 11:16:32 -04:00
globals.c Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
glyphcurs.c Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
grabs.c Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
initatoms.c Introduce a consistent coding style 2012-03-21 13:54:42 -07:00
inpututils.c dix: silence compiler warning 2014-11-12 10:25:00 +10:00
main.c privates: Clear screen-specific keys during CloseScreen 2015-10-26 12:18:46 -04:00
Makefile.am Allow DDX to provide a main() 2013-07-23 23:56:58 +01:00
pixmap.c pixmap: fix reverse optimus support with multiple heads 2014-09-11 18:14:44 -07:00
privates.c privates: Clear screen-specific keys during CloseScreen 2015-10-26 12:18:46 -04:00
property.c Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
protocol.txt protocol.txt: Add MIT-SHM 1.2 requests 2015-10-26 12:19:26 -04:00
ptrveloc.c dix: allow a ConstantDeceleration between 0 and 1 (#66134) 2013-07-17 14:27:26 +10:00
region.c dix: integer overflow in RegionSizeof() [CVE-2014-8092 3/4] 2014-12-08 18:09:47 -08:00
registry.c Build required portions of registry.c automatically [v2] 2014-09-18 15:29:29 -07:00
resource.c Get rid of const warnings in XSERVER_INPUT_EVENT dtrace probe calls 2015-07-29 11:16:32 -04: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 Replace 'pointer' type with 'void *' 2014-01-12 10:24:11 -08:00
window.c Drop trailing whitespaces 2014-11-12 10:25:00 +10: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-07-29 11:16:32 -04:00