diff --git a/plugin/semisync/semisync_source.cc b/plugin/semisync/semisync_source.cc index 134164ff2db..38093ed6dc1 100644 --- a/plugin/semisync/semisync_source.cc +++ b/plugin/semisync/semisync_source.cc @@ -127,7 +127,18 @@ unsigned int ActiveTranx::get_hash_value(const char *log_file_name, int ActiveTranx::compare(const char *log_file_name1, my_off_t log_file_pos1, const char *log_file_name2, my_off_t log_file_pos2) { - int cmp = strcmp(log_file_name1, log_file_name2); + int cmp = 0; + + size_t log_file_name1_len = strlen(log_file_name1); + size_t log_file_name2_len = strlen(log_file_name2); + if (log_file_name1_len != log_file_name2_len) { + if (log_file_name1_len > log_file_name2_len) + cmp = 1; + else if (log_file_name1_len < log_file_name2_len) + cmp = -1; + } else { + cmp = strcmp(log_file_name1, log_file_name2); + } if (cmp != 0) return cmp;