summaryrefslogtreecommitdiffstats
path: root/modules/mbedtls/stream_peer_mbedtls.cpp
diff options
context:
space:
mode:
authorFabio Alessandrelli <fabio.alessandrelli@gmail.com>2019-08-21 23:59:25 +0200
committerFabio Alessandrelli <fabio.alessandrelli@gmail.com>2019-08-22 00:14:01 +0200
commitb223b207c4a1d0854a60e03910c9fd39bbfb252f (patch)
tree69a330c88c3003d483f1e50645c0fee2bf02deb1 /modules/mbedtls/stream_peer_mbedtls.cpp
parent3bd49dabfa909187d514e018ff7c60339e343c71 (diff)
downloadredot-engine-b223b207c4a1d0854a60e03910c9fd39bbfb252f.tar.gz
Fix regression in StreamPeerSSL
Validate that base stream is valid before accepting/connecting. Also remove unnecessary includes.
Diffstat (limited to 'modules/mbedtls/stream_peer_mbedtls.cpp')
-rwxr-xr-xmodules/mbedtls/stream_peer_mbedtls.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/modules/mbedtls/stream_peer_mbedtls.cpp b/modules/mbedtls/stream_peer_mbedtls.cpp
index a9acfbef02..e2eb19fc74 100755
--- a/modules/mbedtls/stream_peer_mbedtls.cpp
+++ b/modules/mbedtls/stream_peer_mbedtls.cpp
@@ -108,6 +108,8 @@ Error StreamPeerMbedTLS::_do_handshake() {
Error StreamPeerMbedTLS::connect_to_stream(Ref<StreamPeer> p_base, bool p_validate_certs, const String &p_for_hostname, Ref<X509Certificate> p_ca_certs) {
+ ERR_FAIL_COND_V(p_base.is_null(), ERR_INVALID_PARAMETER);
+
base = p_base;
int ret = 0;
int authmode = p_validate_certs ? MBEDTLS_SSL_VERIFY_REQUIRED : MBEDTLS_SSL_VERIFY_NONE;
@@ -130,6 +132,8 @@ Error StreamPeerMbedTLS::connect_to_stream(Ref<StreamPeer> p_base, bool p_valida
Error StreamPeerMbedTLS::accept_stream(Ref<StreamPeer> p_base, Ref<CryptoKey> p_key, Ref<X509Certificate> p_cert, Ref<X509Certificate> p_ca_chain) {
+ ERR_FAIL_COND_V(p_base.is_null(), ERR_INVALID_PARAMETER);
+
Error err = ssl_ctx->init_server(MBEDTLS_SSL_TRANSPORT_STREAM, MBEDTLS_SSL_VERIFY_NONE, p_key, p_cert);
ERR_FAIL_COND_V(err != OK, err);