diff --git a/server/modules/protocol/MySQL/mysql_common.cc b/server/modules/protocol/MySQL/mysql_common.cc index 0ab66f652..11c1c8172 100644 --- a/server/modules/protocol/MySQL/mysql_common.cc +++ b/server/modules/protocol/MySQL/mysql_common.cc @@ -1806,7 +1806,9 @@ void mxs_mysql_parse_ok_packet(GWBUF *buff, size_t packet_offset, size_t packet_ if (server_status & SERVER_SESSION_STATE_CHANGED) { - mxs_leint_consume(&ptr); // total SERVER_SESSION_STATE_CHANGED length + ss_debug(uint64_t data_size = )mxs_leint_consume(&ptr); // total SERVER_SESSION_STATE_CHANGED length + ss_dassert(data_size == packet_len - (ptr - local_buf)); + while (ptr < (local_buf + packet_len)) { enum_session_state_type type = @@ -1818,6 +1820,9 @@ void mxs_mysql_parse_ok_packet(GWBUF *buff, size_t packet_offset, size_t packet_ { case SESSION_TRACK_STATE_CHANGE: case SESSION_TRACK_SCHEMA: + size = mxs_leint_consume(&ptr); // Length of the overall entity. + ptr += size; + break; case SESSION_TRACK_GTIDS: mxs_leint_consume(&ptr); // Length of the overall entity. mxs_leint_consume(&ptr); // encoding specification