Merge bitcoin/bitcoin#30131: wallet, tests: Avoid stringop-overflow warning in PollutePubKey

2289d4524053ab71c0d9133987cb36412797c1a2 wallet, tests: Avoid stringop-overflow warning in PollutePubKey (Ava Chow)

Pull request description:

  Fixes  #30114

ACKs for top commit:
  maflcko:
    ACK 2289d4524053ab71c0d9133987cb36412797c1a2 with g++ 14.1.1 🦄
  theStack:
    utACK 2289d4524053ab71c0d9133987cb36412797c1a2
  laanwj:
    ACK 2289d4524053ab71c0d9133987cb36412797c1a2

Tree-SHA512: 173c3c299bdd890f73e8a67a37880dbf816265e8b3c8298557ef2fc4670f5447005c0d2d81726f9bc43f6a69d677365d90a604354b3cbab0e3c52c4526d0407e
This commit is contained in:
merge-script 2024-05-22 13:43:33 +01:00 committed by Konstantin Akimov
parent 3f0c2ff324
commit dcbf671551
No known key found for this signature in database
GPG Key ID: 2176C4A5D01EA524

View File

@ -531,8 +531,10 @@ static void TestWatchOnlyPubKey(LegacyScriptPubKeyMan* spk_man, const CPubKey& a
// Cryptographically invalidate a PubKey whilst keeping length and first byte
static void PollutePubKey(CPubKey& pubkey)
{
std::vector<unsigned char> pubkey_raw(pubkey.begin(), pubkey.end());
std::fill(pubkey_raw.begin()+1, pubkey_raw.end(), 0);
assert(pubkey.size() >= 1);
std::vector<unsigned char> pubkey_raw;
pubkey_raw.push_back(pubkey[0]);
pubkey_raw.insert(pubkey_raw.end(), pubkey.size() - 1, 0);
pubkey = CPubKey(pubkey_raw);
assert(!pubkey.IsFullyValid());
assert(pubkey.IsValid());