diff options
author | Michael Stahl <Michael.Stahl@cib.de> | 2019-04-03 11:03:17 +0200 |
---|---|---|
committer | Thorsten Behrens <Thorsten.Behrens@CIB.de> | 2019-04-04 01:26:39 +0200 |
commit | 746a749a675859107bf959c0fce128f3b13188d8 (patch) | |
tree | 5ca36937ed0aaa4feb3444f492c5a25463f5b650 /external | |
parent | 62ba1f0af72b0c86889a3aea19efd76da3cbe840 (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/70192
Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
Diffstat (limited to 'external')
-rw-r--r-- | external/python3/UnpackedTarball_python3.mk | 1 | ||||
-rw-r--r-- | external/python3/python-3.5.7-c99.patch.1 | 62 |
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); |