From 9b8d22ebe14a2a6d3f5c8bebee0a3126a72521cc Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Wed, 08 May 2013 14:19:58 -0400
Subject: [PATCH] Limit debug log entry (line) size to 4096 characters to prevent memory_limit/preformance issues when debug is enabled (imap, smtp, db)
---
program/lib/Roundcube/rcube_smtp.php | 7 +++++++
1 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/program/lib/Roundcube/rcube_smtp.php b/program/lib/Roundcube/rcube_smtp.php
index 0f3ac04..6ba7666 100644
--- a/program/lib/Roundcube/rcube_smtp.php
+++ b/program/lib/Roundcube/rcube_smtp.php
@@ -33,6 +33,8 @@
// define headers delimiter
const SMTP_MIME_CRLF = "\r\n";
+ const DEBUG_LINE_LENGTH = 4096;
+
/**
* SMTP Connection and authentication
@@ -327,6 +329,11 @@
*/
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);
+ }
+
rcube::write_log('smtp', preg_replace('/\r\n$/', '', $message));
}
--
Gitblit v1.9.1