1
0
mirror of https://github.com/esp8266/Arduino.git synced 2025-04-19 23:22:16 +03:00

Merge pull request #1119 from me-no-dev/www-basic-auth

memory housekeeping
This commit is contained in:
Ivan Grokhotkov 2015-12-01 17:17:24 +03:00
commit 1ac18e11ff

View File

@ -87,17 +87,25 @@ bool ESP8266WebServer::authenticate(const char * username, const char * password
authReq.trim(); authReq.trim();
char toencodeLen = strlen(username)+strlen(password)+1; char toencodeLen = strlen(username)+strlen(password)+1;
char *toencode = new char[toencodeLen]; char *toencode = new char[toencodeLen];
if(toencode == NULL) if(toencode == NULL){
authReq = String();
return false; return false;
}
char *encoded = new char[base64_encode_expected_len(toencodeLen)+1]; char *encoded = new char[base64_encode_expected_len(toencodeLen)+1];
if(encoded == NULL) if(encoded == NULL){
authReq = String();
delete[] toencode;
return false; return false;
}
sprintf(toencode, "%s:%s", username, password); sprintf(toencode, "%s:%s", username, password);
if(base64_encode_chars(toencode, toencodeLen, encoded) > 0 && authReq.equals(encoded)){ if(base64_encode_chars(toencode, toencodeLen, encoded) > 0 && authReq.equals(encoded)){
authReq = String(); authReq = String();
delete[] toencode;
delete[] encoded;
return true; return true;
} }
delete[] toencode;
delete[] encoded;
} }
authReq = String(); authReq = String();
} }