summaryrefslogtreecommitdiff
path: root/sql/log_event.cc
diff options
context:
space:
mode:
authorMats Kindahl <mats@mysql.com>2008-07-08 13:18:34 +0200
committerMats Kindahl <mats@mysql.com>2008-07-08 13:18:34 +0200
commitc829039a8822620e329b760e176395748286c489 (patch)
tree1e14afa83c59680460debd1483f9163fabbd2a24 /sql/log_event.cc
parent6a105729d283e768b3862311cad798a5700fa855 (diff)
parenta04d5436230ac3bdfc9951277b2beef599d5c7c5 (diff)
downloadmariadb-git-c829039a8822620e329b760e176395748286c489.tar.gz
Manual merge of mysql-5.0-bugteam -> mysql-5.1-bugteam
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 fc63b3b05f9..ff6afd013c5 100644
--- a/sql/log_event.cc
+++ b/sql/log_event.cc
@@ -4869,8 +4869,14 @@ int User_var_log_event::do_apply_event(Relay_log_info const *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