Test for error status of shl_findsym. Fixes #505417. 2.2.1 candiate.
diff --git a/Misc/ACKS b/Misc/ACKS
index e03d7c8..074042d 100644
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -160,6 +160,7 @@
Chris Gonnerman
David Goodger
Hans de Graaff
+Eddy De Greef
Duncan Grisby
Dag Gruneau
Michael Guravage
diff --git a/Python/dynload_hpux.c b/Python/dynload_hpux.c
index cbdb35a..6aef796 100644
--- a/Python/dynload_hpux.c
+++ b/Python/dynload_hpux.c
@@ -47,7 +47,10 @@
PyOS_snprintf(funcname, sizeof(funcname), FUNCNAME_PATTERN, shortname);
if (Py_VerboseFlag)
printf("shl_findsym %s\n", funcname);
- shl_findsym(&lib, funcname, TYPE_UNDEFINED, (void *) &p);
+ if (shl_findsym(&lib, funcname, TYPE_UNDEFINED, (void *) &p) == -1) {
+ shl_unload(lib);
+ p = NULL;
+ }
if (p == NULL && Py_VerboseFlag)
perror(funcname);