From 670359777263517b92908677fafc7e8dcd377ec5 Mon Sep 17 00:00:00 2001 From: Deven Bansod Date: Tue, 8 Nov 2016 10:14:20 +0530 Subject: [PATCH] Handle multiple `:p` while sanitizing MySQL hosts Signed-off-by: Deven Bansod --- libraries/core.lib.php | 6 +++--- test/libraries/core/PMA_sanitizeMySQLHost_test.php | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/libraries/core.lib.php b/libraries/core.lib.php index 71b7eec736..7924ffa174 100644 --- a/libraries/core.lib.php +++ b/libraries/core.lib.php @@ -891,7 +891,7 @@ if (! function_exists('hash_hmac')) { /** * Sanitizes MySQL hostname * - * * strips p: prefix + * * strips p: prefix(es) * * @param string $name User given hostname * @@ -899,8 +899,8 @@ if (! function_exists('hash_hmac')) { */ function PMA_sanitizeMySQLHost($name) { - if (strtolower(substr($name, 0, 2)) == 'p:') { - return substr($name, 2); + while (strtolower(substr($name, 0, 2)) == 'p:') { + $name = substr($name, 2); } return $name; diff --git a/test/libraries/core/PMA_sanitizeMySQLHost_test.php b/test/libraries/core/PMA_sanitizeMySQLHost_test.php index 1b4404732a..d17ca530d0 100644 --- a/test/libraries/core/PMA_sanitizeMySQLHost_test.php +++ b/test/libraries/core/PMA_sanitizeMySQLHost_test.php @@ -40,6 +40,7 @@ class PMA_sanitizeMySQLHost_test extends PHPUnit_Framework_TestCase { return array( array('p:foo.bar', 'foo.bar'), + array('p:p:foo.bar', 'foo.bar'), array('bar.baz', 'bar.baz'), array('P:example.com', 'example.com'), );