Issue #19428: Handle PyMarshal_Read*() errors in run_pyc_file()

Detect also earlier PyMarshal_Read*() errors in zipimport.
diff --git a/Python/pythonrun.c b/Python/pythonrun.c
index 992a5a3..a8bd024 100644
--- a/Python/pythonrun.c
+++ b/Python/pythonrun.c
@@ -981,13 +981,17 @@
 
     magic = PyMarshal_ReadLongFromFile(fp);
     if (magic != PyImport_GetMagicNumber()) {
-        PyErr_SetString(PyExc_RuntimeError,
-                   "Bad magic number in .pyc file");
+        if (!PyErr_Occurred())
+            PyErr_SetString(PyExc_RuntimeError,
+                       "Bad magic number in .pyc file");
         return NULL;
     }
     /* Skip mtime and size */
     (void) PyMarshal_ReadLongFromFile(fp);
     (void) PyMarshal_ReadLongFromFile(fp);
+    if (PyErr_Occurred())
+        return NULL;
+
     v = PyMarshal_ReadLastObjectFromFile(fp);
     if (v == NULL || !PyCode_Check(v)) {
         Py_XDECREF(v);