Commit Graph

5172 Commits

Author SHA1 Message Date
Eamon Walsh
e1edd9e668 security: Grant untrusted windows remove access on all windows.
This allows untrusted clients to destroy their own windows when they
have been reparented by a trusted window manager.
(cherry picked from commit 4559d2ace6)
2009-04-16 23:50:13 -04:00
Eamon Walsh
a26ae2c63d security: Fix a crash caused by wrong ordering of format arguments.
(cherry picked from commit 3481b32ab9)
2009-04-16 23:50:05 -04:00
Eamon Walsh
62aa06d499 security: Revert behavior of extension access for compatibility.
Previously, three extensions were defined as "trusted" by the extension:
BIG-REQUESTS, XC-MISC, and XPrint.  No other extensions were permitted
to be used by untrusted clients.

In commit 8b5d21cc1d this was changed for
some reason.  Return to the old, compatible behavior.
(cherry picked from commit 6045506be0)
2009-04-16 23:49:58 -04:00
Peter Hutterer
4970d757a7 xkb: Extra sanity checks to prevent dev->key == NULL dereferencing.
(cherry picked from commit 95fc59a199)
2008-12-16 14:19:00 -05:00
Dave Airlie
336df75f12 EXA: avoid copy operations if no boxes in use
Simple fix for now, I'm sure damage shouldn't be calling us with nbox = 0.
(cherry picked from commit 8f8a9c19ad)
2008-12-16 14:06:25 -05:00
Alan Coopersmith
cd15136dc1 Non-Linux OS'es should default to kbd driver, not now-dead keyboard driver
(cherry picked from commit d63ea51013)
2008-12-16 14:06:14 -05:00
Alan Coopersmith
1e3f8913c5 Use OsSignal in Popen/Pclose to avoid SysV signal() stupidity
(cherry picked from commit c9051b684b)
2008-12-16 14:06:04 -05:00
Luc Verhaegen
244e960bb0 XAA PixmapOps: Sync before accessing unwrapped callbacks.
When using any XAAPixmapOps, we call into unknown but freshly
unwrapped callbacks (like fb ones). Unlike the XAA*Fallback calls,
we did so without syncing first, exposing us to all kinds of
synchronisation issues.

I believe that the rendering errors appeared now because *PaintWindow
vanished (e4d11e58), and we just use miPaintWindow instead. This
takes a less direct route to the hw and ends up at
PolyFillRectPixmap, which very often left drawing artifacts.

We now sync accordingly, and no longer get the rendering artifacts i
was methodically reproducing on radeonhd, radeon, unichrome...

Also, in order to allow driver authors to remove extensive syncing
or flushing to hide this issue, create XAA_VERSION_ defines, put
them in xaa.h and bump the patchlevel.

