ports/databases/mysql80-server/files/patch-sql_conn__handler_socket__connection.cc
Mahdi Mokhtari dcc891e0be databases/mysql80-{client, server}: Update to latest release 8.0.14
This update (released on Jan 21st) includes:
Bugs Fixed:
  Important Change: Fix importing a dump from a MySQL 5.7 server 8.0 failure.
    (ER_WRONG_VALUE_FOR_VAR, when an unsupported [by 8.0] SQL mode was used).
    The behavior of the server in such circumstances now depends on the setting of the
    `pseudo_slave_mode` system variable.
    If this is false, the server rejects the mode setting with ER_UNSUPPORTED_SQL_MODE.
    Otherwise, server just gives a warning. (Bug #90337, Bug #27828236).

  InnoDB: Properly initialize the static thread-local 'tables' variable in
    the TempTable storage engine (on Solaris X86) was not properly initialized.
    (Bug #28987365)

  InnoDB: Fix incorrect lock order caused a deadlock when one thread attempted to
    drop a table while another created an encrypted tablespace. (Bug #28774259)

More info from upstream:
  https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-14.html

While here, Adapt some local patches with new upstream changes.

PR:		234984
Sponsored by:	The FreeBSD Foundation
2019-01-26 18:36:14 +00:00

32 lines
1.3 KiB
C++

--- sql/conn_handler/socket_connection.cc.orig 2019-01-21 20:10:03 UTC
+++ sql/conn_handler/socket_connection.cc
@@ -873,9 +873,11 @@ bool check_connection_refused_by_tcp_wra
signal(SIGCHLD, SIG_DFL);
request_init(&req, RQ_DAEMON, libwrap_name, RQ_FILE,
mysql_socket_getfd(connect_sock), NULL);
- fromhost(&req);
+ void (*my_fromhost) (void *) = (void (*)(void *)) fromhost;
+ my_fromhost(&req);
- if (!hosts_access(&req)) {
+ int (*my_hosts_access) (void *) = (int (*) (void *)) hosts_access;
+ if (!my_hosts_access(&req)) {
/*
This may be stupid but refuse() includes an exit(0)
which we surely don't want...
@@ -887,12 +889,13 @@ bool check_connection_refused_by_tcp_wra
This is unproblematic as TCP-wrapper is unix specific,
anyway.
*/
+ char *(*my_eval_client) (void *) = (char *(*) (void *)) eval_client;
syslog(LOG_AUTH | LOG_WARNING, "refused connect from %s",
- eval_client(&req));
+ my_eval_client(&req));
#ifdef HAVE_LIBWRAP_PROTOTYPES
// Some distros have patched tcpd.h to have proper prototypes
- if (req.sink) (req.sink)(req.fd);
+ if (req.sink) ((void (*)(int)) (req.sink))(req.fd);
#else
// Some distros have not patched tcpd.h
if (req.sink) ((void (*)(int))req.sink)(req.fd);