diff --git a/dmenu.c b/dmenu.c index e0c2f80..47a69a7 100644 --- a/dmenu.c +++ b/dmenu.c @@ -6,6 +6,7 @@ #include #include #include +#include /* pledge(2) */ #include #include @@ -496,6 +497,12 @@ run(void) { XEvent ev; +#if defined(__OpenBSD__) + if (pledge("stdio", NULL) < 0) { + die("pledge\n"); + } +#endif + while (!XNextEvent(dpy, &ev)) { if (XFilterEvent(&ev, win)) continue; @@ -654,6 +661,12 @@ main(int argc, char *argv[]) else usage(); +#if defined(__OpenBSD__) + if (pledge("stdio rpath dns unix", NULL) < 0) { + die("pledge\n"); + } +#endif + if (!setlocale(LC_CTYPE, "") || !XSupportsLocale()) fputs("warning: no locale support\n", stderr); if (!(dpy = XOpenDisplay(NULL))) @@ -668,6 +681,12 @@ main(int argc, char *argv[]) die("no fonts could be loaded.\n"); drw_setscheme(drw, &scheme[SchemeNorm]); +#if defined(__OpenBSD__) + if (pledge("stdio rpath", NULL) < 0) { + die("pledge\n"); + } +#endif + if (fast) { grabkeyboard(); readstdin();