From c665f476cf22edab3463412fd87d8bfe465da835 Mon Sep 17 00:00:00 2001 From: Bharat Mediratta Date: Sun, 5 Feb 2012 17:14:53 -0800 Subject: [PATCH] Trap unserialize() fails. --- .../controllers/admin_session_explorer.php | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/3.0/modules/session_explorer/controllers/admin_session_explorer.php b/3.0/modules/session_explorer/controllers/admin_session_explorer.php index 79f1b74e..0dd87dcc 100644 --- a/3.0/modules/session_explorer/controllers/admin_session_explorer.php +++ b/3.0/modules/session_explorer/controllers/admin_session_explorer.php @@ -70,7 +70,7 @@ class Admin_Session_Explorer_Controller extends Admin_Controller { // Adapted from // http://us3.php.net/manual/en/function.session-decode.php#101687 // by jason at joeymail dot net - function unserialize_session( $data ) { + function unserialize_session($data) { if (strlen($data) == 0) { return array(); } @@ -93,7 +93,13 @@ class Admin_Session_Explorer_Controller extends Admin_Controller { } $value_text = substr($data, $last_offset); - $return_array[$current_key] = unserialize($value_text); + try { + $return_array[$current_key] = unserialize($value_text); + } catch (ErrorException $e) { + // Dunno why unserialize fails. If it fails enough, it'll show up in the aggregate + // counts and we can deal with it. + return array("user_agent" => "[unserialize fail]", "ip_address" => "[unserialize fail]"); + } return $return_array; } } \ No newline at end of file