Skip to content

Commit 2947ae6

Browse files
committed
Merge #20035: signet: Fix uninitialized read in validation
fa723e3 Initialize default-initialized uint256 consensus params to zero explicitly (MarcoFalke) fa729cd doc: Move assumed-values doxygen comments to header (MarcoFalke) fa64892 signet: Fix uninitialized read in validation (MarcoFalke) Pull request description: ACKs for top commit: practicalswift: re-ACK fa723e3: patch still looks correct kallewoof: ReACK fa723e3 theStack: re-ACK fa723e3 🍐 Tree-SHA512: db562bcc15af23bbcbf485f0bbf7564c64c144a4368230fd7682e8861d9500f6f5240351e31c560140df43b2e8456eafd9d27d1e8dd682b20afcc279a39dc329
2 parents 82d3596 + fa723e3 commit 2947ae6

File tree

2 files changed

+9
-11
lines changed

2 files changed

+9
-11
lines changed

src/chainparams.cpp

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -91,10 +91,7 @@ class CMainParams : public CChainParams {
9191
consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].nStartTime = 1199145601; // January 1, 2008
9292
consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].nTimeout = 1230767999; // December 31, 2008
9393

94-
// The best chain should have at least this much work.
9594
consensus.nMinimumChainWork = uint256S("0x00000000000000000000000000000000000000000e1ab5ec9348e9f4b8eb8154");
96-
97-
// By default assume that the signatures in ancestors of this block are valid.
9895
consensus.defaultAssumeValid = uint256S("0x0000000000000000000f2adce67e49b0b6bdeb9de8b7c3d7e93b21e7fc1e819d"); // 623950
9996

10097
/**
@@ -207,10 +204,7 @@ class CTestNetParams : public CChainParams {
207204
consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].nStartTime = 1199145601; // January 1, 2008
208205
consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].nTimeout = 1230767999; // December 31, 2008
209206

210-
// The best chain should have at least this much work.
211207
consensus.nMinimumChainWork = uint256S("0x0000000000000000000000000000000000000000000001495c1d5a01e2af8a23");
212-
213-
// By default assume that the signatures in ancestors of this block are valid.
214208
consensus.defaultAssumeValid = uint256S("0x000000000000056c49030c174179b52a928c870e6e8a822c75973b7970cfbd01"); // 1692000
215209

216210
pchMessageStart[0] = 0x0b;
@@ -297,6 +291,8 @@ class SigNetParams : public CChainParams {
297291
}
298292
bin = ParseHex(signet_challenge[0]);
299293

294+
consensus.nMinimumChainWork = uint256{};
295+
consensus.defaultAssumeValid = uint256{};
300296
m_assumed_blockchain_size = 0;
301297
m_assumed_chain_state_size = 0;
302298
chainTxData = ChainTxData{
@@ -315,7 +311,9 @@ class SigNetParams : public CChainParams {
315311
consensus.signet_blocks = true;
316312
consensus.signet_challenge.assign(bin.begin(), bin.end());
317313
consensus.nSubsidyHalvingInterval = 210000;
314+
consensus.BIP16Exception = uint256{};
318315
consensus.BIP34Height = 1;
316+
consensus.BIP34Hash = uint256{};
319317
consensus.BIP65Height = 1;
320318
consensus.BIP66Height = 1;
321319
consensus.CSVHeight = 1;
@@ -326,6 +324,7 @@ class SigNetParams : public CChainParams {
326324
consensus.fPowNoRetargeting = false;
327325
consensus.nRuleChangeActivationThreshold = 1916;
328326
consensus.nMinerConfirmationWindow = 2016;
327+
consensus.MinBIP9WarningHeight = 0;
329328
consensus.powLimit = uint256S("00000377ae000000000000000000000000000000000000000000000000000000");
330329
consensus.vDeployments[Consensus::DEPLOYMENT_TESTDUMMY].bit = 28;
331330
consensus.vDeployments[Consensus::DEPLOYMENT_TESTDUMMY].nStartTime = 1199145601; // January 1, 2008
@@ -394,11 +393,8 @@ class CRegTestParams : public CChainParams {
394393
consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].nStartTime = Consensus::BIP9Deployment::ALWAYS_ACTIVE;
395394
consensus.vDeployments[Consensus::DEPLOYMENT_TAPROOT].nTimeout = Consensus::BIP9Deployment::NO_TIMEOUT;
396395

397-
// The best chain should have at least this much work.
398-
consensus.nMinimumChainWork = uint256S("0x00");
399-
400-
// By default assume that the signatures in ancestors of this block are valid.
401-
consensus.defaultAssumeValid = uint256S("0x00");
396+
consensus.nMinimumChainWork = uint256{};
397+
consensus.defaultAssumeValid = uint256{};
402398

403399
pchMessageStart[0] = 0xfa;
404400
pchMessageStart[1] = 0xbf;

src/consensus/params.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,9 @@ struct Params {
7979
int64_t nPowTargetSpacing;
8080
int64_t nPowTargetTimespan;
8181
int64_t DifficultyAdjustmentInterval() const { return nPowTargetTimespan / nPowTargetSpacing; }
82+
/** The best chain should have at least this much work */
8283
uint256 nMinimumChainWork;
84+
/** By default assume that the signatures in ancestors of this block are valid */
8385
uint256 defaultAssumeValid;
8486

8587
/**

0 commit comments

Comments
 (0)