diff options
Diffstat (limited to 'sql/event_parse_data.cc')
-rw-r--r-- | sql/event_parse_data.cc | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/sql/event_parse_data.cc b/sql/event_parse_data.cc index 2cd8f5c1b59..7932f228309 100644 --- a/sql/event_parse_data.cc +++ b/sql/event_parse_data.cc @@ -528,7 +528,7 @@ Event_parse_data::init_definer(THD *thd) const char *definer_host= thd->lex->definer->host.str; size_t definer_user_len= thd->lex->definer->user.length; size_t definer_host_len= thd->lex->definer->host.length; - + char *tmp; DBUG_PRINT("info",("init definer_user thd->mem_root: 0x%lx " "definer_user: 0x%lx", (long) thd->mem_root, (long) definer_user)); @@ -536,15 +536,14 @@ Event_parse_data::init_definer(THD *thd) /* + 1 for @ */ DBUG_PRINT("info",("init definer as whole")); definer.length= definer_user_len + definer_host_len + 1; - definer.str= (char*) thd->alloc(definer.length + 1); + definer.str= tmp= (char*) thd->alloc(definer.length + 1); DBUG_PRINT("info",("copy the user")); - memcpy(definer.str, definer_user, definer_user_len); - definer.str[definer_user_len]= '@'; + strmake(tmp, definer_user, definer_user_len); + tmp[definer_user_len]= '@'; DBUG_PRINT("info",("copy the host")); - memcpy(definer.str + definer_user_len + 1, definer_host, definer_host_len); - definer.str[definer.length]= '\0'; + strmake(tmp + definer_user_len + 1, definer_host, definer_host_len); DBUG_PRINT("info",("definer [%s] initted", definer.str)); DBUG_VOID_RETURN; |