From 0d0155b3c66cdb355cf86a51a3cbdadd3ffc601a Mon Sep 17 00:00:00 2001 From: "Earle F. Philhower, III" Date: Wed, 26 Sep 2018 10:16:32 -0700 Subject: [PATCH] Clear cipher list on server creation, fix crash The cipher list values were not initialized to NULL appropriately for the BearSSL::WiFiClientSecure() constructor called by the Server object. This caused a crash as a random value was free'd when conecting to the SSL server object. --- libraries/ESP8266WiFi/src/WiFiClientSecureBearSSL.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libraries/ESP8266WiFi/src/WiFiClientSecureBearSSL.cpp b/libraries/ESP8266WiFi/src/WiFiClientSecureBearSSL.cpp index c2567b7303..83d884f2c7 100644 --- a/libraries/ESP8266WiFi/src/WiFiClientSecureBearSSL.cpp +++ b/libraries/ESP8266WiFi/src/WiFiClientSecureBearSSL.cpp @@ -116,6 +116,8 @@ WiFiClientSecure::~WiFiClientSecure() { WiFiClientSecure::WiFiClientSecure(ClientContext* client, const BearSSLX509List *chain, const BearSSLPrivateKey *sk, int iobuf_in_size, int iobuf_out_size, const BearSSLX509List *client_CA_ta) { + _cipher_list = NULL; + _cipher_cnt = 0; _clear(); _clearAuthenticationSettings(); _iobuf_in_size = iobuf_in_size; @@ -133,6 +135,8 @@ WiFiClientSecure::WiFiClientSecure(ClientContext *client, const BearSSLX509List *chain, unsigned cert_issuer_key_type, const BearSSLPrivateKey *sk, int iobuf_in_size, int iobuf_out_size, const BearSSLX509List *client_CA_ta) { + _cipher_list = NULL; + _cipher_cnt = 0; _clear(); _clearAuthenticationSettings(); _iobuf_in_size = iobuf_in_size;