diff options
author | Davi Arnaut <Davi.Arnaut@Sun.COM> | 2009-11-10 18:31:28 -0200 |
---|---|---|
committer | Davi Arnaut <Davi.Arnaut@Sun.COM> | 2009-11-10 18:31:28 -0200 |
commit | a7bbc779aefc48fe73f0c4b9ea9a609b15496b78 (patch) | |
tree | d803bec0022e21f905aea52acf60f35a85e92762 /mysys | |
parent | 5783428f3b3fd8fbae5b9923cb942f3916011f32 (diff) | |
download | mariadb-git-a7bbc779aefc48fe73f0c4b9ea9a609b15496b78.tar.gz |
Backport of Bug#15192 to mysql-next-mr
------------------------------------------------------------
revno: 2597.4.17
revision-id: sp1r-davi@mysql.com/endora.local-20080328174753-24337
parent: sp1r-anozdrin/alik@quad.opbmk-20080328140038-16479
committer: davi@mysql.com/endora.local
timestamp: Fri 2008-03-28 14:47:53 -0300
message:
Bug#15192 "fatal errors" are caught by handlers in stored procedures
The problem is that fatal errors (e.g.: out of memory) were being
caught by stored procedure exception handlers which could cause
the execution to not be stopped due to a continue handler.
The solution is to not call any exception handler if the error is
fatal and send the fatal error to the client.
Diffstat (limited to 'mysys')
-rw-r--r-- | mysys/my_alloc.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/mysys/my_alloc.c b/mysys/my_alloc.c index 2607ea57d08..9c45cdc2277 100644 --- a/mysys/my_alloc.c +++ b/mysys/my_alloc.c @@ -155,7 +155,7 @@ void *alloc_root(MEM_ROOT *mem_root, size_t length) DBUG_ASSERT(alloc_root_inited(mem_root)); length+=ALIGN_SIZE(sizeof(USED_MEM)); - if (!(next = (USED_MEM*) my_malloc(length,MYF(MY_WME)))) + if (!(next = (USED_MEM*) my_malloc(length,MYF(MY_WME | ME_FATALERROR)))) { if (mem_root->error_handler) (*mem_root->error_handler)(); @@ -198,7 +198,7 @@ void *alloc_root(MEM_ROOT *mem_root, size_t length) get_size= length+ALIGN_SIZE(sizeof(USED_MEM)); get_size= max(get_size, block_size); - if (!(next = (USED_MEM*) my_malloc(get_size,MYF(MY_WME)))) + if (!(next = (USED_MEM*) my_malloc(get_size,MYF(MY_WME | ME_FATALERROR)))) { if (mem_root->error_handler) (*mem_root->error_handler)(); |