From e1521be67ae5b3a9e7b81b2a00661052ea6a846a Mon Sep 17 00:00:00 2001 From: CPerezz Date: Sat, 14 Feb 2026 11:15:48 +0100 Subject: [PATCH] core/types: fix CopyHeader missing BlockAccessListHash deep copy CopyHeader copies all pointer-typed header fields (WithdrawalsHash, RequestsHash, SlotNumber, etc.) but was missing the deep copy for BlockAccessListHash added by EIP-7928. This caused the BAL hash to be silently shared between the original and the copy, leading to potential data races and incorrect nil-checks on copied headers. --- core/types/block.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/core/types/block.go b/core/types/block.go index ed988ddaab..ce5bf42fa8 100644 --- a/core/types/block.go +++ b/core/types/block.go @@ -333,6 +333,10 @@ func CopyHeader(h *Header) *Header { cpy.RequestsHash = new(common.Hash) *cpy.RequestsHash = *h.RequestsHash } + if h.BlockAccessListHash != nil { + cpy.BlockAccessListHash = new(common.Hash) + *cpy.BlockAccessListHash = *h.BlockAccessListHash + } if h.SlotNumber != nil { cpy.SlotNumber = new(uint64) *cpy.SlotNumber = *h.SlotNumber