Test for error status of shl_findsym. Fixes #505417. 2.2.1 candiate.
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);