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

CONC-689: Fix parsing of HEARTBEAT_LOG_EVENT:

The heartbeat log event now contains the filename,
instead of wrong header information (which was
already processed when reading event header).
This commit is contained in:
Georg Richter
2024-03-18 08:09:02 +01:00
parent d5973f77da
commit 2fc64d791c
3 changed files with 86 additions and 22 deletions

View File

@@ -1165,20 +1165,15 @@ MARIADB_RPL_EVENT * STDCALL mariadb_rpl_fetch(MARIADB_RPL *rpl, MARIADB_RPL_EVEN
switch(rpl_event->event_type) {
case UNKNOWN_EVENT:
case SLAVE_EVENT:
return rpl_event;
break;
return rpl_event;
break;
case HEARTBEAT_LOG_EVENT:
/* no post header size */
RPL_CHECK_POS(ev, ev_end, 11);
rpl_event->event.heartbeat.timestamp= uint4korr(ev);
ev+= 4;
rpl_event->event.heartbeat.next_position= uint4korr(ev);
ev+= 4;
rpl_event->event.heartbeat.type= (uint8_t)*ev;
ev+= 1;
rpl_event->event.heartbeat.flags= uint2korr(ev);
ev+= 2;
len= rpl_event->event_length - (ev - ev_start) - (rpl->use_checksum ? 4 : 0) - (EVENT_HEADER_OFS - 1);
RPL_CHECK_POS(ev, ev_end, len);
rpl_event->event.heartbeat.filename.length= len;
rpl_event->event.heartbeat.filename.str= ev;
ev+= len;
break;
case BEGIN_LOAD_QUERY_EVENT: