45 lines
1.4 KiB
Diff
Executable File
45 lines
1.4 KiB
Diff
Executable File
|
|
# HG changeset patch
|
|
# User Benjamin Peterson <benjamin@python.org>
|
|
# Date 1453357506 28800
|
|
# Node ID 10dad6da1b28ea4af78ad9529e469fdbf4ebbc8f
|
|
# Parent a3ac2cd93db9d5336dfd7b5b27efde2c568d8794# Parent 01ddd608b85c85952537d95a43bbabf4fb655057
|
|
merge 3.4 (#26171)
|
|
|
|
Upstream-Status: Backport
|
|
CVE: CVE-2016-5636
|
|
|
|
https://hg.python.org/cpython/raw-rev/10dad6da1b28
|
|
Signed-off-by: Armin Kuster <akuster@mvista.com>
|
|
|
|
Index: Python-3.5.1/Misc/NEWS
|
|
===================================================================
|
|
--- Python-3.5.1.orig/Misc/NEWS
|
|
+++ Python-3.5.1/Misc/NEWS
|
|
@@ -91,6 +91,9 @@ Core and Builtins
|
|
Python.h header to fix a compilation error with OpenMP. PyThreadState_GET()
|
|
becomes an alias to PyThreadState_Get() to avoid ABI incompatibilies.
|
|
|
|
+- Issue #26171: Fix possible integer overflow and heap corruption in
|
|
+ zipimporter.get_data().
|
|
+
|
|
Library
|
|
-------
|
|
|
|
Index: Python-3.5.1/Modules/zipimport.c
|
|
===================================================================
|
|
--- Python-3.5.1.orig/Modules/zipimport.c
|
|
+++ Python-3.5.1/Modules/zipimport.c
|
|
@@ -1112,6 +1112,11 @@ get_data(PyObject *archive, PyObject *to
|
|
}
|
|
file_offset += l; /* Start of file data */
|
|
|
|
+ if (data_size > LONG_MAX - 1) {
|
|
+ fclose(fp);
|
|
+ PyErr_NoMemory();
|
|
+ return NULL;
|
|
+ }
|
|
bytes_size = compress == 0 ? data_size : data_size + 1;
|
|
if (bytes_size == 0)
|
|
bytes_size++;
|