Browse Source

Fix subscript[0] in validation.cpp

0.15
Jeremy Rubin 7 years ago
parent
commit
4cac0d1e04
  1. 12
      src/serialize.h
  2. 2
      src/validation.cpp

12
src/serialize.h

@ -450,7 +450,7 @@ public: @@ -450,7 +450,7 @@ public:
}
string.resize(size);
if (size != 0)
s.read((char*)&string[0], size);
s.read((char*)string.data(), size);
}
template<typename Stream>
@ -458,7 +458,7 @@ public: @@ -458,7 +458,7 @@ public:
{
WriteCompactSize(s, string.size());
if (!string.empty())
s.write((char*)&string[0], string.size());
s.write((char*)string.data(), string.size());
}
};
@ -556,7 +556,7 @@ void Serialize(Stream& os, const std::basic_string<C>& str) @@ -556,7 +556,7 @@ void Serialize(Stream& os, const std::basic_string<C>& str)
{
WriteCompactSize(os, str.size());
if (!str.empty())
os.write((char*)&str[0], str.size() * sizeof(str[0]));
os.write((char*)str.data(), str.size() * sizeof(C));
}
template<typename Stream, typename C>
@ -565,7 +565,7 @@ void Unserialize(Stream& is, std::basic_string<C>& str) @@ -565,7 +565,7 @@ void Unserialize(Stream& is, std::basic_string<C>& str)
unsigned int nSize = ReadCompactSize(is);
str.resize(nSize);
if (nSize != 0)
is.read((char*)&str[0], nSize * sizeof(str[0]));
is.read((char*)str.data(), nSize * sizeof(C));
}
@ -578,7 +578,7 @@ void Serialize_impl(Stream& os, const prevector<N, T>& v, const unsigned char&) @@ -578,7 +578,7 @@ void Serialize_impl(Stream& os, const prevector<N, T>& v, const unsigned char&)
{
WriteCompactSize(os, v.size());
if (!v.empty())
os.write((char*)&v[0], v.size() * sizeof(T));
os.write((char*)v.data(), v.size() * sizeof(T));
}
template<typename Stream, unsigned int N, typename T, typename V>
@ -646,7 +646,7 @@ void Serialize_impl(Stream& os, const std::vector<T, A>& v, const unsigned char& @@ -646,7 +646,7 @@ void Serialize_impl(Stream& os, const std::vector<T, A>& v, const unsigned char&
{
WriteCompactSize(os, v.size());
if (!v.empty())
os.write((char*)&v[0], v.size() * sizeof(T));
os.write((char*)v.data(), v.size() * sizeof(T));
}
template<typename Stream, typename T, typename A, typename V>

2
src/validation.cpp

@ -2890,7 +2890,7 @@ std::vector<unsigned char> GenerateCoinbaseCommitment(CBlock& block, const CBloc @@ -2890,7 +2890,7 @@ std::vector<unsigned char> GenerateCoinbaseCommitment(CBlock& block, const CBloc
if (consensusParams.vDeployments[Consensus::DEPLOYMENT_SEGWIT].nTimeout != 0) {
if (commitpos == -1) {
uint256 witnessroot = BlockWitnessMerkleRoot(block, NULL);
CHash256().Write(witnessroot.begin(), 32).Write(&ret[0], 32).Finalize(witnessroot.begin());
CHash256().Write(witnessroot.begin(), 32).Write(ret.data(), 32).Finalize(witnessroot.begin());
CTxOut out;
out.nValue = 0;
out.scriptPubKey.resize(38);

Loading…
Cancel
Save