This is an automated email from the git hooks/post-receive script. x2go pushed a change to branch 3.6.x in repository nx-libs. from 3352cfa nxcomp{,shad}/configure.ac: replace versionating non-portable sed construct with hopefully more portable awk construct. new 9117a5b hw/nxagent/Screen.c: Cover Xinerama bounding box corner cases. new 4b7b214 Xserver/hw/nxagent/Screen.c: Drop commented out code. Functionality now implemented in intersect_bb() function. new 570d3fe Merge branch 'sunweaver-pr/xinerama-bbox-corner-cases' into 3.6.x new f323160 nxcompshad/configure.ac: blindly copy-pasting might not be the smartest idea; it's *COMPSHAD* here. new 7017c22 Xserver/Xext/saver.c Unvalidated lengths (X.org CVE-2017-12185). new 18630e5 Merge branch 'sunweaver-pr/saver-unvalidated-lengths-ProcScreenSaverUnsetAttributes' into 3.6.x The 6 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Summary of changes: nx-X11/programs/Xserver/Xext/saver.c | 2 + nx-X11/programs/Xserver/hw/nxagent/Screen.c | 113 ++++++++++++++++++++-------- nxcompshad/configure.ac | 2 +- 3 files changed, 84 insertions(+), 33 deletions(-) -- Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/nx-libs.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch 3.6.x in repository nx-libs. commit 9117a5bf0fac83a716305f3715e36a8dd64f5517 Author: Mike Gabriel <mike.gabriel@das-netzwerkteam.de> Date: Fri Mar 2 14:01:29 2018 +0100 hw/nxagent/Screen.c: Cover Xinerama bounding box corner cases. 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/Screen.c | 97 ++++++++++++++++++++++++----- 1 file changed, 81 insertions(+), 16 deletions(-) diff --git a/nx-X11/programs/Xserver/hw/nxagent/Screen.c b/nx-X11/programs/Xserver/hw/nxagent/Screen.c index 628bf99..cc44c1b 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Screen.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Screen.c @@ -3642,6 +3642,11 @@ Bool intersect(int ax1, int ay1, unsigned int aw, unsigned int ah, /* check if there's any intersection at all */ if (ax2 < bx1 || bx2 < ax1 || ay2 < by1 || by2 < ay1) { + + #ifdef DEBUG + fprintf(stderr, "intersect: the given rectangles do not intersect at all\n"); + #endif + return FALSE; } @@ -3657,12 +3662,22 @@ Bool intersect(int ax1, int ay1, unsigned int aw, unsigned int ah, /* check if the resulting rectangle is feasible */ if (iw <= 0 || ih <= 0) { + + #ifdef DEBUG + fprintf(stderr, "intersect: intersection rectangle not feasible\n"); + #endif + return FALSE; } *x = ix; *y = iy; *w = iw; *h = ih; + + #ifdef DEBUG + fprintf(stderr, "intersect: intersection is: ([%d],[%d]) [ %d x %d ]\n", *x, *y, *w, *h); + #endif + return TRUE; } @@ -3674,24 +3689,73 @@ Bool intersect_bb(int ax1, int ay1, unsigned int aw, unsigned int ah, int bbx1, int bby1, int bbx2, int bby2, int *x, int *y, unsigned int *w, unsigned int *h) { + + #ifdef DEBUG + fprintf(stderr, "intersect_bb: session window: ([%d],[%d]) [ %d x %d ]\n", ax1, ay1, aw, ah); + fprintf(stderr, "intersect_bb: crtc: ([%d],[%d]) [ %d x %d ]\n", bx1, by1, bw, bh); + fprintf(stderr, "intersect_bb: bounding box: ([%d],[%d]) [ %d x %d ]\n", bbx1, bby1, bbx2-bbx1, bby2-bby1); + #endif + Bool result = intersect(ax1, ay1, aw, ah, bx1, by1, bw, bh, x, y, w, h); + if (result == TRUE) { - /* check if outside of bounding box */ - if (ax1 < bbx1 || ax1 + aw > bbx2) { + + /* + * ###### The X-Coordinate ###### + */ + + /* check if outside-left of bounding box */ + if (bx1 == bbx1 && ax1 < bbx1) { + + *w += bbx1 - ax1; + *x = 0; + + #ifdef DEBUG + fprintf(stderr, "intersect_bb: session box is outside-left of the bounding box - width gets adapted to [%d]\n", *w); + #endif + + + } + + /* check if outside-right of bounding box */ + if (bx1 + bw == bbx2 && ax1 + aw > bbx2) { + + *w += ax1 + aw - bbx2; + #ifdef DEBUG - fprintf(stderr, "intersect: box has parts outside bounding box - width stays unchanged [%d]\n", aw); + fprintf(stderr, "intersect_bb: session box is outside-right of the bounding box - width gets adapted to [%d]\n", *w); #endif - *w = aw; + } - if (ay1 < bby1 || ay1 + ah > bby2) { + /* + * ###### The Y-Coordinate ###### + */ + + /* check if outside-above of bounding box */ + if (by1 == bby1 && ay1 < bby1) { + + *h += bby1 - ay1; + *y = 0; + #ifdef DEBUG - fprintf(stderr, "intersect: box has parts outside bounding box - height stays unchanged [%d]\n", ah); + fprintf(stderr, "intersect_bb: session box is outside-above of the bounding box - height gets adapted to [%d]\n", *h); #endif - *h = ah; + } - } + /* check if outside-below of bounding box */ + if (by1 + bh == bby2 && ay1 + ah > bby2) { + + *h += ay1 + ah - bby2; + + #ifdef DEBUG + fprintf(stderr, "intersect_bb: session box is outside-below of the bounding box - height gets adapted to [%d]\n", *h); + #endif + + } + + } return result; } #endif @@ -4057,8 +4121,10 @@ int nxagentAdjustRandRXinerama(ScreenPtr pScreen) for (i = 0; i < pScrPriv->numOutputs; i++) { Bool disable_output = FALSE; RRModePtr mymode, prevmode; - int new_x, new_y; - unsigned int new_w, new_h; + int new_x = 0; + int new_y = 0; + unsigned int new_w = 0; + unsigned int new_h = 0; /* if ((nxagentOption(X) < bbx1 || (nxagentOption(X) + width >= bbx2 )) { @@ -4186,15 +4252,14 @@ int nxagentAdjustRandRXinerama(ScreenPtr pScreen) fprintf(stderr, "nxagentAdjustRandRXinerama: setting mode [%s] ([%p]) refcnt [%d] for output %d [%s]\n", mymode->name, (void *) mymode, mymode->refcnt, i, pScrPriv->outputs[i]->name); #endif RROutputSetModes(pScrPriv->outputs[i], &mymode, 1, 0); - - #ifdef DEBUG - fprintf(stderr, "nxagentAdjustRandRXinerama: setting mode [%s] ([%p]) refcnt [%d] for crtc %d\n", mymode->name, (void *) mymode, mymode->refcnt, i); - #endif - RRCrtcSet(pScrPriv->crtcs[i], mymode, new_x, new_y, RR_Rotate_0, 1, &(pScrPriv->outputs[i])); - } } /* if disable_output */ + #ifdef DEBUG + fprintf(stderr, "nxagentAdjustRandRXinerama: setting mode [%s] ([%p]) refcnt [%d] for crtc %d\n", mymode->name, (void *) mymode, mymode->refcnt, i); + #endif + RRCrtcSet(pScrPriv->crtcs[i], mymode, new_x, new_y, RR_Rotate_0, 1, &(pScrPriv->outputs[i])); + /* throw away the mode if otherwise unused. We do not need it anymore. We call FreeResource() to ensure the system will not try to free it again on shutdown */ -- Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/nx-libs.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch 3.6.x in repository nx-libs. commit 570d3fea43b0eba153c8c96365c63ed32cce787e Merge: 3352cfa 4b7b214 Author: Ulrich Sibiller <uli42@gmx.de> Date: Wed Mar 7 21:15:18 2018 +0100 Merge branch 'sunweaver-pr/xinerama-bbox-corner-cases' into 3.6.x Attributes GH PR #670: https://github.com/ArcticaProject/nx-libs/pull/670 nx-X11/programs/Xserver/hw/nxagent/Screen.c | 113 ++++++++++++++++++++-------- 1 file changed, 81 insertions(+), 32 deletions(-) -- Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/nx-libs.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch 3.6.x in repository nx-libs. commit 4b7b214a7da4bac8d717234ccd67cb8562b533ea Author: Mike Gabriel <mike.gabriel@das-netzwerkteam.de> Date: Mon Mar 5 15:34:52 2018 +0100 Xserver/hw/nxagent/Screen.c: Drop commented out code. Functionality now implemented in intersect_bb() function. --- nx-X11/programs/Xserver/hw/nxagent/Screen.c | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/nx-X11/programs/Xserver/hw/nxagent/Screen.c b/nx-X11/programs/Xserver/hw/nxagent/Screen.c index cc44c1b..d8934a6 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Screen.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Screen.c @@ -4126,22 +4126,6 @@ int nxagentAdjustRandRXinerama(ScreenPtr pScreen) unsigned int new_w = 0; unsigned int new_h = 0; - /* - if ((nxagentOption(X) < bbx1 || (nxagentOption(X) + width >= bbx2 )) { - #ifdef DEBUG - fprintf(stderr, "nxagentAdjustRandRXinerama: output [%d] name [%s]: window has parts outside visible area - width stays unchanged [%d]\n", i, pScrPriv->outputs[i]->name, width); - #endif - new_w = width; - } - - if ((nxagentOption(Y) < bby1 || (nxagentOption(Y) + height >= bby2 ) { - #ifdef DEBUG - fprintf(stderr, "nxagentAdjustRandRXinerama: output [%d] name [%s]: window has parts outside visible area - height stays unchanged [%d]\n", i, pScrPriv->outputs[i]->name, height); - #endif - new_h = height; - } - */ - /* if there's no intersection disconnect the output */ #ifdef NXAGENT_RANDR_XINERAMA_CLIPPING disable_output = !intersect(nxagentOption(X), nxagentOption(Y), -- Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/nx-libs.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch 3.6.x in repository nx-libs. commit f3231601be0b83051c0c2732120a8f9f72e616d9 Author: Mihai Moldovan <ionic@ionic.de> Date: Wed Mar 7 21:35:51 2018 +0100 nxcompshad/configure.ac: blindly copy-pasting might not be the smartest idea; it's *COMPSHAD* here. --- nxcompshad/configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nxcompshad/configure.ac b/nxcompshad/configure.ac index 3f2b6ab..19a6ae7 100644 --- a/nxcompshad/configure.ac +++ b/nxcompshad/configure.ac @@ -22,7 +22,7 @@ AC_PROG_LIBTOOL COMPSHAD_VERSION=nxcompshad_version AC_SUBST([COMPSHAD_VERSION]) -LT_COMP_VERSION=["$(printf '%s\n' "${COMP_VERSION}" | awk -F '.' '/^[0-9]+\.[0-9]+\.[0-9]+.*$/ { print $1 ":" $2 ":" $3; }')"] +LT_COMPSHAD_VERSION=["$(printf '%s\n' "${COMPSHAD_VERSION}" | awk -F '.' '/^[0-9]+\.[0-9]+\.[0-9]+.*$/ { print $1 ":" $2 ":" $3; }')"] AC_SUBST([LT_COMPSHAD_VERSION]) # Silence warning: ar: 'u' modifier ignored since 'D' is the default -- Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/nx-libs.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch 3.6.x in repository nx-libs. commit 7017c22c2b5dcacc8e337029f7ed82f4bcafb819 Author: Nathan Kidd <nkidd@opentext.com> Date: Mon Mar 5 11:01:49 2018 +0100 Xserver/Xext/saver.c Unvalidated lengths (X.org CVE-2017-12185). 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> --- nx-X11/programs/Xserver/Xext/saver.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nx-X11/programs/Xserver/Xext/saver.c b/nx-X11/programs/Xserver/Xext/saver.c index 0b79a00..89eebd7 100644 --- a/nx-X11/programs/Xserver/Xext/saver.c +++ b/nx-X11/programs/Xserver/Xext/saver.c @@ -1342,6 +1342,8 @@ ProcScreenSaverUnsetAttributes (ClientPtr client) PanoramiXRes *draw; int i; + REQUEST_SIZE_MATCH(xScreenSaverUnsetAttributesReq); + if(!(draw = (PanoramiXRes *)SecurityLookupIDByClass( client, stuff->drawable, XRC_DRAWABLE, DixWriteAccess))) return BadDrawable; -- Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/nx-libs.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch 3.6.x in repository nx-libs. commit 18630e5dd8bb1a5da0abf0021894c1a36f785f2e Merge: f323160 7017c22 Author: Mihai Moldovan <ionic@ionic.de> Date: Wed Mar 7 21:55:36 2018 +0100 Merge branch 'sunweaver-pr/saver-unvalidated-lengths-ProcScreenSaverUnsetAttributes' into 3.6.x Attributes GH PR #672: https://github.com/ArcticaProject/nx-libs/pull/672 nx-X11/programs/Xserver/Xext/saver.c | 2 ++ 1 file changed, 2 insertions(+) -- Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/nx-libs.git