Issue #24492: make sure that ``from ... import ...` raises an
ImportError if __name__ is not defined on a package.

Thanks to Armin Rigo for the bug report and diagnosing the cause.
diff --git a/Python/ceval.c b/Python/ceval.c
index ac52ad9..8d2cdc2 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -5085,19 +5085,24 @@
        sys.modules. */
     PyErr_Clear();
     pkgname = _PyObject_GetAttrId(v, &PyId___name__);
-    if (pkgname == NULL)
-        return NULL;
+    if (pkgname == NULL) {
+        goto error;
+    }
     fullmodname = PyUnicode_FromFormat("%U.%U", pkgname, name);
     Py_DECREF(pkgname);
-    if (fullmodname == NULL)
+    if (fullmodname == NULL) {
         return NULL;
+    }
     x = PyDict_GetItem(PyImport_GetModuleDict(), fullmodname);
-    if (x == NULL)
-        PyErr_Format(PyExc_ImportError, "cannot import name %R", name);
-    else
-        Py_INCREF(x);
     Py_DECREF(fullmodname);
+    if (x == NULL) {
+        goto error;
+    }
+    Py_INCREF(x);
     return x;
+ error:
+    PyErr_Format(PyExc_ImportError, "cannot import name %R", name);
+    return NULL;
 }
 
 static int