summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/openssl.c13
1 files changed, 5 insertions, 8 deletions
diff --git a/src/openssl.c b/src/openssl.c
index 2b363d5..dc67d8a 100644
--- a/src/openssl.c
+++ b/src/openssl.c
@@ -7328,7 +7328,7 @@ static int xs_verify(lua_State *L) {
7328 X509 *crt = checksimple(L, 2, X509_CERT_CLASS); 7328 X509 *crt = checksimple(L, 2, X509_CERT_CLASS);
7329 STACK_OF(X509) *chain = NULL, **proof; 7329 STACK_OF(X509) *chain = NULL, **proof;
7330 X509_STORE_CTX *ctx = NULL; 7330 X509_STORE_CTX *ctx = NULL;
7331 int nr = 0, ok, why; 7331 int ok, why;
7332 7332
7333 /* pre-allocate space for a successful return */ 7333 /* pre-allocate space for a successful return */
7334 lua_settop(L, 3); 7334 lua_settop(L, 3);
@@ -7363,27 +7363,24 @@ static int xs_verify(lua_State *L) {
7363 case 1: /* verified */ 7363 case 1: /* verified */
7364 if (!(*proof = X509_STORE_CTX_get1_chain(ctx))) 7364 if (!(*proof = X509_STORE_CTX_get1_chain(ctx)))
7365 goto eossl; 7365 goto eossl;
7366 X509_STORE_CTX_free(ctx);
7366 7367
7367 lua_pushboolean(L, 1); 7368 lua_pushboolean(L, 1);
7368 lua_pushvalue(L, -2); 7369 lua_pushvalue(L, -2);
7369 nr = 2;
7370 7370
7371 break; 7371 return 2;
7372 case 0: /* not verified */ 7372 case 0: /* not verified */
7373 why = X509_STORE_CTX_get_error(ctx); 7373 why = X509_STORE_CTX_get_error(ctx);
7374 X509_STORE_CTX_free(ctx);
7374 7375
7375 lua_pushboolean(L, 0); 7376 lua_pushboolean(L, 0);
7376 lua_pushstring(L, X509_verify_cert_error_string(why)); 7377 lua_pushstring(L, X509_verify_cert_error_string(why));
7377 nr = 2;
7378 7378
7379 break; 7379 return 2;
7380 default: 7380 default:
7381 goto eossl; 7381 goto eossl;
7382 } 7382 }
7383 7383
7384 X509_STORE_CTX_free(ctx);
7385
7386 return nr;
7387eossl: 7384eossl:
7388 if (ctx) 7385 if (ctx)
7389 X509_STORE_CTX_free(ctx); 7386 X509_STORE_CTX_free(ctx);