diff --git a/libraries/ESP8266WebServer/src/ESP8266WebServer.cpp b/libraries/ESP8266WebServer/src/ESP8266WebServer.cpp index 67e42c090..cecc8eabc 100644 --- a/libraries/ESP8266WebServer/src/ESP8266WebServer.cpp +++ b/libraries/ESP8266WebServer/src/ESP8266WebServer.cpp @@ -87,17 +87,25 @@ bool ESP8266WebServer::authenticate(const char * username, const char * password authReq.trim(); char toencodeLen = strlen(username)+strlen(password)+1; char *toencode = new char[toencodeLen]; - if(toencode == NULL) + if(toencode == NULL){ + authReq = String(); return false; + } char *encoded = new char[base64_encode_expected_len(toencodeLen)+1]; - if(encoded == NULL) + if(encoded == NULL){ + authReq = String(); + delete[] toencode; return false; - + } sprintf(toencode, "%s:%s", username, password); if(base64_encode_chars(toencode, toencodeLen, encoded) > 0 && authReq.equals(encoded)){ authReq = String(); + delete[] toencode; + delete[] encoded; return true; } + delete[] toencode; + delete[] encoded; } authReq = String(); }