summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristoph M. Becker <cmbecker69@gmx.de>2019-08-02 16:42:49 +0200
committerChristoph M. Becker <cmbecker69@gmx.de>2019-08-02 16:42:49 +0200
commitf9f4a68368406a2ba2bd9fab0494261090183e8e (patch)
tree42820d2991f5c2a8b8e37db90e614c5ee6d2f1a7
parent85e8ccd55e37028be6260c142c27689977564c9a (diff)
downloadphp-git-f9f4a68368406a2ba2bd9fab0494261090183e8e.tar.gz
Fix #78179: MariaDB server version incorrectly detected
As of MariaDB 10.0.2, the server reports a fake version number as work- around for replication issues[1]. We apply the same "fix" as in the MariaDB client to cater to this. [1] <https://github.com/MariaDB/server/commit/c50ee6c23dbeb090963580754bec2f0a96ac0557#diff-5b45fa673c88c06a9651c7906364f592>
-rw-r--r--NEWS3
-rw-r--r--ext/mysqlnd/mysqlnd_connection.c8
2 files changed, 11 insertions, 0 deletions
diff --git a/NEWS b/NEWS
index f8508d2a30..31b67125f6 100644
--- a/NEWS
+++ b/NEWS
@@ -20,6 +20,9 @@ PHP NEWS
- LiteSpeed:
. Updated to LiteSpeed SAPI V7.5 (Fixed clean shutdown). (George Wang)
+- MySQLnd:
+ . Fixed bug #78179 (MariaDB server version incorrectly detected). (cmb)
+
- Standard:
. Fixed bug #69100 (Bus error from stream_copy_to_stream (file -> SSL stream)
with invalid length). (Nikita)
diff --git a/ext/mysqlnd/mysqlnd_connection.c b/ext/mysqlnd/mysqlnd_connection.c
index dc42a16b6d..42de003ef9 100644
--- a/ext/mysqlnd/mysqlnd_connection.c
+++ b/ext/mysqlnd/mysqlnd_connection.c
@@ -1485,6 +1485,14 @@ MYSQLND_METHOD(mysqlnd_conn_data, get_server_version)(const MYSQLND_CONN_DATA *
return 0;
}
+#define MARIA_DB_VERSION_HACK_PREFIX "5.5.5-"
+
+ if (conn->server_capabilities & CLIENT_PLUGIN_AUTH
+ && !strncmp(p, MARIA_DB_VERSION_HACK_PREFIX, sizeof(MARIA_DB_VERSION_HACK_PREFIX)-1))
+ {
+ p += sizeof(MARIA_DB_VERSION_HACK_PREFIX)-1;
+ }
+
major = ZEND_STRTOL(p, &p, 10);
p += 1; /* consume the dot */
minor = ZEND_STRTOL(p, &p, 10);