From 5f47ac4811ad22c7c10e1c436cacbffd832f3597 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 624b1265ac..3bb3c5f89c 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