From e0443320f54c8a62a9b68da4d72782b1caca44c6 Mon Sep 17 00:00:00 2001 From: Ingo Schwarze Date: Wed, 22 Feb 2017 16:20:01 +0000 Subject: Pledge man.cgi(8). Based on a more complicated patch from semarie@. Sebastien and tb@ both agree with the simplification. --- cgi.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'cgi.c') diff --git a/cgi.c b/cgi.c index 3303d001..af56da27 100644 --- a/cgi.c +++ b/cgi.c @@ -1,4 +1,4 @@ -/* $Id: cgi.c,v 1.147 2017/02/08 13:34:27 schwarze Exp $ */ +/* $Id: cgi.c,v 1.148 2017/02/22 16:20:01 schwarze Exp $ */ /* * Copyright (c) 2011, 2012 Kristaps Dzonsons * Copyright (c) 2014, 2015, 2016, 2017 Ingo Schwarze @@ -978,6 +978,22 @@ main(void) const char *querystring; int i; +#if HAVE_PLEDGE + /* + * The "rpath" pledge could be revoked after mparse_readfd() + * if the file desciptor to "/footer.html" would be opened + * up front, but it's probably not worth the complication + * of the code it would cause: it would require scattering + * pledge() calls in multiple low-level resp_*() functions. + */ + + if (pledge("stdio rpath", NULL) == -1) { + warn("pledge"); + pg_error_internal(); + return EXIT_FAILURE; + } +#endif + /* Poor man's ReDoS mitigation. */ itimer.it_value.tv_sec = 2; -- cgit v1.2.3-56-ge451