Escape funny characters when logging DN=
authorPhilip Hazel <ph10@hermes.cam.ac.uk>
Wed, 22 Aug 2007 14:20:28 +0000 (14:20 +0000)
committerPhilip Hazel <ph10@hermes.cam.ac.uk>
Wed, 22 Aug 2007 14:20:28 +0000 (14:20 +0000)
doc/doc-txt/ChangeLog
src/src/deliver.c
src/src/receive.c
src/src/smtp_in.c

index 17e87d0dc6e98d39c3eee93978facbb41c48db24..1e79291f35abaa46b94c7f260e6d4e2e2965ac69 100644 (file)
@@ -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
 -----------------
index c712e9aa2a221c0abbcc096430ff004b3490b8e7..c209e12f2863f44dbb951ea79f25b573b9fdce7b 100644 (file)
@@ -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 &&
index e97314a206b391289a4b6dab6eaec53d55577894..651121956b0326f71e57f8b10f9050794cf9f145 100644 (file)
@@ -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)
index d336f0ecab2b3c1ae2ac5c97326c9e474a3cce90..6c66a5634240c2e7ab718673f0f44c14011211fb 100644 (file)
@@ -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)?