Commit graph

3781 commits

Author SHA1 Message Date
Peter Hutterer
7cdef0d6fc xkb: delete default rules when devices are closed.
We only have one set of default rules options in xkb. When the second keyboard
is brought up with Xkb options specified, these new options overwrite the old.
In future server generations, the rules used for the VCK are a mixture of the
default ones and ones previously specified for other keyboards. Simply
resetting the xkb default rules to NULL avoids this issue.

Reproducable by setting XkbLayout "de" and XkbVariant "nodeadkeys". In the
second server generation, the VCK has "us(nodeadkeys)". This again produces a
SIGABRT when the first key is hit.

I could not figure out why the SIGABRT happens. This patch is avoiding the
issue rather than fixing it.
(cherry picked from commit 5a3d06b8f4)
2008-06-28 20:31:57 +09:30
Peter Hutterer
5903b4c749 kdrive: don't post motion event if there was no motion. #16179
Based on the patch by Tomas Janousek.
Backported from master to server-1.4.

X.Org Bug 16179 <http://bugs.freedesktop.org/show_bug.cgi?id=16179>
(cherry picked from commit 26e7e69ab8)
2008-06-28 20:31:39 +09:30
Julien Cristau
c3a7903f6a Bump to 1.4.2
And update release date.
2008-06-11 16:27:40 +02:00
Matthieu Herrb
08e6292e7e CVE-2008-1379 - MIT-SHM arbitrary memory read
An integer overflow in the validation of the parameters of the
ShmPutImage() request makes it possible to trigger the copy of
arbitrary server memory to a pixmap that can subsequently be read by
the client, to read arbitrary parts of the X server memory space.
2008-06-10 11:43:43 -06:00
Matthieu Herrb
8ffaf61370 CVE-2008-1377 - RECORD and Security extensions memory corruption
Lack of validation of the parameters of the
SProcSecurityGenerateAuthorization SProcRecordCreateContext
functions makes it possible for a specially crafted request to trigger
the swapping of bytes outside the parameter of these requests, causing
memory corruption.
2008-06-10 11:43:35 -06:00
Matthieu Herrb
702e709973 CVE-2008-2362 - RENDER Extension memory corruption
Integer overflows can occur in the code validating the parameters for
the SProcRenderCreateLinearGradient, SProcRenderCreateRadialGradient
and SProcRenderCreateConicalGradient functions, leading to memory
corruption by swapping bytes outside of the intended request
parameters.
2008-06-10 11:43:27 -06:00
Matthieu Herrb
c4937bbb69 CVE-2008-2361 - RENDER Extension crash
An integer overflow may occur in the computation of the
size of the  glyph to be allocated by the ProcRenderCreateCursor()
function  which will cause less memory to be allocated than expected,
leading later to dereferencing  un-mapped memory, causing a crash of
the X server.
2008-06-10 11:42:35 -06:00
Matthieu Herrb
b1a4a96885 CVE-2008-2360 - RENDER Extension heap buffer overflow
An integer overflow may occur in the computation of the size of the
glyph to be allocated by the AllocateGlyph() function which will cause
less memory to be allocated than expected, leading to later heap
overflow.

