From d7d9adbf02e8e801967b5463b4ab101660f921a0 Mon Sep 17 00:00:00 2001 From: Peter Wilson Date: Wed, 6 Jul 2022 05:33:17 +0000 Subject: [PATCH] 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. Built from https://develop.svn.wordpress.org/trunk@53670 git-svn-id: http://core.svn.wordpress.org/trunk@53229 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-includes/version.php | 2 +- wp-includes/wp-db.php | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/wp-includes/version.php b/wp-includes/version.php index ffb00a3038..9ee46e5db0 100644 --- a/wp-includes/version.php +++ b/wp-includes/version.php @@ -16,7 +16,7 @@ * * @global string $wp_version */ -$wp_version = '6.1-alpha-53669'; +$wp_version = '6.1-alpha-53670'; /** * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema. diff --git a/wp-includes/wp-db.php b/wp-includes/wp-db.php index 6df284e0aa..d61fc4f0a6 100644 --- a/wp-includes/wp-db.php +++ b/wp-includes/wp-db.php @@ -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 ); }