From b082cf1742b2310d69b2f278f33f6025e2544acb Mon Sep 17 00:00:00 2001
From: Mohamad Elrashidin Bin Sajeli <archayl@gmail.com>
Date: Thu, 8 May 2014 20:40:57 +0800
Subject: [PATCH] Changed preg_replace to preg_replace callback

---
 lib/functions.php | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/lib/functions.php b/lib/functions.php
index ad9ee9f..d31e0c1 100644
--- a/lib/functions.php
+++ b/lib/functions.php
@@ -2565,12 +2565,22 @@ function dn_unescape($dn) {
 		$a = array();
 
 		foreach ($dn as $key => $rdn)
-			$a[$key] = preg_replace('/\\\([0-9A-Fa-f]{2})/e',"''.chr(hexdec('\\1')).''",$rdn);
+			$a[$key] = preg_replace_callback('/\\\([0-9A-Fa-f]{2})/',
+				function ($r) {
+					return "''.chr(hexdec('$r[1]')).''";
+				},
+				$rdn
+			);
 
 		return $a;
 
 	} else {
-		return preg_replace('/\\\([0-9A-Fa-f]{2})/e',"''.chr(hexdec('\\1')).''",$dn);
+		return preg_replace_callback('/\\\([0-9A-Fa-f]{2})/',
+			function ($r) {
+				return "''.chr(hexdec('$r[1]')).''";
+			},
+			$dn
+		);
 	}
 }
 
