summaryrefslogtreecommitdiff
path: root/sql/log_event.cc
diff options
context:
space:
mode:
authorJonathan Perkin <jperkin@sun.com>2008-07-17 17:35:05 +0200
committermysqldev <mysqldev@production.mysql.com>2008-07-17 17:35:05 +0200
commita07bb6c47ac5c2a4a3dbd738d9efd39837be0092 (patch)
tree2adbbe973fd52e717a06d246888fa7f8f5ae8461 /sql/log_event.cc
parent9ee2262c9d815c266fc9d9bb69ab144dcc593a82 (diff)
parent3bcbaf6cbf18dc04ee2495cc6cd2bf8aa399ebb5 (diff)
downloadmariadb-git-a07bb6c47ac5c2a4a3dbd738d9efd39837be0092.tar.gz
Merge from mysql-5.0.66-release
Diffstat (limited to 'sql/log_event.cc')
-rw-r--r--sql/log_event.cc8
1 files changed, 7 insertions, 1 deletions
diff --git a/sql/log_event.cc b/sql/log_event.cc
index bc231182f46..a15a3b3f665 100644
--- a/sql/log_event.cc
+++ b/sql/log_event.cc
@@ -4154,8 +4154,14 @@ int User_var_log_event::exec_event(struct st_relay_log_info* rli)
/*
Item_func_set_user_var can't substitute something else on its place =>
0 can be passed as last argument (reference on item)
+
+ Fix_fields() can fail, in which case a call of update_hash() might
+ crash the server, so if fix fields fails, we just return with an
+ error.
*/
- e.fix_fields(thd, 0);
+ if (e.fix_fields(thd, 0))
+ return 1;
+
/*
A variable can just be considered as a table with
a single record and with a single column. Thus, like