Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package xorg-x11-server for openSUSE:Factory 
checked in at 2022-02-23 16:25:58
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xorg-x11-server (Old)
 and      /work/SRC/openSUSE:Factory/.xorg-x11-server.new.1958 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "xorg-x11-server"

Wed Feb 23 16:25:58 2022 rev:404 rq:956864 version:21.1.3

Changes:
--------
--- /work/SRC/openSUSE:Factory/xorg-x11-server/xorg-x11-server.changes  
2022-02-14 22:35:53.513370023 +0100
+++ 
/work/SRC/openSUSE:Factory/.xorg-x11-server.new.1958/xorg-x11-server.changes    
    2022-02-23 16:26:41.203509338 +0100
@@ -1,0 +2,6 @@
+Tue Feb 22 18:24:20 UTC 2022 - Bj??rn Lie <bjorn....@gmail.com>
+
+- U_Fix-build-with-gcc-12.patch
+  * render: Fix build with gcc 12 (glfdo#xorg/xserver!853).
+
+-------------------------------------------------------------------

New:
----
  U_Fix-build-with-gcc-12.patch

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

Other differences:
------------------
++++++ xorg-x11-server.spec ++++++
--- /var/tmp/diff_new_pack.x3niR3/_old  2022-02-23 16:26:42.243509375 +0100
+++ /var/tmp/diff_new_pack.x3niR3/_new  2022-02-23 16:26:42.247509376 +0100
@@ -244,6 +244,8 @@
 
 Patch1940:      U_xephyr-Don-t-check-for-SeatId-anymore.patch
 
+Patch1950:      U_Fix-build-with-gcc-12.patch
+
 %description
 This package contains the X.Org Server.
 
@@ -399,6 +401,7 @@
 %patch1920 -p1
 %patch1930 -p1
 %patch1940 -p1
+%patch1950 -p1
 
 %build
 %global _lto_cflags %{?_lto_cflags} -ffat-lto-objects

++++++ U_Fix-build-with-gcc-12.patch ++++++
>From c6b0dcb82d4db07a2f32c09a8c09c85a5f57248e Mon Sep 17 00:00:00 2001
From: Olivier Fourdan <ofour...@redhat.com>
Date: Thu, 20 Jan 2022 10:20:38 +0100
Subject: [PATCH] render: Fix build with gcc 12
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The xserver fails to compile with the latest gcc 12:

 render/picture.c: In function ???CreateSolidPicture???:
 render/picture.c:874:26: error: array subscript ???union _SourcePict[0]??? is 
partly outside array bounds of ???unsigned char[16]??? [-Werror=array-bounds]
  874 |     pPicture->pSourcePict->type = SourcePictTypeSolidFill;
      |                          ^~
 render/picture.c:868:45: note: object of size 16 allocated by ???malloc???
  868 |     pPicture->pSourcePict = (SourcePictPtr) 
malloc(sizeof(PictSolidFill));
      |                                             
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 render/picture.c: In function ???CreateLinearGradientPicture???:
 render/picture.c:906:26: error: array subscript ???union _SourcePict[0]??? is 
partly outside array bounds of ???unsigned char[32]??? [-Werror=array-bounds]
  906 |     pPicture->pSourcePict->linear.type = SourcePictTypeLinear;
      |                          ^~
 render/picture.c:899:45: note: object of size 32 allocated by ???malloc???
  899 |     pPicture->pSourcePict = (SourcePictPtr) 
malloc(sizeof(PictLinearGradient));
      |                                             
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 render/picture.c: In function ???CreateConicalGradientPicture???:
 render/picture.c:989:26: error: array subscript ???union _SourcePict[0]??? is 
partly outside array bounds of ???unsigned char[32]??? [-Werror=array-bounds]
  989 |     pPicture->pSourcePict->conical.type = SourcePictTypeConical;
      |                          ^~
 render/picture.c:982:45: note: object of size 32 allocated by ???malloc???
  982 |     pPicture->pSourcePict = (SourcePictPtr) 
malloc(sizeof(PictConicalGradient));
      |                                             
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 cc1: some warnings being treated as errors
 ninja: build stopped: subcommand failed.

This is because gcc 12 has become stricter and raises a warning now.

Fix the warning/error by allocating enough memory to store the union
struct.

Signed-off-by: Olivier Fourdan <ofour...@redhat.com>
Acked-by: Michel D??nzer <mdaen...@redhat.com>
Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1256
---
 render/picture.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/render/picture.c b/render/picture.c
index afa0d258f..2be4b1954 100644
--- a/render/picture.c
+++ b/render/picture.c
@@ -865,7 +865,7 @@ CreateSolidPicture(Picture pid, xRenderColor * color, int 
*error)
     }
 
     pPicture->id = pid;
-    pPicture->pSourcePict = (SourcePictPtr) malloc(sizeof(PictSolidFill));
+    pPicture->pSourcePict = (SourcePictPtr) malloc(sizeof(SourcePict));
     if (!pPicture->pSourcePict) {
         *error = BadAlloc;
         free(pPicture);
@@ -896,7 +896,7 @@ CreateLinearGradientPicture(Picture pid, xPointFixed * p1, 
xPointFixed * p2,
     }
 
     pPicture->id = pid;
-    pPicture->pSourcePict = (SourcePictPtr) malloc(sizeof(PictLinearGradient));
+    pPicture->pSourcePict = (SourcePictPtr) malloc(sizeof(SourcePict));
     if (!pPicture->pSourcePict) {
         *error = BadAlloc;
         free(pPicture);
@@ -936,7 +936,7 @@ CreateRadialGradientPicture(Picture pid, xPointFixed * 
inner,
     }
 
     pPicture->id = pid;
-    pPicture->pSourcePict = (SourcePictPtr) malloc(sizeof(PictRadialGradient));
+    pPicture->pSourcePict = (SourcePictPtr) malloc(sizeof(SourcePict));
     if (!pPicture->pSourcePict) {
         *error = BadAlloc;
         free(pPicture);
@@ -979,7 +979,7 @@ CreateConicalGradientPicture(Picture pid, xPointFixed * 
center, xFixed angle,
     }
 
     pPicture->id = pid;
-    pPicture->pSourcePict = (SourcePictPtr) 
malloc(sizeof(PictConicalGradient));
+    pPicture->pSourcePict = (SourcePictPtr) malloc(sizeof(SourcePict));
     if (!pPicture->pSourcePict) {
         *error = BadAlloc;
         free(pPicture);
-- 
GitLab

Reply via email to