fix promises buffer size and small cleanup - geomyidae - A small C-based gopher… | |
git clone git://bitreich.org/geomyidae/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfri… | |
Log | |
Files | |
Refs | |
Tags | |
README | |
LICENSE | |
--- | |
commit b6cd8dc7652f6a9cc6e74bf24b0df27be2a47d32 | |
parent 25298ac2cb69c28100c9cc5aa1fde245e23743f5 | |
Author: Hiltjo Posthuma <[email protected]> | |
Date: Sat, 23 Jun 2018 11:32:25 +0200 | |
fix promises buffer size and small cleanup | |
with feedback from quinq | |
Signed-off-by: Christoph Lohmann <[email protected]> | |
Diffstat: | |
M main.c | 20 ++++++++++++-------- | |
1 file changed, 12 insertions(+), 8 deletions(-) | |
--- | |
diff --git a/main.c b/main.c | |
@@ -539,11 +539,14 @@ main(int argc, char *argv[]) | |
cltlen = sizeof(clt); | |
#ifdef __OpenBSD__ | |
- char promises[30]; | |
- snprintf(promises, sizeof(promises), "rpath inet stdio proc exec %s %s… | |
+ char *promises = (char[35]){}; | |
+ snprintf(promises, 35, "rpath inet stdio proc exec %s %s", | |
revlookup ? "dns" : "", | |
dofork ? "tty" : ""); | |
- pledge(promises, NULL); | |
+ if (pledge(promises, NULL) == -1) { | |
+ perror("pledge"); | |
+ exit(1); | |
+ } | |
#endif /* __OpenBSD__ */ | |
while (1) { | |
@@ -585,11 +588,12 @@ main(int argc, char *argv[]) | |
signal(SIGALRM, SIG_DFL); | |
#ifdef __OpenBSD__ | |
- char client_promises[25]; | |
- snprintf(client_promises, sizeof(client_promises), | |
- "rpath inet stdio %s", | |
- nocgi ? "" : "proc exec" ); | |
- pledge(client_promises, NULL); | |
+ promises = nocgi ? "rpath inet stdio" : | |
+ "rpath inet stdio proc exec"; | |
+ if (pledge(promises, NULL) == -1) { | |
+ perror("pledge"); | |
+ exit(1); | |
+ } | |
#endif /* __OpenBSD__ */ | |
handlerequest(sock, base, ohost, sport, clienth, |