summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sfeed_gopher.c13
-rw-r--r--util.h1
2 files changed, 12 insertions, 2 deletions
diff --git a/sfeed_gopher.c b/sfeed_gopher.c
index 0d5b0c9..69b15f6 100644
--- a/sfeed_gopher.c
+++ b/sfeed_gopher.c
@@ -112,8 +112,17 @@ main(int argc, char *argv[])
char *name, *p, path[PATH_MAX + 1];
int i, r;
- if (pledge(argc == 1 ? "stdio" : "stdio rpath wpath cpath", NULL) == -1)
- err(1, "pledge");
+ if (argc == 1) {
+ if (pledge("stdio", NULL) == -1)
+ err(1, "pledge");
+ } else {
+ if (unveil("/", "r") == -1)
+ err(1, "unveil");
+ if (unveil(".", "rwc") == -1)
+ err(1, "unveil");
+ if (pledge("stdio rpath wpath cpath", NULL) == -1)
+ err(1, "pledge");
+ }
if ((comparetime = time(NULL)) == -1)
err(1, "time");
diff --git a/util.h b/util.h
index bdd5664..bc6e52f 100644
--- a/util.h
+++ b/util.h
@@ -6,6 +6,7 @@
#include <unistd.h>
#else
#define pledge(p1,p2) 0
+#define unveil(p1,p2) 0
#endif
#undef strlcat