Database: Ensure MySQL port numbers are numeric in wpdb.

Ensure the database port number is recorded as an integer or `null` (the default port) when parsing the database host.

This is to prevent PHP/MySQLi throwing an exception caused by ports represented as numeric strings.

Props audrasjb, azouamauriac, chaion07, costdev, johnjamesjacoby, jrf, sergeybiryukov.
Fixes #54877.


git-svn-id: https://develop.svn.wordpress.org/trunk@53670 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Peter Wilson
2022-07-06 05:31:47 +00:00
parent 5b5c74b904
commit 0a17a80bcc
2 changed files with 50 additions and 6 deletions

View File

@@ -2077,6 +2077,9 @@ class wpdb {
}
}
// MySQLi port cannot be a string; must be null or an integer.
$port = $port ? absint( $port ) : null;
return array( $host, $port, $socket, $is_ipv6 );
}