Bug #19798 Test 'func_encrypt' leaks memory when using yaSSL
Submitted: 14 May 2006 0:16 Modified: 23 May 2006 8:02
Reporter: Kent Boortz Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server Severity:S2 (Serious)
Version:5.1.10-pre OS:Linux (Red Hat RHAS4 x86 x86_64)
Assigned to: Magnus Blåudd CPU Architecture:Any

[14 May 2006 0:16] Kent Boortz
Description:
The test 'func_encrypt' shows memory leaks in valgrind.
When running 32 bits one leak is

1,760 bytes in 2 blocks are possibly lost in loss record 7 of 9
    at 0x40051F9: malloc (vg_replace_malloc.c:149)
    by 0x851F1D5: operator new(unsigned, yaSSL::new_t) (yassl_int.cpp:38)
    by 0x85252B2: yaSSL::DES_EDE::DES_EDE() (crypto_wrapper.cpp:418)
    by 0x8514DD2: EVP_des_ede3_cbc (ssl.cpp:815)
    by 0x819522B: Item_func_des_encrypt::val_str(String*) (sql_string.h:90)
    by 0x816155D: Item::save_in_field(Field*, bool) (item.cc:4108)
    by 0x8225B9D: fill_record_n_invoke_before_triggers(THD*, Field**, List<Item>&, bool, Table_triggers_list*, trg_event_type) (sql_base.cc:5846)
    by 0x8250601: mysql_insert(THD*, st_table_list*, List<Item>&, List<List<Item> >&, List<Item>&, List<Item>&, enum_duplicates, bool) (sql_insert.cc:486)
    by 0x81FE69D: mysql_execute_command(THD*) (sql_parse.cc:3328)
    by 0x8202260: mysql_parse(THD*, char*, unsigned) (sql_parse.cc:5883)
    by 0x8202BE3: dispatch_command(enum_server_command, THD*, char*, unsigned) (sql_parse.cc:1762)
    by 0x82042B5: handle_one_connection (sql_parse.cc:1548)
    by 0x786340: start_thread (in /lib/tls/libpthread-2.3.4.so)
    by 0x6066FD: clone (in /lib/tls/libc-2.3.4.so)

Both 32 and 64 bit leaks in

 145,648 (2,368 direct, 143,280 indirect) bytes in 296 blocks are definitely lost in loss record 8 of 9
    at 0x40051F9: malloc (vg_replace_malloc.c:149)
    by 0x851F1D5: operator new(unsigned, yaSSL::new_t) (yassl_int.cpp:38)
    by 0x8514D98: EVP_md5 (ssl.cpp:808)
    by 0x82864E7: load_des_key_file(char const*) (des_key_file.cc:77)
    by 0x81E56F5: main (mysqld.cc:2958)

 143,280 bytes in 294 blocks are indirectly lost in loss record 9 of 9
    at 0x40051F9: malloc (vg_replace_malloc.c:149)
    by 0x851F1D5: operator new(unsigned, yaSSL::new_t) (yassl_int.cpp:38)
    by 0x85248C7: yaSSL::MD5::MD5() (crypto_wrapper.cpp:61)
    by 0x8514DA2: EVP_md5 (ssl.cpp:808)
    by 0x82864E7: load_des_key_file(char const*) (des_key_file.cc:77)
    by 0x81E56F5: main (mysqld.cc:2958)

How to repeat:
Run the test on Red Hat AS 4 x86 or x86_64
[23 May 2006 8:02] Magnus Blåudd
Fixed in 5.1.11