lol

Merge pull request #42150 from dtzWill/fix/libgcrypt-locking-badness

libgcrypt: fix bad locking behavior introduced in update

authored by

Will Dietz and committed by
GitHub
1a1fdaa9 5039d6ed

+33 -2
+4 -2
pkgs/development/libraries/libgcrypt/default.nix
··· 21 21 # The build enables -O2 by default for everything else. 22 22 hardeningDisable = stdenv.lib.optional stdenv.cc.isClang "fortify"; 23 23 24 + # Accepted upstream, should be in next update: #42150, https://dev.gnupg.org/T4034 25 + patches = [ ./fix-jent-locking.patch ]; 26 + 24 27 depsBuildBuild = [ buildPackages.stdenv.cc ]; 25 28 26 29 buildInputs = [ libgpgerror ] ··· 49 52 cp src/.libs/libgcrypt.20.dylib $out/lib 50 53 ''; 51 54 52 - # TODO: reenable with next update? 53 - doCheck = !stdenv.isDarwin; 55 + doCheck = true; 54 56 55 57 meta = with stdenv.lib; { 56 58 homepage = https://www.gnu.org/software/libgcrypt/;
+29
pkgs/development/libraries/libgcrypt/fix-jent-locking.patch
··· 1 + From bbe989be6ca5e093d5244413590bd80e12c2ec9b Mon Sep 17 00:00:00 2001 2 + From: Will Dietz <w@wdtz.org> 3 + Date: Sun, 17 Jun 2018 18:53:58 -0500 4 + Subject: [PATCH] rndjent: move locking to fix trying to obtain held lock, 5 + hanging 6 + 7 + --- 8 + random/rndjent.c | 3 ++- 9 + 1 file changed, 2 insertions(+), 1 deletion(-) 10 + 11 + diff --git a/random/rndjent.c b/random/rndjent.c 12 + index 0c5a820b..3740ddd4 100644 13 + --- a/random/rndjent.c 14 + +++ b/random/rndjent.c 15 + @@ -334,9 +334,10 @@ _gcry_rndjent_get_version (int *r_active) 16 + { 17 + if (r_active) 18 + { 19 + - lock_rng (); 20 + /* Make sure the RNG is initialized. */ 21 + _gcry_rndjent_poll (NULL, 0, 0); 22 + + 23 + + lock_rng (); 24 + /* To ease debugging we store 2 for a clock_gettime based 25 + * implementation and 1 for a rdtsc based code. */ 26 + *r_active = jent_rng_collector? is_rng_available () : 0; 27 + -- 28 + 2.18.0-rc2 29 +