diff --git a/u_0001-os-make-sure-the-clientsWritable-fd_set-is-initializ.patch b/u_0001-os-make-sure-the-clientsWritable-fd_set-is-initializ.patch deleted file mode 100644 index 536e526..0000000 --- a/u_0001-os-make-sure-the-clientsWritable-fd_set-is-initializ.patch +++ /dev/null @@ -1,63 +0,0 @@ -From 7cc7ffd25d5e50b54cb942d07d4cb160f20ff9c5 Mon Sep 17 00:00:00 2001 -From: Martin Peres -Date: Fri, 17 Jul 2015 17:21:26 +0300 -Subject: [PATCH] os: make sure the clientsWritable fd_set is initialized - before use - -In WaitForSomething(), the fd_set clientsWritable may be used unitialized when -the boolean AnyClientsWriteBlocked is set in the WakeupHandler(). This leads to -a crash in FlushAllOutput() after x11proto's commit -2c94cdb453bc641246cc8b9a876da9799bee1ce7. - -The problem did not manifest before because both the XFD_SIZE and the maximum -number of clients were set to 256. As the connectionTranslation table was -initalized for the 256 clients to 0, the test on the index not being 0 was -aborting before dereferencing the client #0. - -As of commit 2c94cdb453bc641246cc8b9a876da9799bee1ce7 in x11proto, the XFD_SIZE -got bumped to 512. This lead the OutputPending fd_set to have any fd above 256 -to be uninitialized which in turns lead to reading an index after the end of -the ConnectionTranslation table. This index would then be used to find the -client corresponding to the fd marked as pending writes and would also result -to an out-of-bound access which would usually be the fatal one. - -Fix this by zeroing the clientsWritable fd_set at the beginning of -WaitForSomething(). In this case, the bottom part of the loop, which would -indirectly call FlushAllOutput, will not do any work but the next call to -select will result in the execution of the right codepath. This is exactly what -we want because we need to know the writable clients before handling them. In -the end, it also makes sure that the fds above MaxClient are initialized, -preventing the crash in FlushAllOutput(). - -Thanks to everyone involved in tracking this one down! - -Reported-by: Karol Herbst -Reported-by: Tobias Klausmann -Signed-off-by: Martin Peres -Tested-by: Martin Peres -Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91316 -Cc: Ilia Mirkin -Cc: Martin Peres -Cc: Olivier Fourdan -Cc: Alan Coopersmith ---- - os/WaitFor.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/os/WaitFor.c b/os/WaitFor.c -index 431f1a6..993c14e 100644 ---- a/os/WaitFor.c -+++ b/os/WaitFor.c -@@ -158,6 +158,7 @@ WaitForSomething(int *pClientsReady) - Bool someReady = FALSE; - - FD_ZERO(&clientsReadable); -+ FD_ZERO(&clientsWritable); - - if (nready) - SmartScheduleStopTimer(); --- -2.4.5 - diff --git a/u_CloseConsole-Don-t-report-FatalError-when-shutting-down.patch b/u_CloseConsole-Don-t-report-FatalError-when-shutting-down.patch deleted file mode 100644 index 6fffbd5..0000000 --- a/u_CloseConsole-Don-t-report-FatalError-when-shutting-down.patch +++ /dev/null @@ -1,81 +0,0 @@ -From: Egbert Eich -Date: Sat May 24 02:02:32 2014 +0200 -Subject: [PATCH]CloseConsole: Don't report FatalError() when shutting down -Patch-mainline: to be upstreamed -Git-commit: 4edf1fd15b9d2746f1f83165ab45efbe35af8de8 -Git-repo: -References: bnc#879666, bnc#879489 -Signed-off-by: Egbert Eich - -When encountering a problem while closing the console, don't report this -as a FatalError(). FatalError() will terminate the Xserver - no use calling -it when terminating anyway. Since FatalError() will call CloseConsole() -we would only come here again. - -Signed-off-by: Egbert Eich ---- - hw/xfree86/os-support/linux/lnx_init.c | 25 ++++++++++++++++--------- - 1 file changed, 16 insertions(+), 9 deletions(-) - -diff --git a/hw/xfree86/os-support/linux/lnx_init.c b/hw/xfree86/os-support/linux/lnx_init.c -index bcb039f..c46bca9 100644 ---- a/hw/xfree86/os-support/linux/lnx_init.c -+++ b/hw/xfree86/os-support/linux/lnx_init.c -@@ -63,17 +63,24 @@ drain_console(int fd, void *closure) - } - - static void --switch_to(int vt, const char *from) -+switch_to(int vt, const char *from, Bool fatal) - { - int ret; - - SYSCALL(ret = ioctl(xf86Info.consoleFd, VT_ACTIVATE, vt)); -- if (ret < 0) -- FatalError("%s: VT_ACTIVATE failed: %s\n", from, strerror(errno)); -- -+ if (ret < 0) { -+ if (fatal) -+ FatalError("%s: VT_ACTIVATE failed: %s\n", from, strerror(errno)); -+ else -+ xf86Msg(X_WARNING, "%s: VT_ACTIVATE failed: %s\n", from, strerror(errno)); -+ } - SYSCALL(ret = ioctl(xf86Info.consoleFd, VT_WAITACTIVE, vt)); -- if (ret < 0) -- FatalError("%s: VT_WAITACTIVE failed: %s\n", from, strerror(errno)); -+ if (ret < 0) { -+ if (fatal) -+ FatalError("%s: VT_WAITACTIVE failed: %s\n", from, strerror(errno)); -+ else -+ xf86Msg(X_WARNING, "%s: VT_WAITACTIVE failed: %s\n", from, strerror(errno)); -+ } - } - - #pragma GCC diagnostic push -@@ -194,7 +201,7 @@ xf86OpenConsole(void) - /* - * now get the VT. This _must_ succeed, or else fail completely. - */ -- switch_to(xf86Info.vtno, "xf86OpenConsole"); -+ switch_to(xf86Info.vtno, "xf86OpenConsole", TRUE); - - SYSCALL(ret = ioctl(xf86Info.consoleFd, VT_GETMODE, &VT)); - if (ret < 0) -@@ -255,7 +262,7 @@ xf86OpenConsole(void) - else { /* serverGeneration != 1 */ - if (!xf86Info.ShareVTs && xf86Info.autoVTSwitch) { - /* now get the VT */ -- switch_to(xf86Info.vtno, "xf86OpenConsole"); -+ switch_to(xf86Info.vtno, "xf86OpenConsole", TRUE); - } - } - } -@@ -305,7 +312,7 @@ xf86CloseConsole(void) - * Perform a switch back to the active VT when we were started - */ - if (activeVT >= 0) { -- switch_to(activeVT, "xf86CloseConsole"); -+ switch_to(activeVT, "xf86CloseConsole", FALSE); - activeVT = -1; - } - } diff --git a/u_randr_allow_rrselectinput_for_providerchange_and_resourcechange_events.patch b/u_randr_allow_rrselectinput_for_providerchange_and_resourcechange_events.patch deleted file mode 100644 index b105fd5..0000000 --- a/u_randr_allow_rrselectinput_for_providerchange_and_resourcechange_events.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 6d0da2a4d5c31d055674f482d3d1afe308ed8eeb Mon Sep 17 00:00:00 2001 -From: Michal Srb -Date: Mon, 7 Oct 2013 17:55:30 +0300 -Subject: [PATCH] randr: Allow RRSelectInput for ProviderChange and - ResourceChange events. - -Reviewed-by: Dave Airlie -Signed-off-by: Michal Srb - -diff --git a/randr/rrdispatch.c b/randr/rrdispatch.c -index 7fbc9f0..f050d38 100644 ---- a/randr/rrdispatch.c -+++ b/randr/rrdispatch.c -@@ -92,7 +92,9 @@ ProcRRSelectInput(ClientPtr client) - RRCrtcChangeNotifyMask | - RROutputChangeNotifyMask | - RROutputPropertyNotifyMask | -- RRProviderPropertyNotifyMask)) { -+ RRProviderChangeNotifyMask | -+ RRProviderPropertyNotifyMask | -+ RRResourceChangeNotifyMask)) { - ScreenPtr pScreen = pWin->drawable.pScreen; - - rrScrPriv(pScreen); diff --git a/xorg-server-1.17.2.tar.bz2 b/xorg-server-1.17.2.tar.bz2 deleted file mode 100644 index 4bc1c49..0000000 --- a/xorg-server-1.17.2.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f61120612728f2c5034671d0ca3e2273438c60aba93b3dda4a8aa40e6a257993 -size 5767983 diff --git a/xorg-server-1.17.4.tar.bz2 b/xorg-server-1.17.4.tar.bz2 new file mode 100644 index 0000000..39e326e --- /dev/null +++ b/xorg-server-1.17.4.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0c4b45c116a812a996eb432d8508cf26c2ec8c3916ff2a50781796882f8d6457 +size 5791384 diff --git a/xorg-x11-server.changes b/xorg-x11-server.changes index 0fef467..3a954e5 100644 --- a/xorg-x11-server.changes +++ b/xorg-x11-server.changes @@ -1,3 +1,26 @@ +------------------------------------------------------------------- +Wed Oct 28 17:32:07 UTC 2015 - sndirsch@suse.com + +- Update to version 1.17.4: + Minor brown-bag release. The important fix here is Martin's + clientsWritable change which fixes a crash when built against + xproto 7.0.28. +- supersedes u_0001-os-make-sure-the-clientsWritable-fd_set-is-initializ.patch + +------------------------------------------------------------------- +Wed Oct 28 16:23:39 UTC 2015 - sndirsch@suse.com + +- Update to version 1.17.3: + Various bugfixes across the board.  The most visible changes + include fixing GLX extension setup under Xwayland and other + non-Xorg servers (enabling core contexts in more scenarios), + and various stability fixes to glamor and the Present extension. +- supersededs the following patches: + * u_randr_allow_rrselectinput_for_providerchange_and_resourcechange_events.patch + * u_CloseConsole-Don-t-report-FatalError-when-shutting-down.patch +- removed evdev xorg.conf.d snippet since it's meanwhile shipped with + evdev driver itself (since version 2.10.0) + ------------------------------------------------------------------- Fri Sep 25 10:06:45 UTC 2015 - eich@suse.com diff --git a/xorg-x11-server.spec b/xorg-x11-server.spec index 044ab8b..cf9ab4d 100644 --- a/xorg-x11-server.spec +++ b/xorg-x11-server.spec @@ -26,7 +26,7 @@ Name: xorg-x11-server -%define dirsuffix 1.17.2 +%define dirsuffix 1.17.4 Summary: X License: MIT @@ -168,12 +168,10 @@ Patch100: u_fbdevhw.diff Patch101: u_confine_to_shape.diff # PATCH-FIX-UPSTREAM u_x86emu-include-order.patch schwab@suse.de -- Change include order to avoid conflict with system header, remove duplicate definitions Patch102: u_x86emu-include-order.patch -Patch103: u_randr_allow_rrselectinput_for_providerchange_and_resourcechange_events.patch Patch104: u_xorg-server-xdmcp.patch Patch105: ux_xserver_xvfb-randr.patch # PATCH-FIX-UPSTREAM u_exa-only-draw-valid-trapezoids.patch bnc#853846 msrb@suse.com -- Fixes possible crash of server using invalid trapezoids. 2013-12-12 patch is waiting in mailing list to be upstreamed. Patch106: u_exa-only-draw-valid-trapezoids.patch -Patch111: u_CloseConsole-Don-t-report-FatalError-when-shutting-down.patch Patch112: u_render-Cast-color-masks-to-unsigned-long-before-shifting-them.patch Patch114: u_ad-hoc-fix-for-mmap-s-truncated-offset-parameter-on-.patch @@ -194,8 +192,6 @@ Patch1162: b_cache-xkbcomp-output-for-fast-start-up.patch Patch1211: b_0001-Prevent-XSync-Alarms-from-senslessly-calling-CheckTr.patch Patch1222: b_sync-fix.patch -Patch1300: u_0001-os-make-sure-the-clientsWritable-fd_set-is-initializ.patch - %description This package contains the X.Org Server. @@ -269,12 +265,10 @@ cp %{SOURCE90} . %patch100 %patch101 %patch102 -p1 -%patch103 -p1 %patch104 -p1 %patch105 -p1 %patch106 -p1 -%patch111 -p1 %patch112 -p1 %patch114 -p1 @@ -298,8 +292,6 @@ cp %{SOURCE90} . ### patch222 might not be applicable anymore #%patch1222 -p1 -%patch1300 -p1 - find . -type f \! -name '*.orig' \! -path ./source-file-list > source-file-list %build @@ -373,9 +365,12 @@ mkdir -p %{buildroot}%{_localstatedir}/lib/X11 ln -snf ../../../usr/bin/Xorg %{buildroot}%{_localstatedir}/lib/X11/X ln -snf ../../var/lib/X11/X %{buildroot}%{_bindir}/X %if 0%{?suse_version} > 1120 +# get rid of evdev config file, since it's meanwhile shipped with +# evdev driver itself (since 2.10.0) +rm -f %{buildroot}/%{_datadir}/X11/xorg.conf.d/10-evdev.conf %ifnarch s390 s390x mkdir -p %{buildroot}%{_sysconfdir}/X11/xorg.conf.d -cp %{buildroot}/%{_datadir}/X11/xorg.conf.d/10-evdev.conf %{buildroot}%{_sysconfdir}/X11/xorg.conf.d/ +cp %{buildroot}/%{_datadir}/X11/xorg.conf.d/10-quirks.conf %{buildroot}%{_sysconfdir}/X11/xorg.conf.d/ %endif %endif %if 0%{?suse_version} < 1315 @@ -386,7 +381,7 @@ install -m 644 $RPM_SOURCE_DIR/README.updates %{buildroot}%{_libdir}/xorg/module rm -f %{buildroot}%{_datadir}/aclocal/*.m4 %endif %ifarch s390 s390x -rm -f %{buildroot}%{_sysconfdir}/X11/10-evdev.conf +rm -f %{buildroot}%{_sysconfdir}/X11/10-quirks.conf mkdir -p %{buildroot}%{_includedir}/xorg install -m 644 include/list.h \ %{buildroot}%{_includedir}/xorg @@ -456,7 +451,7 @@ fi %ifnarch s390 s390x %if 0%{?suse_version} > 1120 %dir %{_sysconfdir}/X11/xorg.conf.d -%config(noreplace) %{_sysconfdir}/X11/xorg.conf.d/10-evdev.conf +%config(noreplace) %{_sysconfdir}/X11/xorg.conf.d/10-quirks.conf %dir %{_datadir}/X11/xorg.conf.d %{_datadir}/X11/xorg.conf.d/10-*.conf %endif