tPledge on OpenBSD - st - [fork] customized build of st, the simple terminal | |
git clone git://src.adamsgaard.dk/st | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 30ce2cc002585409b36c630512c6ca4db8f88f15 | |
parent 041912a791e8c2f4d5d2415b16210d29d7e701c5 | |
Author: Hiltjo Posthuma <[email protected]> | |
Date: Fri, 25 May 2018 11:59:28 +0200 | |
Pledge on OpenBSD | |
Diffstat: | |
M config.mk | 6 ++++++ | |
M st.c | 8 ++++++++ | |
2 files changed, 14 insertions(+), 0 deletions(-) | |
--- | |
diff --git a/config.mk b/config.mk | |
t@@ -23,6 +23,12 @@ CPPFLAGS = -DVERSION=\"$(VERSION)\" -D_XOPEN_SOURCE=600 | |
STCFLAGS = $(INCS) $(CPPFLAGS) $(CFLAGS) | |
STLDFLAGS = $(LIBS) $(LDFLAGS) | |
+# OpenBSD: | |
+#CPPFLAGS = -DVERSION=\"$(VERSION)\" -D_XOPEN_SOURCE=600 -D_BSD_SOURCE | |
+#LIBS = -L$(X11LIB) -lm -lX11 -lutil -lXft \ | |
+# `pkg-config --libs fontconfig` \ | |
+# `pkg-config --libs freetype2` | |
+ | |
# compiler and linker | |
# CC = c99 | |
diff --git a/st.c b/st.c | |
t@@ -28,6 +28,10 @@ | |
#include <libutil.h> | |
#endif | |
+#ifndef __OpenBSD__ | |
+#define pledge(a,b) 0 | |
+#endif | |
+ | |
/* Arbitrary sizes */ | |
#define UTF_INVALID 0xFFFD | |
#define UTF_SIZ 4 | |
t@@ -806,9 +810,13 @@ ttynew(char *line, char *cmd, char *out, char **args) | |
die("ioctl TIOCSCTTY failed: %s\n", strerror(errno)); | |
close(s); | |
close(m); | |
+ if (pledge("stdio getpw proc exec", NULL) == -1) | |
+ die("pledge\n"); | |
execsh(cmd, args); | |
break; | |
default: | |
+ if (pledge("stdio rpath tty proc", NULL) == -1) | |
+ die("pledge\n"); | |
close(s); | |
cmdfd = m; | |
signal(SIGCHLD, sigchld); |