Issue #18351: Fix various issues with
importlib._bootstrap._get_sourcefile().

Thanks to its only use by the C API, it was never properly tested
until now.

Thanks to Neal Norwitz for discovering the bug and Madison May for the patch.
diff --git a/Misc/ACKS b/Misc/ACKS
index cf64ed2..1392977 100644
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -788,6 +788,7 @@
 Graham Matthews
 Dieter Maurer
 Daniel May
+Madison May
 Arnaud Mazin
 Rebecca McCreary
 Kirk McDonald
diff --git a/Misc/NEWS b/Misc/NEWS
index f431adf..9ebf594 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -130,6 +130,12 @@
 - Issue #18113: Fixed a refcount leak in the curses.panel module's
   set_userptr() method.  Reported by Atsuo Ishimoto.
 
+C API
+-----
+
+- Issue #18351: Fix various issues with a helper function in importlib used
+  by PyImport_ExecCodeModuleWithPathnames() (and thus by extension PyImport_ExecCodeModule() and PyImport_ExecCodeModuleEx()).
+
 IDLE
 ----