mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-02-23 15:20:49 +01:00
Fix occurences of c_str() used with size() to data()
Using `data()` better communicates the intent here. Also, depending on how `c_str()` is implemented, this fixes undefined behavior: The part of the string after the first NULL character might have undefined contents.
This commit is contained in:
parent
a25945318f
commit
f3b51eb935
6 changed files with 8 additions and 8 deletions
|
@ -366,7 +366,7 @@ static UniValue CallRPC(BaseRequestHandler *rh, const std::string& strMethod, co
|
||||||
std::string endpoint = "/";
|
std::string endpoint = "/";
|
||||||
if (!gArgs.GetArgs("-rpcwallet").empty()) {
|
if (!gArgs.GetArgs("-rpcwallet").empty()) {
|
||||||
std::string walletName = gArgs.GetArg("-rpcwallet", "");
|
std::string walletName = gArgs.GetArg("-rpcwallet", "");
|
||||||
char *encodedURI = evhttp_uriencode(walletName.c_str(), walletName.size(), false);
|
char *encodedURI = evhttp_uriencode(walletName.data(), walletName.size(), false);
|
||||||
if (encodedURI) {
|
if (encodedURI) {
|
||||||
endpoint = "/wallet/"+ std::string(encodedURI);
|
endpoint = "/wallet/"+ std::string(encodedURI);
|
||||||
free(encodedURI);
|
free(encodedURI);
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
|
|
||||||
CHKDF_HMAC_SHA256_L32::CHKDF_HMAC_SHA256_L32(const unsigned char* ikm, size_t ikmlen, const std::string& salt)
|
CHKDF_HMAC_SHA256_L32::CHKDF_HMAC_SHA256_L32(const unsigned char* ikm, size_t ikmlen, const std::string& salt)
|
||||||
{
|
{
|
||||||
CHMAC_SHA256((const unsigned char*)salt.c_str(), salt.size()).Write(ikm, ikmlen).Finalize(m_prk);
|
CHMAC_SHA256((const unsigned char*)salt.data(), salt.size()).Write(ikm, ikmlen).Finalize(m_prk);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CHKDF_HMAC_SHA256_L32::Expand32(const std::string& info, unsigned char hash[OUTPUT_SIZE])
|
void CHKDF_HMAC_SHA256_L32::Expand32(const std::string& info, unsigned char hash[OUTPUT_SIZE])
|
||||||
|
|
|
@ -107,10 +107,10 @@ std::string get_filesystem_error_message(const fs::filesystem_error& e)
|
||||||
#else
|
#else
|
||||||
// Convert from Multi Byte to utf-16
|
// Convert from Multi Byte to utf-16
|
||||||
std::string mb_string(e.what());
|
std::string mb_string(e.what());
|
||||||
int size = MultiByteToWideChar(CP_ACP, 0, mb_string.c_str(), mb_string.size(), nullptr, 0);
|
int size = MultiByteToWideChar(CP_ACP, 0, mb_string.data(), mb_string.size(), nullptr, 0);
|
||||||
|
|
||||||
std::wstring utf16_string(size, L'\0');
|
std::wstring utf16_string(size, L'\0');
|
||||||
MultiByteToWideChar(CP_ACP, 0, mb_string.c_str(), mb_string.size(), &*utf16_string.begin(), size);
|
MultiByteToWideChar(CP_ACP, 0, mb_string.data(), mb_string.size(), &*utf16_string.begin(), size);
|
||||||
// Convert from utf-16 to utf-8
|
// Convert from utf-16 to utf-8
|
||||||
return std::wstring_convert<std::codecvt_utf8_utf16<wchar_t>, wchar_t>().to_bytes(utf16_string);
|
return std::wstring_convert<std::codecvt_utf8_utf16<wchar_t>, wchar_t>().to_bytes(utf16_string);
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -112,7 +112,7 @@ static bool multiUserAuthorized(std::string strUserPass)
|
||||||
static const unsigned int KEY_SIZE = 32;
|
static const unsigned int KEY_SIZE = 32;
|
||||||
unsigned char out[KEY_SIZE];
|
unsigned char out[KEY_SIZE];
|
||||||
|
|
||||||
CHMAC_SHA256(reinterpret_cast<const unsigned char*>(strSalt.c_str()), strSalt.size()).Write(reinterpret_cast<const unsigned char*>(strPass.c_str()), strPass.size()).Finalize(out);
|
CHMAC_SHA256(reinterpret_cast<const unsigned char*>(strSalt.data()), strSalt.size()).Write(reinterpret_cast<const unsigned char*>(strPass.data()), strPass.size()).Finalize(out);
|
||||||
std::vector<unsigned char> hexvec(out, out+KEY_SIZE);
|
std::vector<unsigned char> hexvec(out, out+KEY_SIZE);
|
||||||
std::string strHashFromPass = HexStr(hexvec);
|
std::string strHashFromPass = HexStr(hexvec);
|
||||||
|
|
||||||
|
|
|
@ -138,7 +138,7 @@ std::string EncodeBase64(const unsigned char* pch, size_t len)
|
||||||
|
|
||||||
std::string EncodeBase64(const std::string& str)
|
std::string EncodeBase64(const std::string& str)
|
||||||
{
|
{
|
||||||
return EncodeBase64((const unsigned char*)str.c_str(), str.size());
|
return EncodeBase64((const unsigned char*)str.data(), str.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<unsigned char> DecodeBase64(const char* p, bool* pf_invalid)
|
std::vector<unsigned char> DecodeBase64(const char* p, bool* pf_invalid)
|
||||||
|
@ -207,7 +207,7 @@ std::string EncodeBase32(const unsigned char* pch, size_t len)
|
||||||
|
|
||||||
std::string EncodeBase32(const std::string& str)
|
std::string EncodeBase32(const std::string& str)
|
||||||
{
|
{
|
||||||
return EncodeBase32((const unsigned char*)str.c_str(), str.size());
|
return EncodeBase32((const unsigned char*)str.data(), str.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<unsigned char> DecodeBase32(const char* p, bool* pf_invalid)
|
std::vector<unsigned char> DecodeBase32(const char* p, bool* pf_invalid)
|
||||||
|
|
|
@ -23,7 +23,7 @@ int CCrypter::BytesToKeySHA512AES(const std::vector<unsigned char>& chSalt, cons
|
||||||
unsigned char buf[CSHA512::OUTPUT_SIZE];
|
unsigned char buf[CSHA512::OUTPUT_SIZE];
|
||||||
CSHA512 di;
|
CSHA512 di;
|
||||||
|
|
||||||
di.Write((const unsigned char*)strKeyData.c_str(), strKeyData.size());
|
di.Write((const unsigned char*)strKeyData.data(), strKeyData.size());
|
||||||
di.Write(chSalt.data(), chSalt.size());
|
di.Write(chSalt.data(), chSalt.size());
|
||||||
di.Finalize(buf);
|
di.Finalize(buf);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue