Commit Diff


commit - fec752080379fa1d041ed3937dfd4ce3fee33fbf
commit + 14b59d10858a4042d92f9ec960c38c34fd7e39a6
blob - 8f34aa3fdeb12d1f41f37a057a965630aed8aa3f
blob + dafb216803ec687b6793acf3edd8ffbe9c926e5d
--- gotd/gotd.c
+++ gotd/gotd.c
@@ -124,6 +124,16 @@ usage(void)
 {
 	fprintf(stderr, "usage: %s [-dnv] [-f config-file]\n", getprogname());
 	exit(1);
+}
+
+static void
+drop_privs(struct passwd *pw)
+{
+	/* Drop root privileges. */
+	if (setgid(pw->pw_gid) == -1)
+		fatal("setgid %d failed", pw->pw_gid);
+	if (setuid(pw->pw_uid) == -1)
+		fatal("setuid %d failed", pw->pw_uid);
 }
 
 static int