From bdf6fbb4f6af14f60f88a6dad8e78069991c1aae Mon Sep 17 00:00:00 2001 From: Georg Richter Date: Mon, 27 Feb 2023 10:23:39 +0100 Subject: [PATCH] Replication/Binlog API fix: When sending filename in SEMI_SYNC_REQUEST to the server, we don't need to send additional terminating zero in filename. See https://mariadb.com/kb/en/4-semi-sync-replication/ --- libmariadb/mariadb_rpl.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/libmariadb/mariadb_rpl.c b/libmariadb/mariadb_rpl.c index e2796291..3d9145c3 100644 --- a/libmariadb/mariadb_rpl.c +++ b/libmariadb/mariadb_rpl.c @@ -1814,13 +1814,12 @@ MARIADB_RPL_EVENT * STDCALL mariadb_rpl_fetch(MARIADB_RPL *rpl, MARIADB_RPL_EVEN if (rpl_event->is_semi_sync && rpl_event->semi_sync_flags == SEMI_SYNC_ACK_REQ) { - size_t buf_size= rpl->filename_length + 1 + 9; + size_t buf_size= rpl->filename_length + 1 + 8; uchar *buffer= alloca(buf_size); buffer[0]= SEMI_SYNC_INDICATOR; int8store(buffer + 1, (int64_t)rpl_event->next_event_pos); memcpy(buffer + 9, rpl->filename, rpl->filename_length); - buffer[buf_size - 1]= 0; /* clear network buffer before sending the reply packet*/ ma_net_clear(&rpl->mysql->net);