Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package xwayland for openSUSE:Factory 
checked in at 2021-12-22 20:17:56
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xwayland (Old)
 and      /work/SRC/openSUSE:Factory/.xwayland.new.2520 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "xwayland"

Wed Dec 22 20:17:56 2021 rev:8 rq:941877 version:21.1.4

Changes:
--------
--- /work/SRC/openSUSE:Factory/xwayland/xwayland.changes        2021-11-10 
21:46:05.263802028 +0100
+++ /work/SRC/openSUSE:Factory/.xwayland.new.2520/xwayland.changes      
2021-12-22 20:18:55.751871309 +0100
@@ -1,0 +2,13 @@
+Tue Dec 14 15:44:46 UTC 2021 - Stefan Dirsch <sndir...@suse.com>
+
+- Update to version 21.1.4
+  * Fixes for multiple input validation failures in X server extensions:
+    + CVE-2021-4008/ZDI-CAN-14192 SProcRenderCompositeGlyphs out-of-bounds 
access (boo#1193030)
+    + CVE-2021-4009/ZDI-CAN 14950 SProcXFixesCreatePointerBarrier 
out-of-bounds access (boo#1190487)
+    + CVE-2021-4010/ZDI-CAN-14951 SProcScreenSaverSuspend out-of-bounds access 
(boo#1190488)
+    + CVE-2021-4011/ZDI-CAN-14952 SwapCreateRegister out-of-bounds access 
(boo#1190489)
+  * This release also includes other fixes such as:
+    + Store EGLcontext to avoid superfluous eglMakeCurrent() calls
+    + Prefer EGLStream with NVIDIA proprietary driver if both GBM and 
EGLstream are available
+
+-------------------------------------------------------------------

Old:
----
  xwayland-21.1.3.tar.xz
  xwayland-21.1.3.tar.xz.sig

New:
----
  xwayland-21.1.4.tar.xz
  xwayland-21.1.4.tar.xz.sig

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ xwayland.spec ++++++
--- /var/tmp/diff_new_pack.tBa6vW/_old  2021-12-22 20:18:56.187871513 +0100
+++ /var/tmp/diff_new_pack.tBa6vW/_new  2021-12-22 20:18:56.199871519 +0100
@@ -24,7 +24,7 @@
 %endif
 
 Name:           xwayland
-Version:        21.1.3
+Version:        21.1.4
 Release:        0
 URL:            http://xorg.freedesktop.org/
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build

++++++ xwayland-21.1.3.tar.xz -> xwayland-21.1.4.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xwayland-21.1.3/Xext/saver.c 
new/xwayland-21.1.4/Xext/saver.c
--- old/xwayland-21.1.3/Xext/saver.c    2021-11-08 11:37:14.823922000 +0100
+++ new/xwayland-21.1.4/Xext/saver.c    2021-12-14 15:00:58.259255000 +0100
@@ -1351,8 +1351,8 @@
     REQUEST(xScreenSaverSuspendReq);
 
     swaps(&stuff->length);
-    swapl(&stuff->suspend);
     REQUEST_SIZE_MATCH(xScreenSaverSuspendReq);
+    swapl(&stuff->suspend);
     return ProcScreenSaverSuspend(client);
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/xwayland-21.1.3/hw/xwayland/xwayland-glamor-eglstream.c 
new/xwayland-21.1.4/hw/xwayland/xwayland-glamor-eglstream.c
--- old/xwayland-21.1.3/hw/xwayland/xwayland-glamor-eglstream.c 2021-11-08 
11:37:14.863922600 +0100
+++ new/xwayland-21.1.4/hw/xwayland/xwayland-glamor-eglstream.c 2021-12-14 
15:00:58.297255300 +0100
@@ -753,12 +753,14 @@
         xwl_eglstream_get(xwl_screen);
 
     if (xwl_eglstream->display == NULL) {
-        ErrorF("glamor: 'wl_eglstream_display' not supported\n");
+        LogMessageVerb(X_INFO, 3,
+                       "glamor: 'wl_eglstream_display' not supported\n");
         return FALSE;
     }
 
     if (xwl_eglstream->controller == NULL) {
-        ErrorF("glamor: 'wl_eglstream_controller' not supported\n");
+        LogMessageVerb(X_INFO, 3,
+                       "glamor: 'wl_eglstream_controller' not supported\n");
         return FALSE;
     }
 
@@ -1144,7 +1146,7 @@
     free(devices);
 out:
     if (!device)
-        ErrorF("glamor: No eglstream capable devices found\n");
+        LogMessageVerb(X_INFO, 3, "glamor: No eglstream capable devices 
found\n");
     return device;
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xwayland-21.1.3/hw/xwayland/xwayland-glamor-gbm.c 
new/xwayland-21.1.4/hw/xwayland/xwayland-glamor-gbm.c
--- old/xwayland-21.1.3/hw/xwayland/xwayland-glamor-gbm.c       2021-11-08 
11:37:14.863922600 +0100
+++ new/xwayland-21.1.4/hw/xwayland/xwayland-glamor-gbm.c       2021-12-14 
15:00:58.297255300 +0100
@@ -835,7 +835,7 @@
     struct xwl_gbm_private *xwl_gbm = xwl_gbm_get(xwl_screen);
 
     if (xwl_gbm->drm == NULL) {
-        ErrorF("glamor: 'wl_drm' not supported\n");
+        LogMessageVerb(X_INFO, 3, "glamor: 'wl_drm' not supported\n");
         return FALSE;
     }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xwayland-21.1.3/hw/xwayland/xwayland-glamor.c 
new/xwayland-21.1.4/hw/xwayland/xwayland-glamor.c
--- old/xwayland-21.1.3/hw/xwayland/xwayland-glamor.c   2021-11-08 
11:37:14.863922600 +0100
+++ new/xwayland-21.1.4/hw/xwayland/xwayland-glamor.c   2021-12-14 
15:00:58.298255400 +0100
@@ -58,10 +58,12 @@
 void
 xwl_glamor_egl_make_current(struct xwl_screen *xwl_screen)
 {
-    if (lastGLContext == xwl_screen->glamor_ctx)
+    EGLContext ctx = xwl_screen->glamor_ctx->ctx;
+    
+    if (lastGLContext == ctx)
         return;
 
-    lastGLContext = xwl_screen->glamor_ctx;
+    lastGLContext = ctx;
     xwl_screen->glamor_ctx->make_current(xwl_screen->glamor_ctx);
 }
 
@@ -407,10 +409,12 @@
     if (xwl_screen->gbm_backend.is_available &&
         xwl_glamor_has_wl_interfaces(xwl_screen, &xwl_screen->gbm_backend)) {
         xwl_screen->egl_backend = &xwl_screen->gbm_backend;
+        LogMessageVerb(X_INFO, 3, "glamor: Using GBM backend\n");
         return TRUE;
     }
     else
-        ErrorF("Missing Wayland requirements for glamor GBM backend\n");
+        LogMessageVerb(X_INFO, 3,
+                       "Missing Wayland requirements for glamor GBM 
backend\n");
 #endif
 
     return FALSE;
@@ -423,10 +427,12 @@
     if (xwl_screen->eglstream_backend.is_available &&
         xwl_glamor_has_wl_interfaces(xwl_screen, 
&xwl_screen->eglstream_backend)) {
         xwl_screen->egl_backend = &xwl_screen->eglstream_backend;
+        LogMessageVerb(X_INFO, 3, "glamor: Using EGLStream backend\n");
         return TRUE;
     }
     else
-        ErrorF("Missing Wayland requirements for glamor EGLStream backend\n");
+        LogMessageVerb(X_INFO, 3,
+                       "Missing Wayland requirements for glamor EGLStream 
backend\n");
 #endif
 
     return FALSE;
@@ -435,14 +441,10 @@
 void
 xwl_glamor_select_backend(struct xwl_screen *xwl_screen, Bool use_eglstream)
 {
-    if (use_eglstream) {
-        if (!xwl_glamor_select_eglstream_backend(xwl_screen))
+    if (!xwl_glamor_select_eglstream_backend(xwl_screen)) {
+        if (!use_eglstream)
             xwl_glamor_select_gbm_backend(xwl_screen);
     }
-    else {
-        if (!xwl_glamor_select_gbm_backend(xwl_screen))
-            xwl_glamor_select_eglstream_backend(xwl_screen);
-    }
 }
 
 Bool
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xwayland-21.1.3/meson.build 
new/xwayland-21.1.4/meson.build
--- old/xwayland-21.1.3/meson.build     2021-11-08 11:37:14.872922700 +0100
+++ new/xwayland-21.1.4/meson.build     2021-12-14 15:00:58.306255300 +0100
@@ -3,7 +3,7 @@
             'buildtype=debugoptimized',
             'c_std=gnu99',
         ],
-        version: '21.1.3',
+        version: '21.1.4',
         meson_version: '>= 0.46.0',
 )
 add_project_arguments('-DHAVE_DIX_CONFIG_H', language: ['c', 'objc'])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xwayland-21.1.3/record/record.c 
new/xwayland-21.1.4/record/record.c
--- old/xwayland-21.1.3/record/record.c 2021-11-08 11:37:14.884922700 +0100
+++ new/xwayland-21.1.4/record/record.c 2021-12-14 15:00:58.317255500 +0100
@@ -2516,8 +2516,8 @@
         swapl(pClientID);
     }
     if (stuff->nRanges >
-        client->req_len - bytes_to_int32(sz_xRecordRegisterClientsReq)
-        - stuff->nClients)
+        (client->req_len - bytes_to_int32(sz_xRecordRegisterClientsReq)
+        - stuff->nClients) / bytes_to_int32(sz_xRecordRange))
         return BadLength;
     RecordSwapRanges((xRecordRange *) pClientID, stuff->nRanges);
     return Success;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xwayland-21.1.3/render/render.c 
new/xwayland-21.1.4/render/render.c
--- old/xwayland-21.1.3/render/render.c 2021-11-08 11:37:14.886922800 +0100
+++ new/xwayland-21.1.4/render/render.c 2021-12-14 15:00:58.319255600 +0100
@@ -2309,6 +2309,9 @@
 
         i = elt->len;
         if (i == 0xff) {
+            if (buffer + 4 > end) {
+                return BadLength;
+            }
             swapl((int *) buffer);
             buffer += 4;
         }
@@ -2319,12 +2322,18 @@
                 buffer += i;
                 break;
             case 2:
+                if (buffer + i * 2 > end) {
+                    return BadLength;
+                }
                 while (i--) {
                     swaps((short *) buffer);
                     buffer += 2;
                 }
                 break;
             case 4:
+                if (buffer + i * 4 > end) {
+                    return BadLength;
+                }
                 while (i--) {
                     swapl((int *) buffer);
                     buffer += 4;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xwayland-21.1.3/xfixes/cursor.c 
new/xwayland-21.1.4/xfixes/cursor.c
--- old/xwayland-21.1.3/xfixes/cursor.c 2021-11-08 11:37:14.889922900 +0100
+++ new/xwayland-21.1.4/xfixes/cursor.c 2021-12-14 15:00:58.322255600 +0100
@@ -1010,7 +1010,8 @@
 {
     REQUEST(xXFixesCreatePointerBarrierReq);
 
-    REQUEST_FIXED_SIZE(xXFixesCreatePointerBarrierReq, 
pad_to_int32(stuff->num_devices));
+    REQUEST_FIXED_SIZE(xXFixesCreatePointerBarrierReq,
+                       pad_to_int32(stuff->num_devices * sizeof(CARD16)));
     LEGAL_NEW_RESOURCE(stuff->barrier, client);
 
     return XICreatePointerBarrier(client, stuff);
@@ -1027,7 +1028,8 @@
 
     swaps(&stuff->length);
     swaps(&stuff->num_devices);
-    REQUEST_FIXED_SIZE(xXFixesCreatePointerBarrierReq, 
pad_to_int32(stuff->num_devices));
+    REQUEST_FIXED_SIZE(xXFixesCreatePointerBarrierReq,
+                       pad_to_int32(stuff->num_devices * sizeof(CARD16)));
 
     swapl(&stuff->barrier);
     swapl(&stuff->window);

Reply via email to