From d3a18bfb2de839f16742a44238b4fddb993dd78a Mon Sep 17 00:00:00 2001 From: Ulrik Haugen Date: Wed, 22 May 2019 12:51:17 +0200 Subject: [PATCH] Repair ssl_key_log_file handling Set ssl_key_log_file to null in ssl_decode_ctx_create if no file name was supplied. Only seek ssl_key_log_file in ssl_read_key_log_file if it is non null. Repair order of fseek parameters. --- ssl/ssldecode.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/ssl/ssldecode.c b/ssl/ssldecode.c index 4231461..5b7512d 100644 --- a/ssl/ssldecode.c +++ b/ssl/ssldecode.c @@ -172,9 +172,13 @@ int ssl_decode_ctx_create(dp,keyfile,pass,keylogfile) if(r_assoc_create(&d->session_cache)) ABORT(R_NO_MEMORY); - if(keylogfile && !(d->ssl_key_log_file=fopen(keylogfile, "r"))){ - fprintf(stderr,"Failed to open ssl key log file"); - ABORT(R_INTERNAL); + if (keylogfile) { + if(!(d->ssl_key_log_file=fopen(keylogfile, "r"))){ + fprintf(stderr,"Failed to open ssl key log file"); + ABORT(R_INTERNAL); + } + } else { + d->ssl_key_log_file = NULL; } X509V3_add_standard_extensions(); @@ -1106,7 +1110,8 @@ static int ssl_read_key_log_file(d) } _status=0; abort: - fseek(d->ctx->ssl_key_log_file, SEEK_SET, 0); + if (d->ctx->ssl_key_log_file != NULL) + fseek(d->ctx->ssl_key_log_file, 0, SEEK_SET); return(_status); } #endif