From 3ff479bc941cba817e7986ea21504871df005d12 Mon Sep 17 00:00:00 2001
From: jwasinger <j-wasinger@hotmail.com>
Date: Mon, 23 May 2022 22:18:03 -1000
Subject: [PATCH] signer/core: always pad clique header extra data with space
 for sealer's signature (#24941)

* signer/core: always pad clique header extra data with space for sealer's signature

* capitalize comment
---
 signer/core/signed_data.go | 12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)

diff --git a/signer/core/signed_data.go b/signer/core/signed_data.go
index 03494c098..9bf47be79 100644
--- a/signer/core/signed_data.go
+++ b/signer/core/signed_data.go
@@ -147,13 +147,11 @@ func (api *SignerAPI) determineSignatureFormat(ctx context.Context, contentType
 		if err := rlp.DecodeBytes(cliqueData, header); err != nil {
 			return nil, useEthereumV, err
 		}
-		// The incoming clique header is already truncated, sent to us with a extradata already shortened
-		if len(header.Extra) < 65 {
-			// Need to add it back, to get a suitable length for hashing
-			newExtra := make([]byte, len(header.Extra)+65)
-			copy(newExtra, header.Extra)
-			header.Extra = newExtra
-		}
+		// Add space in the extradata to put the signature
+		newExtra := make([]byte, len(header.Extra)+65)
+		copy(newExtra, header.Extra)
+		header.Extra = newExtra
+
 		// Get back the rlp data, encoded by us
 		sighash, cliqueRlp, err := cliqueHeaderHashAndRlp(header)
 		if err != nil {