diff -ruNp gnutls-2.10.5-orig/src/serv.c gnutls-2.10.5/src/serv.c --- gnutls-2.10.5-orig/src/serv.c 2010-12-06 07:04:44.000000000 -0600 +++ gnutls-2.10.5/src/serv.c 2017-06-03 05:05:35.000000000 -0500 @@ -438,7 +438,8 @@ static const char DEFAULT_DATA[] = /* Creates html with the current session information. */ -#define tmp2 &http_buffer[strlen(http_buffer)], len-strlen(http_buffer) +#define tmp_buffer &http_buffer[strlen(http_buffer)] +#define tmp_buffer_size len-strlen(http_buffer) static char * peer_print_info (gnutls_session_t session, int *ret_length, const char *header) @@ -512,11 +513,11 @@ peer_print_info (gnutls_session_t sessio /* print session_id */ gnutls_session_get_id (session, sesid, &sesid_size); - snprintf (tmp2, "\n
Session ID: "); + snprintf (tmp_buffer, tmp_buffer_size, "\n
Session ID: "); for (i = 0; i < sesid_size; i++) - snprintf (tmp2, "%.2X", sesid[i]); - snprintf (tmp2, "
\n"); - snprintf (tmp2, + snprintf (tmp_buffer, tmp_buffer_size, "%.2X", sesid[i]); + snprintf (tmp_buffer, tmp_buffer_size, "\n"); + snprintf (tmp_buffer, tmp_buffer_size, "Server Name: %s
\n", dns); + snprintf (tmp_buffer, tmp_buffer_size, "\nServer Name: %s
\n", dns); } } @@ -541,7 +542,7 @@ peer_print_info (gnutls_session_t sessio #ifdef ENABLE_SRP if (kx_alg == GNUTLS_KX_SRP) { - snprintf (tmp2, "Connected as user '%s'.
\n", + snprintf (tmp_buffer, tmp_buffer_size, "Connected as user '%s'.
\n", gnutls_srp_server_get_username (session)); } #endif @@ -549,7 +550,7 @@ peer_print_info (gnutls_session_t sessio #ifdef ENABLE_PSK if (kx_alg == GNUTLS_KX_PSK) { - snprintf (tmp2, "Connected as user '%s'.
\n", + snprintf (tmp_buffer, tmp_buffer_size, "Connected as user '%s'.
\n", gnutls_psk_server_get_username (session)); } #endif @@ -557,7 +558,7 @@ peer_print_info (gnutls_session_t sessio #ifdef ENABLE_ANON if (kx_alg == GNUTLS_KX_ANON_DH) { - snprintf (tmp2, + snprintf (tmp_buffer, tmp_buffer_size, "Connect using anonymous DH (prime of %d bits)
\n", gnutls_dh_get_prime_bits (session)); } @@ -565,7 +566,7 @@ peer_print_info (gnutls_session_t sessio if (kx_alg == GNUTLS_KX_DHE_RSA || kx_alg == GNUTLS_KX_DHE_DSS) { - snprintf (tmp2, + snprintf (tmp_buffer, tmp_buffer_size, "Ephemeral DH using prime of %d bits.Protocol version: | %s |
Certificate Type: | %s |
Certificate Type: | %s |
Key Exchange: | %s |
Key Exchange: | %s |
Compression | %s |
Compression | %s |
Cipher | %s |
Cipher | %s |
MAC | %s |
MAC | %s |
Ciphersuite | %s |
%s\n\n", crtinfo); + snprintf (tmp_buffer, tmp_buffer_size, "
%s\n\n", crtinfo); free (crtinfo); } - snprintf(tmp2, "
Your HTTP header was:
%s\n" HTTP_END, header); + snprintf (tmp_buffer, tmp_buffer_size, "
Your HTTP header was:
%s\n" HTTP_END, header); *ret_length = strlen (http_buffer);