Date: Tuesday, November 1, 2022 @ 19:07:11 Author: foutrelis Revision: 459958
Re-add referenced patch Added: sbsigntools/trunk/0.9.4-fix-pe-coff-checksum.patch ----------------------------------+ 0.9.4-fix-pe-coff-checksum.patch | 43 +++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) Added: 0.9.4-fix-pe-coff-checksum.patch =================================================================== --- 0.9.4-fix-pe-coff-checksum.patch (rev 0) +++ 0.9.4-fix-pe-coff-checksum.patch 2022-11-01 19:07:11 UTC (rev 459958) @@ -0,0 +1,43 @@ +From e9f13a7c4c19ed4ef12f226821bbcd2295d1af73 Mon Sep 17 00:00:00 2001 +From: Heinrich Schuchardt <[email protected]> +Date: Thu, 10 Mar 2022 20:41:04 +0100 +Subject: Fix PE/COFF checksum calculation + +Gbp-Pq: fix_checksum_calc.patch. +--- + src/image.c | 6 +----- + 1 file changed, 1 insertion(+), 5 deletions(-) + +diff --git a/src/image.c b/src/image.c +index 5697296..8ac79dd 100644 +--- a/src/image.c ++++ b/src/image.c +@@ -162,7 +162,6 @@ static void image_pecoff_update_checksum(struct image *image) + { + bool is_signed = image->sigsize && image->sigbuf; + uint32_t checksum; +- struct cert_table_header *cert_table = image->cert_table; + + /* We carefully only include the signature data in the checksum (and + * in the file length) if we're outputting the signature. Otherwise, +@@ -180,16 +179,13 @@ static void image_pecoff_update_checksum(struct image *image) + (void *)(image->checksum + 1)); + + if (is_signed) { +- checksum = csum_bytes(checksum, +- cert_table, sizeof(*cert_table)); +- + checksum = csum_bytes(checksum, image->sigbuf, image->sigsize); + } + + checksum += image->data_size; + + if (is_signed) +- checksum += sizeof(*cert_table) + image->sigsize; ++ checksum += image->sigsize; + + *(image->checksum) = cpu_to_le32(checksum); + } +-- +cgit v1.1 +
