提交 fe26f798 编写于 作者: R Richard Levitte

OSSL_TRACE: ensure it's initialised

When OSSL_TRACE functionality is called before anything else, it finds
itself uninitialised, i.e. its global lock hasn't been created yet.

Fortunately, we have an internal general setup function for the trace
functionality, that makes for a perfect spot to trigger initialisation.
Reviewed-by: NMatthias St. Pierre <Matthias.St.Pierre@ncp-e.com>
(Merged from https://github.com/openssl/openssl/pull/9212)
上级 f8922b51
......@@ -132,6 +132,8 @@ static const struct trace_category_st trace_categories[] = {
TRACE_CATEGORY_(PKCS12_DECRYPT),
TRACE_CATEGORY_(X509V3_POLICY),
TRACE_CATEGORY_(BN_CTX),
TRACE_CATEGORY_(PROV),
TRACE_CATEGORY_(FETCH),
};
const char *OSSL_trace_get_category_name(int num)
......@@ -223,9 +225,16 @@ static int set_trace_data(int category, int type, BIO **channel,
int (*attach_cb)(int, int, const void *),
int (*detach_cb)(int, int, const void *))
{
BIO *curr_channel = trace_channels[category].bio;
char *curr_prefix = trace_channels[category].prefix;
char *curr_suffix = trace_channels[category].suffix;
BIO *curr_channel = NULL;
char *curr_prefix = NULL;
char *curr_suffix = NULL;
/* Ensure ossl_trace_init() is called */
OPENSSL_init_crypto(0, NULL);
curr_channel = trace_channels[category].bio;
curr_prefix = trace_channels[category].prefix;
curr_suffix = trace_channels[category].suffix;
/* Make sure to run the detach callback first on all data */
if (prefix != NULL && curr_prefix != NULL) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册