tree c451166e09c92cf7e780e535275b3592f3bc4e23
parent d22c1b2445a6e87853868acc67ae2b02ad031716
author Hanno Becker <hanno.becker@arm.com> 1530259486 +0100
committer Hanno Becker <hanno.becker@arm.com> 1535032453 +0100

Return from debugging functions if SSL context is unset

The debugging functions
- mbedtls_debug_print_ret,
- mbedtls_debug_print_buf,
- mbedtls_debug_print_mpi, and
- mbedtls_debug_print_crt
return immediately if the SSL configuration bound to the
passed SSL context is NULL, has no debugging functions
configured, or if the debug threshold is below the debugging
level.
However, they do not check whether the provided SSL context
is not NULL before accessing the SSL configuration bound to it,
therefore leading to a segmentation fault if it is.
In contrast, the debugging function
- mbedtls_debug_print_msg
does check for ssl != NULL before accessing ssl->conf.

This commit unifies the checks by always returning immediately
if ssl == NULL.
