diff --git a/program/include/rcube_utils.php b/program/include/rcube_utils.php index 2a4d4c482..5cfd8e70e 100644 --- a/program/include/rcube_utils.php +++ b/program/include/rcube_utils.php @@ -761,7 +761,7 @@ class rcube_utils } } - $result[] = substr($string, $p); + $result[] = (string) substr($string, $p); return $result; } diff --git a/tests/Framework/Utils.php b/tests/Framework/Utils.php index e58835956..ec61c5d4b 100644 --- a/tests/Framework/Utils.php +++ b/tests/Framework/Utils.php @@ -193,4 +193,17 @@ class Framework_Utils extends PHPUnit_Framework_TestCase $mod = rcube_utils::mod_css_styles("background:\\0075\\0072\\006c( javascript:alert('xss') )", 'rcmbody'); $this->assertEquals("/* evil! */", $mod, "Don't allow encoding quirks (2)"); } + + /** + * Check rcube_utils::explode_quoted_string() compat. with explode() + */ + function test_explode_quoted_string_compat() + { + $data = array('', 'a,b,c', 'a', ',', ',a'); + + foreach ($data as $text) { + $result = rcube_utils::explode_quoted_string(',', $text); + $this->assertSame(explode(',', $text), $result); + } + } }