mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
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.
This commit is contained in:
@ -31,13 +31,23 @@ void *my_malloc(size_t size, myf my_flags)
|
||||
|
||||
if (!size)
|
||||
size=1; /* Safety */
|
||||
if ((point = (char*)malloc(size)) == NULL)
|
||||
|
||||
point= (char *) malloc(size);
|
||||
DBUG_EXECUTE_IF("simulate_out_of_memory",
|
||||
{
|
||||
free(point);
|
||||
point= NULL;
|
||||
});
|
||||
|
||||
if (point == NULL)
|
||||
{
|
||||
my_errno=errno;
|
||||
if (my_flags & MY_FAE)
|
||||
error_handler_hook=fatal_error_handler_hook;
|
||||
if (my_flags & (MY_FAE+MY_WME))
|
||||
my_error(EE_OUTOFMEMORY, MYF(ME_BELL+ME_WAITTANG+ME_NOREFRESH),size);
|
||||
DBUG_EXECUTE_IF("simulate_out_of_memory",
|
||||
DBUG_SET("-d,simulate_out_of_memory"););
|
||||
if (my_flags & MY_FAE)
|
||||
exit(1);
|
||||
}
|
||||
|
Reference in New Issue
Block a user