From b49f6cb0f28386c71582a0ab6748cab0084e562c Mon Sep 17 00:00:00 2001 From: Wanwiset Peerapatanapokin Date: Tue, 28 Oct 2025 09:30:38 +0700 Subject: [PATCH] consensus: verify header hash is same as input hash in getEpochSwitchInfo (#1627) --- consensus/XDPoS/engines/engine_v2/epochSwitch.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/consensus/XDPoS/engines/engine_v2/epochSwitch.go b/consensus/XDPoS/engines/engine_v2/epochSwitch.go index a2ae67d59a..e6f75a3158 100644 --- a/consensus/XDPoS/engines/engine_v2/epochSwitch.go +++ b/consensus/XDPoS/engines/engine_v2/epochSwitch.go @@ -42,6 +42,10 @@ func (x *XDPoS_v2) getEpochSwitchInfo(chain consensus.ChainReader, header *types if h == nil { return nil, fmt.Errorf("[getEpochSwitchInfo] can not find header from db hash %v", hash.Hex()) } + } else { + if h.Hash() != hash { + return nil, fmt.Errorf("[getEpochSwitchInfo] header hash not match, header hash %v, input hash %v", h.Hash().Hex(), hash.Hex()) + } } isEpochSwitch, _, err := x.IsEpochSwitch(h) if err != nil {