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.klausm...@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 <a...@redhat.com> +Date: Thu Oct 12 12:32:31 2017 -0400 + + xserver 1.19.5 + + Signed-off-by: Adam Jackson <a...@redhat.com> + +commit 95f605b42d8bbb6bea2834a1abfc205981c5b803 +Author: Nathan Kidd <nk...@opentext.com> +Date: Fri Jan 9 10:15:46 2015 -0500 + + Unvalidated extra length in ProcEstablishConnection (CVE-2017-12176) + + Reviewed-by: Julien Cristau <jcris...@debian.org> + Signed-off-by: Nathan Kidd <nk...@opentext.com> + Signed-off-by: Julien Cristau <jcris...@debian.org> + (cherry picked from commit b747da5e25be944337a9cd1415506fc06b70aa81) + +commit cc41e5b581d287c56f8d7113a97a4882dcfdd696 +Author: Nathan Kidd <nk...@opentext.com> +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 <alan.coopersm...@oracle.com> + Reviewed-by: Jeremy Huddleston Sequoia <jerem...@apple.com> + Reviewed-by: Julien Cristau <jcris...@debian.org> + Signed-off-by: Nathan Kidd <nk...@opentext.com> + Signed-off-by: Julien Cristau <jcris...@debian.org> + (cherry picked from commit 4ca68b878e851e2136c234f40a25008297d8d831) + +commit 6c15122163a2d2615db7e998e8d436815a08dec6 +Author: Nathan Kidd <nk...@opentext.com> +Date: Wed Dec 24 16:22:18 2014 -0500 + + Xi: fix wrong extra length check in ProcXIChangeHierarchy (CVE-2017-12178) + + Reviewed-by: Alan Coopersmith <alan.coopersm...@oracle.com> + Reviewed-by: Jeremy Huddleston Sequoia <jerem...@apple.com> + Reviewed-by: Julien Cristau <jcris...@debian.org> + Signed-off-by: Nathan Kidd <nk...@opentext.com> + Signed-off-by: Julien Cristau <jcris...@debian.org> + (cherry picked from commit 859b08d523307eebde7724fd1a0789c44813e821) + +commit c77cd08efcf386bcc5d8dfbd0427134b2b2d0888 +Author: Nathan Kidd <nk...@opentext.com> +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 <alan.coopersm...@oracle.com> + Reviewed-by: Jeremy Huddleston Sequoia <jerem...@apple.com> + Reviewed-by: Julien Cristau <jcris...@debian.org> + Signed-off-by: Jeremy Huddleston Sequoia <jerem...@apple.com> + Signed-off-by: Nathan Kidd <nk...@opentext.com> + Signed-off-by: Julien Cristau <jcris...@debian.org> + (cherry picked from commit d088e3c1286b548a58e62afdc70bb40981cdb9e8) + +commit d264da92f7f8129b8aad4f0114a6467fc38fc896 +Author: Nathan Kidd <nk...@opentext.com> +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 <jerem...@apple.com> + Reviewed-by: Julien Cristau <jcris...@debian.org> + Signed-off-by: Nathan Kidd <nk...@opentext.com> + Signed-off-by: Julien Cristau <jcris...@debian.org> + (cherry picked from commit 1b1d4c04695dced2463404174b50b3581dbd857b) + +commit 61502107a30d64f991784648c3228ebc6694a032 +Author: Nathan Kidd <nk...@opentext.com> +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 <alan.coopersm...@oracle.com> + Reviewed-by: Jeremy Huddleston Sequoia <jerem...@apple.com> + Reviewed-by: Julien Cristau <jcris...@debian.org> + Signed-off-by: Jeremy Huddleston Sequoia <jerem...@apple.com> + Signed-off-by: Nathan Kidd <nk...@opentext.com> + Signed-off-by: Julien Cristau <jcris...@debian.org> + (cherry picked from commit 55caa8b08c84af2b50fbc936cf334a5a93dd7db5) + +commit c206f36a4b6ecf2555ab2291c349ab7d7d0b02f5 +Author: Nathan Kidd <nk...@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 <jerem...@apple.com> + Reviewed-by: Julien Cristau <jcris...@debian.org> + Signed-off-by: Nathan Kidd <nk...@opentext.com> + Signed-off-by: Julien Cristau <jcris...@debian.org> + (cherry picked from commit cad5a1050b7184d828aef9c1dd151c3ab649d37e) + +commit e751722a7b0c5b595794e60b054ade0b3f6cdb4d +Author: Michal Srb <m...@suse.com> +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 <e...@anholt.net> + Reviewed-by: Peter Hutterer <peter.hutte...@who-t.net> + (cherry picked from commit 9c23685009aa96f4b861dcc5d2e01dbee00c4dd9) + +commit 784d205ff6527c761ffbb1c43c9ad3669dd8d26e +Author: Adam Jackson <a...@redhat.com> +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 <a...@redhat.com> 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 <tro...@cygnus.com>. # # 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 <pin...@iro.umontreal.ca>, 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 <tro...@cygnus.com>. # @@ -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: