diff options
author | Will Dietz <w@wdtz.org> | 2018-06-17 18:56:22 -0500 |
---|---|---|
committer | Will Dietz <w@wdtz.org> | 2018-06-20 14:03:08 -0500 |
commit | 7cfdb8950d93888811fbd2da3a575521d8781ace (patch) | |
tree | 8454e6260b4ff558ea04f8e175fe0372b7868201 /pkgs/development/libraries/libgcrypt | |
parent | 5039d6ed1f5354289d9b59f798201108db277113 (diff) | |
download | nixlib-7cfdb8950d93888811fbd2da3a575521d8781ace.tar nixlib-7cfdb8950d93888811fbd2da3a575521d8781ace.tar.gz nixlib-7cfdb8950d93888811fbd2da3a575521d8781ace.tar.bz2 nixlib-7cfdb8950d93888811fbd2da3a575521d8781ace.tar.lz nixlib-7cfdb8950d93888811fbd2da3a575521d8781ace.tar.xz nixlib-7cfdb8950d93888811fbd2da3a575521d8781ace.tar.zst nixlib-7cfdb8950d93888811fbd2da3a575521d8781ace.zip |
libgcrypt: keep new lock behavior but only do so around collector access
Not around a function that itself will grab the rng lock. Unfortunate that we obtain/release the lock twice but this seems least invasive way to fix this.
Diffstat (limited to 'pkgs/development/libraries/libgcrypt')
-rw-r--r-- | pkgs/development/libraries/libgcrypt/default.nix | 2 | ||||
-rw-r--r-- | pkgs/development/libraries/libgcrypt/fix-jent-locking.patch | 29 |
2 files changed, 31 insertions, 0 deletions
diff --git a/pkgs/development/libraries/libgcrypt/default.nix b/pkgs/development/libraries/libgcrypt/default.nix index de657bc9c346..1a9e19ede23c 100644 --- a/pkgs/development/libraries/libgcrypt/default.nix +++ b/pkgs/development/libraries/libgcrypt/default.nix @@ -21,6 +21,8 @@ stdenv.mkDerivation rec { # The build enables -O2 by default for everything else. hardeningDisable = stdenv.lib.optional stdenv.cc.isClang "fortify"; + patches = [ ./fix-jent-locking.patch ]; + depsBuildBuild = [ buildPackages.stdenv.cc ]; buildInputs = [ libgpgerror ] diff --git a/pkgs/development/libraries/libgcrypt/fix-jent-locking.patch b/pkgs/development/libraries/libgcrypt/fix-jent-locking.patch new file mode 100644 index 000000000000..5394e51468e6 --- /dev/null +++ b/pkgs/development/libraries/libgcrypt/fix-jent-locking.patch @@ -0,0 +1,29 @@ +From bbe989be6ca5e093d5244413590bd80e12c2ec9b Mon Sep 17 00:00:00 2001 +From: Will Dietz <w@wdtz.org> +Date: Sun, 17 Jun 2018 18:53:58 -0500 +Subject: [PATCH] rndjent: move locking to fix trying to obtain held lock, + hanging + +--- + random/rndjent.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/random/rndjent.c b/random/rndjent.c +index 0c5a820b..3740ddd4 100644 +--- a/random/rndjent.c ++++ b/random/rndjent.c +@@ -334,9 +334,10 @@ _gcry_rndjent_get_version (int *r_active) + { + if (r_active) + { +- lock_rng (); + /* Make sure the RNG is initialized. */ + _gcry_rndjent_poll (NULL, 0, 0); ++ ++ lock_rng (); + /* To ease debugging we store 2 for a clock_gettime based + * implementation and 1 for a rdtsc based code. */ + *r_active = jent_rng_collector? is_rng_available () : 0; +-- +2.18.0-rc2 + |