Skip to content

Commit d7ffd57

Browse files
authored
Fixes stream load memory leak in WifiSecureClient for SSL CACert, Certificate, and (#6387)
Private Key. Issue presented during any subsequent invocation of loadCACert, loadCertificate, and loadPrivateKey, respectively, after the first invocation.
1 parent b88a70a commit d7ffd57

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)