On systems where the X  SIGSEGV handler includes a stack trace, more
malloc()-type functions are called, which may lead to other
exploitable issues.
2008-06-10 11:42:27 -06:00
Daniel Stone
43285b4f72 Bump to 1.4.1
Whatever.  It doesn't have to be perfect.
2008-06-10 18:36:38 +03:00
Daniel Stone
4d59afd613 Xi: event_{x,y} should refer to the extended device (bug #16289)
ProcessOtherEvents was unconditionally stomping the root_{x,y}
co-ordinates provided by GetPointerEvents with those of the core
pointer, meaning that both root_{x,y} and event_{x,y} reported to
clients would reflect the sprite's position, not the position reported
by the device that generated the DeviceMotionNotify or the
DeviceButton{Press,Release} event in the first place.

For key events we still take the sprite's co-ords, as we're delivering
to the focus, which is the (VCP) sprite.

Not cherry-picked from master as MPX fixes this anyway, by taking the
co-ords of the sprite the device moves (be it visible or no).
(cherry picked from commit 8259d19f71)
2008-06-10 18:34:18 +03:00
Sascha Hlusiak
7982aaa7f0 Fix getValuatorEvents to compute number of valuators correctly. 2008-05-30 19:38:49 +02:00
Peter Hutterer
ddcca23a81 xkb: when copying the keymap, make sure the structs default to 0/NULL.
It actually does help if a pointer is NULL rather than pointing to nirvana
when you're trying to free it lateron. Who would have thought?
(cherry picked from commit 7a97ca667405a42d008265c3a870210cc1da97dd)
(cherry picked from commit 0b0a097973)
2008-05-17 15:12:38 +02:00
Mart Raudsepp
4e5cf76eca xf86: Add AutoConfig driver for PCI ID 1022:2081 to 'amd'
(cherry picked from commit ab9b0b36ac)
(cherry picked from commit 4fa89fbe18)
... and backported to 1.4 (back to no new devprivates and "amd" driver name)
2008-05-16 20:16:57 +03:00
Michel Dänzer
22b1a9dd0f EXA: Skip empty glyphs. (cherry picked from commit ce50bfd336) 2008-05-16 19:52:33 +03:00
Daniel Stone
2989f10716 Prevent the -wm command line option from causing a SEGV
The -wm (when mapped) option for the BackingStore support has been
causing the server to dereference a NULL pointer.

This has probably been the case since backing store has been
implemented on top of Composite.

It looks like (some of?) Composite didn’t expect its WIndowPtr
argument to be the root window.

In Composite’s compCheckRedirect() function we now avoid calling
compAllocPixmap() and compFreePixmap() when the pWin pointer’s
parent member is NULL, as is it the case with a server’s root window.

This addresses:

https://bugs.freedesktop.org/show_bug.cgi?id=15878
(cherry picked from commit 04211c3532)
2008-05-16 19:49:05 +03:00
Adam Jackson
33a9ee9ba0 Bug #13962: Re-arm the DPMS timer when re-enabling DPMS.
(cherry picked from commit 536f2ff538)
2008-05-16 17:26:57 +03:00
Adam Jackson
a08f848d4c Bump DEFAULT_DPI to 96.
75 is just nonsense.
(cherry picked from commit db9ae86353)
2008-05-16 17:26:53 +03:00
Adam Jackson
d5a7badd6a Fix hal shutdown crash.
Removing the device invalidates its ->next pointer.  Copy it aside before
destroying the device.
(cherry picked from commit f52f6c5c7e)
2008-05-16 17:20:08 +03:00
Eric Anholt
458b487723 Fix overly-restrictive integer overflow check in EXA pixmap creation.
The result was that at 32bpp, pixmaps of width 8192 or greater couldn't be
created, due to treating a pitch value as a width.
(cherry picked from commit bc2d516f16)
2008-05-16 17:20:08 +03:00
Michel Dänzer
2621380cf6 Fix RandR 1.2 driver interface conversion of two colour cursors to ARGB
This patch (and not setting HARDWARE_CURSOR_BIT_ORDER_MSBFIRST on big endian
platforms) fixes it for me with the radeon driver and doesn't break intel.

Correct patch this time :)
(cherry picked from commit da973e962d)
2008-05-16 17:20:08 +03:00
Donnie Berkholz
9db5401d69 xprint: fix linking by including XSERVER_LIBS. 2008-05-16 17:20:08 +03:00
Donnie Berkholz
1022c7774b xprint: fix build by adding {New,Delete}InputDeviceRequest. 2008-05-16 17:20:08 +03:00
Donnie Berkholz
9df3886354 xephyr: fix linking by adding pixman and using XSERVER_LIBS. 2008-05-16 17:20:08 +03:00
Donnie Berkholz
6c5c1c5c98 dmx: link in XSERVER_LIBS. 2008-05-16 17:20:08 +03:00
Donnie Berkholz
71f0711f40 dmx: fix build by adding {New,Delete}InputDeviceRequest. 2008-05-16 17:20:07 +03:00
Alan Coopersmith
d0554a5748 When XKB fails to open rules file, log the file name, not the NULL file pointer
(cherry picked from commit 7cdc19b29d)
2008-05-13 18:11:20 -07:00
Julien Cristau
3f8ba89076 kdrive: allow disabling Composite
KdInitOutput() used to enable Composite when it was disabled by default,
but now this hack prevents ``-extension Composite'' from working.
Remove it, as Composite is enabled by default anyway.
(cherry picked from commit 9dfb525f6c)
2008-05-11 23:37:19 +02:00
Daniel Stone
104048501f XKB: Actually explain keymap failures
When something went wrong building a keymap, try to explain to the user
what it actually was, instead of the dreaded 'Failed to load XKB keymap'
catch-all.
(cherry picked from commit cf20df39cc)

