From a65931e3ce66d87b8f83d67ecdbb46f137e6a670 Mon Sep 17 00:00:00 2001 From: Pieter Wuille Date: Mon, 4 Apr 2022 13:19:49 -0400 Subject: Make DecodeBase{32,64} always return vector, not string Base32/base64 are mechanisms for encoding binary data. That they'd decode to a string is just bizarre. The fact that they'd do that based on the type of input arguments even more so. --- src/httprpc.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/httprpc.cpp') diff --git a/src/httprpc.cpp b/src/httprpc.cpp index 5d62568343..96cccd8de9 100644 --- a/src/httprpc.cpp +++ b/src/httprpc.cpp @@ -133,8 +133,9 @@ static bool RPCAuthorized(const std::string& strAuth, std::string& strAuthUserna return false; std::string strUserPass64 = TrimString(strAuth.substr(6)); bool invalid; - std::string strUserPass = DecodeBase64(strUserPass64, &invalid); + std::vector userpass_data = DecodeBase64(strUserPass64, &invalid); if (invalid) return false; + std::string strUserPass(userpass_data.begin(), userpass_data.end()); if (strUserPass.find(':') != std::string::npos) strAuthUsernameOut = strUserPass.substr(0, strUserPass.find(':')); -- cgit v1.2.3