🔥🐎 changed local array to static thread_local buffer

This commit is contained in:
EntireTwix 2021-07-09 18:30:34 -07:00
parent 2e991da613
commit 2d7d29372c
2 changed files with 2 additions and 5 deletions

View file

@ -1,7 +1,6 @@
#pragma once #pragma once
#include <drogon/HttpFilter.h> #include <drogon/HttpFilter.h>
#include <libbase64.h> #include <libbase64.h>
#include <array>
#include "str_intrusion.h" #include "str_intrusion.h"
#include "bank.h" #include "bank.h"

View file

@ -14,7 +14,8 @@ void UserFilter<set_body_flag, require_admin>::doFilter(const HttpRequestPtr &re
if (auth_header.substr(0, 6) == "Basic ") if (auth_header.substr(0, 6) == "Basic ")
{ {
std::string_view base64_input = auth_header.substr(6); std::string_view base64_input = auth_header.substr(6);
static char result_buffer[511]{0}; //(255 username + ':' + 255 password) static thread_local char result_buffer[511]; //(255 username + ':' + 255 password)
std::memset(result_buffer, 0, 511);
size_t new_sz; size_t new_sz;
base64_decode(base64_input.data(), base64_input.size(), result_buffer, &new_sz, 0); base64_decode(base64_input.data(), base64_input.size(), result_buffer, &new_sz, 0);
@ -31,7 +32,6 @@ void UserFilter<set_body_flag, require_admin>::doFilter(const HttpRequestPtr &re
if (bank.VerifyPassword(username.str, password.str)) if (bank.VerifyPassword(username.str, password.str))
{ {
fccb(); fccb();
std::memset(result_buffer, 0, 511);
return; return;
} }
} }
@ -46,12 +46,10 @@ void UserFilter<set_body_flag, require_admin>::doFilter(const HttpRequestPtr &re
req->setParameter("name", username.str); req->setParameter("name", username.str);
} }
fccb(); fccb();
std::memset(result_buffer, 0, 511);
return; return;
} }
} }
} }
std::memset(result_buffer, 0, 511);
} }
} }
const auto &resp = HttpResponse::newCustomHttpResponse(BankResponse(k401Unauthorized, "\"Invalid Credentials\"")); const auto &resp = HttpResponse::newCustomHttpResponse(BankResponse(k401Unauthorized, "\"Invalid Credentials\""));