From 7b5b2c461475ad2c810fec093dd9c2927876ec25 Mon Sep 17 00:00:00 2001 From: Benjamin Kaduk Date: Wed, 14 Jun 2017 11:47:02 -0500 Subject: [PATCH] Improve BN_CTX documentation Since BN_CTX_init() is gone, all calls use BN_CTX_new(). Also, essentially all consumers will use BN_CTX_start()/BN_CTX_end(), so make that more clear from the BN_CTX_new() man page. Document the thread-unsafety of individual BN_CTX objects. Reviewed-by: Matt Caswell (Merged from https://github.com/openssl/openssl/pull/3682) --- doc/man3/BN_CTX_new.pod | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/doc/man3/BN_CTX_new.pod b/doc/man3/BN_CTX_new.pod index 4cf3634e9b..7fba72e108 100644 --- a/doc/man3/BN_CTX_new.pod +++ b/doc/man3/BN_CTX_new.pod @@ -26,12 +26,14 @@ BN_CTX_secure_new() allocates and initializes a B structure but uses the secure heap (see L) to hold the Bs. -BN_CTX_free() frees the components of the B, and if it was -created by BN_CTX_new(), also the structure itself. -If L has been used on the B, -L must be called before the B -may be freed by BN_CTX_free(). -If B is NULL, nothing is done. +BN_CTX_free() frees the components of the B and the structure itself. +Since BN_CTX_start() is required in order to obtain Bs from the +B, in most cases BN_CTX_end() must be called before the B may +be freed by BN_CTX_free(). If B is NULL, nothing is done. + +A given B must only be used by a single thread of execution. No +locking is performed, and the internal pool allocator will not properly handle +multiple threads of execution. =head1 RETURN VALUES -- 2.25.1