mirror of
https://github.com/vincentmli/bpfire.git
synced 2026-05-11 09:48:24 +02:00
34 lines
1.3 KiB
Diff
34 lines
1.3 KiB
Diff
From 793c2046de1ac04689d541a5e83513fe8e62578c Mon Sep 17 00:00:00 2001
|
|
From: Marc Fournier <marc.fournier@camptocamp.com>
|
|
Date: Thu, 16 Jan 2014 00:30:42 +0100
|
|
Subject: [PATCH 08/22] network: comment libgcrypt initalization process
|
|
|
|
---
|
|
src/network.c | 9 ++++++++-
|
|
1 file changed, 8 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/src/network.c b/src/network.c
|
|
index be82c6f..f379a5c 100644
|
|
--- a/src/network.c
|
|
+++ b/src/network.c
|
|
@@ -500,8 +500,15 @@ static void network_init_gcrypt (void) /* {{{ */
|
|
if (gcry_control (GCRYCTL_ANY_INITIALIZATION_P))
|
|
return;
|
|
|
|
+ /* http://www.gnupg.org/documentation/manuals/gcrypt/Multi_002dThreading.html
|
|
+ * To ensure thread-safety, it's important to set GCRYCTL_SET_THREAD_CBS
|
|
+ * *before* initalizing Libgcrypt with gcry_check_version(), which itself must
|
|
+ * be called before any other gcry_* function. GCRYCTL_ANY_INITIALIZATION_P
|
|
+ * above doesn't count, as it doesn't implicitly initalize Libgcrypt.
|
|
+ *
|
|
+ * tl;dr: keep all these gry_* statements in this exact order please. */
|
|
gcry_control (GCRYCTL_SET_THREAD_CBS, &gcry_threads_pthread);
|
|
- gcry_check_version (NULL); /* before calling *almost* any other functions */
|
|
+ gcry_check_version (NULL);
|
|
gcry_control (GCRYCTL_INIT_SECMEM, 32768);
|
|
gcry_control (GCRYCTL_INITIALIZATION_FINISHED);
|
|
} /* }}} void network_init_gcrypt */
|
|
--
|
|
1.9.3
|
|
|