xserver/mi
Jamey Sharp 869d377214 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>

(cherry-picked from commit b9f48d60bc)
2010-05-24 17:20:57 +10:00
..
Makefile.am misprite: Remove private header, fold into misprite.c 2009-03-27 12:44:20 -04:00
mi.h Eliminate bogus event resizing. 2009-09-20 20:45:24 +10:00
miarc.c Fix mod() definition. 2010-05-18 14:42:42 +10:00
mibank.c Remove a bunch of useless casts. 2009-01-22 02:11:16 -05:00
mibank.h Rework symbol visibility for easier maintenance 2008-12-03 05:43:34 -02:00
mibitblt.c Remove a bunch of useless casts. 2009-01-22 02:11:16 -05: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 Update Sun license notices to current X.Org standard form 2009-12-16 17:11:35 -08:00
micmap.h Rework symbol visibility for easier maintenance 2008-12-03 05:43:34 -02:00
micoord.h Unifdef sgi. 2008-07-23 13:37:42 -04:00
micopy.c fb: move some code to mi 2009-02-06 18:42:39 +01: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-24 17:20:57 +10:00
mieq.c XQuartz: Transition from xEvent based mieq to InternalEvent 2009-09-27 23:31:07 -07:00
miexpose.c rootless: Add some sanity checking to miPaintWindow 2010-05-02 20:02:53 -07:00
mifillarc.c Remove a bunch of useless casts. 2009-01-22 02:11:16 -05:00
mifillarc.h Rework symbol visibility for easier maintenance 2008-12-03 05:43:34 -02:00
mifillrct.c Remove a bunch of useless casts. 2009-01-22 02:11:16 -05:00
mifpoly.h Rework symbol visibility for easier maintenance 2008-12-03 05:43:34 -02:00
mifpolycon.c Remove a bunch of useless casts. 2009-01-22 02:11:16 -05:00
migc.c Rework symbol visibility for easier maintenance 2008-12-03 05:43:34 -02:00
migc.h Rework symbol visibility for easier maintenance 2008-12-03 05:43:34 -02:00
miglblt.c Remove a bunch of useless casts. 2009-01-22 02:11:16 -05:00
miinitext.c mi: remove deprecated #include <X11/extensions/xf86bigfstr.h> in miinitext.c 2010-03-22 00:47:09 -05:00
miline.h mi: kill a few warnings 2009-02-07 21:58:17 +01:00
mioverlay.c Remove a bunch of useless casts. 2009-01-22 02:11:16 -05:00
mioverlay.h Rework symbol visibility for easier maintenance 2008-12-03 05:43:34 -02:00
mipointer.c mi: use GetMaster() from MIPOINTER and MISPRITE. 2009-05-22 15:44:57 +10: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 Remove a bunch of useless casts. 2009-01-22 02:11:16 -05:00
mipolygen.c Remove a bunch of useless casts. 2009-01-22 02:11:16 -05:00
mipolypnt.c miPolyPoint bugfix: Check memory allocation before changing the GC. 2010-05-18 14:43:27 +10:00
mipolyrect.c Remove a bunch of useless casts. 2009-01-22 02:11:16 -05: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 Remove a bunch of useless casts. 2009-01-22 02:11:16 -05:00
mipushpxl.c Remove a bunch of useless casts. 2009-01-22 02:11:16 -05:00
miregion.c Remove a bunch of useless casts. 2009-01-22 02:11:16 -05:00
miscanfill.h Remove RCS tags. Fix Xprint makefile braindamage. 2006-07-21 17:56:00 -04:00
miscrinit.c mi: include shmint.h if needed, silence compiler warning. 2009-08-24 10:09:14 +10:00
mispans.c Remove a bunch of useless casts. 2009-01-22 02:11:16 -05:00
mispans.h Use libtool convenience libraries and better "symbol" table. 2008-12-07 02:22:19 -02:00
misprite.c mi: remove log-spamming bogus error message (#26843) 2010-04-16 09:43:50 +10:00
misprite.h Revert "Suppress software cursor removal during rotated shadow buffer drawing." 2007-04-19 17:49:34 -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 Remove a bunch of useless casts. 2009-01-22 02:11:16 -05:00
miwideline.h Rework symbol visibility for easier maintenance 2008-12-03 05:43:34 -02:00
miwindow.c Rootless: Correct border rendering on parent-relative windows 2009-09-27 23:31:50 -07:00
mizerarc.c mi: kill a few warnings 2009-02-07 21:58:17 +01: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 Remove a bunch of useless casts. 2009-01-22 02:11:16 -05:00