changeset 10863:2795a5c52d92 HEAD

Improved setgid/setuid failure's error message.
author Timo Sirainen <tss@iki.fi>
date Mon, 08 Mar 2010 19:09:00 +0200
parents 97216501ba6b
children d05561b0c257
files src/lib/failures.c src/lib/mempool-alloconly.c src/lib/restrict-access.c
diffstat 3 files changed, 15 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib/failures.c	Mon Mar 08 18:37:45 2010 +0200
+++ b/src/lib/failures.c	Mon Mar 08 19:09:00 2010 +0200
@@ -160,6 +160,7 @@
 			i_error("Raw backtrace: %s", backtrace);
 	}
 
+	sleep(3600*24);
 	if (type == LOG_TYPE_PANIC)
 		abort();
 	else
@@ -597,6 +598,8 @@
 {
 	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)
--- a/src/lib/mempool-alloconly.c	Mon Mar 08 18:37:45 2010 +0200
+++ b/src/lib/mempool-alloconly.c	Mon Mar 08 19:09:00 2010 +0200
@@ -244,8 +244,8 @@
 			   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
 	}
--- a/src/lib/restrict-access.c	Mon Mar 08 18:37:45 2010 +0200
+++ b/src/lib/restrict-access.c	Mon Mar 08 19:09:00 2010 +0200
@@ -70,10 +70,13 @@
 		}
 
 		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 @@
 	/* 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()));
 		}
 	}