Avoid reusing same buffer for successive quoted args.

This commit is contained in:
Micah Cowan 2009-09-22 09:16:43 -07:00
parent df804c69d9
commit 34b1a7ad5d
2 changed files with 11 additions and 5 deletions

View File

@ -1,3 +1,9 @@
2009-09-22 Micah Cowan <micah@cowan.name>
* openssl.c (ssl_check_certificate): Avoid reusing the same buffer
space for successive quoted arguments. Thanks to Steven Schweda
for pointing out the problem.
2009-09-21 Micah Cowan <micah@cowan.name> 2009-09-21 Micah Cowan <micah@cowan.name>
* progress.c (update_speed_ring): "the the" -> "the". * progress.c (update_speed_ring): "the the" -> "the".

View File

@ -512,8 +512,8 @@ ssl_check_certificate (int fd, const char *host)
char *subject = X509_NAME_oneline (X509_get_subject_name (cert), 0, 0); char *subject = X509_NAME_oneline (X509_get_subject_name (cert), 0, 0);
char *issuer = X509_NAME_oneline (X509_get_issuer_name (cert), 0, 0); char *issuer = X509_NAME_oneline (X509_get_issuer_name (cert), 0, 0);
DEBUGP (("certificate:\n subject: %s\n issuer: %s\n", DEBUGP (("certificate:\n subject: %s\n issuer: %s\n",
quotearg_style (escape_quoting_style, subject), quotearg_n_style (0, escape_quoting_style, subject),
quotearg_style (escape_quoting_style, issuer))); quotearg_n_style (1, escape_quoting_style, issuer)));
OPENSSL_free (subject); OPENSSL_free (subject);
OPENSSL_free (issuer); OPENSSL_free (issuer);
} }
@ -524,8 +524,8 @@ ssl_check_certificate (int fd, const char *host)
char *issuer = X509_NAME_oneline (X509_get_issuer_name (cert), 0, 0); char *issuer = X509_NAME_oneline (X509_get_issuer_name (cert), 0, 0);
logprintf (LOG_NOTQUIET, logprintf (LOG_NOTQUIET,
_("%s: cannot verify %s's certificate, issued by %s:\n"), _("%s: cannot verify %s's certificate, issued by %s:\n"),
severity, quotearg_style (escape_quoting_style, host), severity, quotearg_n_style (0, escape_quoting_style, host),
quote (issuer)); quote_n (1, issuer));
/* Try to print more user-friendly (and translated) messages for /* Try to print more user-friendly (and translated) messages for
the frequent verification errors. */ the frequent verification errors. */
switch (vresult) switch (vresult)
@ -578,7 +578,7 @@ ssl_check_certificate (int fd, const char *host)
{ {
logprintf (LOG_NOTQUIET, _("\ logprintf (LOG_NOTQUIET, _("\
%s: certificate common name %s doesn't match requested host name %s.\n"), %s: certificate common name %s doesn't match requested host name %s.\n"),
severity, quote (common_name), quote (host)); severity, quote_n (0, common_name), quote_n (1, host));
success = false; success = false;
} }
else else