From d7b81a1e17f5b115cb1b36bf6c6f64295e357dc2 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Mon, 8 Mar 2010 19:09:00 +0200 Subject: [PATCH] Improved setgid/setuid failure's error message. --HG-- branch : HEAD --- src/lib/failures.c | 3 +++ src/lib/mempool-alloconly.c | 4 ++-- src/lib/restrict-access.c | 14 ++++++++++---- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/lib/failures.c b/src/lib/failures.c index d2ac7de9d9..e6bd9ac6e2 100644 --- a/src/lib/failures.c +++ b/src/lib/failures.c @@ -160,6 +160,7 @@ default_fatal_finish(enum log_type type, int status) i_error("Raw backtrace: %s", backtrace); } + sleep(3600*24); if (type == LOG_TYPE_PANIC) abort(); else @@ -597,6 +598,8 @@ i_internal_error_handler(enum log_type type, const char *fmt, va_list args) { if (internal_handler(type, fmt, args) < 0) failure_exit(FATAL_LOGERROR); + if (type == LOG_TYPE_ERROR) + sleep(3600*24); } void i_set_failure_internal(void) diff --git a/src/lib/mempool-alloconly.c b/src/lib/mempool-alloconly.c index f725fa8697..bb66abf4ce 100644 --- a/src/lib/mempool-alloconly.c +++ b/src/lib/mempool-alloconly.c @@ -244,8 +244,8 @@ static void block_alloc(struct alloconly_pool *apool, size_t size) stack, so make sure everything is allocated before calling it. */ t_buffer_alloc_last_full(); - i_warning("Growing pool '%s' with: %"PRIuSIZE_T, - apool->name, size); + /*i_warning("Growing pool '%s' with: %"PRIuSIZE_T, + apool->name, size);*/ } #endif } diff --git a/src/lib/restrict-access.c b/src/lib/restrict-access.c index b1aaea96fb..e949482878 100644 --- a/src/lib/restrict-access.c +++ b/src/lib/restrict-access.c @@ -70,10 +70,13 @@ static void restrict_init_groups(gid_t primary_gid, gid_t privileged_gid) } if (setgid(primary_gid) != 0) { - i_fatal("setgid(%s) failed with euid=%s, " - "gid=%s, egid=%s: %m", + i_fatal("setgid(%s) failed with " + "euid=%s, gid=%s, egid=%s: %m " + "(This binary should probably be called with " + "process group set to %s instead of %s)", get_gid_str(primary_gid), get_uid_str(geteuid()), - get_gid_str(getgid()), get_gid_str(getegid())); + get_gid_str(getgid()), get_gid_str(getegid()), + get_gid_str(primary_gid), get_uid_str(geteuid())); } return; } @@ -291,7 +294,10 @@ void restrict_access(const struct restrict_access_settings *set, /* uid last */ if (set->uid != (uid_t)-1) { if (setuid(set->uid) != 0) { - i_fatal("setuid(%s) failed with euid=%s: %m", + i_fatal("setuid(%s) failed with euid=%s: %m " + "(This binary should probably be called with " + "process user set to %s instead of %s)", + get_uid_str(set->uid), get_uid_str(geteuid()), get_uid_str(set->uid), get_uid_str(geteuid())); } } -- 2.47.3