Commit Graph

84 Commits

Author SHA1 Message Date
Rami Ylimaki 5b9a52be7e os: Prevent core dump from being truncated.
The problem fixed by this patch can be reproduced on Linux with the
following steps.
- Access NULL pointer intentionally in ProcessOtherEvent on key press.
- Instead of saving core dump to a file, write it into a pipe.
  echo "|/usr/sbin/my-core-dumper" > /proc/sys/kernel/core_pattern
- Dump the core by pressing a key.

While the core is being dumped into the pipe, the smart schedule timer
will cause a pending SIGALRM. Linux kernel stops writing data to the
pipe when there are pending signals. This causes the core dump to be
truncated. On my system I'm expecting a 6 MB dump but the size will be
60 kB instead. The problem is solved if we block the SIGALRM caused by
expired smart schedule timer.

I haven't been able to reproduce this problem in the following cases.
- Save core dump to a file instead of a pipe.
- kill -SEGV `pidof Xorg`
- Press a key to dump core while gdb is attached to Xorg.
- Give option -dumbSched to Xorg.

Also note that the fix works only when NoTrapSignals has the default
value FALSE. The problem can still be reproduced if error signals
aren't trapped. In addition to pending SIGALRM, there is a similar
problem with pending SIGIO from the keyboard driver during core dump.

Signed-off-by: Rami Ylimaki <ext-rami.ylimaki@nokia.com>
Reviewed-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
2010-02-17 23:20:52 -08:00
Jeremy Huddleston 1b8f90aa8b Miscellaneous compilation warning fixes
main.c:134: warning: no previous prototype for 'dix_main'
rootlessScreen.c: In function 'RootlessMarkOverlappedWindows':
rootlessScreen.c:434: warning: function declaration isn't a prototype
backtrace.c:51: warning: format '%lx' expects type 'long unsigned int', but argument 5 has type 'int'
backtrace.c:54: warning: format '%lx' expects type 'long unsigned int', but argument 5 has type 'int'
set.c: In function 'RecordSetMemoryRequirements':
set.c:413: warning: old-style function definition
set.c: In function 'RecordCreateSet':
set.c:425: warning: old-style function definition
stub.c: In function ‘main’:
stub.c:236: warning: ISO C90 forbids mixed declarations and code

Signed-off-by: Jeremy Huddleston <jeremyhu@freedesktop.org>
2009-12-08 15:50:28 -08:00
Jeremy Huddleston 2b14e14203 Rootless: src drawable window can now be NULL
Fix a possible crash when pSrc->pDrawable is NULL.

Signed-off-by: Colin Harrison <colin.harrison@virgin.net>
Signed-off-by: Jeremy Huddleston <jeremyhu@freedesktop.org>
Signed-off-by: Keith Packard <keithp@keithp.com>
2009-10-13 13:59:58 -07:00
Jeremy Huddleston 5b91dfac6f Rootless: Abstract some of the Xplugin specific stuff which has crept into rootlessWindow.c
The rootless extension now directly calls some Xplugin functions, and relies
on types defined in Xplugin.h, which isn't very abstracted :-)

This patch is a start at abstracting some of the Xplugin specific stuff which
has crept into rootlessWindow.c.  This has been done in a pretty mindless fashion,
without much thought as to if the additions to the generic rootless interface are
the correct ones

There is some confusion as to if RootlesscolormapCallback() returns a Bool or
xp_error_enum value (not so abstact), but I have no way of checking, of finding
out if Xplugin actually checks the result :-)

