On Thu 02/01/2020 06:27, Björn Ketelaars wrote:
> On Wed 01/01/2020 23:03, Ted Unangst wrote:
> > Björn Ketelaars wrote:
> > > - When estimating the amount of available RAM, scrypt ignores
> > >   RLIMIT_DATA on systems which have mmap.
> > 
> > This is wrong on OpenBSD. I sent an email to Colin, but the update should
> > patch this out in the meantime.
> 
> Although I'm not doubting that you are right, I fail to understand why
> ignoring RLIMIT_DATA on OpenBSD is bad. Could you explain why?
> 
> I prepared a patch, which:
> - addresses ignoring RLIMIT DATA, reverting
>   
> https://github.com/Tarsnap/scrypt/commit/2b478e7ce590a6564d89417ddad4f3dd4bbdcaf6
> - fixes compiling on base-gcc archs (found by kmos@)
> 
> OK?

Ping...

Diff below for your convenience.

diff --git Makefile Makefile
index 31dc84c3443..04b73ef02b3 100644
--- Makefile
+++ Makefile
@@ -3,6 +3,7 @@
 COMMENT =      command-line encryption using scrypt key derivation function
 
 DISTNAME =     scrypt-1.3.0
+REVISION =     0
 
 SHARED_LIBS += scrypt-kdf                0.0 # 1.0
 
@@ -18,6 +19,9 @@ WANTLIB =     c crypto
 MASTER_SITES = ${HOMEPAGE}
 EXTRACT_SUFX = .tgz
 
+COMPILER =             base-clang ports-gcc
+COMPILER_LANGS =       C
+
 CONFIGURE_STYLE =      gnu
 CONFIGURE_ARGS =       --enable-libscrypt-kdf
 
diff --git patches/patch-lib_util_memlimit_c patches/patch-lib_util_memlimit_c
new file mode 100644
index 00000000000..788724aa76e
--- /dev/null
+++ patches/patch-lib_util_memlimit_c
@@ -0,0 +1,24 @@
+$OpenBSD$
+
+Do not ignore RLIMIT_DATA on OpenBSD. Revert
+https://github.com/Tarsnap/scrypt/commit/2b478e7ce590a6564d89417ddad4f3dd4bbdcaf6
+
+Index: lib/util/memlimit.c
+--- lib/util/memlimit.c.orig
++++ lib/util/memlimit.c
+@@ -167,14 +167,12 @@ memlimit_rlimit(size_t * memlimit)
+               memrlimit = (uint64_t)rl.rlim_cur;
+ #endif
+ 
+-#ifndef HAVE_MMAP
+-      /* ... RLIMIT_DATA (if we're not using mmap)... */
++      /* ... RLIMIT_DATA... */
+       if (getrlimit(RLIMIT_DATA, &rl))
+               return (1);
+       if ((rl.rlim_cur != RLIM_INFINITY) &&
+           ((uint64_t)rl.rlim_cur < memrlimit))
+               memrlimit = (uint64_t)rl.rlim_cur;
+-#endif
+ 
+       /* ... and RLIMIT_RSS. */
+ #ifdef RLIMIT_RSS

Reply via email to