diff options
author | Alexey Kopytov <Alexey.Kopytov@Sun.com> | 2010-09-22 23:33:18 +0400 |
---|---|---|
committer | Alexey Kopytov <Alexey.Kopytov@Sun.com> | 2010-09-22 23:33:18 +0400 |
commit | a1f1e77c38147778ac76b3232ca10861cffb3dad (patch) | |
tree | ecfed3ad4c93790a5ce2ce97a44a165457c664d1 /sql | |
parent | 6baf9d5a616da0dd0ed6762cfacdf43910ca8ebc (diff) | |
download | mariadb-git-a1f1e77c38147778ac76b3232ca10861cffb3dad.tar.gz |
Bug #56709: Memory leaks at running the 5.1 test suite
Fixed a number of memory leaks discovered by valgrind.
Diffstat (limited to 'sql')
-rw-r--r-- | sql/item_timefunc.cc | 4 | ||||
-rw-r--r-- | sql/item_timefunc.h | 1 | ||||
-rw-r--r-- | sql/sql_load.cc | 12 |
3 files changed, 7 insertions, 10 deletions
diff --git a/sql/item_timefunc.cc b/sql/item_timefunc.cc index dff4d20f347..103bd96efd4 100644 --- a/sql/item_timefunc.cc +++ b/sql/item_timefunc.cc @@ -2270,8 +2270,6 @@ void Item_extract::print(String *str, enum_query_type query_type) void Item_extract::fix_length_and_dec() { - value.alloc(32); // alloc buffer - maybe_null=1; // If wrong date switch (int_type) { case INTERVAL_YEAR: max_length=4; date_value=1; break; @@ -2314,6 +2312,8 @@ longlong Item_extract::val_int() } else { + char buf[40]; + String value(buf, sizeof(buf), &my_charset_bin);; String *res= args[0]->val_str(&value); if (!res || str_to_time_with_warn(res->ptr(), res->length(), <ime)) { diff --git a/sql/item_timefunc.h b/sql/item_timefunc.h index 11eed70f399..ef86406e1be 100644 --- a/sql/item_timefunc.h +++ b/sql/item_timefunc.h @@ -702,7 +702,6 @@ public: class Item_extract :public Item_int_func { - String value; bool date_value; public: const interval_type int_type; // keep it public diff --git a/sql/sql_load.cc b/sql/sql_load.cc index f9386206dce..4b68f2a3821 100644 --- a/sql/sql_load.cc +++ b/sql/sql_load.cc @@ -1116,6 +1116,7 @@ READ_INFO::READ_INFO(File file_par, uint tot_length, CHARSET_INFO *cs, MYF(MY_WME))) { my_free((uchar*) buffer,MYF(0)); /* purecov: inspected */ + buffer= NULL; error=1; } else @@ -1142,13 +1143,10 @@ READ_INFO::READ_INFO(File file_par, uint tot_length, CHARSET_INFO *cs, READ_INFO::~READ_INFO() { - if (!error) - { - if (need_end_io_cache) - ::end_io_cache(&cache); - my_free((uchar*) buffer,MYF(0)); - error=1; - } + if (!error && need_end_io_cache) + ::end_io_cache(&cache); + + my_free(buffer, MYF(MY_ALLOW_ZERO_PTR)); } |