summaryrefslogtreecommitdiffstats
path: root/apps/openssl.c
diff options
context:
space:
mode:
authorDr. Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com>2019-03-19 08:53:35 +0100
committerDr. Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com>2019-03-29 23:59:06 +0100
commit0fda9f7c291de7b3a1e576ce43801dfa91b42f0e (patch)
tree87fe5371010eb4fe3596bbf62df36f2e0d1ab537 /apps/openssl.c
parent2e6b615f795e8ca8ae830a00079c4ea064eaae42 (diff)
trace: don't pretend success if it's not enabled
Partially reverts d33d76168fb7 Don't fail when tracing is disabled Commit d33d76168fb7 fixed the problem that the initialization of libcrypto failed when tracing was disabled, because the unoperational ossl_trace_init() function returned a failure code. The problem was fixed by changing its return value from failure to success. As part of the fix the return values of other unimplemented trace API functions (like OSSL_trace_set_channel(),OSSL_trace_set_callback()) was changed from failure to success, too. This change was not necessary and is a bit problematic IMHO, because nobody expects an unimplemented function to pretend it succeeded. It's the application's duty to handle the case correctly when the trace API is not enabled (i.e., OPENSSL_NO_TRACE is defined), not the API's job to pretend success just to prevent the application from failing. Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/8552)
Diffstat (limited to 'apps/openssl.c')
-rw-r--r--apps/openssl.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/apps/openssl.c b/apps/openssl.c
index b5ec835d51..44dbda7625 100644
--- a/apps/openssl.c
+++ b/apps/openssl.c
@@ -118,6 +118,8 @@ static char *make_config_name(void)
return p;
}
+
+#ifndef OPENSSL_NO_TRACE
typedef struct tracedata_st {
BIO *bio;
unsigned int ingroup:1;
@@ -224,6 +226,7 @@ static void setup_trace(const char *str)
OPENSSL_free(val);
atexit(cleanup_trace);
}
+#endif /* OPENSSL_NO_TRACE */
int main(int argc, char *argv[])
{
@@ -260,7 +263,9 @@ int main(int argc, char *argv[])
*/
atexit(destroy_prefix_method);
+#ifndef OPENSSL_NO_TRACE
setup_trace(getenv("OPENSSL_TRACE"));
+#endif
p = getenv("OPENSSL_DEBUG_MEMORY");
if (p != NULL && strcmp(p, "on") == 0)