From ab05ee25c1d38c884790337796f7c941e28d36d9 Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Sun, 02 Jun 2013 08:46:51 -0400
Subject: [PATCH] Fix backward copat. with cached values serialized but not base64-encoded (#1489142)
---
program/lib/Roundcube/rcube_db.php | 9 +++++++--
1 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/program/lib/Roundcube/rcube_db.php b/program/lib/Roundcube/rcube_db.php
index adfe3ca..b3f549b 100644
--- a/program/lib/Roundcube/rcube_db.php
+++ b/program/lib/Roundcube/rcube_db.php
@@ -829,9 +829,14 @@
*/
public static function decode($input, $serialized = false)
{
+ // use Base64 encoding to workaround issues with invalid
+ // or null characters in serialized string (#1489142)
if ($serialized) {
- // use Base64 encoding to workaround issues with invalid
- // or null characters in serialized string (#1489142)
+ // Keep backward compatybility where base64 wasn't used
+ if (strpos(substr($input, 0, 16), ':') !== false) {
+ return self::decode(@unserialize($input));
+ }
+
return @unserialize(base64_decode($input));
}
--
Gitblit v1.9.1