dovecot-1.2: dump-capability: Use nobody/nogroup as uid/gid if t...

dovecot at dovecot.org dovecot at dovecot.org
Sun Jun 28 04:52:35 EEST 2009


details:   http://hg.dovecot.org/dovecot-1.2/rev/2db158dd88be
changeset: 9173:2db158dd88be
user:      Timo Sirainen <tss at iki.fi>
date:      Sat Jun 27 21:52:30 2009 -0400
description:
dump-capability: Use nobody/nogroup as uid/gid if they exist.

diffstat:

1 file changed, 12 insertions(+)
src/master/master-settings.c |   12 ++++++++++++

diffs (22 lines):

diff -r bc880b70d731 -r 2db158dd88be src/master/master-settings.c
--- a/src/master/master-settings.c	Sat Jun 27 21:45:04 2009 -0400
+++ b/src/master/master-settings.c	Sat Jun 27 21:52:30 2009 -0400
@@ -682,6 +682,18 @@ get_process_capability(enum process_type
 		/* use the current user */
 		args[0] = t_strdup_printf("uid=%s", dec2str(uid));
 		args[1] = t_strdup_printf("gid=%s", dec2str(getegid()));
+	} else {
+		/* try to use some existing user. at least osx launchd
+		   doesn't like non-existing users. */
+		struct passwd *pw;
+		struct group *gr;
+
+		pw = getpwnam("nobody");
+		if (pw != NULL)
+			args[0] = t_strdup_printf("uid=%s", dec2str(pw->pw_uid));
+		gr = getgrnam("nogroup");
+		if (gr != NULL)
+			args[1] = t_strdup_printf("gid=%s", dec2str(gr->gr_gid));
 	}
 
 	if (pipe(fd) < 0) {


More information about the dovecot-cvs mailing list