Browse Source
Bug #42064: low memory crash when importing hex strings, in
Bug #42064: low memory crash when importing hex strings, in
Item_hex_string::Item_hex_string The status of memory allocation in the Lex_input_stream (called from the Parser_state constructor) was not checked which led to a parser crash in case of the out-of-memory error. The solution is to introduce new init() member function in Parser_state and Lex_input_stream so that status of memory allocation can be returned to the caller. mysql-test/r/error_simulation.result: Added a test case for bug #42064. mysql-test/t/error_simulation.test: Added a test case for bug #42064. mysys/my_alloc.c: Added error injection code for the regression test. mysys/my_malloc.c: Added error injection code for the regression test. mysys/safemalloc.c: Added error injection code for the regression test. sql/event_data_objects.cc: Use the new init() member function of Parser_state and check its return value to handle memory allocation failures. sql/mysqld.cc: Added error injection code for the regression test. sql/sp.cc: Use the new init() member function of Parser_state and check its return value to handle memory allocation failures. sql/sql_lex.cc: Moved memory allocation from constructor to the separate init() member function. Added error injection code for the regression test. sql/sql_lex.h: Moved memory allocation from constructor to the separate init() member function. sql/sql_parse.cc: Use the new init() member function of Parser_state and check its return value to handle memory allocation failures. sql/sql_partition.cc: Use the new init() member function of Parser_state and check its return value to handle memory allocation failures. sql/sql_prepare.cc: Use the new init() member function of Parser_state and check its return value to handle memory allocation failures. sql/sql_trigger.cc: Use the new init() member function of Parser_state and check its return value to handle memory allocation failures. sql/sql_view.cc: Use the new init() member function of Parser_state and check its return value to handle memory allocation failures.. sql/thr_malloc.cc: Added error injection code for the regression test.pull/374/head
16 changed files with 183 additions and 62 deletions
-
9mysql-test/r/error_simulation.result
-
14mysql-test/t/error_simulation.test
-
16mysys/my_alloc.c
-
12mysys/my_malloc.c
-
7mysys/safemalloc.c
-
5sql/event_data_objects.cc
-
7sql/mysqld.cc
-
7sql/sp.cc
-
50sql/sql_lex.cc
-
48sql/sql_lex.h
-
30sql/sql_parse.cc
-
4sql/sql_partition.cc
-
15sql/sql_prepare.cc
-
6sql/sql_trigger.cc
-
7sql/sql_view.cc
-
8sql/thr_malloc.cc
Write
Preview
Loading…
Cancel
Save
Reference in new issue