From: Rich Salz Date: Mon, 21 Aug 2017 19:28:56 +0000 (-0400) Subject: Safely display SNI (just in case) X-Git-Tag: OpenSSL_1_1_1-pre1~798 X-Git-Url: https://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff_plain;h=0d68367a1279a369146661f4857816b2044116b4;ds=sidebyside Safely display SNI (just in case) Thanks to Hubert Kario for pointing this out. Reviewed-by: Andy Polyakov (Merged from https://github.com/openssl/openssl/pull/4193) --- diff --git a/apps/s_server.c b/apps/s_server.c index 0ee5519f96..8883994f8f 100644 --- a/apps/s_server.c +++ b/apps/s_server.c @@ -459,9 +459,17 @@ static int ssl_servername_cb(SSL *s, int *ad, void *arg) { tlsextctx *p = (tlsextctx *) arg; const char *servername = SSL_get_servername(s, TLSEXT_NAMETYPE_host_name); - if (servername != NULL && p->biodebug != NULL) - BIO_printf(p->biodebug, "Hostname in TLS extension: \"%s\"\n", - servername); + + if (servername != NULL && p->biodebug != NULL) { + const char *cp = servername; + unsigned char uc; + + BIO_printf(p->biodebug, "Hostname in TLS extension: \""); + while ((uc = *cp++) != 0) + BIO_printf(p->biodebug, + isascii(uc) && isprint(uc) ? "%c" : "\\x%02x", uc); + BIO_printf(p->biodebug, "\"\n"); + } if (p->servername == NULL) return SSL_TLSEXT_ERR_NOACK;