<pre style='margin:0'>
Marius Schamschula (Schamschula) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/428873514f09c0d63123163a00b175b107eba769">https://github.com/macports/macports-ports/commit/428873514f09c0d63123163a00b175b107eba769</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'> new 4288735 sudo: fix "setrlimit(8): Invalid argument" issue
</span>4288735 is described below
<span style='display:block; white-space:pre;color:#808000;'>commit 428873514f09c0d63123163a00b175b107eba769
</span>Author: Marius Schamschula <mps@macports.org>
AuthorDate: Tue Oct 29 18:10:09 2019 -0500
<span style='display:block; white-space:pre;color:#404040;'> sudo: fix "setrlimit(8): Invalid argument" issue
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> See: https://bugzilla.sudo.ws/show_bug.cgi?id=904
</span><span style='display:block; white-space:pre;color:#404040;'> Closes: https://trac.macports.org/ticket/59513
</span>---
sysutils/sudo/Portfile | 5 ++-
sysutils/sudo/files/patch-src-limits.c.diff | 60 +++++++++++++++++++++++++++++
2 files changed, 64 insertions(+), 1 deletion(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/sysutils/sudo/Portfile b/sysutils/sudo/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 2ef042b..de35ed0 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/sysutils/sudo/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/sysutils/sudo/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -5,7 +5,7 @@ PortSystem 1.0
</span> name sudo
epoch 1
version 1.8.29
<span style='display:block; white-space:pre;background:#ffe0e0;'>-revision 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision 1
</span> categories sysutils security
license ISC
maintainers {mps @Schamschula}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -29,6 +29,9 @@ checksums rmd160 706c7c8ec2a90b2e464e138384335b7de91d1c25 \
</span>
patchfiles patch-sudoers.in.diff
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# see https://bugzilla.sudo.ws/show_bug.cgi?id=904
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles-append patch-src-limits.c.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> configure.args --infodir=${prefix}/share/info \
--mandir=${prefix}/share/man \
--sysconfdir=${prefix}/etc \
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/sysutils/sudo/files/patch-src-limits.c.diff b/sysutils/sudo/files/patch-src-limits.c.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..97bf072
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/sysutils/sudo/files/patch-src-limits.c.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,60 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/limits.c Mon Oct 28 07:53:13 2019 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/limits.c Tue Oct 29 08:27:31 2019 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -37,11 +37,17 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef __linux__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # include <sys/prctl.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <limits.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "sudo.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef OPEN_MAX
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# define OPEN_MAX 256
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static struct saved_limit {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int resource;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ rlim_t fallback;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bool saved;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ struct rlimit limit;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } saved_limits[] = {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -51,7 +57,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ { RLIMIT_CPU },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ { RLIMIT_DATA },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ { RLIMIT_FSIZE },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- { RLIMIT_NOFILE },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ { RLIMIT_NOFILE, OPEN_MAX },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef RLIMIT_NPROC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ { RLIMIT_NPROC },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -162,6 +168,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ struct rlimit inf = { RLIM_INFINITY, RLIM_INFINITY };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ unsigned int idx;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ int rc;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ debug_decl(unlimit_sudo, SUDO_DEBUG_UTIL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Set resource limits to unlimited and stash the old values. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -172,9 +179,19 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lim->saved = true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (setrlimit(lim->resource, &inf) == -1) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ struct rlimit rl = lim->limit;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- rl.rlim_cur = rl.rlim_max;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if (setrlimit(lim->resource, &rl) == -1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- sudo_warn("setrlimit(%d)", lim->resource);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ rl.rlim_cur = MAX(rl.rlim_max, lim->fallback);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if ((rc = setrlimit(lim->resource, &rl)) == -1) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (lim->fallback != 0) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* macOS won't set rlim_cur to RLIM_INFINITY for NOFILE */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ rc = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (lim->fallback > lim->limit.rlim_cur) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ rl.rlim_cur = lim->fallback;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ rc = setrlimit(lim->resource, &rl);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (rc == -1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ sudo_warn("setrlimit(%d)", lim->resource);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span></pre><pre style='margin:0'>
</pre>