Based on patches from Colin Harrison, Jon Turney and Yaakov Selkowitz

Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
Signed-off-by: Jeremy Huddleston <jeremyhu@freedesktop.org>
Signed-off-by: Keith Packard <keithp@keithp.com>
2009-10-13 13:59:57 -07:00
Jeremy Huddleston b3415187e9 Rootless: Correct border rendering on parent-relative windows
Resurected code from the punted RootlessPaintBackground/Border and added it conditionally to miPaintWindow
(cherry picked from commit cf2e3312cff3f341e9edba8c321a4ca7ffd8748e)
2009-09-27 23:31:50 -07:00
Jeremy Huddleston fc24a97a8d Rootless: Use serverClient instead of NullClient
This seems to stop the crash when moving windows.
(cherry picked from commit fcd857c8e295ac7a2b0e58d49dc71251ed9d1266)
2009-06-06 22:23:56 -07:00
Jeremy Huddleston 6d75606a9e Rootless: Despite its name, we still want to allow rootless to mess with the root window
This fixes the bug whereby we weren't drawing the contents of the root window since RootlessPaintWindowBackground got nuked.
(cherry picked from commit bb0e208787739fbed2a0c8d1af6b6504319fdf88)
2009-06-06 22:23:37 -07:00
Adam Jackson e1e8c7ddd7 s/MIN/min/, s/MAX/max/ (#2968) 2009-06-03 13:45:42 -04:00
Jeremy Huddleston 7c158ffa76 Rootless: Use miPaintWindow since PaintWindowBackground is dead
(cherry picked from commit 4975c087257b52189a5c21d93d121f183e60e4c8)
2009-05-29 14:48:13 -07:00
Jeremy Huddleston dfb0d7aefb XQuartz: Update window levels when changing rootless state
(cherry picked from commit 1359ded5bfc14a80fb998b01a54ecacb96c4ff88)
2009-04-10 00:47:40 -07:00
Jeremy Huddleston 15146b8637 XQuartz: Properly set the window level for the root window
(cherry picked from commit bdf9286d1cbfeaaf8eaf03d28091e91ee587ee25)
2009-04-10 00:47:16 -07:00
Adam Jackson 132b464d73 Remove a bunch of useless casts.
We've had void * for twenty years now people let's try to act like we
know how it works.
2009-01-22 02:11:16 -05:00
Jeremy Huddleston 83edcc08de XQuartz: Get rid of white rectangle bug
(cherry picked from commit 3269959033ed0c675a3a906666454df34086896a)
2008-12-21 21:34:38 -08:00
Jeremy Huddleston 1335a300b9 rootless: Make expose_1 static
(cherry picked from commit 60c8d2697036a125ca5381df8e2eaedabad4d242)
2008-12-21 21:34:23 -08:00
Jeremy Huddleston 20239a4dee Rootless: LP64 related casting fixes from Bob Murphy
(cherry picked from commit 40441c4e31167932721a79d7ca572caaa1d36e72)
2008-10-31 19:03:32 -07:00
Jeremy Huddleston 4e762b8aa3 Rootless: Force initialization of static variable before use.
(cherry picked from commit cece29317269385aa7a0d3047e6f90e6a17d01eb)
2008-10-31 15:49:59 -07:00
Jeremy Huddleston b7cc6ca22a miext/rootless: Silence some warnings by using proper C prototypes.
(cherry picked from commit 050e46e09efcc7e6f090fa4a749e9076c972b760)
2008-10-23 16:33:11 -07:00
George Peter Staplin b397cc7277 miext/rootless: Fix the usage of DeleteProperty so that this builds again.
(cherry picked from commit 3de250e28a9a86bcae4464a15c2025805877ce1e)
2008-10-23 16:31:44 -07:00
Jeremy Huddleston 8b3c278fe7 Rootless: Properly typed expose_1
(cherry picked from commit 78e874fe17174ac8f61586573edaf7f16ece7b21)
2008-10-23 14:17:28 -07:00
Jeremy Huddleston d13c3cbd43 XQuartz: Some motion made towards supporting fullscreen.
(cherry picked from commit 99be3d68b64059caada739a373e5e01844c776e0)
2008-10-08 18:45:17 -07:00
Jeremy Huddleston 6548a55ebd XQuartz: 256 color support
(cherry picked from commit 8dd6d5c825d457f26b41b79d02d57ed4a5ecf1f5)
2008-09-12 15:26:13 -07:00
Jeremy Huddleston c661c6ae7a XQuartz: Remove decls of crashtracer strings that we don't use anymore in here
(cherry picked from commit 4a653c6bfd270f2960a8c7e726e7628cfc3c9051)
2008-09-12 15:22:11 -07:00
Jeremy Huddleston 54162aca40 XQuartz: Fixed a crash in RootlessNativeWindowMoved
(cherry picked from commit a16048cec08e173ce42a78a77704f5fdfcb4480f)
2008-09-12 15:22:06 -07:00
Jeremy Huddleston 8abcc12fdd XQuartz: Added debugging output to the crash log to help track down two crashes, since people don't often report their system.log spew.
(cherry picked from commit aaf0f71db197526b6b866cc1b39fbdfe051879ef)
2008-08-29 20:55:25 -07:00
Tomas Carnecky ebea78cdba Prepare for array-index based devPrivates.
TODO: static indices can be made just an int; some indices
can be combined.
2008-08-28 18:05:40 -04:00
Adam Jackson d6228cb22a Shape extension is built-in and mandatory. 2008-07-24 15:46:08 -04:00
Jeremy Huddleston 6acc2acd0d Rootless: mi doesn't let us resize root, so we need to do it ourselves...
(cherry picked from commit c1ec36e28cff857664090cc8792db1ae93b783fa)
2008-05-05 15:34:10 -07:00
Jeremy Huddleston ba87c25321 Make rootless use dixLookupClient rather than deprecated LookupClient.
(cherry picked from commit 582b5b01f9697b66489ea906a2ecb8bfc5915571)
2008-04-21 20:09:30 -07:00
Ben Byer 5ffb6a2fe8 Nuke a call to deprecated LookupClient, and hopefully prevent a
null-pointer dereference, too!
(cherry picked from commit 3d28e9f953709914e18807bc74c241333671cb30)
2008-04-21 19:58:03 -07:00
Jeremy Huddleston 587c010a1c Rootless: Kill off rlAccel 2008-04-19 09:27:21 -07:00
Ben Byer edd3fb784b random flailing
(cherry picked from commit 7fb9b2dc615a3bd1a3c087438af7a8b88265cfaa)
2008-04-18 20:07:41 -07:00
Jeremy Huddleston 8716d081fd XQuartz: Don't enable rootless accelerated functionality... crashy...
(cherry picked from commit cdb4c291d8c10c3a9ea59d8e79275a30d2ea82b4)
2008-04-16 23:14:06 -07:00
Jeremy Huddleston 3f51f493b6 XQuartz: Fix issue where clicking on an X11 window might send that event to an X11 window in another space.
(cherry picked from commit df21312c8b0e9ef0c809bfc57cdf64f27db0d8a7)
(cherry picked from commit 2d4194a8d124e7a9c7cd1b83635ba6957aa4ae1c)
2008-04-08 17:03:18 -07:00
Jeremy Huddleston 4c76607b69 Rootless: Removed safeAlphaXXXX() in favor of using fb/pixman
(cherry picked from commit f03202ad15457c98be7ca78cc59bac88cf5f1966)
2008-03-21 19:33:21 -07:00
Eamon Walsh ef60632e20 dix: Modify callers of property and selection API to use new interfaces. 2008-02-29 18:01:37 -05:00
Jeremy Huddleston 4fc2d3cef8 Rootless: RootlessEnsureFrame: Added check for !IsRoot
This was causing an issue with Apple-DRI and was reported here:
http://trac.macosforge.org/projects/xquartz/ticket/51
(cherry picked from commit 116800279d2ec783c63f43d3902627edde6a4cff)
2008-01-28 12:25:29 -08:00
Colin Harrison 9dbb73033a Rootless: Fix lvalue error from devPrivates change
Instead of trying to use an invalid expression as an lvalue, use the function
call instead.
2007-12-29 00:02:16 +02:00
Eamon Walsh c8feb73f58 Merge branch 'master' into XACE-SELINUX
Conflicts:

	Xext/EVI.c
	Xext/bigreq.c
	Xext/cup.c
	Xext/dpms.c
	Xext/fontcache.c
	Xext/mitmisc.c
	Xext/xcmisc.c
	Xext/xf86bigfont.c
	Xext/xtest.c
	configure.ac
	dbe/dbe.c
	hw/darwin/darwin.h
	hw/darwin/darwinEvents.c
	hw/darwin/iokit/xfIOKit.h
	hw/darwin/iokit/xfIOKitCursor.c
	hw/darwin/quartz/fullscreen/fullscreen.c
	hw/darwin/quartz/fullscreen/quartzCursor.c
	hw/darwin/quartz/quartz.c
	hw/darwin/quartz/quartzCommon.h
	hw/darwin/quartz/quartzCursor.c
	hw/darwin/quartz/xpr/dri.c
	hw/darwin/quartz/xpr/dristruct.h
	hw/darwin/quartz/xpr/xprCursor.c
	hw/darwin/quartz/xpr/xprFrame.c
	hw/xfree86/modes/xf86RandR12.c
	include/cursor.h
	miext/rootless/rootlessCommon.h
	miext/rootless/rootlessScreen.c
	miext/rootless/rootlessWindow.c
	render/picturestr.h

Trying to pick up the pieces from the darwin churn here...
2007-12-13 18:38:25 -05:00
Ben Byer 1157cfcc5a Just a couple of small uninitialized pointer fixes
(cherry picked from commit d12b650362da100ceaecb7e859cd4ef1908d4407)
2007-12-07 22:40:00 -08:00
Jeremy Huddleston 0ad1c359c5 Darwin: Use __APPLE__ instead of __DARWIN__
(cherry picked from commit 54654815fa5e59b25cfd1fa72610120b72c10175)
2007-12-07 18:54:58 -08:00
Jeremy Huddleston 601307615e Darwin,Rootless: Makefile cleanup
(cherry picked from commit 9c6d8a035b712b219833653ac637b89703a9b0c3)
2007-11-26 14:49:32 -08:00
Jeremy Huddleston 2082e7aa87 Rootless: Remove the PaintWindow optimization which snuck back in. 2007-11-22 17:18:48 -08:00
Jeremy Huddleston a751bc12be Rootless: Imported changes made in xorg-server-1.2-apple branch 2007-11-22 13:53:00 -08:00
Jeremy Huddleston 4e18c62635 Rootless: Pulled in changes from fb{Blt,Fill} into rl{Blt,Fill}
(cherry picked from commit 3f857e129df7ce492191e0c51b8e53eaf6179366)
(cherry picked from commit 70374a58937d7a6f01c210bd6ac66cafb63e895a)
2007-11-22 12:21:59 -08:00
Ben Byer 74214a9f42 Darwin: Patch to avert (some) damage / rootless crashes, courtesy of Ken Thomases
(cherry picked from commit 148a87ff20aa5e7a6d839610aa14fa1a31505c4a)
2007-11-21 23:18:34 -08:00
Ben Byer f5f833b806 Darwin: These changes are necessary, yet not sufficient, to get 8-bit indexed
color mode working in Xquartz.
(cherry picked from commit a415f62f5289fae99ea9b0038d21fad7695b1336)
2007-11-21 23:18:13 -08:00
Jeremy Huddleston bcbaf2a0ce Darwin: Dead code removal, Code cleanup, Added launcher
Imported changes from xorg-server-1.2-apple to make master more current wrt
file layout, build system changes, and dead code removal.
2007-11-21 19:52:11 -08:00
Eamon Walsh 1603130236 Merge branch 'master' into XACE-SELINUX
Conflicts:

	Xext/xace.c
	Xext/xace.h
2007-11-14 13:35:50 -05:00
Ben Byer f2a3728868 Patch to rootless code that should fix many crashes. Credit to Ken Thomases
at CodeWeavers for the patch.  From his description:

Fix a display bug with the X server.  The Generic Rootless extension
installs overrides for certain GC (graphics context) operations.  Within
these overrides, they temporarily uninstall themselves, perform their work,
and then reinstall themselves.  Except sometimes they would return early
and wouldn't reinstall themselves when they should.  Now they do in all cases.

Fix a bug in RootlessCopyWindow where early returns could leave the screen's
dispatch table entry for CopyWindow unwrapped.  We think that this is
another case (hopefully the last) of the rootless drawing bug.
2007-11-08 20:42:01 -08:00
Ben Byer 50dac9b2cb Fixed Spaces issue, correctly -- dragging an X window from one
Space to another in Expose mode now works.
2007-11-08 20:11:34 -08:00