From 668bdc7a6db610447dd104f7872d92d2b16c7421 Mon Sep 17 00:00:00 2001 From: Alexei Sorokin Date: Wed, 12 Aug 2020 13:50:39 +0300 Subject: [PATCH] [Memcached_DataObject] Thorough check of pivotGetClass arguments --- classes/Memcached_DataObject.php | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/classes/Memcached_DataObject.php b/classes/Memcached_DataObject.php index f26018b33d..9e131af87b 100644 --- a/classes/Memcached_DataObject.php +++ b/classes/Memcached_DataObject.php @@ -160,10 +160,20 @@ class Memcached_DataObject extends Safe_DataObject * * @return array Array mapping $keyVals to objects, or null if not found */ - public static function pivotGetClass($cls, $keyCol, array $keyVals, array $otherCols = []) - { + public static function pivotGetClass( + $cls, + $keyCol, + array $keyVals, + array $otherCols = [] + ) { if (is_array($keyCol)) { foreach ($keyVals as $keyVal) { + if (!is_array($keyVal)) { + throw new ServerException( + 'keyVals passed to pivotGet must be an array of arrays ' + . 'if keyCol is an array' + ); + } $result[implode(',', $keyVal)] = null; } } else { @@ -595,7 +605,7 @@ class Memcached_DataObject extends Safe_DataObject return $ckeys; } - public static function multicache($cls, $kv) + public static function multicache($cls, array $kv) { ksort($kv); $c = self::memcache(); @@ -606,7 +616,7 @@ class Memcached_DataObject extends Safe_DataObject } } - public static function multicacheKey($cls, $kv) + public static function multicacheKey($cls, array $kv) { ksort($kv); $pkeys = implode(',', array_keys($kv));