aboutsummaryrefslogtreecommitdiff
path: root/nx-X11/programs/Xserver/hw
Commit message (Collapse)AuthorAgeFilesLines
* Clear header file namespace separation (<X11/...> vs. <nx-X11/...>).Mike Gabriel2015-12-2829-70/+435
| | | | | | | | | | | | | | | | | | | | In the process of building nxagent against more and more system-wide installed X.org libraries, we come to the limit of including structs from this (bundled nx-X11) and that (system-wide X.Org) library. This commit introduces a clear namespace separation of headers provided by nx-X11 and headers provided by X.Org. This approach is only temporary as we want to drop all nx-X11 bundled libraries from nx-libs. However, for a while we need to make this separation clear and also ship some reduced fake X.Org headers that avoid pulling in libX* and libNX_X* symbols at the same time. This patch has been tested on Debian jessie and unstable and requires no overall testing on various distros and distro versions, as we finally will drop all libNX_X* libraries and build against X.org's client libs. For now, this hack eases our development / cleanup process.
* Replace 'pointer' type with 'void *'Keith Packard2015-12-2843-305/+305
| | | | | | | | | | This lets us stop using the 'pointer' typedef in Xdefs.h as 'pointer' is used throughout the X server for other things, and having duplicate names generates compiler warnings. Signed-off-by: Keith Packard <keithp@keithp.com> Reviewed-by: Eric Anholt <eric@anholt.net> Rebased against NX: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
* Re-add -sync option back to nxagent to allow synchronous debugging of the ↵Mike Gabriel2015-10-063-0/+12
| | | | nxagent DDX.
* Merge branch 'uli42-pr/backported_fixes' into arctica-3.6.xMihai Moldovan2015-07-0310-2/+50
|\ | | | | | | Attributes GH PR #50: https://github.com/ArcticaProject/nx-libs/pull/50
| * Backport: xserver: Avoid sending uninitialized padding data over the networkPeter Åstrand2015-07-0210-2/+50
| | | | | | | | Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* | Correct manpages: --help -> -helpMike DePaulo2015-06-282-2/+2
|/ | | | | | | | | | | | | | | xorg-server does not follow the convention of using 2 dashes. Note that --help does produce the help output. However, it produces this additional output after it: Error: Aborting session with 'Unrecognized option: --help'. Session: Aborting session at 'Sun Jun 28 01:35:35 2015'. Session: Session aborted at 'Sun Jun 28 01:35:35 2015'. It also causes a return code of 1 rather than 0. Therefore, we should instruct users to call -help instead.
* Merge pull request #46 from ArcticaProject/pr/Xext-cve-fixesMike Gabriel2015-05-311-0/+20
|\ | | | | Xext CVE fixes in XVideo extension.
| * Xv: unvalidated lengths in XVideo extension swapped procs [CVE-2014-8099]pr/Xext-cve-fixesAlan Coopersmith2015-05-301-0/+20
| | | | | | | | | | | | | | | | | | | | | | v2: backport to nx-libs 3.6.x (Mike DePaulo) v3: port to NXxvdisp.c rather than xvdisp.c (Mike DePaulo) Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> Conflicts: Xext/xvdisp.c
* | dix: Allow zero-height PutImage requests (fix for X.Org's CVE-2015-3418).pr/dix-cve-fixesKeith Packard2015-05-301-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The length checking code validates PutImage height and byte width by making sure that byte-width >= INT32_MAX / height. If height is zero, this generates a divide by zero exception. Allow zero height requests explicitly, bypassing the INT32_MAX check. Fix for regression introduced by fix for CVE-2014-8092. v2: backports to nx-libs 3.6.x (Mike Gabriel) v3: port to NXdispatch.c rather than dispatch.c (Mike DePaulo) Signed-off-by: Keith Packard <keithp@keithp.com>
* | dix: integer overflow in ProcPutImage() [CVE-2014-8092 1/4]Alan Coopersmith2015-05-301-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ProcPutImage() calculates a length field from a width, left pad and depth specified by the client (if the specified format is XYPixmap). The calculations for the total amount of memory the server needs for the pixmap can overflow a 32-bit number, causing out-of-bounds memory writes on 32-bit systems (since the length is stored in a long int variable). v2: backport to nx-libs 3.6.x (Mike DePaulo) v3: port to NXdispatch.c rather than dispatch.c (Mike DePaulo) Reported-by: Ilja Van Sprundel <ivansprundel@ioactive.com> Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> Conflicts: dix/dispatch.c
* | Avoid use-after-free in dix/dixfonts.c: doImageText() [CVE-2013-4396] from ↵Mike DePaulo2015-05-301-0/+5
|/ | | | | | | | | | | | | | | | | | | | | | | xorg/Xserver http://lists.x.org/archives/xorg-announce/2013-October/002332.html Save a pointer to the passed in closure structure before copying it and overwriting the *c pointer to point to our copy instead of the original. If we hit an error, once we free(c), reset c to point to the original structure before jumping to the cleanup code that references *c. Since one of the errors being checked for is whether the server was able to malloc(c->nChars * itemSize), the client can potentially pass a number of characters chosen to cause the malloc to fail and the error path to be taken, resulting in the read from freed memory. Since the memory is accessed almost immediately afterwards, and the X server is mostly single threaded, the odds of the free memory having invalid contents are low with most malloc implementations when not using memory debugging features, but some allocators will definitely overwrite the memory there, leading to a likely crash. v2: Apply to NXdixfonts.c rather than dixfonts.c (Mike DePaulo)
* Merge pull request #36 from ArcticaProject/pr/render-cve-fixesMike Gabriel2015-05-261-2/+18
|\ | | | | XRender CVE fixes for nxagent (X.Org CVE-2014-8100)
| * render: unvalidated lengths in Render extn. swapped procs [CVE-2014-8100 2/2]pr/render-cve-fixesAlan Coopersmith2015-05-241-1/+16
| | | | | | | | | | | | | | | | | | | | | | v2: backport to nx-libs 3.6.x (Mike DePaulo) v3: port to NXrender.c rather than render.c (Mike DePaulo) Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> Conflicts: render/render.c
| * render: check request size before reading it [CVE-2014-8100 1/2]Julien Cristau2015-05-241-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Otherwise we may be reading outside of the client request. v2: backport to nx-libs 3.6.x (Mike DePaulo) v3: port to NXrender.c rather than render.c (Mike DePaulo) Signed-off-by: Julien Cristau <jcristau@debian.org> Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com> Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> Conflicts: render/render.c
* | hw/nxagent clean-up: Drop NXrandr.{c|h} client lib copy-of-code from nxagent ↵Mike Gabriel2015-05-204-1033/+3
| | | | | | | | hardware driver.
* | library clean-up: Don't build libNX_Xrandr anymore. Use system's libXrandr ↵Mike Gabriel2015-05-202-2/+2
|/ | | | shared library.
* library clean-up: Don't build and link libXfont.a anymore. Use system's ↵pr/libxfont-cleanupMike Gabriel2015-04-226-28/+13
| | | | libXfont shared library and link dynamically.
* NXAGENT_UPGRADE code cleanup:Mike Gabriel2015-04-1651-38857/+6098
| | | | | | | | | | | NX agent contains/ed two build trees. An old one (probably pre-3.x.y) and a "newer" one. The "newer" code tree used to become enabled by setting NXUpgradeAgentServer in nx-X11/config/cf/host.def to YES. As building the NXUpgradeAgentServer has been the default for years now, we drop all code that does not get used at build time for NXUpgradeAgentServer == YES (i.e., the code that belongs to the pre-3.x.y phase of NX agent).
* imake cleanup: Drop all references to XprtServer and BuildXprint*.Mike Gabriel2015-04-041-0/+3
|
* imake cleanup: Drop all references to XdmxServer and BuildXdmx*.Mike Gabriel2015-04-041-18/+0
|
* imake cleanup: Drop all references to XVirtualFramebufferServer.Mike Gabriel2015-04-041-5/+1
|
* imake cleanup: Drop all references to XNestServer.Mike Gabriel2015-04-041-5/+1
|
* nx-X11: add more NULL guards to TEST and DEBUG sections of Render.c.Mihai Moldovan2015-03-291-65/+90
| | | | Cherry-picked from branch 3.5.0.x.
* library clean-up: Don't build libNX_Xpm anymore. Use system's libXpm shared ↵Mike Gabriel2015-03-031-1/+1
| | | | library.
* Make nxagent process aware of its current NX'ish version.Mike Gabriel2015-02-172-3/+9
| | | | | | | | | | | This feature copies the way how X.Org version string and number are propagated at build time. First use case: if people start nxagent, it reports its version number on stderr. This is about being human-friendly. Second use case: None, so far. But it will now be easy to use the NXAGENT_VERSION_STRING in later feature add-ons.
* nx-X11/programs/Xserver/hw/nxagent/: Drop unused VERSION file.Mike Gabriel2015-02-161-1/+0
|
* VERSION file: master VERSION file is in base folder, symlinked from ↵Mike Gabriel2015-02-141-0/+1
| | | | | | | | | | | | | | | | | | nx*/VERSION and hw/nxagent/VERSION. This commit removes the debian/VERSION file at makes it now unnecessary to copy/symlink the VERSION file at build time. These build scripts got adapted: debian/roll-tarballs.sh debian/rules nx-libs.spec Furthermore, all NX component now use the main VERSION file as reference. typechange: nxcomp/VERSION typechange: nxcompext/VERSION typechange: nxcompshad/VERSION typechange: nxproxy/VERSION
* Unbrand NX Agent Startup Screen / Brand X2Go Agent Startup Screen ↵Oleksandr Shneyder2015-02-134-76/+145
| | | | | | | | | | (999_nxagent_unbrand-nxagent-brand-x2goagent.full.patch). When launched with NX Agent flavour, the startup screen gets unbranded by this patch (the !M logo does not get shown). When launched with X2Go Agent flavour, the startup screen gets branded with the X2GO logo.
* Several fixes for building debug versions of NX ↵Mihai Moldovan2015-02-133-6/+7
| | | | | | | | | | | | | | | | | | (990_fix-DEBUG-and-TEST-builds.full.patch). (1) In nx-X11/programs/Xserver/dix: Fix several compile errors when specifying -DDEBUG globally. Previous GCC versions were more liberal and the code thus compiled. Also initialize/reset a count variable correctly. (2) In nx-X11/programs/Xserver/hw/nxagent/Render.c: Check for pSrc->pDrawable to exist instead of having nxagent segfault when it does not. This enables the possibility of compiling all nxagent modules in TEST mode.
* Adapt paths of keystrokes.cfg if nxagent runs as x2goagent ↵Horst Schirmeier2015-02-131-0/+6
| | | | (321_nxagent_x2go-specific-keystroke-config.full.patch).
* Make nxagent-specific keyboard bindings configurable ↵Alexander Wuerstlein2015-02-135-234/+540
| | | | | | | | | | | | | | (320_nxagent_configurable-keystrokes.full.patch). Replaces the hardcoded nxagent keybindings by a configurable table of keybindings. The default configuration is the same as the original one, to maintain compatibility. A user/administrator can either specify a command line parameter, environment variable or place a file in ~/.nx/config/keystrokes.cfg or /etc/nxagent/keystrokes.cfg to reconfigure these keybindings. The configuration file format is XML, a dependency on libxml2 is added to allow parsing the configuration.
* Set WM_CLASS to X2GoAgent/NXAgent (300_nxagent_set-wm-class.full.patch).Oleksandr Shneyder2015-02-101-0/+36
| | | | | | | | | | | | | | Depending on the binary name of the agent either NXAgent or X2GoAgent is set as WM_Class. This is needed for some window managers (like the one shipped with Maemo) The original WM_CLASS patch has been taken from the FreeNX patch series, author unknown. The nxagent/x2goagent has been done by the X2Go Project, author see below.
* Save session state in file.Oleksandr Shneyder2015-02-105-1/+51
| | | | | | | | | 210_nxagent_save_session_state.full.patch 210_nxcomp_save_session_state.full+lite.patch This patch adds a "state" option to NX (agent) which allows one to specify a file where nxagent will write its session state into.
* Add x2goagent man page (209_x2goagent_add-man-page.full.patch).Mike Gabriel2015-02-101-0/+35
|
* Fix XFIXES selection handling (copy and paste via middle mouse button) ↵Ulrich Sibiller2015-02-101-4/+8
| | | | | | | | | | | (207_nxagent_fix-xfixes-selection.full.patch). When nxagent has the XFIXES extension enabled copy and paste from outside applications to applications within the session that rely on XFixesSelectSelectionInput (e.g. qt applications like konsole) did never receive any notifications because the nxagent did not register itself at the real X server to receive them. Fixes X2Go Bug #585 (http://bugs.x2go.org/585).
* Add -clipboard cmdline option to nxagent ↵Mike Gabriel2015-02-101-2/+25
| | | | (206_nxagent_clipboard-as-nxoption.full.patch).
* Fix refresh errors on Win2012 RDP connections with speed=ADS ↵Oleksandr Shneyder2015-02-101-1/+1
| | | | (205_nxagent_refresh-adsl.full.patch).
* Fix repainting of SolidFill pictures with libcairo > 1.12.x ↵Oleksandr Shneyder2015-02-103-5/+16
| | | | (204_nxagent_repaint-solidpict.full.patch).
* Add -norootlessexit cmdline option to nxagent ↵Oleksandr Shneyder2015-02-104-1/+16
| | | | | | | | | | (203_nxagent_disable-rootless-exit.full.patch). This change enables to launch an nxagent in rootless mode that waits forever for Xclients to appear. This feature got added when X2Go introduced Published Applications support.
* Enable Xinerama support for NX (202_nx-X11_enable-xinerama.full.patch).Oleksandr Shneyder2015-02-102-13/+19
| | | | | | | | This patch adds Xinerama awareness to NX agent windows. The advantage of Xinerama awareness is that an NX session window will only maximize to the dimensions of the active physical display.
* X2Go icon when run with x2goagent flavour ↵Oleksandr Shneyder2015-02-103-3/+171
| | | | | | | (201_nxagent_set-x2go-icon-if-x2goagent-flavour.full.patch). Depending on the binary name of the agent either nxagent.xpm or x2go.xpm is used as window icon.
* Detect nxagent/x2goagent flavour ↵Oleksandr Shneyder2015-02-102-0/+30
| | | | | | | | | | (200_nxagent_check-binary-x2go-flavour.full.patch). Whether the agent runs in X2Go or NX mode is decide by the name of the binary that executes the code. Binary name equal to nxagent -> (Free)NX flavour Binary name equal to x2goagent -> X2Go flavour
* Avoid large pixmaps (110_nxagent_createpixmap-bounds-check.full.patch).Mike Gabriel2015-02-101-0/+17
| | | | | | | | | | | | | | | | | It is allowed to try and allocate a pixmap which is larger than 32767 in either dimension. However, all of the framebuffer code is buggy and does not reliably draw to such big pixmaps, basically because the Region data structure operates with signed shorts for the rectangles in it. Furthermore, several places in the X server computes the size in bytes of the pixmap and tries to store it in an integer. This integer can overflow and cause the allocated size to be much smaller. So, such big pixmaps are rejected here with a BadAlloc Originally contributed by FreeNX Team
* Wine Close Delay (108_nxagent_wine-close-delay.full.patch).Mike Gabriel2015-02-101-0/+30
| | | | | | Wine close delay. Originally contributed by FreeNX team (dimbor).
* Prevent sending COMPOUND_TEXT ↵Mike Gabriel2015-02-102-3/+11
| | | | | | | | (107_nxagent_clipboard-compound-text+small-bed-sheets.full.patch). Do not send COMPOUND_TEXT to client. Originally contributed by FreeNX Team (dimbor).
* UTF-8 Clipboard copying (106_nxagent_utf8-copy-clipboard.full.patch).Mike Gabriel2015-02-101-4/+12
| | | | | | Enable UTF-8 clipboard copies. Originally contributed by FreeNX Team (dimbor).
* Export remote keyboard configuration to session directory ↵Marcelo Boveto Shima2015-02-103-1/+48
| | | | | | | (105_nxagent_export-remote-keyboard-config.full.patch) Let nxagent write the keyboard configuration to <session_directory>/keyboard and make it available within the NX session.
* FHS path fix for keyboard config file ↵Mike Gabriel2015-02-101-6/+3
| | | | | | | | | (103_nxagent_set-X0-config-path.full.patch). This patch is needed for Tarball installation and on Distros like Debian, not reporting this path addition to upstream. Originally contributed by FreeNX Team.
* Create Windows and fix drawing issues on Big Endian 64bit systems ↵Mihai Moldovan2015-02-102-4/+16
| | | | | | | | | | | | | | | | | | | (057_nx-X11_sanitize-eventmasks.full.patch). Multiple endiannes issues were setting incorrect event masks when creating and drawing X11 windows. This time, a smaller integer has been casted to a bigger one and passed to some function actually setting its value. This meant, that garbage from stack was attached to the smaller integer value, putting unknown memory into the lower bytes of the bigger integer. Fix this by creating a big, initialized temporary variable, let the function do its magic on that one and pass the value back to the smaller variable--and cross your fingers the smaller variable can hold it without overrunning. (The last bit is a design issue we can't really fix and has been around even before this patch.)
* Fix -Werror=format-security errors ↵Orion Poplawski2015-02-092-2/+2
| | | | | | | | (056_nx-X11_Werror-format-security.full.patch). The below patch fixes more -Werror=format-security errors. Interestingly, most of the errors only showed up on our arm builds. No idea why.