From 21aafd09f6758352cf2d70cbe5cc8ea018354d63 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Sun, 4 May 2014 00:50:10 +0200 Subject: openssl: biomem->data is not zero terminated MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit So printf(%s) on it or reading before bounds checking is wrong, fixing it. Could previously lead to reading out of boundary. Reported-by: Török Edwin --- lib/vtls/openssl.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/lib/vtls/openssl.c b/lib/vtls/openssl.c index b59233a25..5a665661f 100644 --- a/lib/vtls/openssl.c +++ b/lib/vtls/openssl.c @@ -2117,7 +2117,7 @@ static int X509V3_ext(struct SessionHandle *data, sep=", "; j++; /* skip the newline */ }; - while((biomem->data[j] == ' ') && (j<(size_t)biomem->length)) + while((j<(size_t)biomem->length) && (biomem->data[j] == ' ')) j++; if(j<(size_t)biomem->length) ptr+=snprintf(ptr, sizeof(buf)-(ptr-buf), "%s%c", sep, @@ -2159,8 +2159,6 @@ static void dumpcert(struct SessionHandle *data, X509 *x, int numcert) BIO_get_mem_ptr(bio_out, &biomem); - infof(data, "%s\n", biomem->data); - Curl_ssl_push_certinfo_len(data, numcert, "Cert", biomem->data, biomem->length); -- cgit v1.2.3