strongswan/0001-openssl-Ensure-the-thread-ID-is-never-zero.patch
Marius Tomaschewski 4a8b8bd95f - Applied upstream patch adjusting an internal thread id causing
charon keying daemon start failure (bnc#779038,strongswan#198):
    openssl: Ensure the thread ID is never zero
    This might otherwise cause problems because OpenSSL tries to
    lock mutexes recursively if it assumes the lock is held by a
    different thread e.g. during FIPS initialization.
  See http://wiki.strongswan.org/issues/198 for more informations.

OBS-URL: https://build.opensuse.org/package/show/network:vpn/strongswan?expand=0&rev=48
2012-09-07 12:53:09 +00:00

31 lines
1.1 KiB
Diff

From 901dbc1077f6c9bd29369cad848bc79a29c1a65b Mon Sep 17 00:00:00 2001
From: Tobias Brunner <tobias@strongswan.org>
Date: Sat, 30 Jun 2012 10:05:41 +0200
Subject: [PATCH] openssl: Ensure the thread ID is never zero
This might otherwise cause problems because OpenSSL tries to lock
mutexes recursively if it assumes the lock is held by a different
thread e.g. during FIPS initialization.
---
src/libstrongswan/plugins/openssl/openssl_plugin.c | 4 +++-
1 files changed, 3 insertions(+), 1 deletions(-)
diff --git a/src/libstrongswan/plugins/openssl/openssl_plugin.c b/src/libstrongswan/plugins/openssl/openssl_plugin.c
index 5a11412..7daa92b 100644
--- a/src/libstrongswan/plugins/openssl/openssl_plugin.c
+++ b/src/libstrongswan/plugins/openssl/openssl_plugin.c
@@ -129,7 +129,9 @@ static void destroy_function(struct CRYPTO_dynlock_value *lock,
*/
static unsigned long id_function(void)
{
- return (unsigned long)thread_current_id();
+ /* ensure the thread ID is never zero, otherwise OpenSSL might try to
+ * acquire locks recursively */
+ return 1 + (unsigned long)thread_current_id();
}
/**
--
1.7.7