summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorunknown <monty@hundin.mysql.fi>2002-10-12 12:38:48 +0300
committerunknown <monty@hundin.mysql.fi>2002-10-12 12:38:48 +0300
commit8926c0bc3817150d00a1906e07a6e6b469c4c696 (patch)
tree40349016c80381ae4c79156d2a2683a59b0e46a8 /sql
parent7cd5626c7059defa60ab1529d18d5e3b8c7cfe1b (diff)
downloadmariadb-git-8926c0bc3817150d00a1906e07a6e6b469c4c696.tar.gz
Fixed bug where we could reference a freed tmp_table->table_name variable for some
GROUP BY ... ORDER BY queries. Docs/manual.texi: ChangeLog
Diffstat (limited to 'sql')
-rw-r--r--sql/sql_select.cc7
1 files changed, 6 insertions, 1 deletions
diff --git a/sql/sql_select.cc b/sql/sql_select.cc
index 04368c016d1..e2cf2fd72df 100644
--- a/sql/sql_select.cc
+++ b/sql/sql_select.cc
@@ -3395,7 +3395,10 @@ create_tmp_table(THD *thd,TMP_TABLE_PARAM *param,List<Item> &fields,
bzero((char*) from_field,sizeof(Field*)*field_count);
table->field=reg_field;
table->real_name=table->path=tmpname;
- table->table_name=base_name(tmpname);
+ /*
+ This must be "" as field may refer to it after tempory table is dropped
+ */
+ table->table_name= (char*) "";
table->reginfo.lock_type=TL_WRITE; /* Will be updated */
table->db_stat=HA_OPEN_KEYFILE+HA_OPEN_RNDFILE;
table->blob_ptr_size=mi_portable_sizeof_char_ptr;
@@ -3731,6 +3734,8 @@ create_tmp_table(THD *thd,TMP_TABLE_PARAM *param,List<Item> &fields,
if (create_myisam_tmp_table(table,param,select_options))
goto err;
}
+ /* Set table_name for easier debugging */
+ table->table_name= base_name(tmpname);
if (!open_tmp_table(table))
DBUG_RETURN(table);