From: deraadt Date: Sat, 10 Oct 2015 14:25:42 +0000 (+0000) Subject: pkill has to get all the getopt, getpwuid, libkvm stuff out of the way X-Git-Url: http://artulab.com/gitweb/?a=commitdiff_plain;h=814f35ab741acc8ab5e40add5e2d96ca6fcc3bc2;p=openbsd pkill has to get all the getopt, getpwuid, libkvm stuff out of the way first. it can pledge to "stdio" (pgrep case) or "stdio proc" (pkill case) before parsing and matching the expression. ok doug --- diff --git a/usr.bin/pkill/pkill.c b/usr.bin/pkill/pkill.c index b03b7075d4c..4cc99b3649f 100644 --- a/usr.bin/pkill/pkill.c +++ b/usr.bin/pkill/pkill.c @@ -1,4 +1,4 @@ -/* $OpenBSD: pkill.c,v 1.36 2015/01/16 06:40:10 deraadt Exp $ */ +/* $OpenBSD: pkill.c,v 1.37 2015/10/10 14:25:42 deraadt Exp $ */ /* $NetBSD: pkill.c,v 1.5 2002/10/27 11:49:34 kleink Exp $ */ /*- @@ -83,6 +83,7 @@ int pgrep; int signum = SIGTERM; int newest; int oldest; +char *pledge_choice = "stdio proc"; int quiet; int inverse; int longfmt; @@ -154,6 +155,7 @@ main(int argc, char **argv) if (strcmp(__progname, "pgrep") == 0) { action = grepact; + pledge_choice = "stdio"; pgrep = 1; } else { action = killact; @@ -273,6 +275,9 @@ main(int argc, char **argv) if (plist == NULL) errx(STATUS_ERROR, "kvm_getprocs() failed"); + if (pledge(pledge_choice, NULL) == -1) + err(1, "pledge"); + /* * Allocate memory which will be used to keep track of the * selection.