Date: Sun, 6 Nov 2016 16:24:16 +0000 From: "Kamil Rytarowski" <ka...@netbsd.org> Message-ID: <20161106162416.95d77f...@cvs.netbsd.org>
| assert_pid1 asserts that non-root user cannot attach to PID 1 as it is the | /dev/init process. This tests is skipped if run as root. There's no need to skip it, just child=fork(); /* err if -1 */ if (child == 0) { (void)setuid(10); if (ptrace(.....) < 0) _exit(errno); else _exit(0); } waitpid(child, &status, 0); /* and check status */ If you're root, the setuid() works, and the child isn't root any more. if you happened to be uid(10), the setuid() is a no-op, if you were some other user the setuid() fails, but you don't care. kre