diff options
author | Christoph M. Becker <cmbecker69@gmx.de> | 2019-08-02 16:42:49 +0200 |
---|---|---|
committer | Christoph M. Becker <cmbecker69@gmx.de> | 2019-08-02 16:42:49 +0200 |
commit | f9f4a68368406a2ba2bd9fab0494261090183e8e (patch) | |
tree | 42820d2991f5c2a8b8e37db90e614c5ee6d2f1a7 | |
parent | 85e8ccd55e37028be6260c142c27689977564c9a (diff) | |
download | php-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-- | NEWS | 3 | ||||
-rw-r--r-- | ext/mysqlnd/mysqlnd_connection.c | 8 |
2 files changed, 11 insertions, 0 deletions
@@ -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); |