aboutsummaryrefslogtreecommitdiff
path: root/nx-X11
Commit message (Collapse)AuthorAgeFilesLines
* dixfonts.c: use calloc for LFclosurePtrMike Gabriel2018-07-031-1/+1
| | | | ... to keep dix/dixfonts and hw/nxagnet/NXdixfonts.c in sync.
* dix/dixfonts.c: free() can handle NULLMike Gabriel2018-07-031-8/+6
| | | | so let's remove some superflous tests
* NXdixfonts.c: free() can handle NULLUlrich Sibiller2018-07-031-13/+10
| | | | so let's remove some superflous tests
* NXdixfonts.c: use calloc for LFclosurePtrUlrich Sibiller2018-07-031-1/+1
| | | | Just to be sure. It is used at lots of locations afterwards.
* xkb/xkb.c: init all reply structsUlrich Sibiller2018-07-031-26/+19
| | | | | | and do it identically everywhere. As we are using C99 designated initializers here we remove the memset and bzero calls that had been used for this at some locations.
* os/io.c: fix unitialised bytesUlrich Sibiller2018-07-031-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ... by implementing some kind of recalloc (mix of realloc and calloc). Fixes this valgrind finding: ==7061== Syscall param writev(vector[...]) points to uninitialised byte(s) ==7061== at 0x781EFE0: __writev_nocancel (syscall-template.S:84) ==7061== by 0x488974: _XSERVTransSocketWritev (Xtranssock.c:2914) ==7061== by 0x47DBD3: FlushClient (io.c:1080) ==7061== by 0x47DBD3: FlushAllOutput.part.0 (io.c:817) ==7061== by 0x477304: WaitForSomething (WaitFor.c:246) ==7061== by 0x434369: Dispatch (NXdispatch.c:360) ==7061== by 0x40EB92: main (main.c:353) ==7061== Address 0x102106f3 is 50,211 bytes inside a block of size 54,308 alloc'd ==7061== at 0x4C2FD5F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==7061== by 0x47F08F: FlushClient (io.c:1123) ==7061== by 0x47F307: WriteToClient (io.c:991) ==7061== by 0x42903C: doListFontsAndAliases (NXdixfonts.c:660) ==7061== by 0x42B7D6: ListFonts (NXdixfonts.c:735) ==7061== by 0x433A6D: ProcListFonts (NXdispatch.c:989) ==7061== by 0x4344A5: Dispatch (NXdispatch.c:482) ==7061== by 0x40EB92: main (main.c:353) ==7061== Uninitialised value was created by a heap allocation ==7061== at 0x4C2FD5F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==7061== by 0x47F08F: FlushClient (io.c:1123) ==7061== by 0x47F307: WriteToClient (io.c:991) ==7061== by 0x42903C: doListFontsAndAliases (NXdixfonts.c:660) ==7061== by 0x42B7D6: ListFonts (NXdixfonts.c:735) ==7061== by 0x433A6D: ProcListFonts (NXdispatch.c:989) ==7061== by 0x4344A5: Dispatch (NXdispatch.c:482) ==7061== by 0x40EB92: main (main.c:353) ==7061==
* ProcGetPointerMapping uses rep.nElts before it is initializedUlrich Sibiller2018-07-031-3/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Backport of this xorg upstream commit (with omitting the mentioned d792ac125a0462a04a930af543cbc732f8cdab7d). commit 34cf559bcf99dad550527b5ff53f247f0e8e73ee Author: Keith Packard <keithp@keithp.com> Date: Tue Jul 10 15:58:48 2012 -0700 ProcGetPointerMapping uses rep.nElts before it is initialized In: commit d792ac125a0462a04a930af543cbc732f8cdab7d Author: Alan Coopersmith <alan.coopersmith@oracle.com> Date: Mon Jul 9 19:12:43 2012 -0700 Use C99 designated initializers in dix Replies the initializer for the .length element of the xGetPointerMappingReply structure uses the value of rep.nElts, but that won't be set until after this initializer runs, so we get garbage in the length element and clients using it will generally wedge. Easy to verify: $ xmodmap -pp Fixed by creating a local nElts variable and using that. Signed-off-by: Keith Packard <keithp@keithp.com> Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com> Backported-to-NX-by: Ulrich Sibiller <uli42@gmx.de>
* Fix some valgrind findingsUlrich Sibiller2018-07-032-15/+11
| | | | | | Some of them have not been seen in the wild yet. Partly fixes ArcticaProject/nx-libs#711
* Some small Keyboard.c improvementsUlrich Sibiller2018-07-031-4/+4
| | | | as in xorg-xserver upstream's hw/xnest/Keyboard.c
* Don't reset the lastDeviceEventTime when doing DPMS actionsMike Gabriel2018-07-031-13/+4
| | | | | | | | | | | | | | | | | | | | Backported from X.org's Xserver: commit c1d901d723c3bee523736eacc15b44a7dff484fe Author: Richard Hughes <richard@hughsie.com> Date: Fri Aug 14 11:44:35 2009 +0100 Don't reset the lastDeviceEventTime when doing DPMS actions When we change the DPMS mode, don't play games with the last event time as this breaks applications using IDLETIME to turn the backlight off after a preset time. This patch fixes gnome-power-manager and xfce-power-manager Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Backport-to-NX-by: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
* Do not reset lastDeviceEventTime when we do dixSaveScreensRichard Hughes2018-07-031-2/+0
| | | | | | | | | | | | | | | | | Backported from X.org's Xserver: commit 6b5978dcf1f7ac3ecc2f22df06f7000f360e2066 Author: Richard Hughes <richard@hughsie.com> Date: Mon Aug 17 09:15:32 2009 +0100 Do not reset lastDeviceEventTime when we do dixSaveScreens When we turn off DPMS with DPMSModeOff and do dixSaveScreens, don't reset the event time else session clients using IDLETIME will be reset. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Backported-to-NX-by: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
* Backport IDLETIME system counter to nx-X11 Xserver.Mike Gabriel2018-07-031-0/+159
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This resolves issues with non-starting mate-screensaver which relies on the IDLETIME API these days. This commit backports the following X.org Xserver commits: commit a2e67a6412386782cb8b644b86a5744591397d45 Author: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com> Date: Mon Dec 6 11:24:01 2010 +1100 IDLETIME: Fix edge-case in IdleTimeBlockHandler Ensure that if we're called exactly on the threshold of a NegativeTransition trigger that we reshedule to pick up an idle time over the threshold. Signed-off-by: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com> Reviewed-by: Adam Jackson <ajax@redhat.com> Signed-off-by: Keith Packard <keithp@keithp.com> commit 1f4fb0225b278d1cf4145aebeb0bdd23dc8f62d5 Author: Adam Jackson <ajax@redhat.com> Date: Wed Dec 10 16:13:20 2008 -0500 xsync: Fix wakeup storm in idletime counter. Wakeup scheduling only considered the threshold values, and not whether the trigger was edge or level. See also: https://bugzilla.redhat.com/show_bug.cgi?id=474586 http://svn.gnome.org/viewvc/gnome-screensaver/trunk/src/test-idle-ext.c?view=markup commit 0f9e89b4e309e570d7d366489d250ca2143f0ad7 Author: Fredrik Höglund <fredrik@kde.org> Date: Tue Aug 14 22:47:49 2007 +0200 Fix the value comparisons in the IDLETIME wakeup handler. LessThan/GreaterThan comparisons were used in the wakeup handler, and LessOrEqual/GreaterOrEqual in the block handler. Change it to use LessOrEqual/GreaterOrEqual in both functions, since this is what XSyncNegativeComparison and XSyncPositiveComparison imply. commit 7e2c935920cafadbd87c351f1a3239932864fb90 Author: Fredrik Höglund <fredrik@kde.org> Date: Fri May 18 20:06:14 2007 +0200 Add a new IDLETIME system sync counter. This counter exposes the time in milliseconds since the last input event. Clients such as screen savers and power managers can set an alarm on this counter to find out when the idle time reaches a certain value, without having to poll the server. Backport-to-NX-by: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
* nx-X11/Makefile: pass down $(MFLAGS) to imake call, because... we probably ↵Mihai Moldovan2018-06-171-1/+1
| | | | want that. Likely.
* Clipboard.c: add missing includeUlrich Sibiller2018-06-051-0/+1
| | | | Fixes ArcticaProject/nx-libs#701
* Update Xinerama on XMapEventUlrich Sibiller2018-05-241-0/+12
| | | | Fixes ArcticaProject/nx-libs#694
* whitespace fixesUlrich Sibiller2018-05-243-4/+4
|
* Screen.c: simplify setting of window name/classUlrich Sibiller2018-05-241-16/+11
|
* Events.c: catch intermediate window position changesUlrich Sibiller2018-05-241-5/+35
| | | | | | | | | | | | | nxagentHandleConfigureNotify() has an optimization that accumulates ConfigureNotify events from the queue to only perform the changes of the last ConfigureNotify event in the queue. But that code used to ignore position changes and only adapt the new window position if the last event happened to contain a position change. This change ensures the latest position change - if any - found in the queue will be applied after the accumulation. Fixes: ArticaProject/nx-libs#688 (second part)
* nxagent: remove mmwidth/mmheight from nxagentChangeScreenConfigUlrich Sibiller2018-05-245-12/+11
| | | | Was 0,0 on every call...
* Screen.c/Events.c: fix some commentsUlrich Sibiller2018-05-243-5/+3
|
* nxagent: use XAllocSizeHints() instead of XSizeHints structUlrich Sibiller2018-05-243-97/+130
| | | | | | This is the preferred way. It ensures, that a) the data is zeroed b) a correct size in case xlib is changing the size of the structure in future releases
* Screen.c/Events.c: add some FIXMEsUlrich Sibiller2018-05-242-0/+4
|
* Screen.c: replace XSetWMNormalHints code block by already existing functionUlrich Sibiller2018-05-243-38/+7
| | | | nxagentSetWMNormalHints was slightly adapted therefore
* config/cf: fix spelling errors as reported by codespellUlrich Sibiller2018-05-247-8/+8
|
* compext: fix spelling errors as reported by codespellUlrich Sibiller2018-05-244-6/+6
|
* manpage: fix spelling error as reported by codespellUlrich Sibiller2018-05-241-1/+1
|
* hw/nxagent: fix spelling errors as reported by codespellUlrich Sibiller2018-05-2421-51/+50
|
* Makefile targets: Rewriting and consolidating the target structure for ↵Mike Gabriel2018-04-251-67/+66
| | | | nx-X11/ subdir (except nx-X11/lib/).
* release 3.5.99.163.5.99.16Mike Gabriel2018-03-161-1/+1
|
* nx-X11/config/cf/README: document new UseTIRPC macro.Mihai Moldovan2018-03-151-0/+1
|
* nx-X11/programs/Xserver/{,os/}Imakefile: implement libtirpc forcing via ↵Mihai Moldovan2018-03-152-1/+17
| | | | UseTIRPC.
* nx-X11/config/cf/Imake.tmpl: implement new UseTIRPC macro, defaulting to NO.Mihai Moldovan2018-03-151-0/+3
|
* nx-X11/programs/Xserver/Imakefile: move $(PIXMANLIB) to NXAGENTSYSLIBS, ↵Mihai Moldovan2018-03-151-2/+2
| | | | since libXcompext doesn't actually need it.
* nx-X11/programs/Xserver/Imakefile: use printf with no trailing newline ↵Mihai Moldovan2018-03-151-1/+1
| | | | instead of echo for variable value.
* nx-X11/programs/Xserver/Imakefile: drop system libraries out of target list ↵Mihai Moldovan2018-03-151-3/+3
| | | | | | | | | | for nxagent regeneration. Updating timestamps on object files and libraries used to compose nxagent is only meaningful for actual files within the buildroot. External dependencies would be ignored anyway, and worse, cause older GNU Make versions to fail if they contain special characters like a percent sign, which is typically interpreted as a wild card character.
* nx-X11/programs/Xserver/hw/nxagent/Screen.c: do not try to set a NULL mode ↵Mihai Moldovan2018-03-151-5/+5
| | | | | | if the output was disconnected before. Fixes: ArcticaProject/nx-libs#677
* nx-X11/programs/Xserver/hw/nxagent/Screen.c: initialize pointers to NULL to ↵Mihai Moldovan2018-03-151-1/+1
| | | | avoid referencing random data.
* release 3.5.99.153.5.99.15Mike Gabriel2018-03-071-1/+1
|
* Xserver/Xext/saver.c Unvalidated lengths (X.org CVE-2017-12185).Nathan Kidd2018-03-071-0/+2
| | | | | | | | | | | | | | | | | | | | | | | commit cad5a1050b7184d828aef9c1dd151c3ab649d37e Author: Nathan Kidd <nkidd@opentext.com> Date: Fri Jan 9 09:57:23 2015 -0500 Unvalidated lengths v2: Add overflow check and remove unnecessary check (Julien Cristau) This addresses: CVE-2017-12184 in XINERAMA CVE-2017-12185 in MIT-SCREEN-SAVER CVE-2017-12186 in X-Resource CVE-2017-12187 in RENDER Reviewed-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> Reviewed-by: Julien Cristau <jcristau@debian.org> Signed-off-by: Nathan Kidd <nkidd@opentext.com> Signed-off-by: Julien Cristau <jcristau@debian.org> Backported-to-NX-by: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
* Xserver/hw/nxagent/Screen.c: Drop commented out code. Functionality now ↵Mike Gabriel2018-03-071-16/+0
| | | | implemented in intersect_bb() function.
* hw/nxagent/Screen.c: Cover Xinerama bounding box corner cases.Mike Gabriel2018-03-071-16/+81
| | | | | | | | | | | | | | | | | If the agent window is moved around on screen, it can happen that it is moved into an invisible area of the real Xserver, we calls this "beyond the bounding box". . If the agent window is partially beyond the bounding box, we don't want Xinerama to re-adjust the RandR parameters inside the agent. Near the bounding box, the session shall stay intact. . This means, desktop env wise, the desktop session control elements can be moved (with the agent window) into the invisible areas of the real Xserver and moved out again without RandR events arriving inside the agent session. Fixes ArcticaProject/nx-libs#662.
* nx-X11/programs/Xserver/hw/nxagent/Init.c: disable DPMS support within nxagent.Mihai Moldovan2018-03-071-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Keeping it enabled leads to nxagent consuming 100% of CPU resources after some time. Older code used three different timers for each DPMS mode (standby, suspend, off), with each timer checking that the elapsed idle time is strictly less than the DPMS mode timeout value. Newer code started merging DPMS and ScreenSaver timers into a single one, with checking DPMS modes and timeouts in a fall-through fashion. The code expects that, if a timeout is reached, the mode is set accordingly, so that the old timeout is disregarded next time. Since we stub out DPMSSetMode() in nxagent, this doesn't happen. In this case, the old DPMS timeout will be checked the next time around and we will be calculating DPMS_MODE_TIMEOUT - IDLE_TIME. If IDLE_TIME is bigger than DPMS_MODE_TIMEOUT, we run into problems with unsigned integers. What happens next will be *another* overflow once DoTimers() is executed and from that function SetTimers(), which will add the current timestamp to the timeout value. Later functions subtract the current timestamp again (which will be even higher since some time elapsed) and underflow the value again. It looks like this leads to consistent firing of the timer - something we do not want to have. For new, disable DPMS support in nxagent. We do not execute it on actual hardware that could change DPMS modes. At a later time, implementing a DPMS timeout/mode passthrough to the connected X server/display might be beneficial. Fixes: ArcticaProject/nx-libs#671
* hw/nxagent/Screen.c: Settle down with 96 DPI as the default resolution, if ↵Simon Matter2018-03-011-1/+1
| | | | | | nothing better can be detected. Fixes ArcticaProject/nx-libs#668.
* release 3.5.99.143.5.99.14Mike Gabriel2018-02-281-1/+1
|
* os: hide ttyxx optionUlrich Sibiller2018-02-282-3/+6
| | | | is used nowhere anyway
* nxagent: rearrange nx options in usageUlrich Sibiller2018-02-281-4/+4
| | | | | make them appear in the nx section. Also separate the nx section from the other options by an extra emtpy line.
* Lift xkb to xorg-xserver-7.1/1.1.0 state - non-functional changes onlyUlrich Sibiller2018-02-289-15/+1
|
* Lift xkb to xorg-xserver-7.1/1.1.0 stateUlrich Sibiller2018-02-2819-3199/+159
| | | | | | | In XORG-7_1 xkbconfig.c had been dropped. We must keep this file because it is used by hw/nxagent/Keyboard.c to load the xkb configuration file. Maybe we should move the relevant code to there or drop xkb configuration file support from nxagent.
* nxagent: Also provide auto DPI feature via nx/nx option 'autodpi', taking ↵Mike Gabriel2018-02-272-0/+24
| | | | only effect on session startups.
* nxagent: Auto-detect client-side DPI at session startup.Simon Matter2018-02-274-6/+64
|