mirror of
https://github.com/esp8266/Arduino.git
synced 2025-06-06 05:21:22 +03:00
Fix minor GCC10 static analyzer warnings (#7255)
Add minor NULL and double-free checks to source, identified using GCC10 pre-release static `-fanalyzer` on the coude. These are harmless to other versions. Also add explicit include of stdint to Schedule.h, because libstdc++20 will not automatically include it. Safe and no-op on earlier versions.
This commit is contained in:
parent
a9cf12fcf0
commit
388d3020f2
@ -2,6 +2,7 @@
|
|||||||
#define ESP_SCHEDULE_H
|
#define ESP_SCHEDULE_H
|
||||||
|
|
||||||
#include <functional>
|
#include <functional>
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
#define SCHEDULED_FN_MAX_COUNT 32
|
#define SCHEDULED_FN_MAX_COUNT 32
|
||||||
|
|
||||||
|
@ -234,6 +234,8 @@ namespace brssl {
|
|||||||
if (po) {
|
if (po) {
|
||||||
free(po->name);
|
free(po->name);
|
||||||
free(po->data);
|
free(po->data);
|
||||||
|
po->name = nullptr;
|
||||||
|
po->data = nullptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -125,6 +125,9 @@ int WiFiClientSecure::_connectSSL(const char* hostName)
|
|||||||
{
|
{
|
||||||
if (!_ssl) {
|
if (!_ssl) {
|
||||||
_ssl = std::make_shared<SSLContext>();
|
_ssl = std::make_shared<SSLContext>();
|
||||||
|
if (!_ssl) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
_ssl->connect(_client, hostName, _timeout);
|
_ssl->connect(_client, hostName, _timeout);
|
||||||
|
|
||||||
@ -170,8 +173,7 @@ size_t WiFiClientSecure::write(Stream& stream)
|
|||||||
size_t totalSent = 0;
|
size_t totalSent = 0;
|
||||||
size_t countRead;
|
size_t countRead;
|
||||||
size_t countSent;
|
size_t countSent;
|
||||||
if (!_ssl)
|
if (!_ssl) {
|
||||||
{
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
do {
|
do {
|
||||||
@ -399,61 +401,63 @@ void WiFiClientSecure::_initSSLContext()
|
|||||||
bool WiFiClientSecure::setCACert(const uint8_t* pk, size_t size)
|
bool WiFiClientSecure::setCACert(const uint8_t* pk, size_t size)
|
||||||
{
|
{
|
||||||
_initSSLContext();
|
_initSSLContext();
|
||||||
return _ssl->loadObject(SSL_OBJ_X509_CACERT, pk, size);
|
return _ssl ? _ssl->loadObject(SSL_OBJ_X509_CACERT, pk, size) : false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool WiFiClientSecure::setCertificate(const uint8_t* pk, size_t size)
|
bool WiFiClientSecure::setCertificate(const uint8_t* pk, size_t size)
|
||||||
{
|
{
|
||||||
_initSSLContext();
|
_initSSLContext();
|
||||||
return _ssl->loadObject(SSL_OBJ_X509_CERT, pk, size);
|
return _ssl ? _ssl->loadObject(SSL_OBJ_X509_CERT, pk, size) : false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool WiFiClientSecure::setPrivateKey(const uint8_t* pk, size_t size)
|
bool WiFiClientSecure::setPrivateKey(const uint8_t* pk, size_t size)
|
||||||
{
|
{
|
||||||
_initSSLContext();
|
_initSSLContext();
|
||||||
return _ssl->loadObject(SSL_OBJ_RSA_KEY, pk, size);
|
return _ssl ? _ssl->loadObject(SSL_OBJ_RSA_KEY, pk, size) : false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool WiFiClientSecure::setCACert_P(PGM_VOID_P pk, size_t size)
|
bool WiFiClientSecure::setCACert_P(PGM_VOID_P pk, size_t size)
|
||||||
{
|
{
|
||||||
_initSSLContext();
|
_initSSLContext();
|
||||||
return _ssl->loadObject_P(SSL_OBJ_X509_CACERT, pk, size);
|
return _ssl ? _ssl->loadObject_P(SSL_OBJ_X509_CACERT, pk, size) : false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool WiFiClientSecure::setCertificate_P(PGM_VOID_P pk, size_t size)
|
bool WiFiClientSecure::setCertificate_P(PGM_VOID_P pk, size_t size)
|
||||||
{
|
{
|
||||||
_initSSLContext();
|
_initSSLContext();
|
||||||
return _ssl->loadObject_P(SSL_OBJ_X509_CERT, pk, size);
|
return _ssl ? _ssl->loadObject_P(SSL_OBJ_X509_CERT, pk, size) : false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool WiFiClientSecure::setPrivateKey_P(PGM_VOID_P pk, size_t size)
|
bool WiFiClientSecure::setPrivateKey_P(PGM_VOID_P pk, size_t size)
|
||||||
{
|
{
|
||||||
_initSSLContext();
|
_initSSLContext();
|
||||||
return _ssl->loadObject_P(SSL_OBJ_RSA_KEY, pk, size);
|
return _ssl ? _ssl->loadObject_P(SSL_OBJ_RSA_KEY, pk, size) : false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool WiFiClientSecure::loadCACert(Stream& stream, size_t size)
|
bool WiFiClientSecure::loadCACert(Stream& stream, size_t size)
|
||||||
{
|
{
|
||||||
_initSSLContext();
|
_initSSLContext();
|
||||||
return _ssl->loadObject(SSL_OBJ_X509_CACERT, stream, size);
|
return _ssl ? _ssl->loadObject(SSL_OBJ_X509_CACERT, stream, size) : false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool WiFiClientSecure::loadCertificate(Stream& stream, size_t size)
|
bool WiFiClientSecure::loadCertificate(Stream& stream, size_t size)
|
||||||
{
|
{
|
||||||
_initSSLContext();
|
_initSSLContext();
|
||||||
return _ssl->loadObject(SSL_OBJ_X509_CERT, stream, size);
|
return _ssl ? _ssl->loadObject(SSL_OBJ_X509_CERT, stream, size) : false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool WiFiClientSecure::loadPrivateKey(Stream& stream, size_t size)
|
bool WiFiClientSecure::loadPrivateKey(Stream& stream, size_t size)
|
||||||
{
|
{
|
||||||
_initSSLContext();
|
_initSSLContext();
|
||||||
return _ssl->loadObject(SSL_OBJ_RSA_KEY, stream, size);
|
return _ssl ? _ssl->loadObject(SSL_OBJ_RSA_KEY, stream, size) : false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void WiFiClientSecure::allowSelfSignedCerts()
|
void WiFiClientSecure::allowSelfSignedCerts()
|
||||||
{
|
{
|
||||||
_initSSLContext();
|
_initSSLContext();
|
||||||
_ssl->allowSelfSignedCerts();
|
if (_ssl) {
|
||||||
|
_ssl->allowSelfSignedCerts();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C" int __ax_port_read(int fd, uint8_t* buffer, size_t count)
|
extern "C" int __ax_port_read(int fd, uint8_t* buffer, size_t count)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user