Hello community,

here is the log from the commit of package python3 for openSUSE:Factory checked 
in at 2020-04-23 18:24:51
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python3 (Old)
 and      /work/SRC/openSUSE:Factory/.python3.new.2738 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python3"

Thu Apr 23 18:24:51 2020 rev:96 rq:794614 version:3.8.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/python3/python3-base.changes     2020-03-25 
23:42:27.419977127 +0100
+++ /work/SRC/openSUSE:Factory/.python3.new.2738/python3-base.changes   
2020-04-23 18:24:56.759457023 +0200
@@ -1,0 +2,11 @@
+Thu Apr 16 12:06:01 UTC 2020 - Matej Cepl <[email protected]>
+
+- Add #!BuildIgnore: gdk-pixbuf-loader-rsvg to python3 SPEC
+
+-------------------------------------------------------------------
+Thu Mar 26 15:36:55 UTC 2020 - Matej Cepl <[email protected]>
+
+- Add patch bsc1167501-invalid-alignment.patch
+  (bsc#1167501, bpo#40052) to fix alignment in abstract.h header file.
+
+-------------------------------------------------------------------
python3-doc.changes: same change
python3.changes: same change

New:
----
  bsc1167501-invalid-alignment.patch

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

Other differences:
------------------
++++++ python3-base.spec ++++++
--- /var/tmp/diff_new_pack.9plcCl/_old  2020-04-23 18:24:58.815460960 +0200
+++ /var/tmp/diff_new_pack.9plcCl/_new  2020-04-23 18:24:58.819460968 +0200
@@ -205,6 +205,9 @@
 # Fixes Python urrlib allowed an HTTP server to conduct Regular
 # Expression Denial of Service (ReDoS)
 Patch30:        CVE-2020-8492-urllib-ReDoS.patch
+# PATCH-FIX-UPSTREAM bsc1167501-invalid-alignment.patch 
gh#python/cpython#19133 [email protected]
+# Fix wrong misalignment of pointer to vectorcallfunc
+Patch31:        bsc1167501-invalid-alignment.patch
 ### COMMON-PATCH-END ###
 
 %description
@@ -299,6 +302,7 @@
 %patch28 -p1
 %patch29 -p1
 %patch30 -p1
+%patch31 -p1
 
 # drop Autoconf version requirement
 sed -i 's/^AC_PREREQ/dnl AC_PREREQ/' configure.ac

python3-doc.spec: same change
++++++ python3.spec ++++++
--- /var/tmp/diff_new_pack.9plcCl/_old  2020-04-23 18:24:58.863461052 +0200
+++ /var/tmp/diff_new_pack.9plcCl/_new  2020-04-23 18:24:58.867461059 +0200
@@ -88,6 +88,7 @@
 Source20:       idle3.desktop
 Source21:       idle3.appdata.xml
 Source99:       python.keyring
+#!BuildIgnore:  gdk-pixbuf-loader-rsvg
 BuildRequires:  automake
 BuildRequires:  fdupes
 BuildRequires:  gcc-c++
@@ -176,6 +177,9 @@
 # Fixes Python urrlib allowed an HTTP server to conduct Regular
 # Expression Denial of Service (ReDoS)
 Patch30:        CVE-2020-8492-urllib-ReDoS.patch
+# PATCH-FIX-UPSTREAM bsc1167501-invalid-alignment.patch 
gh#python/cpython#19133 [email protected]
+# Fix wrong misalignment of pointer to vectorcallfunc
+Patch31:        bsc1167501-invalid-alignment.patch
 ### COMMON-PATCH-END ###
 
 %description
@@ -257,6 +261,7 @@
 %patch28 -p1
 %patch29 -p1
 %patch30 -p1
+%patch31 -p1
 
 # drop Autoconf version requirement
 sed -i 's/^AC_PREREQ/dnl AC_PREREQ/' configure.ac


++++++ bsc1167501-invalid-alignment.patch ++++++
>From e6f4de57ffd175870e513ffa387fa6e7eaaeaed2 Mon Sep 17 00:00:00 2001
From: Andreas Schneider <[email protected]>
Date: Tue, 24 Mar 2020 07:55:00 +0100
Subject: [PATCH] bpo-40052: Fix alignment issue in PyVectorcall_Function()

In file included from /usr/include/python3.8/Python.h:147:
In file included from /usr/include/python3.8/abstract.h:837:
/usr/include/python3.8/cpython/abstract.h:91:11: error: cast from 'char *' to 
'vectorcallfunc *'
(aka 'struct _object *(**)(struct _object *, struct _object *const *, unsigned 
long, struct _object *)')
increases required alignment from 1 to 8 [-Werror,-Wcast-align]

    ptr = (vectorcallfunc*)(((char *)callable) + offset);
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.

Signed-off-by: Andreas Schneider <[email protected]>
---
 Include/cpython/abstract.h                               | 9 ++++++---
 .../next/C API/2020-03-24-09-27-10.bpo-40052.27P2KG.rst  | 1 +
 Objects/call.c                                           | 7 ++++++-
 3 files changed, 13 insertions(+), 4 deletions(-)
 create mode 100644 Misc/NEWS.d/next/C 
API/2020-03-24-09-27-10.bpo-40052.27P2KG.rst

--- a/Include/cpython/abstract.h
+++ b/Include/cpython/abstract.h
@@ -82,14 +82,17 @@ _PyVectorcall_Function(PyObject *callabl
 {
     PyTypeObject *tp = Py_TYPE(callable);
     Py_ssize_t offset = tp->tp_vectorcall_offset;
-    vectorcallfunc *ptr;
+    union {
+        char *data;
+        vectorcallfunc *ptr;
+    } vc;
     if (!PyType_HasFeature(tp, _Py_TPFLAGS_HAVE_VECTORCALL)) {
         return NULL;
     }
     assert(PyCallable_Check(callable));
     assert(offset > 0);
-    ptr = (vectorcallfunc*)(((char *)callable) + offset);
-    return *ptr;
+    vc.data = (char *)callable + offset;
+    return *vc.ptr;
 }
 
 /* Call the callable object 'callable' with the "vectorcall" calling
--- /dev/null
+++ b/Misc/NEWS.d/next/C API/2020-03-24-09-27-10.bpo-40052.27P2KG.rst
@@ -0,0 +1 @@
+Fix an alignment build warning/error in function ``PyVectorcall_Function()`` 
publicly exposed by ``abstract.h``.
\ No newline at end of file
--- a/Objects/call.c
+++ b/Objects/call.c
@@ -173,6 +173,11 @@ _PyObject_MakeTpCall(PyObject *callable,
 PyObject *
 PyVectorcall_Call(PyObject *callable, PyObject *tuple, PyObject *kwargs)
 {
+    union {
+        char *data;
+        vectorcallfunc *ptr;
+    } vc;
+
     /* get vectorcallfunc as in _PyVectorcall_Function, but without
      * the _Py_TPFLAGS_HAVE_VECTORCALL check */
     Py_ssize_t offset = Py_TYPE(callable)->tp_vectorcall_offset;
@@ -181,7 +186,8 @@ PyVectorcall_Call(PyObject *callable, Py
                      Py_TYPE(callable)->tp_name);
         return NULL;
     }
-    vectorcallfunc func = *(vectorcallfunc *)(((char *)callable) + offset);
+    vc.data = (char *)callable + offset;
+    vectorcallfunc func = *vc.ptr;
     if (func == NULL) {
         PyErr_Format(PyExc_TypeError, "'%.200s' object does not support 
vectorcall",
                      Py_TYPE(callable)->tp_name);


Reply via email to