From 814f35ab741acc8ab5e40add5e2d96ca6fcc3bc2 Mon Sep 17 00:00:00 2001 From: deraadt Date: Sat, 10 Oct 2015 14:25:42 +0000 Subject: [PATCH] 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 --- usr.bin/pkill/pkill.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) 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. -- 2.20.1