diff --git a/U_dix-window-Use-ConfigureWindow-instead-of-MoveWindow.patch b/U_dix-window-Use-ConfigureWindow-instead-of-MoveWindow.patch new file mode 100644 index 0000000..5d81325 --- /dev/null +++ b/U_dix-window-Use-ConfigureWindow-instead-of-MoveWindow.patch @@ -0,0 +1,51 @@ +Git-commit: fbdd4d679a7d020f78f7b877033b83e00f5a0f73 +Patch-Mainline: Upstream +Author: Michal Srb +Subject: dix/window: Use ConfigureWindow instead of MoveWindow +References: bsc#1114822 + +The screensaver can regularly move its window to random offsets. It should +use the ConfigureWindow function instead of calling the Screen's MoveWindow +directly. Some MoveWindow implementations, such as compMoveWindow, rely on +Screen's ConfigNotify being called first as it happens in ConfigureWindow. + +Reviewed-by: Adam Jackson +--- + dix/window.c | 14 ++++++-------- + 1 file changed, 6 insertions(+), 8 deletions(-) + +diff --git a/dix/window.c b/dix/window.c +index 2b599e788..f4ace76c7 100644 +--- a/dix/window.c ++++ b/dix/window.c +@@ -3094,6 +3094,7 @@ int + dixSaveScreens(ClientPtr client, int on, int mode) + { + int rc, i, what, type; ++ XID vlist[2]; + + if (on == SCREEN_SAVER_FORCER) { + if (mode == ScreenSaverReset) +@@ -3146,14 +3147,11 @@ dixSaveScreens(ClientPtr client, int on, int mode) + * for the root window, so PaintWindow works + */ + screenIsSaved = SCREEN_SAVER_OFF; +- (*pWin->drawable.pScreen->MoveWindow) (pWin, +- (short) (- +- (rand() % +- RANDOM_WIDTH)), +- (short) (- +- (rand() % +- RANDOM_WIDTH)), +- pWin->nextSib, VTMove); ++ ++ vlist[0] = -(rand() % RANDOM_WIDTH); ++ vlist[1] = -(rand() % RANDOM_WIDTH); ++ ConfigureWindow(pWin, CWX | CWY, vlist, client); ++ + screenIsSaved = SCREEN_SAVER_ON; + } + /* +-- +2.16.4 + diff --git a/xorg-x11-server.changes b/xorg-x11-server.changes index 2ba52bc..7867318 100644 --- a/xorg-x11-server.changes +++ b/xorg-x11-server.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Wed Nov 14 13:45:37 UTC 2018 - msrb@suse.com + +- U_dix-window-Use-ConfigureWindow-instead-of-MoveWindow.patch + * Fix abort triggered by some uses of screensaver. (bsc#1114822) + ------------------------------------------------------------------- Mon Oct 29 15:35:59 UTC 2018 - sndirsch@suse.com diff --git a/xorg-x11-server.spec b/xorg-x11-server.spec index 2560557..178c7bf 100644 --- a/xorg-x11-server.spec +++ b/xorg-x11-server.spec @@ -226,6 +226,8 @@ Patch1401: u_randr-Do-not-crash-if-slave-screen-does-not-have-pro.patch Patch1501: U_xkb-Fix-heap-overflow-caused-by-optimized-away-min.patch +Patch1502: U_dix-window-Use-ConfigureWindow-instead-of-MoveWindow.patch + %description This package contains the X.Org Server. @@ -367,6 +369,8 @@ sh %{SOURCE92} --verify . %{SOURCE91} %patch1501 -p1 +%patch1502 -p1 + %build test -e source-file-list || \ find -L . -type f \! -name '*.orig' \! -path ./source-file-list > \