From 4287c9a2f9dfd14c9d5e29388059bdeed8bc6e85 Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Tue, 13 Aug 2013 03:16:48 -0400
Subject: [PATCH] Fix replacement variables in user-specific base_dn in some LDAP requests (#1489279)

---
 program/lib/Roundcube/rcube_smtp.php |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/program/lib/Roundcube/rcube_smtp.php b/program/lib/Roundcube/rcube_smtp.php
index 6ba7666..60b1389 100644
--- a/program/lib/Roundcube/rcube_smtp.php
+++ b/program/lib/Roundcube/rcube_smtp.php
@@ -33,7 +33,7 @@
     // define headers delimiter
     const SMTP_MIME_CRLF = "\r\n";
 
-    const DEBUG_LINE_LENGTH = 4096;
+    const DEBUG_LINE_LENGTH = 4098; // 4KB + 2B for \r\n
 
 
     /**
@@ -330,8 +330,9 @@
     public function debug_handler(&$smtp, $message)
     {
         if (($len = strlen($message)) > self::DEBUG_LINE_LENGTH) {
-            $message = substr_replace($message, "\n-----[debug cut]----\n",
-                self::DEBUG_LINE_LENGTH/2 - 11, $len - self::DEBUG_LINE_LENGTH - 22);
+            $diff    = $len - self::DEBUG_LINE_LENGTH;
+            $message = substr($message, 0, self::DEBUG_LINE_LENGTH)
+                . "... [truncated $diff bytes]";
         }
 
         rcube::write_log('smtp', preg_replace('/\r\n$/', '', $message));

--
Gitblit v1.9.1