From: Timo Sirainen Date: Mon, 8 Mar 2010 17:09:00 +0000 (+0200) Subject: Improved setgid/setuid failure's error message. X-Git-Tag: 2.0.beta4~105 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=d7b81a1e17f5b115cb1b36bf6c6f64295e357dc2;p=thirdparty%2Fdovecot%2Fcore.git Improved setgid/setuid failure's error message. --HG-- branch : HEAD --- 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())); } }