@@ -37,7 +37,7 @@ class TransportTraits
37
37
38
38
virtual std::unique_ptr<WiFiClient> create ()
39
39
{
40
- return std::unique_ptr<WiFiClient>(new WiFiClient ());
40
+ return std::unique_ptr<WiFiClient>(new (std::nothrow) WiFiClient ());
41
41
}
42
42
43
43
virtual bool verify (WiFiClient& client, const char * host)
@@ -59,8 +59,9 @@ class BearSSLTraits : public TransportTraits
59
59
60
60
std::unique_ptr<WiFiClient> create () override
61
61
{
62
- BearSSL::WiFiClientSecure *client = new BearSSL::WiFiClientSecure ();
63
- client->setFingerprint (_fingerprint);
62
+ BearSSL::WiFiClientSecure *client = new (std::nothrow) BearSSL::WiFiClientSecure ();
63
+ if (client != nullptr )
64
+ client->setFingerprint (_fingerprint);
64
65
return std::unique_ptr<WiFiClient>(client);
65
66
}
66
67
@@ -182,7 +183,7 @@ bool HTTPClient::begin(String url, const uint8_t httpsFingerprint[20])
182
183
if (!beginInternal (url, " https" )) {
183
184
return false ;
184
185
}
185
- _transportTraits = TransportTraitsPtr (new BearSSLTraits (httpsFingerprint));
186
+ _transportTraits = TransportTraitsPtr (new (std::nothrow) BearSSLTraits (httpsFingerprint));
186
187
if (!_transportTraits) {
187
188
DEBUG_HTTPCLIENT (" [HTTP-Client][begin] could not create transport traits\n " );
188
189
return false ;
@@ -212,8 +213,8 @@ bool HTTPClient::begin(String url)
212
213
if (!beginInternal (url, " http" )) {
213
214
return false ;
214
215
}
215
- _transportTraits = TransportTraitsPtr (new TransportTraits ());
216
- return true ;
216
+ _transportTraits = TransportTraitsPtr (new (std::nothrow) TransportTraits ());
217
+ return _transportTraits != nullptr ;
217
218
}
218
219
219
220
@@ -290,9 +291,9 @@ bool HTTPClient::begin(String host, uint16_t port, String uri)
290
291
_host = host;
291
292
_port = port;
292
293
_uri = uri;
293
- _transportTraits = TransportTraitsPtr (new TransportTraits ());
294
+ _transportTraits = TransportTraitsPtr (new (std::nothrow) TransportTraits ());
294
295
DEBUG_HTTPCLIENT (" [HTTP-Client][begin] host: %s port: %d uri: %s\n " , host.c_str (), port, uri.c_str ());
295
- return true ;
296
+ return _transportTraits != nullptr ;
296
297
}
297
298
298
299
@@ -309,13 +310,13 @@ bool HTTPClient::begin(String host, uint16_t port, String uri, const uint8_t htt
309
310
_port = port;
310
311
_uri = uri;
311
312
312
- _transportTraits = TransportTraitsPtr (new BearSSLTraits (httpsFingerprint));
313
+ _transportTraits = TransportTraitsPtr (new (std::nothrow) BearSSLTraits (httpsFingerprint));
313
314
DEBUG_HTTPCLIENT (" [HTTP-Client][begin] host: %s port: %d url: %s BearSSL-httpsFingerprint:" , host.c_str (), port, uri.c_str ());
314
315
for (size_t i=0 ; i < 20 ; i++) {
315
316
DEBUG_HTTPCLIENT (" %02x" , httpsFingerprint[i]);
316
317
}
317
318
DEBUG_HTTPCLIENT (" \n " );
318
- return true ;
319
+ return _transportTraits != nullptr ;
319
320
}
320
321
321
322
0 commit comments