RedisBagOStuff: Fix unserialization of negative numbers
authorBrad Jorsch <bjorsch@wikimedia.org>
Thu, 12 May 2016 03:49:21 +0000 (20:49 -0700)
committerRoan Kattouw <roan.kattouw@gmail.com>
Thu, 12 May 2016 03:51:08 +0000 (20:51 -0700)
ctype_digit( $data ) doesn't return true if $data is
a negative integer.

Bug: T134923
Change-Id: Ie8a23fc6354a15210e010062e3da3058f4c463bb

includes/objectcache/RedisBagOStuff.php

index 61e6926..90508da 100644 (file)
@@ -310,7 +310,8 @@ class RedisBagOStuff extends BagOStuff {
         * @return mixed
         */
        protected function unserialize( $data ) {
-               return ctype_digit( $data ) ? intval( $data ) : unserialize( $data );
+               $int = intval( $data );
+               return $data === (string)$int ? $int : unserialize( $data );
        }
 
        /**