From 48ed62d9a68c4e44c9fbaa6e300f88401bb32d65 Mon Sep 17 00:00:00 2001 From: Philip Hazel Date: Wed, 22 Aug 2007 14:20:28 +0000 Subject: [PATCH] Escape funny characters when logging DN= --- doc/doc-txt/ChangeLog | 6 +++++- src/src/deliver.c | 5 +++-- src/src/receive.c | 5 +++-- src/src/smtp_in.c | 5 +++-- 4 files changed, 14 insertions(+), 7 deletions(-) diff --git a/doc/doc-txt/ChangeLog b/doc/doc-txt/ChangeLog index 17e87d0dc..1e79291f3 100644 --- a/doc/doc-txt/ChangeLog +++ b/doc/doc-txt/ChangeLog @@ -1,4 +1,4 @@ -$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.524 2007/08/22 14:07:30 ph10 Exp $ +$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.525 2007/08/22 14:20:28 ph10 Exp $ Change log file for Exim from version 4.21 ------------------------------------------- @@ -88,6 +88,10 @@ PH/18 If a system quota error occurred while trying to create the file for bounce if the delivery eventually timed out. Change 4.67/27 below applied only to a quota excession during the actual writing of the file. +PH/10 It seems that peer DN values may contain newlines (and other non-printing + characters?) which causes problems in log lines. The DN values are now + passed through string_printing() before being added to log lines. + Exim version 4.67 ----------------- diff --git a/src/src/deliver.c b/src/src/deliver.c index c712e9aa2..c209e12f2 100644 --- a/src/src/deliver.c +++ b/src/src/deliver.c @@ -1,4 +1,4 @@ -/* $Cambridge: exim/src/src/deliver.c,v 1.44 2007/02/06 14:19:00 ph10 Exp $ */ +/* $Cambridge: exim/src/src/deliver.c,v 1.45 2007/08/22 14:20:28 ph10 Exp $ */ /************************************************* * Exim - an Internet mail transport agent * @@ -944,7 +944,8 @@ if (result == OK) s = string_append(s, &size, &ptr, 2, US" CV=", testflag(addr, af_cert_verified)? "yes":"no"); if ((log_extra_selector & LX_tls_peerdn) != 0 && addr->peerdn != NULL) - s = string_append(s, &size, &ptr, 3, US" DN=\"", addr->peerdn, US"\""); + s = string_append(s, &size, &ptr, 3, US" DN=\"", + string_printing(addr->peerdn), US"\""); #endif if ((log_extra_selector & LX_smtp_confirmation) != 0 && diff --git a/src/src/receive.c b/src/src/receive.c index e97314a20..651121956 100644 --- a/src/src/receive.c +++ b/src/src/receive.c @@ -1,4 +1,4 @@ -/* $Cambridge: exim/src/src/receive.c,v 1.40 2007/08/22 10:10:23 ph10 Exp $ */ +/* $Cambridge: exim/src/src/receive.c,v 1.41 2007/08/22 14:20:28 ph10 Exp $ */ /************************************************* * Exim - an Internet mail transport agent * @@ -3366,7 +3366,8 @@ if ((log_extra_selector & LX_tls_certificate_verified) != 0 && s = string_append(s, &size, &sptr, 2, US" CV=", tls_certificate_verified? "yes":"no"); if ((log_extra_selector & LX_tls_peerdn) != 0 && tls_peerdn != NULL) - s = string_append(s, &size, &sptr, 3, US" DN=\"", tls_peerdn, US"\""); + s = string_append(s, &size, &sptr, 3, US" DN=\"", + string_printing(tls_peerdn), US"\""); #endif if (sender_host_authenticated != NULL) diff --git a/src/src/smtp_in.c b/src/src/smtp_in.c index d336f0eca..6c66a5634 100644 --- a/src/src/smtp_in.c +++ b/src/src/smtp_in.c @@ -1,4 +1,4 @@ -/* $Cambridge: exim/src/src/smtp_in.c,v 1.60 2007/08/22 10:10:23 ph10 Exp $ */ +/* $Cambridge: exim/src/src/smtp_in.c,v 1.61 2007/08/22 14:20:28 ph10 Exp $ */ /************************************************* * Exim - an Internet mail transport agent * @@ -818,7 +818,8 @@ if ((log_extra_selector & LX_tls_certificate_verified) != 0 && s = string_append(s, &size, &ptr, 2, US" CV=", tls_certificate_verified? "yes":"no"); if ((log_extra_selector & LX_tls_peerdn) != 0 && tls_peerdn != NULL) - s = string_append(s, &size, &ptr, 3, US" DN=\"", tls_peerdn, US"\""); + s = string_append(s, &size, &ptr, 3, US" DN=\"", + string_printing(tls_peerdn), US"\""); #endif sep = (smtp_connection_had[SMTP_HBUFF_SIZE-1] != SCH_NONE)? -- 2.25.1