summaryrefslogtreecommitdiff
path: root/sql/event_parse_data.cc
diff options
context:
space:
mode:
Diffstat (limited to 'sql/event_parse_data.cc')
-rw-r--r--sql/event_parse_data.cc11
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;