xserver-multidpi/mi
Jamey Sharp b9f48d60bc Device init: Don't crash when CreateGC fails.
ActivateDevice was ignoring errors from DeviceCursorInitialize, so
cursor-related calls failed later. Jeremy Huddleston saw that crash in
miPointerConstrainCursor, while with Xvfb I saw it in
miSpriteRealizeCursor.

miDCDeviceCleanup frees any non-NULL GCs. miDCDeviceInitialize calls
Cleanup on any failure, but if it failed early then some of the pointers
in the miDCBufferPtr were garbage. Switch from malloc to calloc to
ensure everything's initialized safely first.

With these two fixes, if CreateGC fails then the server gracefully fails
in FatalError instead of segfaulting.

Signed-off-by: Jamey Sharp <jamey@minilop.net>
Cc: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Keith Packard <keithp@keithp.com>
2010-05-23 17:28:44 -07:00
..
Makefile.am Remove mibank support 2010-04-27 11:14:03 -07:00
mi.h Eliminate bogus event resizing. 2009-09-20 20:45:24 +10:00
miarc.c Replace dixChangeGC with calls directly to the right variant. 2010-05-13 17:14:07 -07:00
mibitblt.c Replace dixChangeGC with calls directly to the right variant. 2010-05-13 17:14:07 -07:00
mibstore.c Update several of my and/or Red Hat's licenses to standard form. 2009-05-14 07:02:44 -04:00
mibstore.h Rework symbol visibility for easier maintenance 2008-12-03 05:43:34 -02:00
mibstorest.h Remove RCS tags. Fix Xprint makefile braindamage. 2006-07-21 17:56:00 -04:00
micmap.c Replace X-allocation functions with their C89 counterparts 2010-05-13 00:22:37 +07:00
micmap.h mi: track screens' installed colormaps as screen privates 2010-04-23 15:49:23 +03:00
micoord.h Unifdef sgi. 2008-07-23 13:37:42 -04:00
micopy.c Replace X-allocation functions with their C89 counterparts 2010-05-13 00:22:37 +07:00
micursor.c Rework symbol visibility for easier maintenance 2008-12-03 05:43:34 -02:00
midash.c Rework symbol visibility for easier maintenance 2008-12-03 05:43:34 -02:00
midispcur.c Device init: Don't crash when CreateGC fails. 2010-05-23 17:28:44 -07:00
mieq.c Replace X-allocation functions with their C89 counterparts 2010-05-13 00:22:37 +07:00
miexpose.c Use WriteEventsToClient rather than TryClientEvents where possible. 2010-05-19 12:32:34 -07:00
mifillarc.c Replace X-allocation functions with their C89 counterparts 2010-05-13 00:22:37 +07:00
mifillarc.h Rework symbol visibility for easier maintenance 2008-12-03 05:43:34 -02:00
mifillrct.c Replace X-allocation functions with their C89 counterparts 2010-05-13 00:22:37 +07:00
mifpoly.h Rework symbol visibility for easier maintenance 2008-12-03 05:43:34 -02:00
mifpolycon.c Replace X-allocation functions with their C89 counterparts 2010-05-13 00:22:37 +07:00
migc.c Replace X-allocation functions with their C89 counterparts 2010-05-13 00:22:37 +07:00
migc.h Rework symbol visibility for easier maintenance 2008-12-03 05:43:34 -02:00
miglblt.c Replace dixChangeGC with calls directly to the right variant. 2010-05-13 17:14:07 -07:00
miinitext.c Boolean-or short-circuits, so (a || (!a && ...)) is redundant. Simplify. 2010-04-26 19:18:41 -07:00
miline.h mi: kill a few warnings 2009-02-07 21:58:17 +01:00
mioverlay.c Replace X-allocation functions with their C89 counterparts 2010-05-13 00:22:37 +07:00
mioverlay.h Rework symbol visibility for easier maintenance 2008-12-03 05:43:34 -02:00
mipointer.c mi: removed unused PointerNonInterestBox functions. 2010-05-14 07:50:49 +03:00
mipointer.h mi: un-deprecate miPointerWarpCursor 2009-05-16 12:20:58 +10:00
mipointrst.h mi: protect mipointrst.h against multiple includes. 2008-06-11 17:24:19 +09:30
mipoly.c Rework symbol visibility for easier maintenance 2008-12-03 05:43:34 -02:00
mipoly.h Rework symbol visibility for easier maintenance 2008-12-03 05:43:34 -02:00
mipolycon.c Replace X-allocation functions with their C89 counterparts 2010-05-13 00:22:37 +07:00
mipolygen.c Replace X-allocation functions with their C89 counterparts 2010-05-13 00:22:37 +07:00
mipolypnt.c Replace dixChangeGC with calls directly to the right variant. 2010-05-13 17:14:07 -07:00
mipolyrect.c Replace X-allocation functions with their C89 counterparts 2010-05-13 00:22:37 +07:00
mipolyseg.c Rework symbol visibility for easier maintenance 2008-12-03 05:43:34 -02:00
mipolytext.c Rework symbol visibility for easier maintenance 2008-12-03 05:43:34 -02:00
mipolyutil.c Replace X-allocation functions with their C89 counterparts 2010-05-13 00:22:37 +07:00
mipushpxl.c Replace X-allocation functions with their C89 counterparts 2010-05-13 00:22:37 +07:00
miregion.c Replace X-allocation functions with their C89 counterparts 2010-05-13 00:22:37 +07:00
miscanfill.h Remove RCS tags. Fix Xprint makefile braindamage. 2006-07-21 17:56:00 -04:00
miscrinit.c mi: removed unused PointerNonInterestBox functions. 2010-05-14 07:50:49 +03:00
mispans.c Replace X-allocation functions with their C89 counterparts 2010-05-13 00:22:37 +07:00
mispans.h Use libtool convenience libraries and better "symbol" table. 2008-12-07 02:22:19 -02:00
misprite.c mi/misprite.c: Delete unused private lookups. 2010-05-19 10:00:51 -07:00
misprite.h Replace miSpriteCursorFuncRec with direct calls to midispcur.c. 2010-05-19 10:00:49 -07:00
mistruct.h Death to RCS tags. 2007-06-29 14:06:52 -04:00
mivalidate.h Death to RCS tags. 2007-06-29 14:06:52 -04:00
mivaltree.c Remove a bunch of useless casts. 2009-01-22 02:11:16 -05:00
miwideline.c Replace dixChangeGC with calls directly to the right variant. 2010-05-13 17:14:07 -07:00
miwideline.h Replace dixChangeGC with calls directly to the right variant. 2010-05-13 17:14:07 -07:00
miwindow.c Replace X-allocation functions with their C89 counterparts 2010-05-13 00:22:37 +07:00
mizerarc.c Replace dixChangeGC with calls directly to the right variant. 2010-05-13 17:14:07 -07:00
mizerarc.h Rework symbol visibility for easier maintenance 2008-12-03 05:43:34 -02:00
mizerclip.c Rework symbol visibility for easier maintenance 2008-12-03 05:43:34 -02:00
mizerline.c Replace X-allocation functions with their C89 counterparts 2010-05-13 00:22:37 +07:00