#3205: bz2 iterator fails silently on MemoryError
(backport from r65609)
diff --git a/Misc/NEWS b/Misc/NEWS
index 79e7d41..475c9cb 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -145,6 +145,9 @@
 Extension Modules
 -----------------
 
+- Issue #3205: When iterating over a BZ2File fails allocating memory, raise
+  a MemoryError rather than silently stop the iteration.
+
 - Patch #2111: Avoid mmap segfault when modifying a PROT_READ block.
 
 - zlib.decompressobj().flush(value) no longer crashes the interpreter when
diff --git a/Modules/bz2module.c b/Modules/bz2module.c
index 7d33a77..9e868c5 100644
--- a/Modules/bz2module.c
+++ b/Modules/bz2module.c
@@ -416,6 +416,7 @@
 		return 0;
 	}
 	if ((f->f_buf = PyMem_Malloc(bufsize)) == NULL) {
+		PyErr_NoMemory();
 		return -1;
 	}
 	Py_BEGIN_ALLOW_THREADS