mirror of
https://github.com/0xFEEDC0DE64/arduino-esp32.git
synced 2025-07-13 10:46:31 +02:00
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.
This commit is contained in:
@ -315,6 +315,7 @@ char *WiFiClientSecure::_streamLoad(Stream& stream, size_t size) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool WiFiClientSecure::loadCACert(Stream& stream, size_t size) {
|
bool WiFiClientSecure::loadCACert(Stream& stream, size_t size) {
|
||||||
|
if (_CA_cert != NULL) free(const_cast<char*>(_CA_cert));
|
||||||
char *dest = _streamLoad(stream, size);
|
char *dest = _streamLoad(stream, size);
|
||||||
bool ret = false;
|
bool ret = false;
|
||||||
if (dest) {
|
if (dest) {
|
||||||
@ -325,6 +326,7 @@ bool WiFiClientSecure::loadCACert(Stream& stream, size_t size) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool WiFiClientSecure::loadCertificate(Stream& stream, size_t size) {
|
bool WiFiClientSecure::loadCertificate(Stream& stream, size_t size) {
|
||||||
|
if (_cert != NULL) free(const_cast<char*>(_cert));
|
||||||
char *dest = _streamLoad(stream, size);
|
char *dest = _streamLoad(stream, size);
|
||||||
bool ret = false;
|
bool ret = false;
|
||||||
if (dest) {
|
if (dest) {
|
||||||
@ -335,6 +337,7 @@ bool WiFiClientSecure::loadCertificate(Stream& stream, size_t size) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool WiFiClientSecure::loadPrivateKey(Stream& stream, size_t size) {
|
bool WiFiClientSecure::loadPrivateKey(Stream& stream, size_t size) {
|
||||||
|
if (_private_key != NULL) free(const_cast<char*>(_private_key));
|
||||||
char *dest = _streamLoad(stream, size);
|
char *dest = _streamLoad(stream, size);
|
||||||
bool ret = false;
|
bool ret = false;
|
||||||
if (dest) {
|
if (dest) {
|
||||||
|
Reference in New Issue
Block a user