From: Nikos Mavrogiannopoulos
Date: Sat, 15 Jan 2011 13:08:04 +0000 (+0100)
Subject: Simplified macro to snprintf() in order to prevent issues caused when snprintf()...
X-Git-Tag: gnutls_2_11_7~94
X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=57af3b052c7930910ec1d8defde7a42c29c855a8;p=thirdparty%2Fgnutls.git
Simplified macro to snprintf() in order to prevent issues caused when snprintf() is a macro itself. Reported and initial patch by Camillo Lugaresi.
---
diff --git a/src/serv.c b/src/serv.c
index 3d348d2cd2..e6a975c0ef 100644
--- a/src/serv.c
+++ b/src/serv.c
@@ -409,7 +409,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)
@@ -483,11 +484,11 @@ peer_print_info (gnutls_session_t session, int *ret_length,
/* print session_id */
gnutls_session_get_id (session, sesid, &sesid_size);
- snprintf (tmp2, "\nSession 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,
"If your browser supports session resuming, then you should see the "
"same session ID, when you press the reload button.
\n");
@@ -501,7 +502,7 @@ peer_print_info (gnutls_session_t session, int *ret_length,
if (gnutls_server_name_get (session, dns, &dns_size, &type, 0) == 0)
{
- snprintf (tmp2, "\nServer Name: %s
\n", dns);
+ snprintf (tmp_buffer, tmp_buffer_size, "\nServer Name: %s
\n", dns);
}
}
@@ -512,7 +513,7 @@ peer_print_info (gnutls_session_t session, int *ret_length,
#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
@@ -520,7 +521,7 @@ peer_print_info (gnutls_session_t session, int *ret_length,
#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
@@ -528,7 +529,7 @@ peer_print_info (gnutls_session_t session, int *ret_length,
#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));
}
@@ -536,7 +537,7 @@ peer_print_info (gnutls_session_t session, int *ret_length,
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.
\n",
gnutls_dh_get_prime_bits (session));
}
@@ -547,7 +548,7 @@ peer_print_info (gnutls_session_t session, int *ret_length,
tmp = gnutls_protocol_get_name (gnutls_protocol_get_version (session));
if (tmp == NULL)
tmp = str_unknown;
- snprintf (tmp2,
+ snprintf (tmp_buffer, tmp_buffer_size,
"| Protocol version: | %s |
\n",
tmp);
@@ -558,45 +559,45 @@ peer_print_info (gnutls_session_t session, int *ret_length,
(session));
if (tmp == NULL)
tmp = str_unknown;
- snprintf (tmp2, "| Certificate Type: | %s |
\n",
+ snprintf (tmp_buffer, tmp_buffer_size, "| Certificate Type: | %s |
\n",
tmp);
}
tmp = gnutls_kx_get_name (kx_alg);
if (tmp == NULL)
tmp = str_unknown;
- snprintf (tmp2, "| Key Exchange: | %s |
\n", tmp);
+ snprintf (tmp_buffer, tmp_buffer_size, "| Key Exchange: | %s |
\n", tmp);
tmp = gnutls_compression_get_name (gnutls_compression_get (session));
if (tmp == NULL)
tmp = str_unknown;
- snprintf (tmp2, "| Compression | %s |
\n", tmp);
+ snprintf (tmp_buffer, tmp_buffer_size, "| Compression | %s |
\n", tmp);
tmp = gnutls_cipher_get_name (gnutls_cipher_get (session));
if (tmp == NULL)
tmp = str_unknown;
- snprintf (tmp2, "| Cipher | %s |
\n", tmp);
+ snprintf (tmp_buffer, tmp_buffer_size, "| Cipher | %s |
\n", tmp);
tmp = gnutls_mac_get_name (gnutls_mac_get (session));
if (tmp == NULL)
tmp = str_unknown;
- snprintf (tmp2, "| MAC | %s |
\n", tmp);
+ snprintf (tmp_buffer, tmp_buffer_size, "| MAC | %s |
\n", tmp);
tmp = gnutls_cipher_suite_get_name (kx_alg,
gnutls_cipher_get (session),
gnutls_mac_get (session));
if (tmp == NULL)
tmp = str_unknown;
- snprintf (tmp2, "| Ciphersuite | %s |
\n",
+ snprintf (tmp_buffer, tmp_buffer_size, "| Ciphersuite | %s |
\n",
tmp);
if (crtinfo)
{
- snprintf (tmp2, "
%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,
+ snprintf (tmp_buffer, tmp_buffer_size, "
Your HTTP header was:
%s
\n" HTTP_END,
header);
*ret_length = strlen (http_buffer);