1
0
mirror of https://github.com/mariadb-corporation/mariadb-connector-c.git synced 2025-08-07 02:42:49 +03:00

Fixed segfault:

Use rpl->host and port instead of mysql->options.
This commit is contained in:
Georg Richter
2023-02-22 11:32:21 +01:00
parent 9890d34612
commit dbb4d8d93b
2 changed files with 14 additions and 3 deletions

View File

@@ -763,13 +763,13 @@ int STDCALL mariadb_rpl_open(MARIADB_RPL *rpl)
4 source server id (unused) 4 source server id (unused)
*/ */
unsigned char *p, buffer[1024]; unsigned char *p, buffer[1024];
size_t len= MIN(strlen(rpl->mysql->options.extension->rpl_host), 255); size_t len= MIN(strlen(rpl->host), 255);
p= buffer; p= buffer;
int4store(p, rpl->server_id); int4store(p, rpl->server_id);
p+= 4; p+= 4;
*p++= (unsigned char)len; *p++= (unsigned char)len;
memcpy(p, rpl->mysql->options.extension->rpl_host, len); memcpy(p, rpl->host, len);
p+= len; p+= len;
/* Don't send user, password, rank and server_id */ /* Don't send user, password, rank and server_id */

View File

@@ -136,13 +136,24 @@ static int test_rpl_semisync(MYSQL *my __attribute__((unused)))
rpl = mariadb_rpl_init(mysql); rpl = mariadb_rpl_init(mysql);
mariadb_rpl_optionsv(rpl, MARIADB_RPL_HOST, "foo");
mysql_query(mysql, "SET @mariadb_slave_capability=4");
mysql_query(mysql, "SET NAMES latin1");
mysql_query(mysql, "SET @slave_gtid_strict_mode=1");
mysql_query(mysql, "SET @slave_gtid_ignore_duplicates=1");
mysql_query(mysql, "SET NAMES utf8");
mysql_query(mysql, "SET @master_binlog_checksum= @@global.binlog_checksum");
rpl->server_id= 12;
rpl->start_position= 4;
rpl->flags= MARIADB_RPL_BINLOG_SEND_ANNOTATE_ROWS;
mysql_query(mysql, "SET @mariadb_slave_capability=4"); mysql_query(mysql, "SET @mariadb_slave_capability=4");
mysql_query(mysql, "SET NAMES latin1"); mysql_query(mysql, "SET NAMES latin1");
mysql_query(mysql, "SET @slave_gtid_strict_mode=1"); mysql_query(mysql, "SET @slave_gtid_strict_mode=1");
mysql_query(mysql, "SET @slave_gtid_ignore_duplicates=1"); mysql_query(mysql, "SET @slave_gtid_ignore_duplicates=1");
mysql_query(mysql, "SET NAMES utf8"); mysql_query(mysql, "SET NAMES utf8");
mysql_query(mysql, "SET @master_binlog_checksum= @@global.binlog_checksum"); mysql_query(mysql, "SET @master_binlog_checksum= @@global.binlog_checksum");
mysql_query(mysql, "SET @rpl_semi_sync_slave=1");
rpl->server_id= 12; rpl->server_id= 12;
rpl->start_position= 4; rpl->start_position= 4;
rpl->flags= MARIADB_RPL_BINLOG_SEND_ANNOTATE_ROWS; rpl->flags= MARIADB_RPL_BINLOG_SEND_ANNOTATE_ROWS;