From: Roy Marples Date: Mon, 15 Jun 2020 14:14:53 +0000 (+0100) Subject: privsep: don't abort if setrlimit fails X-Git-Tag: v9.1.2~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1add27e3532e71f17d45236aa943c2253c17b343;p=thirdparty%2Fdhcpcd.git privsep: don't abort if setrlimit fails Just log the error. This allows valgrind to be used still as it uses big fd numbers in the client. --- diff --git a/src/privsep.c b/src/privsep.c index d05681aa..5bbc4863 100644 --- a/src/privsep.c +++ b/src/privsep.c @@ -148,36 +148,28 @@ ps_dropprivs(struct dhcpcd_ctx *ctx) maxfd++; /* XXX why? */ struct rlimit rmaxfd = { - .rlim_cur = (unsigned long)maxfd, - .rlim_max = (unsigned long)maxfd + .rlim_cur = maxfd, + .rlim_max = maxfd }; - if (setrlimit(RLIMIT_NOFILE, &rmaxfd) == -1) { + if (setrlimit(RLIMIT_NOFILE, &rmaxfd) == -1) logerr("setrlimit RLIMIT_NOFILE"); - return -1; - } #else - if (setrlimit(RLIMIT_NOFILE, &rzero) == -1) { + if (setrlimit(RLIMIT_NOFILE, &rzero) == -1) logerr("setrlimit RLIMIT_NOFILE"); - return -1; - } #endif } /* Prohibit writing to files. * Obviously this won't work if we are using a logfile. */ if (ctx->logfile == NULL) { - if (setrlimit(RLIMIT_FSIZE, &rzero) == -1) { + if (setrlimit(RLIMIT_FSIZE, &rzero) == -1) logerr("setrlimit RLIMIT_FSIZE"); - return -1; - } } #ifdef RLIMIT_NPROC /* Prohibit forks */ - if (setrlimit(RLIMIT_NPROC, &rzero) == -1) { + if (setrlimit(RLIMIT_NPROC, &rzero) == -1) logerr("setrlimit RLIMIT_NPROC"); - return -1; - } #endif return 0;