aboutsummaryrefslogtreecommitdiff
path: root/nx-X11/programs
Commit message (Collapse)AuthorAgeFilesLines
* library-cleanup: Don't build libNX_Xrender anymore. Use system's libXrender ↵Mike Gabriel2016-04-204-6/+643
| | | | shared library.
* Fix c4a3889. Add forgotten file nx-X11/programs/Xserver/Xinerama_nxagent.h.Mike Gabriel2016-01-011-0/+74
|
* Complete changes from commit 0d56c45 in NXpicturestr.h (i.e. add a missing ↵Mike DePaulo2015-12-301-0/+6
| | | | | | | comment). (Fixes ArcticaProject/nx-libs#38). commit 0d56c45 was: nx-X11: handle source pictures (those without a Drawable surface) gracefully.
* Xinerama: do not cut off at outer edgesUlrich Sibiller2015-12-302-3/+77
| | | | | | | | | | | | | | | | | | | | | This fixes the problem Mike Gabriel describes like this: - Launch a session on a system with a single monitor. Enable Xinerama for this session. - Open a desktop session in that session window (e.g. MATE or XFCE). - Move the NX/MATE-or-XFCE session window around on that one monitor. Bump at the borders, so that the session window moves into the invisible parts around your monitor. What you see is that the MATE-or-XFCE window manager will become really busy with resizing the windows and panels in the NX session, because moving the window over the physical borders of the display will trigger resize events. This is non-intuitive, I think. Same with multi-monitors on the outside edges of the physical Xorg RandR setup.
* Xserver globals.h: Make PanoramiXExtensionDisabledHack globally available.Mike Gabriel2015-12-301-0/+1
|
* Xserver help: Document -disablexineramaextension cmdline option.Mike Gabriel2015-12-301-0/+1
|
* Provide support for re-enabling Xinerama on session resumptions.Mike Gabriel2015-12-303-3/+36
| | | | | | | | | | | | | | By design, when resuming a session, Xinerama can only be re-enabled by NX option parsing. Thus, this change introduces a "xinerama" NX option that can be loaded via an options file into NX agent when resuming a session. The new xinerame NX session option also allows switching on Xinerama at session startup via an option file. When implementing the new NX Xinerama support into clients (like TheQVD, X2Go Client, etc., this new xinerama NX option should be used for activating Xinerama in the NX / QVD / X2Go session.
* Initialize XRandR based Xinerama extension properly when session is started ↵Mike Gabriel2015-12-301-1/+1
| | | | with "-geometry fullscreen".
* Only declare nxagentRandRCrtcSet if RANDR_12_INTERFACE is defined.Mike Gabriel2015-12-301-0/+2
|
* Screen.c: Rename NX_USE_MODE_PREFIX to NXAGENT_RANDR_MODE_PREFIX, fix ↵Mike Gabriel2015-12-302-3/+4
| | | | unclosed comment.
* Screen.c: restructure xinerama code, much shorter nowUlrich Sibiller2015-12-301-64/+40
|
* Screen.c: Fix freeing of unsued modesUlrich Sibiller2015-12-301-9/+28
|
* Screen.c: improve comments and DEBUG outputUlrich Sibiller2015-12-301-24/+59
|
* rrmode.c: add debug outputUlrich Sibiller2015-12-301-2/+25
|
* Reimplement xinerama via randr in nxagent (not libNX_Xinerama). (Fixes ↵Ulrich Sibiller2015-12-305-71/+452
| | | | | | | | | ArcticaProject/nx-libs#23). No more xinerama faking, just use existing xrandr extension and initalize it properly. Xinerama then works automatically. Fixes ArcticaProject/nx-libs#23
* library clean-up: Don't build libNX_Xinerama anymore. Use system's ↵Mike Gabriel2015-12-302-1/+5
| | | | | | | | | | libXinerama shared library. (Fixes ArcticaProject/nx-libs#49). This commit goes along with a patch from Ulrich Sibiller who managed to move the Xinerama awareness for NX sessions into the Xserver code. This makes Xinerama support for NX in libNX_Xinerama.so obsolete. Fixes ArcticaProject/nx-libs#49
* library clean-up: Don't build libNX_Xtst anymore. Use system's libXtst ↵Mike Gabriel2015-12-294-6/+6
| | | | shared library. (Fixes ArcticaProject/nx-libs#32).
* X11/nx-X11 clear-up: More places where we need to explicitly distinguish ↵Mike Gabriel2015-12-2912-21/+21
| | | | between X11 and nx-X11 namespace regarding header include paths.
* pointer typedef in Xdefs.h: also catch Xdefs.h include in include/misc.h, ↵Mike Gabriel2015-12-282-6/+17
| | | | make undoing the FIXME more obvious.
* libray clean (Xfixes): Provide a fake libXfixes.h header from latest X.Org, ↵Mike Gabriel2015-12-284-3/+93
| | | | that includes headers from our Xlib version. This avoids FTBFS caused by type redefinitions and should really be a temporary measure.
* Xrandr_nxagent.h: When faking Xrandr.h, we better include our own Xfuncproto.h.Mike Gabriel2015-12-281-1/+1
|
* library clean-up: Don't build libNX_Xfixes anymore. Use system's libXfixes ↵Mike Gabriel2015-12-281-3/+3
| | | | shared library.
* library clean-up: Don't build libNX_Xcomposite anymore. Use system's ↵Mike Gabriel2015-12-281-3/+3
| | | | libXcomposite shared library.
* pointer typedef in Xdefs.h: Define pointer type for building against older ↵Mike Gabriel2015-12-281-2/+8
| | | | Xlib versions that still expect the pointer type to exist (e.g. Ubuntu <= 14.04, Debian <= 7.0).
* Clear header file namespace separation (<X11/...> vs. <nx-X11/...>).Mike Gabriel2015-12-28239-767/+1132
| | | | | | | | | | | | | | | | | | | | 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.
* On realloc failure, free font_path_string instead of leaking itMike Gabriel2015-12-281-4/+7
| | | | | | | | | | | Flagged by cppcheck 1.62: [dix/dixfonts.c:1792]: (error) Common realloc mistake: 'font_path_string' nulled but not freed upon failure Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> Signed-off-by: Keith Packard <keithp@keithp.com> Rebased against NX: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
* Replace 'pointer' type with 'void *'Keith Packard2015-12-28200-1367/+1378
| | | | | | | | | | 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.
* Correct manpages: --help -> -helpMike DePaulo2015-09-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.
* nx-X11/config/cf: Drop unnecessary xf86site.def, xf86.tmpl, xfree86.cf.Mike Gabriel2015-09-286-18/+9
|
* imake clean-up: Enforce build of Mesa GLX extension. Drop all other GLX ↵Mike Gabriel2015-09-2812-45/+1
| | | | build methods (built-in DRI drivers, etc.).
* Drop unused / untested Xserver GLX extension support / build logic.Mike Gabriel2015-09-2813-208/+5
| | | | | | | * MS Windows (non-tested) * Mac OS X (not provided) * SGISI / opengl (not provided) * DRI support (nxagent uses Mesa software emulation only)
* Drop nx-X11/lib/GL and move Imakefile.inc include files into Xserver code tree.Mike Gabriel2015-09-2834-244/+1505
| | | | | | | | | | | | The client-side library libNX_GL.{a,so} is not built when building nx-libs. However, nx-X11/lib/GL/** ships several imake include files (Imakefile.inc) that are also used in nx-X11/programs/Xserver/GL/**. These files have been moved from the nx-X11/lib/GL/ code subtree to the nx-X11/programs/Xserver/GL/. Furthermore, we don't provide module builds of the GL extension anymore, as that feature is neither used in nx-libs.
* use xfree instead of free for xalloced dataUlrich Sibiller2015-09-262-3/+3
| | | | | This was brought in by a backport since in later versions xalloc/xfree have been replaced by malloc/free.
* Backport: xserver: Avoid sending uninitialized padding data over the networkPeter Åstrand2015-07-0232-5/+131
| | | | Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Backport: Make RANDR 'set' timestamps follow client specified time. Bug 21987.Keith Packard2015-06-072-13/+2
| | | | | | | | The lastSetTime value which indicates when the configuration within the server was last changed was not getting set in the appropriate RandR requests. Signed-off-by: Keith Packard <keithp@keithp.com>
* Backport: randr: Clean up compiler warnings about unused and shadowing variablesKeith Packard2015-06-073-21/+5
| | | | | | | | | | | | set but not used variables shadowing a previous local A hidden problem was that the VERIFY_RR_* macros define local 'rc' variables, any other local definitions for those would be shadowed and generate warnings from gcc. I've renamed the other locals 'ret' instead of 'rc'. Signed-off-by: Keith Packard <keithp@keithp.com>
* Backport: randr: Fix REQUEST vs. REQUEST_SIZE_MATCH mismatchAaron Plattner2015-06-071-1/+1
| | | | | | | | | | | ProcRRGetScreenSizeRange uses REQUEST(xRRGetScreenSizeRangeReq) followed by REQUEST_SIZE_MATCH(xRRGetScreenInfoReq). This happens to work out because both requests have the same size, so this is not a functional change, just a cosmetic one. Signed-off-by: Aaron Plattner <aplattner@nvidia.com> Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com> Signed-off-by: Keith Packard <keithp@keithp.com>
* Backport: ProcRRGetScreenInfo: swap configTimestamp as wellAlan Coopersmith2015-06-071-0/+1
| | | | | | Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> Reviewed-by: Keith Packard <keithp@keithp.com> Tested-by: Daniel Stone <daniel@fooishbar.org>
* Backport: RRModeCreate: plug memory leak of newModes if AddResource failsAlan Coopersmith2015-06-071-2/+4
| | | | | | | | | | | | | | | | Reported by parfait 1.0: Error: Memory leak (CWE 401) Memory leak of pointer 'newModes' allocated with realloc(((char*)modes), ((num_modes + 1) * 8)) at line 93 of randr/rrmode.c in function 'RRModeCreate'. pointer allocated at line 82 with realloc(((char*)modes), ((num_modes + 1) * 8)). Error: Memory leak (CWE 401) Memory leak of pointer 'newModes' allocated with malloc(8) at line 93 of randr/rrmode.c in function 'RRModeCreate'. pointer allocated at line 84 with malloc(8). Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> Reviewed-by: Keith Packard <keithp@keithp.com>
* Backport: randr: fix server crash in RRGetScreenInfoJulien Cristau2015-06-071-2/+3
| | | | | | | | | | | We don't return rates to randr < 1.1 clients, so don't allocate space for them. This fixes a FatalError due to not all allocated space being used. X.Org bug#21861 <http://bugs.freedesktop.org/show_bug.cgi?id=21861> Reported-by: Guillaume Quintin <coincoin169g@gmail.com> Signed-off-by: Julien Cristau <jcristau@debian.org>
* Backport: randr: check for virtual size limits before set crtcTiago Vignatti2015-06-071-0/+12
| | | | | | | | | Return a error if the screen is configured to an invalid size. Signed-off-by: Tiago Vignatti <tiago.vignatti@nokia.com> Reviewed-by: Adam Jackson <ajax@redhat.com> Reviewed-by: Daniel Stone <daniel@fooishbar.org> Signed-off-by: Keith Packard <keithp@keithp.com>
* Backport: Free randr crtc and output pointer arraysKeith Packard2015-06-071-0/+2
| | | | | | | | All of the crts and outputs were freed, but not the arrays full of pointers to them. Signed-off-by: Keith Packard <keithp@keithp.com> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
* Backport: Drop a reference to user mode after createKeith Packard2015-06-071-1/+2
| | | | | User mode has no customer when create until assigned to some output.
* Backport: Bug 51375: Xorg doesn't set status for RRGetOutputInfoJaroslav Šmíd2015-06-071-0/+1
| | | | | | | | | https://bugs.freedesktop.org/show_bug.cgi?id=51375 https://bugs.freedesktop.org/attachment.cgi?id=63397 Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> Reviewed-by: Keith Packard <keithp@keithp.com> Tested-by: Daniel Stone <daniel@fooishbar.org>
* 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)