diff options
author | Alexander Barkov <bar@mariadb.org> | 2017-07-07 12:43:10 +0400 |
---|---|---|
committer | Alexander Barkov <bar@mariadb.org> | 2017-07-07 12:43:10 +0400 |
commit | 8b2c7c9444db2369d2ecdaa1f14fbc8826a8fb39 (patch) | |
tree | 72fa33f92344a89792845bab9225cef56b4138c4 /sql/sql_explain.cc | |
parent | 3f327432942ef5db14dd905ffd147f234dc74bfb (diff) | |
parent | 3b862aaa10942e7405b90cf80d0c3baca4cda55d (diff) | |
download | mariadb-git-8b2c7c9444db2369d2ecdaa1f14fbc8826a8fb39.tar.gz |
Merge remote-tracking branch 'origin/10.2' into bb-10.2-ext
Diffstat (limited to 'sql/sql_explain.cc')
-rw-r--r-- | sql/sql_explain.cc | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/sql/sql_explain.cc b/sql/sql_explain.cc index 5a86bffc51a..ca276eb87ac 100644 --- a/sql/sql_explain.cc +++ b/sql/sql_explain.cc @@ -355,10 +355,13 @@ int print_explain_row(select_result_sink *result, item_list.push_back(new (mem_root) Item_string_sys(thd, jtype_str), mem_root); - /* 'possible_keys' */ + /* 'possible_keys' + The buffer must not be deallocated before we call send_data, otherwise + we may end up reading freed memory. + */ + StringBuffer<64> possible_keys_buf; if (possible_keys && !possible_keys->is_empty()) { - StringBuffer<64> possible_keys_buf; push_string_list(thd, &item_list, *possible_keys, &possible_keys_buf); } else |