Hello community,
here is the log from the commit of package xorg-x11-server for openSUSE:Factory checked in at 2017-10-23 16:36:06
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xorg-x11-server (Old)
and /work/SRC/openSUSE:Factory/.xorg-x11-server.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xorg-x11-server"
Mon Oct 23 16:36:06 2017 rev:348 rq:533781 version:1.19.5
Changes:
--------
--- /work/SRC/openSUSE:Factory/xorg-x11-server/xorg-x11-server.changes 2017-10-10 11:35:55.938048806 +0200
+++ /work/SRC/openSUSE:Factory/.xorg-x11-server.new/xorg-x11-server.changes 2017-10-23 16:36:09.916777437 +0200
@@ -1,0 +2,7 @@
+Thu Oct 12 21:13:38 UTC 2017 - tobias.johannes.klausmann@mni.thm.de
+
+- Update to version 1.19.5:
+ One regression fix since 1.19.4, and fixes for CVE-2017-12176 through
+ CVE-2017-12187.
+
+-------------------------------------------------------------------
Old:
----
xorg-server-1.19.4.tar.bz2
New:
----
xorg-server-1.19.5.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xorg-x11-server.spec ++++++
--- /var/tmp/diff_new_pack.YePGvC/_old 2017-10-23 16:36:11.404707778 +0200
+++ /var/tmp/diff_new_pack.YePGvC/_new 2017-10-23 16:36:11.404707778 +0200
@@ -41,7 +41,7 @@
%endif
Name: xorg-x11-server
-Version: 1.19.4
+Version: 1.19.5
Release: 0
Url: http://xorg.freedesktop.org/
BuildRoot: %{_tmppath}/%{name}-%{version}-build
++++++ xorg-server-1.19.4.tar.bz2 -> xorg-server-1.19.5.tar.bz2 ++++++
++++ 3553 lines of diff (skipped)
++++ retrying with extended exclude list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xorg-server-1.19.4/ChangeLog new/xorg-server-1.19.5/ChangeLog
--- old/xorg-server-1.19.4/ChangeLog 2017-10-04 23:57:39.000000000 +0200
+++ new/xorg-server-1.19.5/ChangeLog 2017-10-12 19:25:36.000000000 +0200
@@ -1,3 +1,153 @@
+commit b96e982e3a43513549636850186ff80a82190f64
+Author: Adam Jackson
+Date: Thu Oct 12 12:32:31 2017 -0400
+
+ xserver 1.19.5
+
+ Signed-off-by: Adam Jackson
+
+commit 95f605b42d8bbb6bea2834a1abfc205981c5b803
+Author: Nathan Kidd
+Date: Fri Jan 9 10:15:46 2015 -0500
+
+ Unvalidated extra length in ProcEstablishConnection (CVE-2017-12176)
+
+ Reviewed-by: Julien Cristau
+ Signed-off-by: Nathan Kidd
+ Signed-off-by: Julien Cristau
+ (cherry picked from commit b747da5e25be944337a9cd1415506fc06b70aa81)
+
+commit cc41e5b581d287c56f8d7113a97a4882dcfdd696
+Author: Nathan Kidd
+Date: Fri Jan 9 10:09:14 2015 -0500
+
+ dbe: Unvalidated variable-length request in ProcDbeGetVisualInfo (CVE-2017-12177)
+
+ v2: Protect against integer overflow (Alan Coopersmith)
+
+ Reviewed-by: Alan Coopersmith
+ Reviewed-by: Jeremy Huddleston Sequoia
+ Reviewed-by: Julien Cristau
+ Signed-off-by: Nathan Kidd
+ Signed-off-by: Julien Cristau
+ (cherry picked from commit 4ca68b878e851e2136c234f40a25008297d8d831)
+
+commit 6c15122163a2d2615db7e998e8d436815a08dec6
+Author: Nathan Kidd
+Date: Wed Dec 24 16:22:18 2014 -0500
+
+ Xi: fix wrong extra length check in ProcXIChangeHierarchy (CVE-2017-12178)
+
+ Reviewed-by: Alan Coopersmith
+ Reviewed-by: Jeremy Huddleston Sequoia
+ Reviewed-by: Julien Cristau
+ Signed-off-by: Nathan Kidd
+ Signed-off-by: Julien Cristau
+ (cherry picked from commit 859b08d523307eebde7724fd1a0789c44813e821)
+
+commit c77cd08efcf386bcc5d8dfbd0427134b2b2d0888
+Author: Nathan Kidd
+Date: Fri Jan 9 10:04:41 2015 -0500
+
+ Xi: integer overflow and unvalidated length in (S)ProcXIBarrierReleasePointer
+
+ [jcristau: originally this patch fixed the same issue as commit
+ 211e05ac85 "Xi: Test exact size of XIBarrierReleasePointer", with the
+ addition of these checks]
+
+ This addresses CVE-2017-12179
+
+ Reviewed-by: Alan Coopersmith
+ Reviewed-by: Jeremy Huddleston Sequoia
+ Reviewed-by: Julien Cristau
+ Signed-off-by: Jeremy Huddleston Sequoia
+ Signed-off-by: Nathan Kidd
+ Signed-off-by: Julien Cristau
+ (cherry picked from commit d088e3c1286b548a58e62afdc70bb40981cdb9e8)
+
+commit d264da92f7f8129b8aad4f0114a6467fc38fc896
+Author: Nathan Kidd
+Date: Sun Dec 21 01:10:03 2014 -0500
+
+ hw/xfree86: unvalidated lengths
+
+ This addresses:
+ CVE-2017-12180 in XFree86-VidModeExtension
+ CVE-2017-12181 in XFree86-DGA
+ CVE-2017-12182 in XFree86-DRI
+
+ Reviewed-by: Jeremy Huddleston Sequoia
+ Reviewed-by: Julien Cristau
+ Signed-off-by: Nathan Kidd
+ Signed-off-by: Julien Cristau
+ (cherry picked from commit 1b1d4c04695dced2463404174b50b3581dbd857b)
+
+commit 61502107a30d64f991784648c3228ebc6694a032
+Author: Nathan Kidd
+Date: Fri Jan 9 11:43:05 2015 -0500
+
+ xfixes: unvalidated lengths (CVE-2017-12183)
+
+ v2: Use before swap (Jeremy Huddleston Sequoia)
+
+ v3: Fix wrong XFixesCopyRegion checks (Alan Coopersmith)
+
+ Reviewed-by: Alan Coopersmith
+ Reviewed-by: Jeremy Huddleston Sequoia
+ Reviewed-by: Julien Cristau
+ Signed-off-by: Jeremy Huddleston Sequoia
+ Signed-off-by: Nathan Kidd
+ Signed-off-by: Julien Cristau
+ (cherry picked from commit 55caa8b08c84af2b50fbc936cf334a5a93dd7db5)
+
+commit c206f36a4b6ecf2555ab2291c349ab7d7d0b02f5
+Author: Nathan Kidd
+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
+ Reviewed-by: Julien Cristau
+ Signed-off-by: Nathan Kidd
+ Signed-off-by: Julien Cristau
+ (cherry picked from commit cad5a1050b7184d828aef9c1dd151c3ab649d37e)
+
+commit e751722a7b0c5b595794e60b054ade0b3f6cdb4d
+Author: Michal Srb
+Date: Fri Jul 7 17:04:03 2017 +0200
+
+ os: Make sure big requests have sufficient length.
+
+ A client can send a big request where the 32B "length" field has value
+ 0. When the big request header is removed and the length corrected,
+ the value will underflow to 0xFFFFFFFF. Functions processing the
+ request later will think that the client sent much more data and may
+ touch memory beyond the receive buffer.
+
+ Signed-off-by: Eric Anholt
+ Reviewed-by: Peter Hutterer
+ (cherry picked from commit 9c23685009aa96f4b861dcc5d2e01dbee00c4dd9)
+
+commit 784d205ff6527c761ffbb1c43c9ad3669dd8d26e
+Author: Adam Jackson
+Date: Thu Oct 12 12:17:53 2017 -0400
+
+ Revert "xf86-video-modesetting: Add ms_queue_vblank helper [v3]"
+
+ Apparently introduces a regression:
+
+ https://bugs.freedesktop.org/103243
+
+ This reverts commit 388dc1aeac9acf2d51ad5103570beffd81d78b96.
+
commit ec37e559614cf4eaba67d3ca0693f09fd95a5d57
Author: Adam Jackson
Date: Wed Oct 4 15:29:18 2017 -0400
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xorg-server-1.19.4/Xext/panoramiX.c new/xorg-server-1.19.5/Xext/panoramiX.c
--- old/xorg-server-1.19.4/Xext/panoramiX.c 2017-10-04 23:57:01.000000000 +0200
+++ new/xorg-server-1.19.5/Xext/panoramiX.c 2017-10-12 19:24:59.000000000 +0200
@@ -988,10 +988,11 @@
xPanoramiXGetScreenSizeReply rep;
int rc;
+ REQUEST_SIZE_MATCH(xPanoramiXGetScreenSizeReq);
+
if (stuff->screen >= PanoramiXNumScreens)
return BadMatch;
- REQUEST_SIZE_MATCH(xPanoramiXGetScreenSizeReq);
rc = dixLookupWindow(&pWin, stuff->window, client, DixGetAttrAccess);
if (rc != Success)
return rc;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xorg-server-1.19.4/Xext/saver.c new/xorg-server-1.19.5/Xext/saver.c
--- old/xorg-server-1.19.4/Xext/saver.c 2017-10-04 23:57:01.000000000 +0200
+++ new/xorg-server-1.19.5/Xext/saver.c 2017-10-12 19:24:59.000000000 +0200
@@ -1185,6 +1185,8 @@
PanoramiXRes *draw;
int rc, i;
+ REQUEST_SIZE_MATCH(xScreenSaverUnsetAttributesReq);
+
rc = dixLookupResourceByClass((void **) &draw, stuff->drawable,
XRC_DRAWABLE, client, DixWriteAccess);
if (rc != Success)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xorg-server-1.19.4/Xext/vidmode.c new/xorg-server-1.19.5/Xext/vidmode.c
--- old/xorg-server-1.19.4/Xext/vidmode.c 2017-10-04 23:57:01.000000000 +0200
+++ new/xorg-server-1.19.5/Xext/vidmode.c 2017-10-12 19:24:59.000000000 +0200
@@ -454,6 +454,20 @@
DEBUG_P("XF86VidModeAddModeline");
ver = ClientMajorVersion(client);
+
+ if (ver < 2) {
+ REQUEST_AT_LEAST_SIZE(xXF86OldVidModeAddModeLineReq);
+ len =
+ client->req_len -
+ bytes_to_int32(sizeof(xXF86OldVidModeAddModeLineReq));
+ }
+ else {
+ REQUEST_AT_LEAST_SIZE(xXF86VidModeAddModeLineReq);
+ len =
+ client->req_len -
+ bytes_to_int32(sizeof(xXF86VidModeAddModeLineReq));
+ }
+
if (ver < 2) {
/* convert from old format */
stuff = &newstuff;
@@ -501,18 +515,6 @@
stuff->after_vsyncend, stuff->after_vtotal,
(unsigned long) stuff->after_flags);
- if (ver < 2) {
- REQUEST_AT_LEAST_SIZE(xXF86OldVidModeAddModeLineReq);
- len =
- client->req_len -
- bytes_to_int32(sizeof(xXF86OldVidModeAddModeLineReq));
- }
- else {
- REQUEST_AT_LEAST_SIZE(xXF86VidModeAddModeLineReq);
- len =
- client->req_len -
- bytes_to_int32(sizeof(xXF86VidModeAddModeLineReq));
- }
if (len != stuff->privsize)
return BadLength;
@@ -622,6 +624,20 @@
DEBUG_P("XF86VidModeDeleteModeline");
ver = ClientMajorVersion(client);
+
+ if (ver < 2) {
+ REQUEST_AT_LEAST_SIZE(xXF86OldVidModeDeleteModeLineReq);
+ len =
+ client->req_len -
+ bytes_to_int32(sizeof(xXF86OldVidModeDeleteModeLineReq));
+ }
+ else {
+ REQUEST_AT_LEAST_SIZE(xXF86VidModeDeleteModeLineReq);
+ len =
+ client->req_len -
+ bytes_to_int32(sizeof(xXF86VidModeDeleteModeLineReq));
+ }
+
if (ver < 2) {
/* convert from old format */
stuff = &newstuff;
@@ -649,18 +665,6 @@
stuff->vdisplay, stuff->vsyncstart, stuff->vsyncend, stuff->vtotal,
(unsigned long) stuff->flags);
- if (ver < 2) {
- REQUEST_AT_LEAST_SIZE(xXF86OldVidModeDeleteModeLineReq);
- len =
- client->req_len -
- bytes_to_int32(sizeof(xXF86OldVidModeDeleteModeLineReq));
- }
- else {
- REQUEST_AT_LEAST_SIZE(xXF86VidModeDeleteModeLineReq);
- len =
- client->req_len -
- bytes_to_int32(sizeof(xXF86VidModeDeleteModeLineReq));
- }
if (len != stuff->privsize) {
DebugF("req_len = %ld, sizeof(Req) = %d, privsize = %ld, "
"len = %d, length = %d\n",
@@ -744,6 +748,20 @@
DEBUG_P("XF86VidModeModModeline");
ver = ClientMajorVersion(client);
+
+ if (ver < 2) {
+ REQUEST_AT_LEAST_SIZE(xXF86OldVidModeModModeLineReq);
+ len =
+ client->req_len -
+ bytes_to_int32(sizeof(xXF86OldVidModeModModeLineReq));
+ }
+ else {
+ REQUEST_AT_LEAST_SIZE(xXF86VidModeModModeLineReq);
+ len =
+ client->req_len -
+ bytes_to_int32(sizeof(xXF86VidModeModModeLineReq));
+ }
+
if (ver < 2) {
/* convert from old format */
stuff = &newstuff;
@@ -768,18 +786,6 @@
stuff->vdisplay, stuff->vsyncstart, stuff->vsyncend,
stuff->vtotal, (unsigned long) stuff->flags);
- if (ver < 2) {
- REQUEST_AT_LEAST_SIZE(xXF86OldVidModeModModeLineReq);
- len =
- client->req_len -
- bytes_to_int32(sizeof(xXF86OldVidModeModModeLineReq));
- }
- else {
- REQUEST_AT_LEAST_SIZE(xXF86VidModeModModeLineReq);
- len =
- client->req_len -
- bytes_to_int32(sizeof(xXF86VidModeModModeLineReq));
- }
if (len != stuff->privsize)
return BadLength;
@@ -877,6 +883,19 @@
DEBUG_P("XF86VidModeValidateModeline");
ver = ClientMajorVersion(client);
+
+ if (ver < 2) {
+ REQUEST_AT_LEAST_SIZE(xXF86OldVidModeValidateModeLineReq);
+ len = client->req_len -
+ bytes_to_int32(sizeof(xXF86OldVidModeValidateModeLineReq));
+ }
+ else {
+ REQUEST_AT_LEAST_SIZE(xXF86VidModeValidateModeLineReq);
+ len =
+ client->req_len -
+ bytes_to_int32(sizeof(xXF86VidModeValidateModeLineReq));
+ }
+
if (ver < 2) {
/* convert from old format */
stuff = &newstuff;
@@ -905,17 +924,6 @@
stuff->vdisplay, stuff->vsyncstart, stuff->vsyncend, stuff->vtotal,
(unsigned long) stuff->flags);
- if (ver < 2) {
- REQUEST_AT_LEAST_SIZE(xXF86OldVidModeValidateModeLineReq);
- len = client->req_len -
- bytes_to_int32(sizeof(xXF86OldVidModeValidateModeLineReq));
- }
- else {
- REQUEST_AT_LEAST_SIZE(xXF86VidModeValidateModeLineReq);
- len =
- client->req_len -
- bytes_to_int32(sizeof(xXF86VidModeValidateModeLineReq));
- }
if (len != stuff->privsize)
return BadLength;
@@ -1027,6 +1035,20 @@
DEBUG_P("XF86VidModeSwitchToMode");
ver = ClientMajorVersion(client);
+
+ if (ver < 2) {
+ REQUEST_AT_LEAST_SIZE(xXF86OldVidModeSwitchToModeReq);
+ len =
+ client->req_len -
+ bytes_to_int32(sizeof(xXF86OldVidModeSwitchToModeReq));
+ }
+ else {
+ REQUEST_AT_LEAST_SIZE(xXF86VidModeSwitchToModeReq);
+ len =
+ client->req_len -
+ bytes_to_int32(sizeof(xXF86VidModeSwitchToModeReq));
+ }
+
if (ver < 2) {
/* convert from old format */
stuff = &newstuff;
@@ -1055,18 +1077,6 @@
stuff->vdisplay, stuff->vsyncstart, stuff->vsyncend, stuff->vtotal,
(unsigned long) stuff->flags);
- if (ver < 2) {
- REQUEST_AT_LEAST_SIZE(xXF86OldVidModeSwitchToModeReq);
- len =
- client->req_len -
- bytes_to_int32(sizeof(xXF86OldVidModeSwitchToModeReq));
- }
- else {
- REQUEST_AT_LEAST_SIZE(xXF86VidModeSwitchToModeReq);
- len =
- client->req_len -
- bytes_to_int32(sizeof(xXF86VidModeSwitchToModeReq));
- }
if (len != stuff->privsize)
return BadLength;
@@ -1457,6 +1467,7 @@
VidModePtr pVidMode;
REQUEST(xXF86VidModeSetGammaRampReq);
+ REQUEST_AT_LEAST_SIZE(xXF86VidModeSetGammaRampReq);
if (stuff->screen >= screenInfo.numScreens)
return BadValue;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xorg-server-1.19.4/Xext/xres.c new/xorg-server-1.19.5/Xext/xres.c
--- old/xorg-server-1.19.4/Xext/xres.c 2017-10-04 23:57:01.000000000 +0200
+++ new/xorg-server-1.19.5/Xext/xres.c 2017-10-12 19:24:59.000000000 +0200
@@ -947,6 +947,8 @@
ConstructResourceBytesCtx ctx;
REQUEST_AT_LEAST_SIZE(xXResQueryResourceBytesReq);
+ if (stuff->numSpecs > UINT32_MAX / sizeof(ctx.specs[0]))
+ return BadLength;
REQUEST_FIXED_SIZE(xXResQueryResourceBytesReq,
stuff->numSpecs * sizeof(ctx.specs[0]));
@@ -1052,8 +1054,8 @@
int c;
xXResResourceIdSpec *specs = (void*) ((char*) stuff + sizeof(*stuff));
- swapl(&stuff->numSpecs);
REQUEST_AT_LEAST_SIZE(xXResQueryResourceBytesReq);
+ swapl(&stuff->numSpecs);
REQUEST_FIXED_SIZE(xXResQueryResourceBytesReq,
stuff->numSpecs * sizeof(specs[0]));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xorg-server-1.19.4/Xext/xvdisp.c new/xorg-server-1.19.5/Xext/xvdisp.c
--- old/xorg-server-1.19.4/Xext/xvdisp.c 2017-10-04 23:57:01.000000000 +0200
+++ new/xorg-server-1.19.5/Xext/xvdisp.c 2017-10-12 19:24:59.000000000 +0200
@@ -1493,12 +1493,14 @@
{
REQUEST(xvShmPutImageReq);
PanoramiXRes *draw, *gc, *port;
- Bool send_event = stuff->send_event;
+ Bool send_event;
Bool isRoot;
int result, i, x, y;
REQUEST_SIZE_MATCH(xvShmPutImageReq);
+ send_event = stuff->send_event;
+
result = dixLookupResourceByClass((void **) &draw, stuff->drawable,
XRC_DRAWABLE, client, DixWriteAccess);
if (result != Success)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xorg-server-1.19.4/Xi/xibarriers.c new/xorg-server-1.19.5/Xi/xibarriers.c
--- old/xorg-server-1.19.4/Xi/xibarriers.c 2017-10-04 23:57:01.000000000 +0200
+++ new/xorg-server-1.19.5/Xi/xibarriers.c 2017-10-12 19:24:59.000000000 +0200
@@ -834,6 +834,8 @@
REQUEST_AT_LEAST_SIZE(xXIBarrierReleasePointerReq);
swapl(&stuff->num_barriers);
+ if (stuff->num_barriers > UINT32_MAX / sizeof(xXIBarrierReleasePointerInfo))
+ return BadLength;
REQUEST_FIXED_SIZE(xXIBarrierReleasePointerReq, stuff->num_barriers * sizeof(xXIBarrierReleasePointerInfo));
info = (xXIBarrierReleasePointerInfo*) &stuff[1];
@@ -856,6 +858,9 @@
xXIBarrierReleasePointerInfo *info;
REQUEST(xXIBarrierReleasePointerReq);
+ REQUEST_AT_LEAST_SIZE(xXIBarrierReleasePointerReq);
+ if (stuff->num_barriers > UINT32_MAX / sizeof(xXIBarrierReleasePointerInfo))
+ return BadLength;
REQUEST_FIXED_SIZE(xXIBarrierReleasePointerReq, stuff->num_barriers * sizeof(xXIBarrierReleasePointerInfo));
info = (xXIBarrierReleasePointerInfo*) &stuff[1];
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xorg-server-1.19.4/Xi/xichangehierarchy.c new/xorg-server-1.19.5/Xi/xichangehierarchy.c
--- old/xorg-server-1.19.4/Xi/xichangehierarchy.c 2017-10-04 23:57:01.000000000 +0200
+++ new/xorg-server-1.19.5/Xi/xichangehierarchy.c 2017-10-12 19:24:59.000000000 +0200
@@ -423,7 +423,7 @@
if (!stuff->num_changes)
return rc;
- len = ((size_t)stuff->length << 2) - sizeof(xXIAnyHierarchyChangeInfo);
+ len = ((size_t)stuff->length << 2) - sizeof(xXIChangeHierarchyReq);
any = (xXIAnyHierarchyChangeInfo *) &stuff[1];
while (stuff->num_changes--) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xorg-server-1.19.4/compile new/xorg-server-1.19.5/compile
--- old/xorg-server-1.19.4/compile 2017-10-04 23:57:16.000000000 +0200
+++ new/xorg-server-1.19.5/compile 2017-10-12 19:25:15.000000000 +0200
@@ -1,9 +1,9 @@
#! /bin/sh
# Wrapper for compilers which do not understand '-c -o'.
-scriptversion=2012-10-14.11; # UTC
+scriptversion=2016-01-11.22; # UTC
-# Copyright (C) 1999-2014 Free Software Foundation, Inc.
+# Copyright (C) 1999-2017 Free Software Foundation, Inc.
# Written by Tom Tromey .
#
# This program is free software; you can redistribute it and/or modify
@@ -255,7 +255,8 @@
echo "compile $scriptversion"
exit $?
;;
- cl | *[/\\]cl | cl.exe | *[/\\]cl.exe )
+ cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \
+ icl | *[/\\]icl | icl.exe | *[/\\]icl.exe )
func_cl_wrapper "$@" # Doesn't return...
;;
esac
@@ -342,6 +343,6 @@
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC"
+# time-stamp-time-zone: "UTC0"
# time-stamp-end: "; # UTC"
# End:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xorg-server-1.19.4/configure.ac new/xorg-server-1.19.5/configure.ac
--- old/xorg-server-1.19.4/configure.ac 2017-10-04 23:57:01.000000000 +0200
+++ new/xorg-server-1.19.5/configure.ac 2017-10-12 19:24:59.000000000 +0200
@@ -26,9 +26,9 @@
dnl Process this file with autoconf to create configure.
AC_PREREQ(2.60)
-AC_INIT([xorg-server], 1.19.4, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server)
-RELEASE_DATE="2017-10-04"
-RELEASE_NAME="French Onion Soup"
+AC_INIT([xorg-server], 1.19.5, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server)
+RELEASE_DATE="2017-10-12"
+RELEASE_NAME="Shahi Paneer"
AC_CONFIG_SRCDIR([Makefile.am])
AC_CONFIG_MACRO_DIR([m4])
AM_INIT_AUTOMAKE([foreign dist-bzip2])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xorg-server-1.19.4/dbe/dbe.c new/xorg-server-1.19.5/dbe/dbe.c
--- old/xorg-server-1.19.4/dbe/dbe.c 2017-10-04 23:57:01.000000000 +0200
+++ new/xorg-server-1.19.5/dbe/dbe.c 2017-10-12 19:24:59.000000000 +0200
@@ -574,6 +574,9 @@
XdbeScreenVisualInfo *pScrVisInfo;
REQUEST_AT_LEAST_SIZE(xDbeGetVisualInfoReq);
+ if (stuff->n > UINT32_MAX / sizeof(CARD32))
+ return BadLength;
+ REQUEST_FIXED_SIZE(xDbeGetVisualInfoReq, stuff->n * sizeof(CARD32));
if (stuff->n > UINT32_MAX / sizeof(DrawablePtr))
return BadAlloc;
@@ -924,7 +927,7 @@
swapl(&stuff->n);
if (stuff->n > UINT32_MAX / sizeof(DbeSwapInfoRec))
- return BadAlloc;
+ return BadLength;
REQUEST_FIXED_SIZE(xDbeSwapBuffersReq, stuff->n * sizeof(xDbeSwapInfo));
if (stuff->n != 0) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xorg-server-1.19.4/dix/dispatch.c new/xorg-server-1.19.5/dix/dispatch.c
--- old/xorg-server-1.19.4/dix/dispatch.c 2017-10-04 23:57:01.000000000 +0200
+++ new/xorg-server-1.19.5/dix/dispatch.c 2017-10-12 19:24:59.000000000 +0200
@@ -3703,7 +3703,12 @@
prefix = (xConnClientPrefix *) ((char *) stuff + sz_xReq);
auth_proto = (char *) prefix + sz_xConnClientPrefix;
auth_string = auth_proto + pad_to_int32(prefix->nbytesAuthProto);
- if ((prefix->majorVersion != X_PROTOCOL) ||
+
+ if ((client->req_len << 2) != sz_xReq + sz_xConnClientPrefix +
+ pad_to_int32(prefix->nbytesAuthProto) +
+ pad_to_int32(prefix->nbytesAuthString))
+ reason = "Bad length";
+ else if ((prefix->majorVersion != X_PROTOCOL) ||
(prefix->minorVersion != X_PROTOCOL_REVISION))
reason = "Protocol version mismatch";
else
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xorg-server-1.19.4/hw/dmx/dmxpict.c new/xorg-server-1.19.5/hw/dmx/dmxpict.c
--- old/xorg-server-1.19.4/hw/dmx/dmxpict.c 2017-10-04 23:57:01.000000000 +0200
+++ new/xorg-server-1.19.5/hw/dmx/dmxpict.c 2017-10-12 19:24:59.000000000 +0200
@@ -716,6 +716,8 @@
filter = (char *) (stuff + 1);
params = (XFixed *) (filter + ((stuff->nbytes + 3) & ~3));
nparams = ((XFixed *) stuff + client->req_len) - params;
+ if (nparams < 0)
+ return BadLength;
XRenderSetPictureFilter(dmxScreen->beDisplay,
pPictPriv->pict, filter, params, nparams);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xorg-server-1.19.4/hw/xfree86/common/xf86DGA.c new/xorg-server-1.19.5/hw/xfree86/common/xf86DGA.c
--- old/xorg-server-1.19.4/hw/xfree86/common/xf86DGA.c 2017-10-04 23:57:01.000000000 +0200
+++ new/xorg-server-1.19.5/hw/xfree86/common/xf86DGA.c 2017-10-12 19:24:59.000000000 +0200
@@ -1272,13 +1272,14 @@
char *deviceName;
int nameSize;
+ REQUEST_SIZE_MATCH(xXDGAOpenFramebufferReq);
+
if (stuff->screen >= screenInfo.numScreens)
return BadValue;
if (!DGAAvailable(stuff->screen))
return DGAErrorBase + XF86DGANoDirectVideoMode;
- REQUEST_SIZE_MATCH(xXDGAOpenFramebufferReq);
rep.type = X_Reply;
rep.length = 0;
rep.sequenceNumber = client->sequence;
@@ -1305,14 +1306,14 @@
{
REQUEST(xXDGACloseFramebufferReq);
+ REQUEST_SIZE_MATCH(xXDGACloseFramebufferReq);
+
if (stuff->screen >= screenInfo.numScreens)
return BadValue;
if (!DGAAvailable(stuff->screen))
return DGAErrorBase + XF86DGANoDirectVideoMode;
- REQUEST_SIZE_MATCH(xXDGACloseFramebufferReq);
-
DGACloseFramebuffer(stuff->screen);
return Success;
@@ -1328,10 +1329,11 @@
xXDGAModeInfo info;
XDGAModePtr mode;
+ REQUEST_SIZE_MATCH(xXDGAQueryModesReq);
+
if (stuff->screen >= screenInfo.numScreens)
return BadValue;
- REQUEST_SIZE_MATCH(xXDGAQueryModesReq);
rep.type = X_Reply;
rep.length = 0;
rep.number = 0;
@@ -1443,11 +1445,12 @@
ClientPtr owner;
int size;
+ REQUEST_SIZE_MATCH(xXDGASetModeReq);
+
if (stuff->screen >= screenInfo.numScreens)
return BadValue;
owner = DGA_GETCLIENT(stuff->screen);
- REQUEST_SIZE_MATCH(xXDGASetModeReq);
rep.type = X_Reply;
rep.length = 0;
rep.offset = 0;
@@ -1533,14 +1536,14 @@
{
REQUEST(xXDGASetViewportReq);
+ REQUEST_SIZE_MATCH(xXDGASetViewportReq);
+
if (stuff->screen >= screenInfo.numScreens)
return BadValue;
if (DGA_GETCLIENT(stuff->screen) != client)
return DGAErrorBase + XF86DGADirectNotActivated;
- REQUEST_SIZE_MATCH(xXDGASetViewportReq);
-
DGASetViewport(stuff->screen, stuff->x, stuff->y, stuff->flags);
return Success;
@@ -1554,14 +1557,14 @@
REQUEST(xXDGAInstallColormapReq);
+ REQUEST_SIZE_MATCH(xXDGAInstallColormapReq);
+
if (stuff->screen >= screenInfo.numScreens)
return BadValue;
if (DGA_GETCLIENT(stuff->screen) != client)
return DGAErrorBase + XF86DGADirectNotActivated;
- REQUEST_SIZE_MATCH(xXDGAInstallColormapReq);
-
rc = dixLookupResourceByType((void **) &cmap, stuff->cmap, RT_COLORMAP,
client, DixInstallAccess);
if (rc != Success)
@@ -1575,14 +1578,14 @@
{
REQUEST(xXDGASelectInputReq);
+ REQUEST_SIZE_MATCH(xXDGASelectInputReq);
+
if (stuff->screen >= screenInfo.numScreens)
return BadValue;
if (DGA_GETCLIENT(stuff->screen) != client)
return DGAErrorBase + XF86DGADirectNotActivated;
- REQUEST_SIZE_MATCH(xXDGASelectInputReq);
-
if (DGA_GETCLIENT(stuff->screen) == client)
DGASelectInput(stuff->screen, client, stuff->mask);
@@ -1594,14 +1597,14 @@
{
REQUEST(xXDGAFillRectangleReq);
+ REQUEST_SIZE_MATCH(xXDGAFillRectangleReq);
+
if (stuff->screen >= screenInfo.numScreens)
return BadValue;
if (DGA_GETCLIENT(stuff->screen) != client)
return DGAErrorBase + XF86DGADirectNotActivated;
- REQUEST_SIZE_MATCH(xXDGAFillRectangleReq);
-
if (Success != DGAFillRect(stuff->screen, stuff->x, stuff->y,
stuff->width, stuff->height, stuff->color))
return BadMatch;
@@ -1614,14 +1617,14 @@
{
REQUEST(xXDGACopyAreaReq);
+ REQUEST_SIZE_MATCH(xXDGACopyAreaReq);
+
if (stuff->screen >= screenInfo.numScreens)
return BadValue;
if (DGA_GETCLIENT(stuff->screen) != client)
return DGAErrorBase + XF86DGADirectNotActivated;
- REQUEST_SIZE_MATCH(xXDGACopyAreaReq);
-
if (Success != DGABlitRect(stuff->screen, stuff->srcx, stuff->srcy,
stuff->width, stuff->height, stuff->dstx,
stuff->dsty))
@@ -1635,14 +1638,14 @@
{
REQUEST(xXDGACopyTransparentAreaReq);
+ REQUEST_SIZE_MATCH(xXDGACopyTransparentAreaReq);
+
if (stuff->screen >= screenInfo.numScreens)
return BadValue;
if (DGA_GETCLIENT(stuff->screen) != client)
return DGAErrorBase + XF86DGADirectNotActivated;
- REQUEST_SIZE_MATCH(xXDGACopyTransparentAreaReq);
-
if (Success != DGABlitTransRect(stuff->screen, stuff->srcx, stuff->srcy,
stuff->width, stuff->height, stuff->dstx,
stuff->dsty, stuff->key))
@@ -1657,13 +1660,14 @@
REQUEST(xXDGAGetViewportStatusReq);
xXDGAGetViewportStatusReply rep;
+ REQUEST_SIZE_MATCH(xXDGAGetViewportStatusReq);
+
if (stuff->screen >= screenInfo.numScreens)
return BadValue;
if (DGA_GETCLIENT(stuff->screen) != client)
return DGAErrorBase + XF86DGADirectNotActivated;
- REQUEST_SIZE_MATCH(xXDGAGetViewportStatusReq);
rep.type = X_Reply;
rep.length = 0;
rep.sequenceNumber = client->sequence;
@@ -1680,13 +1684,14 @@
REQUEST(xXDGASyncReq);
xXDGASyncReply rep;
+ REQUEST_SIZE_MATCH(xXDGASyncReq);
+
if (stuff->screen >= screenInfo.numScreens)
return BadValue;
if (DGA_GETCLIENT(stuff->screen) != client)
return DGAErrorBase + XF86DGADirectNotActivated;
- REQUEST_SIZE_MATCH(xXDGASyncReq);
rep.type = X_Reply;
rep.length = 0;
rep.sequenceNumber = client->sequence;
@@ -1725,13 +1730,14 @@
xXDGAChangePixmapModeReply rep;
int x, y;
+ REQUEST_SIZE_MATCH(xXDGAChangePixmapModeReq);
+
if (stuff->screen >= screenInfo.numScreens)
return BadValue;
if (DGA_GETCLIENT(stuff->screen) != client)
return DGAErrorBase + XF86DGADirectNotActivated;
- REQUEST_SIZE_MATCH(xXDGAChangePixmapModeReq);
rep.type = X_Reply;
rep.length = 0;
rep.sequenceNumber = client->sequence;
@@ -1755,14 +1761,14 @@
REQUEST(xXDGACreateColormapReq);
int result;
+ REQUEST_SIZE_MATCH(xXDGACreateColormapReq);
+
if (stuff->screen >= screenInfo.numScreens)
return BadValue;
if (DGA_GETCLIENT(stuff->screen) != client)
return DGAErrorBase + XF86DGADirectNotActivated;
- REQUEST_SIZE_MATCH(xXDGACreateColormapReq);
-
if (!stuff->mode)
return BadValue;
@@ -1791,10 +1797,11 @@
int num, offset, flags;
char *name;
+ REQUEST_SIZE_MATCH(xXF86DGAGetVideoLLReq);
+
if (stuff->screen >= screenInfo.numScreens)
return BadValue;
- REQUEST_SIZE_MATCH(xXF86DGAGetVideoLLReq);
rep.type = X_Reply;
rep.length = 0;
rep.sequenceNumber = client->sequence;
@@ -1831,9 +1838,10 @@
REQUEST(xXF86DGADirectVideoReq);
+ REQUEST_SIZE_MATCH(xXF86DGADirectVideoReq);
+
if (stuff->screen >= screenInfo.numScreens)
return BadValue;
- REQUEST_SIZE_MATCH(xXF86DGADirectVideoReq);
if (!DGAAvailable(stuff->screen))
return DGAErrorBase + XF86DGANoDirectVideoMode;
@@ -1889,10 +1897,11 @@
REQUEST(xXF86DGAGetViewPortSizeReq);
xXF86DGAGetViewPortSizeReply rep;
+ REQUEST_SIZE_MATCH(xXF86DGAGetViewPortSizeReq);
+
if (stuff->screen >= screenInfo.numScreens)
return BadValue;
- REQUEST_SIZE_MATCH(xXF86DGAGetViewPortSizeReq);
rep.type = X_Reply;
rep.length = 0;
rep.sequenceNumber = client->sequence;
@@ -1917,14 +1926,14 @@
{
REQUEST(xXF86DGASetViewPortReq);
+ REQUEST_SIZE_MATCH(xXF86DGASetViewPortReq);
+
if (stuff->screen >= screenInfo.numScreens)
return BadValue;
if (DGA_GETCLIENT(stuff->screen) != client)
return DGAErrorBase + XF86DGADirectNotActivated;
- REQUEST_SIZE_MATCH(xXF86DGASetViewPortReq);
-
if (!DGAAvailable(stuff->screen))
return DGAErrorBase + XF86DGANoDirectVideoMode;
@@ -1944,10 +1953,11 @@
REQUEST(xXF86DGAGetVidPageReq);
xXF86DGAGetVidPageReply rep;
+ REQUEST_SIZE_MATCH(xXF86DGAGetVidPageReq);
+
if (stuff->screen >= screenInfo.numScreens)
return BadValue;
- REQUEST_SIZE_MATCH(xXF86DGAGetVidPageReq);
rep.type = X_Reply;
rep.length = 0;
rep.sequenceNumber = client->sequence;
@@ -1962,11 +1972,11 @@
{
REQUEST(xXF86DGASetVidPageReq);
+ REQUEST_SIZE_MATCH(xXF86DGASetVidPageReq);
+
if (stuff->screen >= screenInfo.numScreens)
return BadValue;
- REQUEST_SIZE_MATCH(xXF86DGASetVidPageReq);
-
/* silently fail */
return Success;
@@ -1980,14 +1990,14 @@
REQUEST(xXF86DGAInstallColormapReq);
+ REQUEST_SIZE_MATCH(xXF86DGAInstallColormapReq);
+
if (stuff->screen >= screenInfo.numScreens)
return BadValue;
if (DGA_GETCLIENT(stuff->screen) != client)
return DGAErrorBase + XF86DGADirectNotActivated;
- REQUEST_SIZE_MATCH(xXF86DGAInstallColormapReq);
-
if (!DGAActive(stuff->screen))
return DGAErrorBase + XF86DGADirectNotActivated;
@@ -2008,10 +2018,11 @@
REQUEST(xXF86DGAQueryDirectVideoReq);
xXF86DGAQueryDirectVideoReply rep;
+ REQUEST_SIZE_MATCH(xXF86DGAQueryDirectVideoReq);
+
if (stuff->screen >= screenInfo.numScreens)
return BadValue;
- REQUEST_SIZE_MATCH(xXF86DGAQueryDirectVideoReq);
rep.type = X_Reply;
rep.length = 0;
rep.sequenceNumber = client->sequence;
@@ -2030,14 +2041,14 @@
REQUEST(xXF86DGAViewPortChangedReq);
xXF86DGAViewPortChangedReply rep;
+ REQUEST_SIZE_MATCH(xXF86DGAViewPortChangedReq);
+
if (stuff->screen >= screenInfo.numScreens)
return BadValue;
if (DGA_GETCLIENT(stuff->screen) != client)
return DGAErrorBase + XF86DGADirectNotActivated;
- REQUEST_SIZE_MATCH(xXF86DGAViewPortChangedReq);
-
if (!DGAActive(stuff->screen))
return DGAErrorBase + XF86DGADirectNotActivated;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xorg-server-1.19.4/hw/xfree86/dri/xf86dri.c new/xorg-server-1.19.5/hw/xfree86/dri/xf86dri.c
--- old/xorg-server-1.19.4/hw/xfree86/dri/xf86dri.c 2017-10-04 23:57:01.000000000 +0200
+++ new/xorg-server-1.19.5/hw/xfree86/dri/xf86dri.c 2017-10-12 19:24:59.000000000 +0200
@@ -570,6 +570,7 @@
SProcXF86DRIQueryDirectRenderingCapable(register ClientPtr client)
{
REQUEST(xXF86DRIQueryDirectRenderingCapableReq);
+ REQUEST_SIZE_MATCH(xXF86DRIQueryDirectRenderingCapableReq);
swaps(&stuff->length);
swapl(&stuff->screen);
return ProcXF86DRIQueryDirectRenderingCapable(client);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xorg-server-1.19.4/hw/xfree86/drivers/modesetting/dri2.c new/xorg-server-1.19.5/hw/xfree86/drivers/modesetting/dri2.c
--- old/xorg-server-1.19.4/hw/xfree86/drivers/modesetting/dri2.c 2017-10-04 23:57:01.000000000 +0200
+++ new/xorg-server-1.19.5/hw/xfree86/drivers/modesetting/dri2.c 2017-10-12 19:24:59.000000000 +0200
@@ -695,16 +695,19 @@
{
ScreenPtr screen = draw->pScreen;
ScrnInfoPtr scrn = xf86ScreenToScrn(screen);
+ modesettingPtr ms = modesettingPTR(scrn);
ms_dri2_frame_event_ptr wait_info;
+ drmVBlank vbl;
int ret;
xf86CrtcPtr crtc = ms_dri2_crtc_covering_drawable(draw);
+ drmmode_crtc_private_ptr drmmode_crtc;
CARD64 current_msc, current_ust, request_msc;
uint32_t seq;
- uint64_t queued_msc;
/* Drawable not visible, return immediately */
if (!crtc)
goto out_complete;
+ drmmode_crtc = crtc->driver_private;
wait_info = calloc(1, sizeof(*wait_info));
if (!wait_info)
@@ -744,8 +747,13 @@
if (current_msc >= target_msc)
target_msc = current_msc;
+ vbl.request.type = (DRM_VBLANK_ABSOLUTE |
+ DRM_VBLANK_EVENT |
+ drmmode_crtc->vblank_pipe);
+ vbl.request.sequence = ms_crtc_msc_to_kernel_msc(crtc, target_msc);
+ vbl.request.signal = (unsigned long)seq;
- ret = ms_queue_vblank(crtc, MS_QUEUE_ABSOLUTE, target_msc, &queued_msc, seq);
+ ret = drmWaitVBlank(ms->fd, &vbl);
if (ret) {
static int limit = 5;
if (limit) {
@@ -758,7 +766,7 @@
goto out_free;
}
- wait_info->frame = queued_msc;
+ wait_info->frame = ms_kernel_msc_to_crtc_msc(crtc, vbl.reply.sequence);
DRI2BlockClient(client, draw);
return TRUE;
}
@@ -767,6 +775,9 @@
* If we get here, target_msc has already passed or we don't have one,
* so we queue an event that will satisfy the divisor/remainder equation.
*/
+ vbl.request.type =
+ DRM_VBLANK_ABSOLUTE | DRM_VBLANK_EVENT | drmmode_crtc->vblank_pipe;
+
request_msc = current_msc - (current_msc % divisor) +
remainder;
/*
@@ -784,7 +795,11 @@
if (!seq)
goto out_free;
- if (!ms_queue_vblank(crtc, MS_QUEUE_ABSOLUTE, request_msc, &queued_msc, seq)) {
+ vbl.request.sequence = ms_crtc_msc_to_kernel_msc(crtc, request_msc);
+ vbl.request.signal = (unsigned long)seq;
+
+ ret = drmWaitVBlank(ms->fd, &vbl);
+ if (ret) {
static int limit = 5;
if (limit) {
xf86DrvMsg(scrn->scrnIndex, X_WARNING,
@@ -796,8 +811,7 @@
goto out_free;
}
- wait_info->frame = queued_msc;
-
+ wait_info->frame = ms_kernel_msc_to_crtc_msc(crtc, vbl.reply.sequence);
DRI2BlockClient(client, draw);
return TRUE;
@@ -825,18 +839,20 @@
{
ScreenPtr screen = draw->pScreen;
ScrnInfoPtr scrn = xf86ScreenToScrn(screen);
+ modesettingPtr ms = modesettingPTR(scrn);
+ drmVBlank vbl;
int ret, flip = 0;
xf86CrtcPtr crtc = ms_dri2_crtc_covering_drawable(draw);
+ drmmode_crtc_private_ptr drmmode_crtc;
ms_dri2_frame_event_ptr frame_info = NULL;
uint64_t current_msc, current_ust;
uint64_t request_msc;
uint32_t seq;
- ms_queue_flag ms_flag = MS_QUEUE_ABSOLUTE;
- uint64_t queued_msc;
/* Drawable not displayed... just complete the swap */
if (!crtc)
goto blit_fallback;
+ drmmode_crtc = crtc->driver_private;
frame_info = calloc(1, sizeof(*frame_info));
if (!frame_info)
@@ -862,8 +878,6 @@
ms_dri2_reference_buffer(back);
ret = ms_get_crtc_ust_msc(crtc, ¤t_ust, ¤t_msc);
- if (ret != Success)
- goto blit_fallback;
/* Flips need to be submitted one frame before */
if (can_flip(scrn, draw, front, back)) {
@@ -878,19 +892,22 @@
if (*target_msc > 0)
*target_msc -= flip;
- /* If non-pageflipping, but blitting/exchanging, we need to use
- * DRM_VBLANK_NEXTONMISS to avoid unreliable timestamping later
- * on.
- */
- if (flip == 0)
- ms_flag |= MS_QUEUE_NEXT_ON_MISS;
-
/*
* If divisor is zero, or current_msc is smaller than target_msc
* we just need to make sure target_msc passes before initiating
* the swap.
*/
if (divisor == 0 || current_msc < *target_msc) {
+ vbl.request.type = (DRM_VBLANK_ABSOLUTE |
+ DRM_VBLANK_EVENT |
+ drmmode_crtc->vblank_pipe);
+
+ /* If non-pageflipping, but blitting/exchanging, we need to use
+ * DRM_VBLANK_NEXTONMISS to avoid unreliable timestamping later
+ * on.
+ */
+ if (flip == 0)
+ vbl.request.type |= DRM_VBLANK_NEXTONMISS;
/* If target_msc already reached or passed, set it to
* current_msc to ensure we return a reasonable value back
@@ -905,14 +922,19 @@
if (!seq)
goto blit_fallback;
- if (!ms_queue_vblank(crtc, ms_flag, *target_msc, &queued_msc, seq)) {
+ vbl.request.sequence = ms_crtc_msc_to_kernel_msc(crtc, *target_msc);
+ vbl.request.signal = (unsigned long)seq;
+
+ ret = drmWaitVBlank(ms->fd, &vbl);
+ if (ret) {
xf86DrvMsg(scrn->scrnIndex, X_WARNING,
"divisor 0 get vblank counter failed: %s\n",
strerror(errno));
goto blit_fallback;
}
- *target_msc = queued_msc + flip;
+ *target_msc = ms_kernel_msc_to_crtc_msc(crtc,
+ vbl.reply.sequence + flip);
frame_info->frame = *target_msc;
return TRUE;
@@ -923,6 +945,11 @@
* and we need to queue an event that will satisfy the divisor/remainder
* equation.
*/
+ vbl.request.type = (DRM_VBLANK_ABSOLUTE |
+ DRM_VBLANK_EVENT |
+ drmmode_crtc->vblank_pipe);
+ if (flip == 0)
+ vbl.request.type |= DRM_VBLANK_NEXTONMISS;
request_msc = current_msc - (current_msc % divisor) +
remainder;
@@ -939,6 +966,7 @@
if (request_msc <= current_msc)
request_msc += divisor;
+
seq = ms_drm_queue_alloc(crtc, frame_info,
ms_dri2_frame_event_handler,
ms_dri2_frame_event_abort);
@@ -946,7 +974,11 @@
goto blit_fallback;
/* Account for 1 frame extra pageflip delay if flip > 0 */
- if (!ms_queue_vblank(crtc, ms_flag, request_msc - flip, &queued_msc, seq)) {
+ vbl.request.sequence = ms_crtc_msc_to_kernel_msc(crtc, request_msc) - flip;
+ vbl.request.signal = (unsigned long)seq;
+
+ ret = drmWaitVBlank(ms->fd, &vbl);
+ if (ret) {
xf86DrvMsg(scrn->scrnIndex, X_WARNING,
"final get vblank counter failed: %s\n",
strerror(errno));
@@ -954,7 +986,7 @@
}
/* Adjust returned value for 1 fame pageflip offset of flip > 0 */
- *target_msc = queued_msc + flip;
+ *target_msc = ms_kernel_msc_to_crtc_msc(crtc, vbl.reply.sequence + flip);
frame_info->frame = *target_msc;
return TRUE;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xorg-server-1.19.4/hw/xfree86/drivers/modesetting/driver.h new/xorg-server-1.19.5/hw/xfree86/drivers/modesetting/driver.h
--- old/xorg-server-1.19.4/hw/xfree86/drivers/modesetting/driver.h 2017-10-04 23:57:01.000000000 +0200
+++ new/xorg-server-1.19.5/hw/xfree86/drivers/modesetting/driver.h 2017-10-12 19:24:59.000000000 +0200
@@ -119,10 +119,6 @@
Bool dirty_enabled;
uint32_t cursor_width, cursor_height;
-
- Bool has_queue_sequence;
- Bool tried_queue_sequence;
-
} modesettingRec, *modesettingPtr;
#define modesettingPTR(p) ((modesettingPtr)((p)->driverPrivate))
@@ -133,15 +129,6 @@
ms_drm_handler_proc handler,
ms_drm_abort_proc abort);
-typedef enum ms_queue_flag {
- MS_QUEUE_ABSOLUTE = 0,
- MS_QUEUE_RELATIVE = 1,
- MS_QUEUE_NEXT_ON_MISS = 2
-} ms_queue_flag;
-
-Bool ms_queue_vblank(xf86CrtcPtr crtc, ms_queue_flag flags,
- uint64_t msc, uint64_t *msc_queued, uint32_t seq);
-
void ms_drm_abort(ScrnInfoPtr scrn,
Bool (*match)(void *data, void *match_data),
void *match_data);
@@ -153,8 +140,8 @@
int ms_get_crtc_ust_msc(xf86CrtcPtr crtc, CARD64 *ust, CARD64 *msc);
-uint64_t ms_crtc_msc_to_kernel_msc(xf86CrtcPtr crtc, uint64_t expect);
-uint64_t ms_kernel_msc_to_crtc_msc(xf86CrtcPtr crtc, uint64_t sequence);
+uint32_t ms_crtc_msc_to_kernel_msc(xf86CrtcPtr crtc, uint64_t expect);
+uint64_t ms_kernel_msc_to_crtc_msc(xf86CrtcPtr crtc, uint32_t sequence);
Bool ms_dri2_screen_init(ScreenPtr screen);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xorg-server-1.19.4/hw/xfree86/drivers/modesetting/drmmode_display.c new/xorg-server-1.19.5/hw/xfree86/drivers/modesetting/drmmode_display.c
--- old/xorg-server-1.19.4/hw/xfree86/drivers/modesetting/drmmode_display.c 2017-10-04 23:57:01.000000000 +0200
+++ new/xorg-server-1.19.5/hw/xfree86/drivers/modesetting/drmmode_display.c 2017-10-12 19:24:59.000000000 +0200
@@ -279,6 +279,8 @@
{
drmmode_crtc_private_ptr drmmode_crtc = crtc->driver_private;
msPixmapPrivPtr ppriv = msGetPixmapPriv(drmmode, ppix);
+
+ drmVBlank vbl;
struct vblank_event_args *event_args;
if (ppix == drmmode_crtc->prime_pixmap)
@@ -301,7 +303,12 @@
drmmode_SharedPixmapVBlankEventHandler,
drmmode_SharedPixmapVBlankEventAbort);
- return ms_queue_vblank(crtc, MS_QUEUE_RELATIVE, 1, NULL, ppriv->flip_seq);
+ vbl.request.type =
+ DRM_VBLANK_RELATIVE | DRM_VBLANK_EVENT | drmmode_crtc->vblank_pipe;
+ vbl.request.sequence = 1;
+ vbl.request.signal = (unsigned long) ppriv->flip_seq;
+
+ return drmWaitVBlank(drmmode->fd, &vbl) >= 0;
}
Bool
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xorg-server-1.19.4/hw/xfree86/drivers/modesetting/present.c new/xorg-server-1.19.5/hw/xfree86/drivers/modesetting/present.c
--- old/xorg-server-1.19.4/hw/xfree86/drivers/modesetting/present.c 2017-10-04 23:57:01.000000000 +0200
+++ new/xorg-server-1.19.5/hw/xfree86/drivers/modesetting/present.c 2017-10-12 19:24:59.000000000 +0200
@@ -109,7 +109,13 @@
uint64_t msc)
{
xf86CrtcPtr xf86_crtc = crtc->devPrivate;
+ ScreenPtr screen = crtc->pScreen;
+ ScrnInfoPtr scrn = xf86ScreenToScrn(screen);
+ modesettingPtr ms = modesettingPTR(scrn);
+ drmmode_crtc_private_ptr drmmode_crtc = xf86_crtc->driver_private;
struct ms_present_vblank_event *event;
+ drmVBlank vbl;
+ int ret;
uint32_t seq;
event = calloc(sizeof(struct ms_present_vblank_event), 1);
@@ -124,9 +130,22 @@
return BadAlloc;
}
- if (!ms_queue_vblank(xf86_crtc, MS_QUEUE_ABSOLUTE, msc, NULL, seq))
- return BadAlloc;
-
+ vbl.request.type =
+ DRM_VBLANK_ABSOLUTE | DRM_VBLANK_EVENT | drmmode_crtc->vblank_pipe;
+ vbl.request.sequence = ms_crtc_msc_to_kernel_msc(xf86_crtc, msc);
+ vbl.request.signal = seq;
+ for (;;) {
+ ret = drmWaitVBlank(ms->fd, &vbl);
+ if (!ret)
+ break;
+ /* If we hit EBUSY, then try to flush events. If we can't, then
+ * this is an error.
+ */
+ if (errno != EBUSY || ms_flush_drm_events(screen) < 0) {
+ ms_drm_abort_seq(scrn, seq);
+ return BadAlloc;
+ }
+ }
DebugPresent(("\t\tmq %lld seq %u msc %llu (hw msc %u)\n",
(long long) event_id, seq, (long long) msc,
vbl.request.sequence));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xorg-server-1.19.4/hw/xfree86/drivers/modesetting/vblank.c new/xorg-server-1.19.5/hw/xfree86/drivers/modesetting/vblank.c
--- old/xorg-server-1.19.4/hw/xfree86/drivers/modesetting/vblank.c 2017-10-04 23:57:01.000000000 +0200
+++ new/xorg-server-1.19.5/hw/xfree86/drivers/modesetting/vblank.c 2017-10-12 19:24:59.000000000 +0200
@@ -173,7 +173,7 @@
static Bool
ms_get_kernel_ust_msc(xf86CrtcPtr crtc,
- uint64_t *msc, uint64_t *ust)
+ uint32_t *msc, uint64_t *ust)
{
ScreenPtr screen = crtc->randr_crtc->pScreen;
ScrnInfoPtr scrn = xf86ScreenToScrn(screen);
@@ -198,50 +198,13 @@
}
}
-Bool
-ms_queue_vblank(xf86CrtcPtr crtc, ms_queue_flag flags,
- uint64_t msc, uint64_t *msc_queued, uint32_t seq)
-{
- ScreenPtr screen = crtc->randr_crtc->pScreen;
- ScrnInfoPtr scrn = xf86ScreenToScrn(screen);
- modesettingPtr ms = modesettingPTR(scrn);
- drmmode_crtc_private_ptr drmmode_crtc = crtc->driver_private;
- drmVBlank vbl;
- int ret;
-
- for (;;) {
- /* Queue an event at the specified sequence */
- vbl.request.type = DRM_VBLANK_EVENT | drmmode_crtc->vblank_pipe;
- if (flags & MS_QUEUE_RELATIVE)
- vbl.request.type |= DRM_VBLANK_RELATIVE;
- else
- vbl.request.type |= DRM_VBLANK_ABSOLUTE;
- if (flags & MS_QUEUE_NEXT_ON_MISS)
- vbl.request.type |= DRM_VBLANK_NEXTONMISS;
-
- vbl.request.sequence = ms_crtc_msc_to_kernel_msc(crtc, msc);
- vbl.request.signal = seq;
- ret = drmWaitVBlank(ms->fd, &vbl);
- if (ret == 0) {
- if (msc_queued)
- *msc_queued = ms_kernel_msc_to_crtc_msc(crtc, vbl.reply.sequence);
- return TRUE;
- }
- if (errno != EBUSY) {
- ms_drm_abort_seq(scrn, msc);
- return FALSE;
- }
- ms_flush_drm_events(screen);
- }
-}
-
/**
* Convert a 32-bit kernel MSC sequence number to a 64-bit local sequence
* number, adding in the vblank_offset and high 32 bits, and dealing
* with 64-bit wrapping
*/
uint64_t
-ms_kernel_msc_to_crtc_msc(xf86CrtcPtr crtc, uint64_t sequence)
+ms_kernel_msc_to_crtc_msc(xf86CrtcPtr crtc, uint32_t sequence)
{
drmmode_crtc_private_rec *drmmode_crtc = crtc->driver_private;
sequence += drmmode_crtc->vblank_offset;
@@ -255,7 +218,7 @@
int
ms_get_crtc_ust_msc(xf86CrtcPtr crtc, CARD64 *ust, CARD64 *msc)
{
- uint64_t kernel_msc;
+ uint32_t kernel_msc;
if (!ms_get_kernel_ust_msc(crtc, &kernel_msc, ust))
return BadMatch;
@@ -267,13 +230,13 @@
#define MAX_VBLANK_OFFSET 1000
/**
- * Convert a 64-bit adjusted MSC value into a 64-bit kernel sequence number,
- * by subtracting out the vblank_offset term.
+ * Convert a 64-bit adjusted MSC value into a 32-bit kernel sequence number,
+ * removing the high 32 bits and subtracting out the vblank_offset term.
*
* This also updates the vblank_offset when it notices that the value should
* change.
*/
-uint64_t
+uint32_t
ms_crtc_msc_to_kernel_msc(xf86CrtcPtr crtc, uint64_t expect)
{
drmmode_crtc_private_rec *drmmode_crtc = crtc->driver_private;
@@ -294,7 +257,7 @@
drmmode_crtc->vblank_offset = 0;
}
}
- return (expect - drmmode_crtc->vblank_offset);
+ return (uint32_t) (expect - drmmode_crtc->vblank_offset);
}
/**
@@ -412,31 +375,25 @@
* drm event queue and calls the handler for it.
*/
static void
-ms_drm_sequence_handler(int fd, uint64_t frame, uint64_t ns, uint64_t user_data)
+ms_drm_handler(int fd, uint32_t frame, uint32_t sec, uint32_t usec,
+ void *user_ptr)
{
struct ms_drm_queue *q, *tmp;
- uint32_t seq = (uint32_t) user_data;
+ uint32_t user_data = (uint32_t) (intptr_t) user_ptr;
xorg_list_for_each_entry_safe(q, tmp, &ms_drm_queue, list) {
- if (q->seq == seq) {
+ if (q->seq == user_data) {
uint64_t msc;
msc = ms_kernel_msc_to_crtc_msc(q->crtc, frame);
xorg_list_del(&q->list);
- q->handler(msc, ns / 1000, q->data);
+ q->handler(msc, (uint64_t) sec * 1000000 + usec, q->data);
free(q);
break;
}
}
}
-static void
-ms_drm_handler(int fd, uint32_t frame, uint32_t sec, uint32_t usec,
- void *user_ptr)
-{
- ms_drm_sequence_handler(fd, frame, ((uint64_t) sec * 1000000 + usec) * 1000, (uint32_t) (uintptr_t) user_ptr);
-}
-
Bool
ms_vblank_screen_init(ScreenPtr screen)
{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xorg-server-1.19.4/missing new/xorg-server-1.19.5/missing
--- old/xorg-server-1.19.4/missing 2017-10-04 23:57:16.000000000 +0200
+++ new/xorg-server-1.19.5/missing 2017-10-12 19:25:15.000000000 +0200
@@ -1,9 +1,9 @@
#! /bin/sh
# Common wrapper for a few potentially missing GNU programs.
-scriptversion=2013-10-28.13; # UTC
+scriptversion=2016-01-11.22; # UTC
-# Copyright (C) 1996-2014 Free Software Foundation, Inc.
+# Copyright (C) 1996-2017 Free Software Foundation, Inc.
# Originally written by Fran,cois Pinard , 1996.
# This program is free software; you can redistribute it and/or modify
@@ -210,6 +210,6 @@
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC"
+# time-stamp-time-zone: "UTC0"
# time-stamp-end: "; # UTC"
# End:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xorg-server-1.19.4/os/io.c new/xorg-server-1.19.5/os/io.c
--- old/xorg-server-1.19.4/os/io.c 2017-10-04 23:57:01.000000000 +0200
+++ new/xorg-server-1.19.5/os/io.c 2017-10-12 19:24:59.000000000 +0200
@@ -441,6 +441,11 @@
if (!gotnow)
AvailableInput = oc;
if (move_header) {
+ if (client->req_len < bytes_to_int32(sizeof(xBigReq) - sizeof(xReq))) {
+ YieldControlDeath();
+ return -1;
+ }
+
request = (xReq *) oci->bufptr;
oci->bufptr += (sizeof(xBigReq) - sizeof(xReq));
*(xReq *) oci->bufptr = *request;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xorg-server-1.19.4/pseudoramiX/pseudoramiX.c new/xorg-server-1.19.5/pseudoramiX/pseudoramiX.c
--- old/xorg-server-1.19.4/pseudoramiX/pseudoramiX.c 2017-10-04 23:57:01.000000000 +0200
+++ new/xorg-server-1.19.5/pseudoramiX/pseudoramiX.c 2017-10-12 19:24:59.000000000 +0200
@@ -297,10 +297,11 @@
TRACE;
+ REQUEST_SIZE_MATCH(xPanoramiXGetScreenSizeReq);
+
if (stuff->screen >= pseudoramiXNumScreens)
return BadMatch;
- REQUEST_SIZE_MATCH(xPanoramiXGetScreenSizeReq);
rc = dixLookupWindow(&pWin, stuff->window, client, DixGetAttrAccess);
if (rc != Success)
return rc;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xorg-server-1.19.4/render/render.c new/xorg-server-1.19.5/render/render.c
--- old/xorg-server-1.19.4/render/render.c 2017-10-04 23:57:01.000000000 +0200
+++ new/xorg-server-1.19.5/render/render.c 2017-10-12 19:24:59.000000000 +0200
@@ -1757,6 +1757,9 @@
name = (char *) (stuff + 1);
params = (xFixed *) (name + pad_to_int32(stuff->nbytes));
nparams = ((xFixed *) stuff + client->req_len) - params;
+ if (nparams < 0)
+ return BadLength;
+
result = SetPictureFilter(pPicture, name, stuff->nbytes, params, nparams);
return result;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xorg-server-1.19.4/test-driver new/xorg-server-1.19.5/test-driver
--- old/xorg-server-1.19.4/test-driver 2017-10-04 23:57:22.000000000 +0200
+++ new/xorg-server-1.19.5/test-driver 2017-10-12 19:25:20.000000000 +0200
@@ -1,9 +1,9 @@
#! /bin/sh
# test-driver - basic testsuite driver script.
-scriptversion=2013-07-13.22; # UTC
+scriptversion=2016-01-11.22; # UTC
-# Copyright (C) 2011-2014 Free Software Foundation, Inc.
+# Copyright (C) 2011-2017 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -143,6 +143,6 @@
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC"
+# time-stamp-time-zone: "UTC0"
# time-stamp-end: "; # UTC"
# End:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xorg-server-1.19.4/xfixes/cursor.c new/xorg-server-1.19.5/xfixes/cursor.c
--- old/xorg-server-1.19.4/xfixes/cursor.c 2017-10-04 23:57:01.000000000 +0200
+++ new/xorg-server-1.19.5/xfixes/cursor.c 2017-10-12 19:24:59.000000000 +0200
@@ -281,6 +281,7 @@
SProcXFixesSelectCursorInput(ClientPtr client)
{
REQUEST(xXFixesSelectCursorInputReq);
+ REQUEST_SIZE_MATCH(xXFixesSelectCursorInputReq);
swaps(&stuff->length);
swapl(&stuff->window);
@@ -414,7 +415,7 @@
REQUEST(xXFixesSetCursorNameReq);
Atom atom;
- REQUEST_AT_LEAST_SIZE(xXFixesSetCursorNameReq);
+ REQUEST_FIXED_SIZE(xXFixesSetCursorNameReq, stuff->nbytes);
VERIFY_CURSOR(pCursor, stuff->cursor, client, DixSetAttrAccess);
tchar = (char *) &stuff[1];
atom = MakeAtom(tchar, stuff->nbytes, TRUE);
@@ -1007,6 +1008,8 @@
int i;
CARD16 *in_devices = (CARD16 *) &stuff[1];
+ REQUEST_AT_LEAST_SIZE(xXFixesCreatePointerBarrierReq);
+
swaps(&stuff->length);
swaps(&stuff->num_devices);
REQUEST_FIXED_SIZE(xXFixesCreatePointerBarrierReq, pad_to_int32(stuff->num_devices));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xorg-server-1.19.4/xfixes/region.c new/xorg-server-1.19.5/xfixes/region.c
--- old/xorg-server-1.19.4/xfixes/region.c 2017-10-04 23:57:01.000000000 +0200
+++ new/xorg-server-1.19.5/xfixes/region.c 2017-10-12 19:24:59.000000000 +0200
@@ -359,6 +359,7 @@
RegionPtr pSource, pDestination;
REQUEST(xXFixesCopyRegionReq);
+ REQUEST_SIZE_MATCH(xXFixesCopyRegionReq);
VERIFY_REGION(pSource, stuff->source, client, DixReadAccess);
VERIFY_REGION(pDestination, stuff->destination, client, DixWriteAccess);
@@ -375,7 +376,7 @@
REQUEST(xXFixesCopyRegionReq);
swaps(&stuff->length);
- REQUEST_AT_LEAST_SIZE(xXFixesCopyRegionReq);
+ REQUEST_SIZE_MATCH(xXFixesCopyRegionReq);
swapl(&stuff->source);
swapl(&stuff->destination);
return (*ProcXFixesVector[stuff->xfixesReqType]) (client);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xorg-server-1.19.4/xfixes/saveset.c new/xorg-server-1.19.5/xfixes/saveset.c
--- old/xorg-server-1.19.4/xfixes/saveset.c 2017-10-04 23:57:01.000000000 +0200
+++ new/xorg-server-1.19.5/xfixes/saveset.c 2017-10-12 19:24:59.000000000 +0200
@@ -62,6 +62,7 @@
SProcXFixesChangeSaveSet(ClientPtr client)
{
REQUEST(xXFixesChangeSaveSetReq);
+ REQUEST_SIZE_MATCH(xXFixesChangeSaveSetReq);
swaps(&stuff->length);
swapl(&stuff->window);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xorg-server-1.19.4/xfixes/xfixes.c new/xorg-server-1.19.5/xfixes/xfixes.c
--- old/xorg-server-1.19.4/xfixes/xfixes.c 2017-10-04 23:57:01.000000000 +0200
+++ new/xorg-server-1.19.5/xfixes/xfixes.c 2017-10-12 19:24:59.000000000 +0200
@@ -160,6 +160,7 @@
SProcXFixesQueryVersion(ClientPtr client)
{
REQUEST(xXFixesQueryVersionReq);
+ REQUEST_SIZE_MATCH(xXFixesQueryVersionReq);
swaps(&stuff->length);
swapl(&stuff->majorVersion);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xorg-server-1.19.4/ylwrap new/xorg-server-1.19.5/ylwrap
--- old/xorg-server-1.19.4/ylwrap 2017-10-04 23:57:21.000000000 +0200
+++ new/xorg-server-1.19.5/ylwrap 2017-10-12 19:25:19.000000000 +0200
@@ -1,9 +1,9 @@
#! /bin/sh
# ylwrap - wrapper for lex/yacc invocations.
-scriptversion=2013-01-12.17; # UTC
+scriptversion=2016-01-11.22; # UTC
-# Copyright (C) 1996-2014 Free Software Foundation, Inc.
+# Copyright (C) 1996-2017 Free Software Foundation, Inc.
#
# Written by Tom Tromey .
#
@@ -242,6 +242,6 @@
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC"
+# time-stamp-time-zone: "UTC0"
# time-stamp-end: "; # UTC"
# End: