Xinqi Bao's Git
projects
/
st.git
/ blobdiff
summary
|
log
|
commit
|
diff
|
tree
raw
|
inline
| side by side
Pledge on OpenBSD
[st.git]
/
st.c
diff --git
a/st.c
b/st.c
index
0628707
..
b9750f2
100644
(file)
--- a/
st.c
+++ b/
st.c
@@
-28,6
+28,10
@@
#include <libutil.h>
#endif
#include <libutil.h>
#endif
+#ifndef __OpenBSD__
+#define pledge(a,b) 0
+#endif
+
/* Arbitrary sizes */
#define UTF_INVALID 0xFFFD
#define UTF_SIZ 4
/* Arbitrary sizes */
#define UTF_INVALID 0xFFFD
#define UTF_SIZ 4
@@
-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);
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:
execsh(cmd, args);
break;
default:
+ if (pledge("stdio rpath tty proc", NULL) == -1)
+ die("pledge\n");
close(s);
cmdfd = m;
signal(SIGCHLD, sigchld);
close(s);
cmdfd = m;
signal(SIGCHLD, sigchld);