From cc7f8f58e81b3607d5a003fe7789dadb7a99fe54 Mon Sep 17 00:00:00 2001 From: obscuren Date: Tue, 6 Jan 2015 00:17:05 +0100 Subject: Limit block extra to 1024 --- core/block_processor.go | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'core') diff --git a/core/block_processor.go b/core/block_processor.go index 83399f472..127e97921 100644 --- a/core/block_processor.go +++ b/core/block_processor.go @@ -258,6 +258,10 @@ func (sm *BlockProcessor) CalculateTD(block *types.Block) (*big.Int, bool) { // an uncle or anything that isn't on the current block chain. // Validation validates easy over difficult (dagger takes longer time = difficult) func (sm *BlockProcessor) ValidateBlock(block, parent *types.Block) error { + if len(block.Header().Extra) > 1024 { + return fmt.Errorf("Block extra data too long (%d)", len(block.Header().Extra)) + } + expd := CalcDifficulty(block, parent) if expd.Cmp(block.Header().Difficulty) < 0 { return fmt.Errorf("Difficulty check failed for block %v, %v", block.Header().Difficulty, expd) -- cgit