<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>