diff options
author | Richard Levitte <levitte@openssl.org> | 2019-03-14 00:39:28 +0100 |
---|---|---|
committer | Richard Levitte <levitte@openssl.org> | 2019-03-14 08:12:51 +0100 |
commit | d33d76168fb7642916cdcb7ccb0513abdb6f5f05 (patch) | |
tree | 04549d101abb300807e4437449e11bb60ca5d6c2 /crypto/trace.c | |
parent | 81d61a62faa809e6c51f5fc2b86fb0d31146fd5e (diff) |
Don't fail when tracing is disabled
When tracing is disabled, don't generate errors, especially during
init. Instead, just pretend the everything is fine.
Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com>
(Merged from https://github.com/openssl/openssl/pull/8475)
Diffstat (limited to 'crypto/trace.c')
-rw-r--r-- | crypto/trace.c | 33 |
1 files changed, 17 insertions, 16 deletions
diff --git a/crypto/trace.c b/crypto/trace.c index 8ead944b43..c0b3ab2ed5 100644 --- a/crypto/trace.c +++ b/crypto/trace.c @@ -287,11 +287,11 @@ int ossl_trace_init(void) { #ifndef OPENSSL_NO_TRACE trace_lock = CRYPTO_THREAD_lock_new(); - if (trace_lock != NULL) - return 1; + if (trace_lock == NULL) + return 0; #endif - return 0; + return 1; } void ossl_trace_cleanup(void) @@ -321,15 +321,11 @@ int OSSL_trace_set_channel(int category, BIO *channel) if (category < 0 || category >= OSSL_TRACE_CATEGORY_NUM || !set_trace_data(category, &channel, NULL, NULL, trace_attach_cb, trace_detach_cb)) - goto err; + return 0; trace_channels[category].type = t_channel; - return 1; - - err: #endif - - return 0; + return 1; } #ifndef OPENSSL_NO_TRACE @@ -383,36 +379,41 @@ int OSSL_trace_set_callback(int category, OSSL_trace_cb callback, void *data) goto err; trace_channels[category].type = t_callback; - return 1; + goto done; err: BIO_free(channel); OPENSSL_free(trace_data); -#endif - return 0; + done: +#endif + return 1; } int OSSL_trace_set_prefix(int category, const char *prefix) { + int rv = 1; + #ifndef OPENSSL_NO_TRACE if (category >= 0 || category < OSSL_TRACE_CATEGORY_NUM) return set_trace_data(category, NULL, &prefix, NULL, trace_attach_cb, trace_detach_cb); + rv = 0; #endif - - return 0; + return rv; } int OSSL_trace_set_suffix(int category, const char *suffix) { + int rv = 1; + #ifndef OPENSSL_NO_TRACE if (category >= 0 || category < OSSL_TRACE_CATEGORY_NUM) return set_trace_data(category, NULL, NULL, &suffix, trace_attach_cb, trace_detach_cb); + rv = 0; #endif - - return 0; + return rv; } #ifndef OPENSSL_NO_TRACE |