diff options
-rw-r--r-- | src/cli.c | 2 | ||||
-rw-r--r-- | src/ocsptool-common.c | 2 | ||||
-rw-r--r-- | src/socket.c | 3 |
3 files changed, 5 insertions, 2 deletions
@@ -1928,7 +1928,6 @@ static int cert_verify_ocsp(gnutls_session_t session) } for (it = 0; it < cert_list_size; it++) { - gnutls_x509_crt_init(&cert); if (deinit_cert) gnutls_x509_crt_deinit(cert); gnutls_x509_crt_init(&cert); @@ -1975,6 +1974,7 @@ static int cert_verify_ocsp(gnutls_session_t session) /* verify and check the response for revoked cert */ ret = check_ocsp_response(cert, issuer, &resp, &nonce, verbose); + free(resp.data); if (ret == 1) ok++; else if (ret == 0) { diff --git a/src/ocsptool-common.c b/src/ocsptool-common.c index 8d04c7e663..19c5af7fa7 100644 --- a/src/ocsptool-common.c +++ b/src/ocsptool-common.c @@ -222,7 +222,7 @@ int send_ocsp_request(const char *server, return -1; } - socket_bye(&hd, 1); + socket_bye(&hd, 0); p = memmem(ud.data, ud.size, "\r\n\r\n", 4); if (p == NULL) { diff --git a/src/socket.c b/src/socket.c index 16c9ec6b59..1f55445521 100644 --- a/src/socket.c +++ b/src/socket.c @@ -332,6 +332,9 @@ void socket_bye(socket_st * socket, unsigned polite) fprintf(stderr, "*** gnutls_bye() error: %s\n", gnutls_strerror(ret)); } + } + + if (socket->session) { gnutls_deinit(socket->session); socket->session = NULL; } |