diff options
-rw-r--r-- | sfeed_gopher.c | 13 | ||||
-rw-r--r-- | util.h | 1 |
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"); @@ -6,6 +6,7 @@ #include <unistd.h> #else #define pledge(p1,p2) 0 +#define unveil(p1,p2) 0 #endif #undef strlcat |