Revision
23096
Author
zarzycki@apple.com
Date
2007-02-21 17:34:11 -0800 (Wed, 21 Feb 2007)

Log Message

<rdar://problem/4283301> Workaround securityd not using kqueue to track execve() transitions

Modified Paths

Diff

Modified: trunk/launchd/src/launchctl.c (23095 => 23096)


--- trunk/launchd/src/launchctl.c	2007-02-22 01:15:50 UTC (rev 23095)
+++ trunk/launchd/src/launchctl.c	2007-02-22 01:34:11 UTC (rev 23096)
@@ -2337,9 +2337,12 @@
 	setgid(getgid());
 	setuid(getuid());
 
-	execvp(argv[2], argv + 2);
-	fprintf(stderr, "execvp(): %s\n", strerror(errno));
-	return 1;
+	if (fwexec((const char *const *)argv + 2, true) == -1) {
+		fprintf(stderr, "%s bsexec failed: %s\n", getprogname(), strerror(errno));
+		return 1;
+	}
+
+	return 0;
 }
 
 int