summaryrefslogtreecommitdiff
path: root/external
diff options
context:
space:
mode:
authorMichael Stahl <Michael.Stahl@cib.de>2019-04-03 11:03:17 +0200
committerThorsten Behrens <Thorsten.Behrens@CIB.de>2019-04-04 01:26:49 +0200
commita072b91c03f7e24cc5fe99e4b7462d37ef8d703b (patch)
tree06a8d9060ad51d346707042322048693e5d277e2 /external
parent39de7d73fdab86a1531f19076ab1d07fcff97b55 (diff)
python3: upgrade to release 3.5.7
Fixes CVE-2019-9636 CVE-2019-5010 CVE-2018-14647 Change-Id: If0a115960aed1ee90b63e6716c844669f0ec91e5 Reviewed-on: https://gerrit.libreoffice.org/70182 Tested-by: Jenkins Reviewed-by: Michael Stahl <Michael.Stahl@cib.de> (cherry picked from commit 3c7354a85a9bd47a2676aadaad2f6622fe2d959c) Reviewed-on: https://gerrit.libreoffice.org/70194 Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
Diffstat (limited to 'external')
-rw-r--r--external/python3/UnpackedTarball_python3.mk1
-rw-r--r--external/python3/python-3.5.7-c99.patch.162
2 files changed, 63 insertions, 0 deletions
diff --git a/external/python3/UnpackedTarball_python3.mk b/external/python3/UnpackedTarball_python3.mk
index ec1bdabe4fdd..66a82955e440 100644
--- a/external/python3/UnpackedTarball_python3.mk
+++ b/external/python3/UnpackedTarball_python3.mk
@@ -27,6 +27,7 @@ $(eval $(call gb_UnpackedTarball_add_patches,python3,\
external/python3/ubsan.patch.0 \
external/python3/python-3.5.tweak.strip.soabi.patch \
external/python3/0001-3.6-bpo-17239-Disable-external-entities-in-SAX-parse.patch.1 \
+ external/python3/python-3.5.7-c99.patch.1 \
))
ifneq ($(filter DRAGONFLY FREEBSD LINUX NETBSD OPENBSD SOLARIS,$(OS)),)
diff --git a/external/python3/python-3.5.7-c99.patch.1 b/external/python3/python-3.5.7-c99.patch.1
new file mode 100644
index 000000000000..558166d9953f
--- /dev/null
+++ b/external/python3/python-3.5.7-c99.patch.1
@@ -0,0 +1,62 @@
+remove C99 which isn't suppored by all compilers yet
+
+--- python3/Modules/_pickle.c.orig 2019-04-03 16:34:01.380124314 +0200
++++ python3/Modules/_pickle.c 2019-04-03 16:35:18.579005171 +0200
+@@ -674,9 +674,12 @@
+ PyErr_NoMemory();
+ return NULL;
+ }
+- for (size_t i = 0; i < self->mt_allocated; i++) {
++ {
++ size_t i;
++ for (i = 0; i < self->mt_allocated; i++) {
+ Py_XINCREF(self->mt_table[i].me_key);
+ }
++ }
+ memcpy(new->mt_table, self->mt_table,
+ sizeof(PyMemoEntry) * self->mt_allocated);
+
+@@ -4204,7 +4207,9 @@
+ return NULL;
+
+ memo = self->pickler->memo;
+- for (size_t i = 0; i < memo->mt_allocated; ++i) {
++ {
++ size_t i;
++ for (i = 0; i < memo->mt_allocated; ++i) {
+ PyMemoEntry entry = memo->mt_table[i];
+ if (entry.me_key != NULL) {
+ int status;
+@@ -4225,6 +4230,7 @@
+ goto error;
+ }
+ }
++ }
+ return new_memo;
+
+ error:
+@@ -6791,10 +6797,13 @@
+ if (new_memo == NULL)
+ return -1;
+
+- for (size_t i = 0; i < new_memo_size; i++) {
++ {
++ size_t i;
++ for (i = 0; i < new_memo_size; i++) {
+ Py_XINCREF(unpickler->memo[i]);
+ new_memo[i] = unpickler->memo[i];
+ }
++ }
+ }
+ else if (PyDict_Check(obj)) {
+ Py_ssize_t i = 0;
+@@ -6839,7 +6848,8 @@
+
+ error:
+ if (new_memo_size) {
+- for (size_t i = new_memo_size - 1; i != SIZE_MAX; i--) {
++ size_t i;
++ for (i = new_memo_size - 1; i != SIZE_MAX; i--) {
+ Py_XDECREF(new_memo[i]);
+ }
+ PyMem_FREE(new_memo);