Skip to content

Commit cec0701

Browse files
committed
Fixes stream load memory leak in WifiSecureClient for SSL CACert, Certificate, and
Private Key. Issue presented during any subsequent invocation of loadCACert, loadCertificate, and loadPrivateKey, respectively, after the first invocation.
1 parent 4da1051 commit cec0701

File tree

1 file changed

+3
-0
lines changed

1 file changed

+3
-0
lines changed

Diff for: libraries/WiFiClientSecure/src/WiFiClientSecure.cpp

+3
Original file line numberDiff line numberDiff line change
@@ -315,6 +315,7 @@ char *WiFiClientSecure::_streamLoad(Stream& stream, size_t size) {
315315
}
316316

317317
bool WiFiClientSecure::loadCACert(Stream& stream, size_t size) {
318+
if (_CA_cert != NULL) free(const_cast<char*>(_CA_cert));
318319
char *dest = _streamLoad(stream, size);
319320
bool ret = false;
320321
if (dest) {
@@ -325,6 +326,7 @@ bool WiFiClientSecure::loadCACert(Stream& stream, size_t size) {
325326
}
326327

327328
bool WiFiClientSecure::loadCertificate(Stream& stream, size_t size) {
329+
if (_cert != NULL) free(const_cast<char*>(_cert));
328330
char *dest = _streamLoad(stream, size);
329331
bool ret = false;
330332
if (dest) {
@@ -335,6 +337,7 @@ bool WiFiClientSecure::loadCertificate(Stream& stream, size_t size) {
335337
}
336338

337339
bool WiFiClientSecure::loadPrivateKey(Stream& stream, size_t size) {
340+
if (_private_key != NULL) free(const_cast<char*>(_private_key));
338341
char *dest = _streamLoad(stream, size);
339342
bool ret = false;
340343
if (dest) {

0 commit comments

Comments
 (0)