Conflicts:
	xkb/ddxLoad.c
2008-05-07 23:11:31 +03:00
Magnus Vigerlöf
b1145a6b42 dix: Move motion history update until after screen crossing and clipping
Cross screen and clip the coordinates before updating the motion history
so that it will have the same contents as the events that are reported.
(cherry picked from commit a56ef7aaa4)
2008-05-07 19:22:41 +02:00
Magnus Vigerlöf
a68d0ef4a6 dix: Skip call to clipAxis for relative core-events
Relative events that generates both core and extention
events will have its axis cliped and screen changed by
miPointerSetPosition when the events are processed. For
absolute and non core-generating relative events the
axis must be clipped if we shouldn't end up completely
outside the defined ranges (if any).
(cherry picked from commit a0284d577a)
2008-05-07 19:22:35 +02:00
Magnus Vigerlöf
b51ca35a75 Bug # 10324: dix: Add scaling of X and Y on the reported pointer-events
Restore the rescaling code for x and y axis when generating
motion events.
(cherry picked from commit d9e23c4ff1)
2008-05-07 19:22:29 +02:00
Magnus Vigerlöf
1d79ba8193 Bug # 10324: dix: Allow arbitrary value ranges in GetPointerEvents
Don't use a possitive value as a marker for if a max-value
is defined on the valuators. Use the existence of a valid
value range instead. This will also make it possible to
define arbitrary start and end-values for min and max as
long as min < max.
(cherry picked from commit f04c083869)
2008-05-07 19:22:23 +02:00
Magnus Vigerlöf
7fa7031cfa dix: Always add valuator information if present
Send valuator information for all event types, not only for
MotionEvents and absolute button events.
(cherry picked from commit 12e5324032)
2008-05-07 19:22:16 +02:00
Alan Coopersmith
b95befdfd2 Check for <sys/sdt.h> as well when determining to enable dtrace probes
Avoids auto-detecting dtrace is present on systems with the ISDN trace tool
named dtrace installed, but not the dynamic tracing facility named dtrace
2008-05-06 20:57:41 -07:00
Ben Byer
0fab9843c7 So, like, checking return codes of system calls (signal, etc) is good.
Also, only restore an old signal handler if one was actually set
(prevents the server from dying on OS X).
2008-05-06 20:55:23 -07:00
Eric Anholt
a02b989c68 Fix build on FreeBSD after Popen changes. 2008-05-06 20:55:19 -07:00
Adam Jackson
6a5066c2e9 Ignore - not just block - SIGALRM around Popen()/Pclose().
Because our "popen" implementation uses stdio, and because nobody's stdio
library is capable of surviving signals, we need to make absolutely sure
that we hide the SIGALRM from the smart scheduler.  Otherwise, when you
open a menu in openoffice, and it recompiles XKB to deal with the
accelerators, and you popen xkbcomp because we suck, then the scheduler
will tell you you're taking forever doing something stupid, and the
wait() code will get confused, and input will hang and your CPU usage
slams to 100%.  Down, not across.
2008-05-06 20:55:15 -07:00
Peter Hutterer
ff4006bd5a xfree86: fix AlwaysCore handling. (Bug #14256)
Assume AlwaysCore being set by default, just like the other options.

X.Org Bug 14256 <http://bugs.freedesktop.org/show_bug.cgi?id=14256>
(cherry picked from commit 5b8641a5fd)
2008-04-30 12:53:38 +02:00
Thomas Jaeger
fdfb57d342 XKB: Fix processInputProc wrapping
If input processing is frozen, only wrap realInputProc: don't smash
processInputProc as well.  When input processing is thawed, pIP will be
rewrapped correctly.

This supersedes the previous workaround in 50e80c9.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
(cherry picked from commit 37b1258f0a)
2008-04-30 11:21:11 +02:00
Pierre Willenbrock
6afcf996ca EXA: Fix off-by-one in polyline drawing.
(cherry picked from commit d502521c36)
2008-04-30 12:07:41 +03:00
Tilman Sauerbeck
9e9eeca2b0 Fixed configure.ac for autoconf 2.62.
(cherry picked from commit 3c337e18b9)
2008-04-30 10:17:55 +02:00
Hasso Tepper
dd6b0de38d configure.ac: DragonFly BSD support
Add support for DragonFly BSD, which is just the same as FreeBSD for all
of these cases.
(cherry picked from commit 0f87b41a43)
2008-04-07 14:11:28 +03:00
Jeremy C. Reed
76b950cd6e Add some more support for DragonFly. From Joerg Sonnenberger
and pkgsrc.
(cherry picked from commit 1d4bea6106)
2008-04-07 14:10:01 +03:00
Alan Hourihane
a65d4aed06 Fix context sharing between direct/indirect contexts 2008-02-27 16:53:52 +00:00
Matthias Hopf
44f46bfb98 CVE-2007-6429: Always test for size+offset wrapping. 2008-02-20 22:17:42 +01:00
Kristian Høgsberg
bcbfd619f8 Don't break grab and focus state for a window when redirecting it.
Composite uses an unmap/map cycle to trigger backing pixmap allocation
and cliprect recomputation when a window is redirected or unredirected.
To avoid protocol visible side effects, map and unmap events are
disabled temporarily.  However, when a window is unmapped it is also
removed from grabs and loses focus, but these state changes are not
disabled.

This change supresses the unmap side effects during the composite
unmap/map cycle and fixes this bug:

  http://bugzilla.gnome.org/show_bug.cgi?id=488264

where compiz would cause gnome-screensaver to lose its grab when
compiz unredirects the fullscreen lock window.
2008-02-20 22:15:11 +01:00
Maarten Maathuis
dc30ade649 Fix rotation for multi-monitor situation.
- The (x,y)-coordinates of the crtc were not being passed as xFixed values, which made it an obscure bug to find.
- Fix bug #13787.
(cherry picked from commit a48cc88ea2)
2008-02-19 21:58:26 +02:00
Maarten Maathuis
3db5930c61 Resize composite overlay window when the root window changes.
- This allows some compositing managers to work, even after randr12 has changed the root window size.
- Thanks to ajax for figuring out the best place to put this.
- Example:
	- xf86RandR12SetMode() calls EnableDisableFBAccess().
	- That calls xf86SetRootClip() which in turn calls ResizeChildrenWinSize().
	- The final step is the call to PositionWindow().
(cherry picked from commit 70c0592a97)
2008-02-19 21:58:21 +02:00
Eamon Walsh
74b40bba32 security: Fix for Bug #14480: untrusted access broken in 7.3. 2008-02-14 19:47:44 -05:00
Peter Hutterer
bc72ef3a15 xkb: don't update LEDs if they don't exist. (Bug #13961)
In some weird cases we call this function when there is no SrvLedInfo on the
device. And it turns out null-pointer dereferences are bad.

X.Org Bug 13961 <http://bugs.freedesktop.org/show_bug.cgi?id=13961>
(cherry picked from commit d954f9c803)
2008-01-31 11:39:10 +11:00