Issue #24268: Fix import naming when loading extension modules. Patch by Petr Viktorin.
diff --git a/Python/dynload_dl.c b/Python/dynload_dl.c
index d235a84..2bec645 100644
--- a/Python/dynload_dl.c
+++ b/Python/dynload_dl.c
@@ -18,6 +18,6 @@
 {
     char funcname[258];
 
-    PyOS_snprintf(funcname, sizeof(funcname), "%20s_%.200s", prefix, shortname);
+    PyOS_snprintf(funcname, sizeof(funcname), "%.20s_%.200s", prefix, shortname);
     return dl_loadmod(Py_GetProgramName(), pathname, funcname);
 }
diff --git a/Python/dynload_hpux.c b/Python/dynload_hpux.c
index e28ae7c..4967afc 100644
--- a/Python/dynload_hpux.c
+++ b/Python/dynload_hpux.c
@@ -8,9 +8,9 @@
 #include "importdl.h"
 
 #if defined(__hp9000s300)
-#define FUNCNAME_PATTERN "_%20s_%.200s"
+#define FUNCNAME_PATTERN "_%.20s_%.200s"
 #else
-#define FUNCNAME_PATTERN "%20s_%.200s"
+#define FUNCNAME_PATTERN "%.20s_%.200s"
 #endif
 
 const char *_PyImport_DynLoadFiletab[] = {SHLIB_EXT, NULL};
diff --git a/Python/dynload_next.c b/Python/dynload_next.c
index c555b38..83a8b2bb 100644
--- a/Python/dynload_next.c
+++ b/Python/dynload_next.c
@@ -40,7 +40,7 @@
     const char *errString;
     char errBuf[512];
 
-    PyOS_snprintf(funcname, sizeof(funcname), "_%20s_%.200s", prefix, shortname);
+    PyOS_snprintf(funcname, sizeof(funcname), "_%.20s_%.200s", prefix, shortname);
 
 #ifdef USE_DYLD_GLOBAL_NAMESPACE
     if (NSIsSymbolNameDefined(funcname)) {