|
@ -28,6 +28,10 @@ |
|
|
#include <libutil.h> |
|
|
#include <libutil.h> |
|
|
#endif |
|
|
#endif |
|
|
|
|
|
|
|
|
|
|
|
#ifndef __OpenBSD__ |
|
|
|
|
|
#define pledge(a,b) 0 |
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
/* Arbitrary sizes */ |
|
|
/* Arbitrary sizes */ |
|
|
#define UTF_INVALID 0xFFFD |
|
|
#define UTF_INVALID 0xFFFD |
|
|
#define UTF_SIZ 4 |
|
|
#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)); |
|
|
die("ioctl TIOCSCTTY failed: %s\n", strerror(errno)); |
|
|
close(s); |
|
|
close(s); |
|
|
close(m); |
|
|
close(m); |
|
|
|
|
|
if (pledge("stdio getpw proc exec", NULL) == -1) |
|
|
|
|
|
die("pledge\n"); |
|
|
execsh(cmd, args); |
|
|
execsh(cmd, args); |
|
|
break; |
|
|
break; |
|
|
default: |
|
|
default: |
|
|
|
|
|
if (pledge("stdio rpath tty proc", NULL) == -1) |
|
|
|
|
|
die("pledge\n"); |
|
|
close(s); |
|
|
close(s); |
|
|
cmdfd = m; |
|
|
cmdfd = m; |
|
|
signal(SIGCHLD, sigchld); |
|
|
signal(SIGCHLD, sigchld); |
|
|