Since this code was using CreateScratchGC and not GetScratchGC,
FreeScratchGC would always call FreeGC, so just call it directly.
As long as the drawable provided to CreateGC has the same screen and
depth as were passed to CreateScratchGC, these functions are basically
identical. There are two differences:
- CreateGC gives you a non-null stipple. You probably don't care.
- CreateGC passes the gcid and client to XACE. There are several
internal GCs allocated in the server, and they all pass 0 and
serverClient. I expect XACE will never reject that combination.
The callers of createDrawable all verify that pDraw has the same screen
that driScreen does. In short, this should have no behavioral change.
Signed-off-by: Jamey Sharp <jamey@minilop.net>
Cc: Kristian Høgsberg <krh@bitplanet.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
None of XAA, EXA, or UXA do any hardware access during CreateGC, so they
don't need VGA arbitration. I haven't found any open source drivers that
hook CreateGC, so they're safe. I'd be surprised if any driver directly
hooks CreateGC and does hardware access from it and needs VGA
arbitration.
Signed-off-by: Jamey Sharp <jamey@minilop.net>
Signed-off-by: Tiago Vignatti <tiago.vignatti@nokia.com>
The driOps field of this structure is never set to anything but
&driGCOps, and this structure is not visible outside this source file.
Just use the constant in the one place the field was used.
Signed-off-by: Jamey Sharp <jamey@minilop.net>
Cc: Jeremy Huddleston <jeremyhu@apple.com>
Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
When a GC is allocated, it is zeroed, including all storage requested
with dixRegisterPrivateKey. So CreateGC hooks don't need to initialize
anything to zero.
Signed-off-by: Jamey Sharp <jamey@minilop.net>
Reviewed-by: Alex Deucher <alexdeucher@gmail.com>
This was part of "An experimental pseudocolor emulation layer. Not fully
completed, currently only works for 16bpp." Only neomagic tried to use
it, and that was neutered by the removal of the fbpseudocolor portion of
that emulation layer; the rest is easily removed.
Signed-off-by: Jamey Sharp <jamey@minilop.net>
Reviewed-by: Alex Deucher <alexdeucher@gmail.com>
Nothing in dmx uses these names any more, and it builds cleanly without
trying to undef them.
Signed-off-by: Jamey Sharp <jamey@minilop.net>
Reviewed-by: Alex Deucher <alexdeucher@gmail.com>
Kristian made equivalent edits to the reference GLX implementation in
2006, with commit 2d2d38d17c.
Signed-off-by: Jamey Sharp <jamey@minilop.net>
Reviewed-by: Alex Deucher <alexdeucher@gmail.com>
Kristian deleted this API from the rest of the server in 2007, in commit
7d74690536.
Signed-off-by: Jamey Sharp <jamey@minilop.net>
Reviewed-by: Kristian Høgsberg <krh@bitplanet.net>
This was already removed for XWin (20701522be)
with no reported side effects. XQuartz seems to be behaving ok without it as
well. While this possibly brings back bug #1168, we don't have any reproduction
steps for that issue, and if it crops up again, we should fix it a real way
rather than this hokey workaround which doesn't even work for COMPOSITE.
This effectively reverts the following two changes:
b2135e589bd7fef52254
Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
Reviewed-by: Jon TURNEY <jon.turney@dronecode.org.uk>
It very likely no one will want to print all functions of this file for
debugging purposes. If this is the case, then a mix of ctags + cpp + gdb
can do the same job.
Signed-off-by: Tiago Vignatti <tiago.vignatti@nokia.com>
Reviewed-by: Mikhail Gusarov <dottedmag@dottedmag.net>
It was never used since first git revision and probably no one cares for it.
ABI break.
Signed-off-by: Tiago Vignatti <tiago.vignatti@nokia.com>
Reviewed-by: Mikhail Gusarov <dottedmag@dottedmag.net>
pBSReg is always NULL, so the statement after the conditional will never be
reached.
Signed-off-by: Tiago Vignatti <tiago.vignatti@nokia.com>
Reviewed-by: Mikhail Gusarov <dottedmag@dottedmag.net>
We assume already that our X implementation is POSIX compliant anyway. So
remove those redundant checking.
SA_SIGINFO is left there.
Signed-off-by: Tiago Vignatti <tiago.vignatti@nokia.com>
Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
Reviewed-by: Jon TURNEY <jon.turney@dronecode.org.uk>
v2: Use != RedirectDrawNone, since we aren't called for manual windows.
Signed-off-by: Adam Jackson <ajax@redhat.com>
Reviewed-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
The SELinux extension does store a security label in the screen
devPrivates. Fixes crash caused by overwriting another private.
Signed-off-by: Eamon Walsh <ewalsh@tycho.nsa.gov>
Reported-by: Justin Mattock <justinmattock@gmail.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
This is very similar to the RunFromSmartParent (implicit) option, except
we do not send the signal to our parent process, but our own process
instead, and that signal is SIGSTOP, not SIGUSR1.
Upstart or a similar equivalent program will detect this, realize that
we are ready to accept clients now, send us SIGCONT and move our job
status from SPAWNED to RUNNING.
Signed-off-by: Oliver McFadden <oliver.mcfadden@nokia.com>
Acked-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Tiago Vignatti <tiago.vignatti@nokia.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
If a client sends a big request that's too big (i.e. bigger than
maxBigRequestSize << 2 bytes), the server just disconnects it. This makes the
client receive SIGPIPE the next time it tries to send something.
The X Test Suite sends requests that are too big when the test specifies the
TOO_LONG test type. When the client receives SIGPIPE, XTS marks it as
UNRESOLVED, which counts as a failure.
Instead, remember how long the request is supposed to be and then return that
size. Dispatch() checks the length and sends BadLength to the client. Then,
whenever oci->ignoreBytes is nonzero, ignore the data read instead of trying to
process it as a request.
Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
Reviewed-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
Selection objects were not being allocated with privates, and both
objects had a stray statement that zeroed out the devPrivates field.
Signed-off-by: Eamon Walsh <ewalsh@tycho.nsa.gov>
Reported-by: Justin Mattock <justinmattock@gmail.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
The drain_console() function will race with new keyboard events being added
by the hardware causing the server to lose keyboard events if the console fd
is used for input.
Only use the drain_console() when AllowEmptyInput is off which is the best
indicator we have for whether the keyboard driver will be used. This patch
will only fix the bug when hotplugging is disabled.
What we really need is a way to figure out either whether we're _not_ using
the keyboard driver (not predictable) or a way for the keyboard driver to
disable drain_console().
X.Org Bug 29969 <http://bugs.freedesktop.org/show_bug.cgi?id=29969>
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
The Irxon Super Mini Bluetooth Wireless Keyboard for PC/PDA/Cell Phones
keyboards have axes but not buttons. The evdev driver doesn't set up a
button class for these keyboards and a motion event handled by
DGAProcessPointerEvent dereferences the dev->button NULL pointer, causing a
server crash.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
CurrentTime is used by clients to skip setting the time, but not by the
server.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
If the master does not have a button class, recalculating the number of
buttons required for this master dereferences a NULL pointer. Guard against
this, if the master pointer doesn't have a button class, it doesn't need to
update it's number of buttons.
Reproducible:
Two devices on the same master, device NB with axes but no buttons, device
A+B with axes and button .
If NB was the last one to send an event through the master when A+B is
removed from the server, master->button is NULL and leads to the above
NULL-pointer dereference.
X.Org Bug 29669 <http://bugs.freedesktop.org/show_bug.cgi?id=29669>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
The udev device_added function takes the vendor and model IDs of added
devices and converts them into an attribute that can be matched for by
an InputClass configuration using MatchUSBID. Currently, the udev
mechanism works for USB devices, but fails to work properly for
Bluetooth devices. The product IDs of the event node are actually the
IDs of the Bluetooth receiver instead of the device.
This patch reads the product ID from the PRODUCT property of the parent
of the added device. This tag is set correctly for both USB and
Bluetooth input devices. The following devices have been tested by
specifying individual InputClass sections in xorg.conf:
* Apple Keyboard (Bluetooth)
* Apple Magic Trackpad (Bluetooth)
* Apple Magic Mouse (Bluetooth)
* Microsoft Bluetooth Notebook Mouse 5000 (Bluetooth)
* Microsoft IntelliMouse Optical (USB)
* N-Trig Touchscreen (USB)
* Wacom Bamboo Touch (USB)
Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
max_keys_per_mod equal to zero is a valid situation so generate_modkeymap
should not return BadAlloc in this case.
Signed-off-by: Adam Tkac <atkac@redhat.com>
Reviewed-by: Patrick E. Kane <pekane52 at gmail.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Document that terminate is not mapped to Ctrl+Alt+Backspace by default, to help alleviate some confusion.
Signed-off-by: Jesse Adkins <jesserayadkins@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Xorg.log shows error: Valuators reported for non-valuator device.
This is caused by uninitialized valuators.mask in _XkbFilterRedirectKey(),
which trigger the error in UpdateDeviceState().
Signed-off-by: David Ge <davidqge@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Acked-by: Daniel Stone <daniel@fooishbar.org>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
../../../../hw/xfree86/common/xf86Xinput.c: In function ‘xf86AllocateInput’:
../../../../hw/xfree86/common/xf86Xinput.c:722: warning: implicit
declaration of function ‘DuplicateModule’
../../../../hw/xfree86/common/xf86Xinput.c:722: warning: nested extern
declaration of ‘DuplicateModule’
../../../../hw/xfree86/common/xf86Xinput.c:722: warning: assignment makes
pointer from integer without a cast
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Reviewed-by: Daniel Stone <daniel@fooishbar.org>
sli is null before allocation assigment so deference t osli has to be
protected.
Signed-off-by: Pauli Nieminen <ext-pauli.nieminen@nokia.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
If search for device failed sli is NULL. In that case we have to protect
dereference to prevent server crash.
Signed-off-by: Pauli Nieminen <ext-pauli.nieminen@nokia.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
map is allocated but not freed if reply length and data don't match.
Signed-off-by: Pauli Nieminen <ext-pauli.nieminen@nokia.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
calloc already initializes allocated memory to zero.
Signed-off-by: Pauli Nieminen <ext-pauli.nieminen@nokia.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
xkb->names is dereferenced in else path too.
Signed-off-by: Pauli Nieminen <ext-pauli.nieminen@nokia.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>