diff --git a/sql/log_event.cc b/sql/log_event.cc index a07efc21915..9e8c0695b90 100644 --- a/sql/log_event.cc +++ b/sql/log_event.cc @@ -1330,14 +1330,13 @@ Query_log_event::Query_log_event(const char* buf, uint event_len, if (!(start= data_buf = (char*) my_malloc(catalog_len + 1 + time_zone_len + 1 + - data_len + 1 + -#ifndef MYSQL_CLIENT -#ifdef HAVE_QUERY_CACHE - QUERY_CACHE_FLAGS_SIZE + + data_len + 1 +#if !defined(MYSQL_CLIENT) && defined(HAVE_QUERY_CACHE) + + QUERY_CACHE_FLAGS_SIZE + + db_len + 1 #endif -#endif - db_len + 1, MYF(MY_WME)))) - DBUG_VOID_RETURN; + , MYF(MY_WME)))) + DBUG_VOID_RETURN; if (catalog_len) // If catalog is given { if (likely(catalog_nz)) // true except if event comes from 5.0.0|1|2|3. diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index 31d0f3eb675..70920b07a97 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -1218,7 +1218,8 @@ extern "C" pthread_handler_decl(handle_bootstrap,arg) length--; buff[length]=0; thd->query_length=length; - thd->query= thd->memdup_w_gap(buff, length+1, thd->db_length+1); + thd->query= thd->memdup_w_gap(buff, length+1, + thd->db_length+1+QUERY_CACHE_FLAGS_SIZE); thd->query[length] = '\0'; /* We don't need to obtain LOCK_thread_count here because in bootstrap