(novell bug #435791)
(cherry picked from commit 59f9fb4b8c)
2008-12-16 14:05:54 -05:00
Julien Cristau
bfe5a13499 xfree86: xf86SetDepthBpp needs to respect the driver's depth24flags
When setting the depth to 24, leave bpp unset so the logic to pick
a supported value is used instead of ignoring the driver's preference
and forcing 32 bpp.
(cherry picked from commit 991c88b754)
2008-12-16 14:05:43 -05:00
Julien Cristau
8e1ee573b3 mi: Fix infinite loop on regen when swrast_dri.so is missing
The swrast DRI provider gets pushed on the glx provider stack at every
server generation, so the stack turns into a circular list on regen.

X.Org bug#18388 <https://bugs.freedesktop.org/show_bug.cgi?id=18388>
(cherry picked from commit d3d6be4948)
2008-12-16 14:05:19 -05:00
Egbert Eich
38e0a542fc int10: Do an mprotect(..,PROT_EXEC) on shmat()ed memory ranges.
When the linux kernel sets the NX bit vm86 segfaults when it tries to execute
code in memory that is not marked EXEC. Such code gets called whenever
we return from a VBIOS call to signal the calling program that the call
is actually finished and that we are not trapping for other reasons (like
IO accesses).
Use mprotect(2) to set these memory ranges PROT_EXEC.
(cherry picked from commit a9e20306fb)
2008-12-16 14:04:30 -05:00
Adam Jackson
4c6a89ee78 xserver 1.5.3 2008-11-05 15:39:01 -05:00
Julien Cristau
b0c2d00985 xfree86: fix compiler warnings in DoModalias()
The precedence of == is higher than that of &, so that code was
probably buggy.

xf86Init.c: In function 'DoModalias':
xf86Init.c:300: warning: suggest parentheses around comparison in operand of &
xf86Init.c:304: warning: suggest parentheses around comparison in operand of &
xf86Init.c:308: warning: suggest parentheses around comparison in operand of &
(cherry picked from commit ffaaa1a198)
2008-11-05 14:41:11 -05:00
Nathaniel McCallum
a311fdc040 Xorg: add -modalias option
This scans the installed video drivers and prints a Linux-style modalias
listing of the devices each driver claims to support.
2008-11-05 14:40:59 -05:00
Michel Dänzer
b8fd8da1ad AIGLX: Reinstate call to driver texOffsetFinish hook.
It was accidentally lost when factoring out __glXDRIdoReleaseTexImage, so this
is a regression fix and should probably be backported to server-1.5-branch.
(cherry picked from commit a4d62bbf21)
2008-11-05 13:48:30 -05:00
Adam Jackson
377712dbfc linux: Drain the console fd of data when using evdev for keyboards
Works around a silly bug in the kernel that causes wakeup storms after
too many keypresses.  Should fix the kernel bug too, but this at least
keeps the idle wakeup count below 1000/sec.
(cherry picked from commit 446d9443ce)
2008-11-05 13:37:36 -05:00
Peter Hutterer
3245bf1136 xfree86: If AEI is on, disable "kbd" and "mouse" devices.
This consists of two parts:
In the implicit server layout, ignore those drivers when looking for a core
device.

And after finishing the server layout, run through the list of devices and
remove any that use mouse or kbd.

AEI is mutually exclusive with the kbd and mouse drivers, so pick either - or.

Signed-off-by: Peter Hutterer <peter.hutterer@redhat.com>
(cherry picked from commit c264826da9)
2008-11-05 13:36:42 -05:00
Peter Hutterer
58e6d6afe0 xfree86: if AllowEmptyInput is true, enable RAW mode on the console.
Usually, the console is set to RAW in the kbd driver. If we hotplug all input
devices (i.e. the evdev driver for keyboards) and the console is left as-is.
As a result, the evdev driver must put an EVIOCGRAB on the device to avoid
characters leaking onto the console. This again breaks many things, amongst
them lirc, in-kernel mouse button emulation and HAL.

This patch sets the console to RAW if AllowEmptyInput is on.

Use-cases:
1. AEI is off
  1.1. Only kbd driver is used - behaviour as-is.
  1.2. kbd and evdev driver is used: if evdev does not grab the device,
       duplicate events are generated.
2. AEI is on
  2.1. Only evdev driver is used - behaviour as-is, but evdev does not need
       to grab the device anymore.
  2.2. evdev and kbd are used: duplicate key events are generated if evdev
       does not grab the device.

1.2 is a marginal use-case that can be fixed by adding a "grab" option to the
evdev driver (update of xorg.conf is needed).

2.2 is an issue. If we have no ServerLayout section, AEI is on, but devices
specified in the xorg.conf are still added [1], resulting in duplicate events.
This is a common configuration and needs sorting out.

[1] 2eaed4a10f

Signed-off-by: Peter Hutterer <peter.hutterer@redhat.com>
Signed-off-by: Adam Jackson <ajax@redhat.com>
(cherry picked from commit d936a4235c)
2008-11-05 13:35:26 -05:00
Peter Hutterer
bc199fdf79 config: don't add duplicate devices through HAL.
If HAL is restarted, the device list is sent to the server again, leading
first to duplicate devices (and thus duplicate events), and later to a
FatalError "Too many input devices."

dev->config_info contains the UDI for the device. If the UDI of a new devices
is equal to one we already have in the device list, just ignore it.

Signed-off-by: Peter Hutterer <peter.hutterer@redhat.com>
(cherry picked from commit 6c45185955)
2008-11-05 13:30:32 -05:00
Matthieu Herrb
e63ef549bb Close well known connections in ServerAbort()
(cherry picked from commit d72cd753b9)
2008-11-05 13:04:33 -05:00
Adam Jackson
5d14e34541 exa: Add exaDrawableIsOffscreen() to the driver API.
(cherry picked from commit 3891dd8924)
2008-11-05 13:02:46 -05:00
Michel Dänzer
f4c33e2e64 EXA: Avoid excessive syncing in PutImage
(cherry picked from commit 2188582e5e)
2008-11-05 13:01:35 -05:00
Pierre Willenbrock
df22857b34 RANDR: Fix output property event delivery.
(cherry picked from commit 8de26770a4)
2008-11-05 13:01:10 -05:00
Keith Packard
42429aa326 RANDR: Delivery output property events.
(cherry picked from commit 9187f6ad9e)
2008-11-05 13:01:03 -05:00
Rémi Cardona
b28c25b5ae Force LC_ALL=C when building xf86DefModeSet.c
Fixes build in not-quite-latin locales.
2008-11-05 11:49:49 -05:00
Martin von Gagern
992a7168f0 Bug #17858: Fix Xvesa build on newer kernels.
Not cherry picked from master, Xvesa is gone there.
2008-11-05 11:44:03 -05:00
Maarten Maathuis
ec5046ca75 dri: don't set the dixPrivate key to NULL, as this is a staticly set variable.
- This breaks on the 2nd server generation.
- No other subsystem seems to NULL their key.
- This should fix bug 17982.
(cherry picked from commit 5b336585a4)
2008-10-27 09:47:45 -04:00
Adam Jackson
f75163e5f6 Bug #18159: Spell "anisotropic" correctly
(cherry picked from commit 81e197b2a5)
2008-10-27 09:46:52 -04:00
Adam Jackson
b468eacf51 kdrive: Hardcode a different wrong value for number of mouse buttons
This should really come from the input driver directly, but, kdrive.
(cherry picked from commit 3eb52de7f2)
2008-10-27 09:46:46 -04:00
Adam Jackson
19776ede8f Add backtrace definitions to dix-config.h.in
(cherry picked from commit ad677238bc)
2008-10-27 09:46:37 -04:00
Adam Jackson
483fb847b4 mieq: Backtrace when the queue overflows.
Since we're probably stuck down in a driver somewhere, let's at least
try to point out where.  This will need to be rethought when the input
thread work lands though.
(cherry picked from commit b736f477f5)
2008-10-27 09:46:32 -04:00
Adam Jackson
7df5e93cf5 Move xorg_backtrace() up to the OS level so we can call it from DIX.
(cherry picked from commit 94ed0ba1b5)
2008-10-27 09:46:28 -04:00
Adam Jackson
aa548b0a9b EDID: Catch even more cases of encoding aspect as size.
Very cute, Samsung, not only do you claim to be 16cm by 9cm in the
global size record, you also claim to be 160mm by 90mm in the detailed
timings.  Grrr.
(cherry picked from commit bd9c6b3a4d)
2008-10-27 09:46:22 -04:00
Adam Jackson
6dcfa994b0 xserver 1.5.2 2008-10-10 15:26:32 -04:00
Adam Jackson
75504517a3 EDID: Catch monitors that encode aspect ratio for physical size.
This is not legal in either EDID 1.3 or 1.4, but hey, when did a little
thing like legality stop anyone.
(cherry picked from commit 0660dd9d70)
2008-10-10 14:12:57 -04:00
Adam Jackson
b595b65e54 Revert "Array-index based devPrivates implementation."
This reverts commit 8ef37c194f.
2008-10-09 14:53:29 -04:00
Julien Cristau
ca659813a8 Fix GKVE with key_code > 255
Move the keycode validation checks before use.
2008-10-08 19:46:50 +02:00
Luc Verhaegen
8337c9aa3d DGA: Fix ProcXF86DGASetViewPort for missing support in driver.
Fixes a segfault when trying to activate a DGA mode without checking
whether DGA modesetting is at all possible.
(cherry picked from commit 1feb69eb63)
2008-10-08 11:21:49 -04:00
Zhenyu Wang
4e6cbd3238 Check nextEnabledOutput()'s return in bestModeForAspect()
In case no enabled outputs, we will reference wrong index of
output array.
(cherry picked from commit 56c615368c)
2008-10-08 11:21:39 -04:00
Adam Jackson
43e3af9cac int10: Fix a nasty memory leak.
(cherry picked from commit 94919480d8)
2008-10-08 11:16:56 -04:00
Adam Jackson
00ac80a0c4 int10: Don't warn when scanning for devices we don't have.
Some BIOSes (hi XGI!) will attempt to enumerate the PCI bus by asking
for the config space of every possible device number.  This despite
perfectly functional BIOS methods to enumerate the bus exactly.
(cherry picked from commit a57b2f172c)
2008-10-08 11:16:52 -04:00
Adam Jackson
c6ce2f6b3f int10: Remove useless check.
If you have more than one PCI device with the same d/b/d/f, you're
already in trouble.
(cherry picked from commit a65e36a873)
2008-10-08 11:16:48 -04:00
Eamon Walsh
8ef37c194f Array-index based devPrivates implementation.
Note: DevPrivateKey is now pointer-to-int, which means
each key now needs to point to some global storage of
size at least sizeof(int).

(cherry picked from commit b6ab114212)
2008-10-08 11:15:27 -04:00
Peter Hutterer
e88df87851 xkb: squash canonical types into explicit ones on core reconstruction.
If we update key types from core, and groups 2 - n have a canonical type but
the same symbols as the explicit type of group 1, assume that it was a core
sym duplication according to Section 12.4 of the XKB Protocol Spec.
Ignore the canonical types and pretend there's only one group for the key -
with the explicit key type.

The protocol spec does not cover this case, so we have to guess here.
(cherry picked from commit 30c3c13f10)
2008-10-08 11:15:21 -04:00
Peter Hutterer
be3b3cb970 xkb: fix core keyboard map generation. #14373
According to Section 12.4 of the XKB Protocol Spec, if a key only has a single
group but the keyboard has multiple groups defined, the core description of
the key is a duplication of the single group across all symbols. i.e.
G1L1 G1L2 G1L1 G1L2 G1L3 G1L4 G1L3 G1L4

The previous code generated G1L1 G1L2 G1L3 G1L4 G1L3 G1L4, leading to
"invented" groups when the process is reversed.

Note that this creates wrong key types on reconstruction from core to xkb,
i.e. any single-group key with a key type that is not one of the canonical
four (Sec 12.2.3), will get the assigned type on group 1, and a canonical type
for the other gruops.

X.Org Bug 14373 <http://bugs.freedesktop.org/show_bug.cgi?id=14373>
(cherry picked from commit ae986d1c73)
2008-10-08 11:15:13 -04:00
Kim Woelders
3bf826f590 xkb: fix use of uninitialized variable.
And some cosmetic changes to use stuff->change consistently.

Signed-off-by: Peter Hutterer <peter.hutterer@redhat.com>
(cherry picked from commit 8c46505d7d)
2008-10-08 11:15:05 -04:00
Alan Coopersmith
88ebde608d Remove usage of mfbChangeWindowAttributes missed in e4d11e58c... 2008-10-06 20:10:25 -07:00
Alan Hourihane
af8cef461c only build dri2 when DRI2 is enabled 2008-09-24 14:24:36 +01:00
Adam Jackson
97f688f2b4 xserver 1.5.1 2008-09-23 14:51:33 -04:00
Adam Jackson
68c575cb73 Move RELEASE_DATE below AC_INIT.
Doing it the other way around clobbers the setting, which means you get
a null release date string in the log.  Thanks autoconf!
2008-09-23 11:05:44 -04:00