diff --git a/libfreerdp-core/certificate.c b/libfreerdp-core/certificate.c index 69fcf1da6..62c0121d8 100644 --- a/libfreerdp-core/certificate.c +++ b/libfreerdp-core/certificate.c @@ -664,7 +664,7 @@ void certificate_data_print(rdpCertificateStore* certificate_store, rdpCertifica if (!fp) return; - fprintf(certificate_store->fp,"%s %s\n", certificate_data->hostname, certificate_data->fingerprint); + fprintf(fp, "%s %s\n", certificate_data->hostname, certificate_data->fingerprint); fclose(fp); } diff --git a/libfreerdp-core/tls.c b/libfreerdp-core/tls.c index 3d4906865..fb7280377 100644 --- a/libfreerdp-core/tls.c +++ b/libfreerdp-core/tls.c @@ -48,12 +48,15 @@ boolean tls_connect(rdpTls* tls) if (tls->ssl == NULL) { + SSL_CTX_free(tls->ctx); printf("SSL_new failed\n"); return false; } if (SSL_set_fd(tls->ssl, tls->sockfd) < 1) { + SSL_free(tls->ssl); + SSL_CTX_free(tls->ctx); printf("SSL_set_fd failed\n"); return false; } @@ -63,7 +66,11 @@ boolean tls_connect(rdpTls* tls) if (connection_status <= 0) { if (tls_print_error("SSL_connect", tls->ssl, connection_status)) + { + SSL_free(tls->ssl); + SSL_CTX_free(tls->ctx); return false; + } } return true;