summaryrefslogtreecommitdiff
path: root/sql/sql_select.cc
diff options
context:
space:
mode:
authorSergey Glukhov <Sergey.Glukhov@sun.com>2008-12-10 18:13:11 +0400
committerSergey Glukhov <Sergey.Glukhov@sun.com>2008-12-10 18:13:11 +0400
commit84de3b930bcae8af7a7b5613dd8be514afbb8661 (patch)
tree60e7961f71ff0243c16def0011c2d45b57b7aeb1 /sql/sql_select.cc
parenta6be137556f5b85cd72f8e8559384cbc995d16c6 (diff)
downloadmariadb-git-84de3b930bcae8af7a7b5613dd8be514afbb8661.tar.gz
Bug#37956 memory leak and / or crash with geometry and prepared statements!
Bug#37671 crash on prepared statement + cursor + geometry + too many open files! if mysql_execute_command() returns error then free materialized_cursor object. is_rnd_inited is added to satisfy rnd_end() assertion (handler may be uninitialized in some cases) sql/sql_cursor.cc: if mysql_execute_command() returns error then free materialized_cursor object. is_rnd_inited is added to satisfy rnd_end() assertion (handler may be uninitialized in some cases) sql/sql_select.cc: added result check tests/mysql_client_test.c: test case
Diffstat (limited to 'sql/sql_select.cc')
-rw-r--r--sql/sql_select.cc7
1 files changed, 5 insertions, 2 deletions
diff --git a/sql/sql_select.cc b/sql/sql_select.cc
index 48276170caf..d2c469f99da 100644
--- a/sql/sql_select.cc
+++ b/sql/sql_select.cc
@@ -1599,8 +1599,11 @@ JOIN::exec()
(zero_result_cause?zero_result_cause:"No tables used"));
else
{
- result->send_fields(*columns_list,
- Protocol::SEND_NUM_ROWS | Protocol::SEND_EOF);
+ if (result->send_fields(*columns_list,
+ Protocol::SEND_NUM_ROWS | Protocol::SEND_EOF))
+ {
+ DBUG_VOID_RETURN;
+ }
/*
We have to test for 'conds' here as the WHERE may not be constant
even if we don't have any tables for prepared statements or if