On Wed, Apr 20, 2016 at 10:59:44PM -0700, steve latif wrote:
> I made an attempt at adding pledge to pstree.
> steve
> 

Hi Steve,

Thanks for your contribution !

> $OpenBSD: patch-pstree_c,v 1.5 2015/05/22 13:45:30 schwarze Exp $
> --- pstree.c.orig       Wed May 13 05:24:47 2015
> +++ pstree.c    Wed Apr 20 22:21:07 2016
> @@ -872,6 +872,11 @@ int main(int argc, char **argv) {
>  #ifdef ZOMBIES_HAVE_PID_0
>    FixZombies();
>  #endif
> +
> +  if (pledge("stdio getpw ioctl proc", NULL) == -1){
> +    fprintf(stderr, "%s: pledge\n", Progname);
> +       exit(1);
> +  }

the "ioctl" promise should be replaced by "tty".

I haven't checked if the pledge(2) call could be placed
somewhere else in the code, but the promises looks sane.

below is a full port update.
-- 
Sebastien Marie


Index: Makefile
===================================================================
RCS file: /cvs/ports/sysutils/pstree/Makefile,v
retrieving revision 1.22
diff -u -p -r1.22 Makefile
--- Makefile    22 May 2015 13:45:30 -0000      1.22
+++ Makefile    21 Apr 2016 06:36:08 -0000
@@ -4,10 +4,12 @@ COMMENT =             list processes as a tree
 DISTNAME =             pstree-2.39
 CATEGORIES =           sysutils
 HOMEPAGE =             http://www.thp.uni-duisburg.de/pstree/
+REVISION =             0
 
 # GPL
 PERMIT_PACKAGE_CDROM = Yes
 
+# uses pledge()
 WANTLIB =              c 
 
 MASTER_SITES =         ftp://ftp.thp.uni-duisburg.de/pub/source/
Index: patches/patch-pstree_c
===================================================================
RCS file: /cvs/ports/sysutils/pstree/patches/patch-pstree_c,v
retrieving revision 1.5
diff -u -p -r1.5 patch-pstree_c
--- patches/patch-pstree_c      22 May 2015 13:45:30 -0000      1.5
+++ patches/patch-pstree_c      21 Apr 2016 06:36:08 -0000
@@ -1,6 +1,6 @@
 $OpenBSD: patch-pstree_c,v 1.5 2015/05/22 13:45:30 schwarze Exp $
---- pstree.c.orig      Thu May 21 11:23:56 2015
-+++ pstree.c   Thu May 21 11:24:29 2015
+--- pstree.c.orig      Wed May 13 14:24:47 2015
++++ pstree.c   Thu Apr 21 08:23:00 2016
 @@ -77,7 +77,7 @@ extern getargs(struct ProcInfo *, int, char *, int);
   * (Net|Open|Free)BSD & Darwin merged by Ralf Meyer <ralf AT 
thp.Uni-Duisburg.DE>
   */
@@ -10,3 +10,17 @@ $OpenBSD: patch-pstree_c,v 1.5 2015/05/2
  #  define PSFORMAT    "%s %ld %ld %ld %[^\n]"
  #  define PSVARS      P[i].name, &P[i].pid, &P[i].ppid, &P[i].pgid, P[i].cmd
  #  define PSVARSN     5
+@@ -872,7 +872,12 @@ int main(int argc, char **argv) {
+ #ifdef ZOMBIES_HAVE_PID_0
+   FixZombies();
+ #endif
+-  
++
++  if (pledge("stdio getpw proc tty", NULL) == -1) {
++    fprintf(stderr, "%s: pledge\n", Progname);
++    exit(1);
++  }
++
+   if (NProc == 0) {
+     fprintf(stderr, "%s: No processes read.\n", Progname);
+     exit(1);

Reply via email to