Skip to content

Commit e8d1f6d

Browse files
csevcursoragent
andcommitted
Guard getIgnoreCase against array and object keys.
Co-authored-by: Cursor <cursoragent@cursor.com>
1 parent 9858acc commit e8d1f6d

2 files changed

Lines changed: 3 additions & 0 deletions

File tree

lib/src/Util/U.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ public static function get($arr, $key, $default=null) {
9595
public static function getIgnoreCase($arr, $key, $default=null) {
9696
if ( !is_array($arr) ) return $default;
9797
if ( !isset($key) ) return $default;
98+
if ( is_array($key) || is_object($key) ) return $default;
9899
if ( isset($arr[$key]) ) return $arr[$key];
99100
$keyLower = strtolower((string)$key);
100101
foreach ($arr as $k => $v) {

lib/tests/Util/UTest.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -404,6 +404,8 @@ public function testGetIgnoreCase() {
404404
$this->assertEquals('missing', U::getIgnoreCase($headers, 'X-Not-There', 'missing'));
405405
$this->assertEquals('missing', U::getIgnoreCase(null, 'Link', 'missing'));
406406
$this->assertEquals('missing', U::getIgnoreCase($headers, null, 'missing'));
407+
$this->assertEquals('missing', U::getIgnoreCase($headers, array('Link'), 'missing'));
408+
$this->assertEquals('missing', U::getIgnoreCase($headers, new \stdClass(), 'missing'));
407409

408410
$both = array('Link' => 'canonical', 'link' => 'lowercase');
409411
$this->assertEquals('canonical', U::getIgnoreCase($both, 'Link'));

0 commit comments

Comments
 (0)