From fabee4dc2dcd4960c9da2c820eda443ff9d3ef4f Mon Sep 17 00:00:00 2001
From: Roy Marples <roy@marples.name>
Date: Wed, 20 Aug 2008 10:19:03 +0000
Subject: Actually set the umask.

---
 src/rc/start-stop-daemon.c | 4 ++++
 1 file changed, 4 insertions(+)

(limited to 'src')

diff --git a/src/rc/start-stop-daemon.c b/src/rc/start-stop-daemon.c
index dfecd609..d4904f4a 100644
--- a/src/rc/start-stop-daemon.c
+++ b/src/rc/start-stop-daemon.c
@@ -603,6 +603,7 @@ int start_stop_daemon(int argc, char **argv)
 	char line[130];
 	FILE *fp;
 	size_t len;
+	bool setumask = false;
 	mode_t numask;
 
 	TAILQ_INIT(&schedule);
@@ -703,6 +704,7 @@ int start_stop_daemon(int argc, char **argv)
 			if (parse_mode(&numask, optarg))
 				eerrorx("%s: invalid mode `%s'",
 					applet, optarg);
+			setumask = true;
 			break;
 
 		case 'm':  /* --make-pidfile */
@@ -929,6 +931,8 @@ int start_stop_daemon(int argc, char **argv)
 	/* Child process - lets go! */
 	if (pid == 0) {
 		pid_t mypid = getpid();
+		if (setumask)
+			umask(numask);
 
 #ifdef TIOCNOTTY
 		tty_fd = open("/dev/tty", O_RDWR);
-- 
cgit v1.2.3