New submission from Oren Milman <ore...@gmail.com>: The following code causes an assertion failure (in case there exists a compressed zip file named 'foo.zip' with a file called 'bar.py' in it):
import zlib import zipimport def bad_decompress(*args): return None zlib.decompress = bad_decompress zipimport.zipimporter('foo.zip').get_source('bar') This is because get_data() (in Modules/zipimport.c) assumes that zlib.decompress() returned a bytes object, and returns it. zipimport_zipimporter_get_source_impl() assumes that get_data() returned a bytes object, and passes it to PyBytes_AS_STRING(), which asserts it is a bytes object. ---------- components: Extension Modules messages: 303100 nosy: Oren Milman priority: normal severity: normal status: open title: assertion failure in zipimporter.get_source() in case of a bad zlib.decompress() type: crash versions: Python 3.7 _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue31602> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com