Commit 64ea192b authored by Benjamin Peterson's avatar Benjamin Peterson

prevent buffer overflow in get_data (closes #26171)

parent e4309f7f
......@@ -36,6 +36,9 @@ Core and Builtins
__str__, __trunc__, and __float__ returning instances of subclasses of
str, long, and float to subclasses of str, long, and float correspondingly.
- Issue #26171: Fix possible integer overflow and heap corruption in
zipimporter.get_data().
Library
-------
......
......@@ -895,6 +895,11 @@ get_data(char *archive, PyObject *toc_entry)
PyMarshal_ReadShortFromFile(fp); /* local header size */
file_offset += l; /* Start of file data */
if (data_size > LONG_MAX - 1) {
fclose(fp);
PyErr_NoMemory();
return NULL;
}
raw_data = PyString_FromStringAndSize((char *)NULL, compress == 0 ?
data_size : data_size + 1);
if (raw_data == NULL) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment