Mercurial > dovecot > core-2.2
changeset 3198:cb285bd5d8c9 HEAD
If we run out of memory, exit with FATAL_OUTOFMEM status instead of dumping
core. Also changed a few other i_panic() calls to others.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Sun, 13 Mar 2005 01:10:33 +0200 |
parents | b6faacb023a0 |
children | 938f948651f1 |
files | src/auth/passdb-pam.c src/lib/data-stack.c src/lib/ioloop-epoll.c src/lib/mempool-alloconly.c src/lib/mempool-system.c src/lib/process-title.c src/lib/restrict-access.c |
diffstat | 7 files changed, 23 insertions(+), 18 deletions(-) [+] |
line wrap: on
line diff
--- a/src/auth/passdb-pam.c Sun Mar 13 00:48:33 2005 +0200 +++ b/src/auth/passdb-pam.c Sun Mar 13 01:10:33 2005 +0200 @@ -132,12 +132,12 @@ case PAM_PROMPT_ECHO_ON: string = strdup(userpass->user); if (string == NULL) - i_fatal("Out of memory"); + i_fatal_status(FATAL_OUTOFMEM, "Out of memory"); break; case PAM_PROMPT_ECHO_OFF: string = strdup(userpass->pass); if (string == NULL) - i_fatal("Out of memory"); + i_fatal_status(FATAL_OUTOFMEM, "Out of memory"); break; case PAM_ERROR_MSG: case PAM_TEXT_INFO:
--- a/src/lib/data-stack.c Sun Mar 13 00:48:33 2005 +0200 +++ b/src/lib/data-stack.c Sun Mar 13 01:10:33 2005 +0200 @@ -93,8 +93,10 @@ frame_block = GC_malloc(sizeof(*frame_block)); memset(frame_block, 0, sizeof(*frame_block)); #endif - if (frame_block == NULL) - i_panic("t_push(): Out of memory"); + if (frame_block == NULL) { + i_fatal_status(FATAL_OUTOFMEM, + "t_push(): Out of memory"); + } } else { /* use existing unused frame_block */ frame_block = unused_frame_blocks; @@ -190,9 +192,9 @@ block = GC_malloc_atomic(SIZEOF_MEMBLOCK + alloc_size); #endif if (block == NULL) { - i_panic("mem_block_alloc(): " - "Out of memory when allocating %"PRIuSIZE_T" bytes", - alloc_size + SIZEOF_MEMBLOCK); + i_fatal_status(FATAL_OUTOFMEM, "mem_block_alloc(): " + "Out of memory when allocating %"PRIuSIZE_T + " bytes", alloc_size + SIZEOF_MEMBLOCK); } block->size = alloc_size; block->next = NULL;
--- a/src/lib/ioloop-epoll.c Sun Mar 13 00:48:33 2005 +0200 +++ b/src/lib/ioloop-epoll.c Sun Mar 13 01:10:33 2005 +0200 @@ -58,7 +58,7 @@ data->epfd = epoll_create(INITIAL_EPOLL_EVENTS); if (data->epfd < 0) - i_panic("epoll_create(): %m"); + i_fatal("epoll_create(): %m"); } void io_loop_handler_deinit(struct ioloop *ioloop) @@ -161,7 +161,7 @@ ret = epoll_ctl(data->epfd, op, fd, &event); if (ret < 0) - i_panic("epoll_ctl(): %m"); + i_fatal("epoll_ctl(): %m"); if (data->events_pos >= data->events_size) { data->events_size = nearest_power(data->events_size + 1);
--- a/src/lib/mempool-alloconly.c Sun Mar 13 00:48:33 2005 +0200 +++ b/src/lib/mempool-alloconly.c Sun Mar 13 01:10:33 2005 +0200 @@ -155,7 +155,7 @@ memset(block, 0, size); #endif if (block == NULL) - i_panic("block_alloc(): Out of memory"); + i_fatal_status(FATAL_OUTOFMEM, "block_alloc(): Out of memory"); block->prev = apool->block; apool->block = block;
--- a/src/lib/mempool-system.c Sun Mar 13 00:48:33 2005 +0200 +++ b/src/lib/mempool-system.c Sun Mar 13 01:10:33 2005 +0200 @@ -67,9 +67,10 @@ mem = GC_malloc(size); memset(mem, 0, size); #endif - if (mem == NULL) - i_panic("pool_system_malloc(): Out of memory"); - + if (mem == NULL) { + i_fatal_status(FATAL_OUTOFMEM, + "pool_system_malloc(): Out of memory"); + } return mem; } @@ -93,8 +94,10 @@ #else mem = GC_realloc(mem, new_size); #endif - if (mem == NULL) - i_panic("pool_system_realloc(): Out of memory"); + if (mem == NULL) { + i_fatal_status(FATAL_OUTOFMEM, + "pool_system_realloc(): Out of memory"); + } if (old_size < new_size) { /* clear new data */
--- a/src/lib/process-title.c Sun Mar 13 00:48:33 2005 +0200 +++ b/src/lib/process-title.c Sun Mar 13 01:10:33 2005 +0200 @@ -32,12 +32,12 @@ ; if ((p = malloc((i + 1) * sizeof(char *))) == NULL) - i_panic("malloc() failed: %m"); + i_fatal_status(FATAL_OUTOFMEM, "malloc() failed: %m"); environ = p; for (i = 0; envp[i] != NULL; i++) { if ((environ[i] = strdup(envp[i])) == NULL) - i_panic("malloc() failed: %m"); + i_fatal_status(FATAL_OUTOFMEM, "strdup() failed: %m"); } environ[i] = NULL;
--- a/src/lib/restrict-access.c Sun Mar 13 00:48:33 2005 +0200 +++ b/src/lib/restrict-access.c Sun Mar 13 01:10:33 2005 +0200 @@ -112,7 +112,7 @@ continue; if (!t_try_realloc(gid_list, (gid_count+1) * sizeof(gid_t))) - i_panic("won't happen"); + i_unreached(); gid_list[gid_count++] = get_group_id(*tmp); }