diff --git a/sql/log_event.cc b/sql/log_event.cc index 29cb4d6d7d782..a3ebf53079669 100644 --- a/sql/log_event.cc +++ b/sql/log_event.cc @@ -1,6 +1,6 @@ /* Copyright (c) 2000, 2019, Oracle and/or its affiliates. - Copyright (c) 2009, 2019, MariaDB + Copyright (c) 2009, 2020, MariaDB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -3184,7 +3184,7 @@ void Rows_log_event::change_to_flashback_event(PRINT_EVENT_INFO *print_event_inf Table_map_log_event *map; table_def *td; DYNAMIC_ARRAY rows_arr; - uchar *swap_buff1, *swap_buff2; + uchar *swap_buff1; uchar *rows_pos= rows_buff + m_rows_before_size; if (!(map= print_event_info->m_table_map.get_table(m_table_id)) || @@ -3233,7 +3233,7 @@ void Rows_log_event::change_to_flashback_event(PRINT_EVENT_INFO *print_event_inf } value+= length2; - swap_buff2= (uchar *) my_malloc(length2, MYF(0)); + void *swap_buff2= my_malloc(length2, MYF(0)); if (!swap_buff2) { fprintf(stderr, "\nError: Out of memory. " @@ -3241,21 +3241,14 @@ void Rows_log_event::change_to_flashback_event(PRINT_EVENT_INFO *print_event_inf exit(1); } memcpy(swap_buff2, start_pos + length1, length2); // WHERE part - } - if (ev_type == UPDATE_ROWS_EVENT || - ev_type == UPDATE_ROWS_EVENT_V1) - { /* Swap SET and WHERE part */ memcpy(start_pos, swap_buff2, length2); memcpy(start_pos + length2, swap_buff1, length1); + my_free(swap_buff2); } - /* Free tmp buffers */ my_free(swap_buff1); - if (ev_type == UPDATE_ROWS_EVENT || - ev_type == UPDATE_ROWS_EVENT_V1) - my_free(swap_buff2); /* Copying one row into a buff, and pushing into the array */ LEX_STRING one_row;