For some reason, getting the topmost error was done the same way as
getting the bottommost one.  I hope I understood correctly how this
should be done.  It seems to work when running evp_test in an
environment where it can't find openssl.cnf.
diff --git a/crypto/err/err.c b/crypto/err/err.c
index 3163163..04773d6 100644
--- a/crypto/err/err.c
+++ b/crypto/err/err.c
@@ -720,7 +720,7 @@
 
 	if (es->bottom == es->top) return 0;
 	if (top)
-		i=(es->bottom+1)%ERR_NUM_ERRORS; /* last error */
+		i=es->top;			 /* last error */
 	else
 		i=(es->bottom+1)%ERR_NUM_ERRORS; /* first error */