Commit cd36f9cf authored by unknown's avatar unknown

Bug#27015 s_query.q_append() called without s_query.reserve()?

there is a way to miss allocation for the punctuation marks,
namely if (q == EOF) is true inside of append_identifier(), i.e in case names are not quoted
(not by default).

Replacing q_append with the method with reallocation if needed.


sql/sql_base.cc:
  changing the method that uses reallocation if necessary
parent 0e9a844f
...@@ -1328,10 +1328,10 @@ void close_temporary_tables(THD *thd) ...@@ -1328,10 +1328,10 @@ void close_temporary_tables(THD *thd)
due to special characters in the names due to special characters in the names
*/ */
append_identifier(thd, &s_query, table->s->db.str, strlen(table->s->db.str)); append_identifier(thd, &s_query, table->s->db.str, strlen(table->s->db.str));
s_query.q_append('.'); s_query.append('.');
append_identifier(thd, &s_query, table->s->table_name.str, append_identifier(thd, &s_query, table->s->table_name.str,
strlen(table->s->table_name.str)); strlen(table->s->table_name.str));
s_query.q_append(','); s_query.append(',');
next= table->next; next= table->next;
close_temporary(table, 1, 1); close_temporary(table, 1, 1);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment