From 7cb57554b8c1a0b612bd119bb0cc4a6207d8ae4f Mon Sep 17 00:00:00 2001 From: Peter Korsgaard Date: Wed, 23 Oct 2024 15:09:11 +0200 Subject: [PATCH] package/bootgen: add patch to fix crash with -verify The 2023.2 version forgets to populate the iHT structure before accessing it, leading to a segfault. Add a patch submitted upstream to fix that. Notice that this is fixed in the 2024.1 version as there ReadBinaryFile() now calls ReadHeaderTableDetails(): https://github.com/Xilinx/bootgen/commit/3a0f879c611d67072aad3461f1c72d1a284cd5fc#diff-404aa20e03f1035b725ac1ea6e64c28477bb65c1663da67f64ffdb1a60552cee Signed-off-by: Peter Korsgaard Reviewed-by: Neal Frager Signed-off-by: Peter Korsgaard --- ...segmentation-fault-that-occurs-durin.patch | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 package/bootgen/0001-verifyimage-Fix-segmentation-fault-that-occurs-durin.patch diff --git a/package/bootgen/0001-verifyimage-Fix-segmentation-fault-that-occurs-durin.patch b/package/bootgen/0001-verifyimage-Fix-segmentation-fault-that-occurs-durin.patch new file mode 100644 index 0000000000..096dbac27e --- /dev/null +++ b/package/bootgen/0001-verifyimage-Fix-segmentation-fault-that-occurs-durin.patch @@ -0,0 +1,50 @@ +From f7825edbd1c85380cfb5ef0cf2c16c910954f57c Mon Sep 17 00:00:00 2001 +From: Charlie Johnston +Date: Mon, 5 Aug 2024 13:07:25 -0700 +Subject: [PATCH] verifyimage: Fix segmentation fault that occurs during + verifyimage. + +In commit d02322b, the behavior of ReadBinaryFile was changed such +that it no longer populated iHT. This caused VerifyAuthentication +to access a null iHT value resulting a segmentation fault. + +This fix changes VerifyAuthentication to call ReadHeaderTableDetails +instead, where the old functionality of ReadBinaryFile now lives. + +Signed-off-by: Charlie Johnston +Signed-off-by: Peter Korsgaard +Upstream: https://github.com/Xilinx/bootgen/pull/36 +--- + verifyimage-versal.cpp | 2 +- + verifyimage-zynqmp.cpp | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/verifyimage-versal.cpp b/verifyimage-versal.cpp +index 5490663..5656e50 100755 +--- a/verifyimage-versal.cpp ++++ b/verifyimage-versal.cpp +@@ -34,7 +34,7 @@ + /*******************************************************************************/ + void VersalReadImage::VerifyAuthentication(bool verifyImageOption) + { +- ReadBinaryFile(); ++ ReadHeaderTableDetails(); + + if (iHT->headerAuthCertificateWordOffset != 0) + { +diff --git a/verifyimage-zynqmp.cpp b/verifyimage-zynqmp.cpp +index d4812e6..d73272c 100755 +--- a/verifyimage-zynqmp.cpp ++++ b/verifyimage-zynqmp.cpp +@@ -50,7 +50,7 @@ static void RearrangeEndianess(uint8_t *array, uint32_t size) + /*******************************************************************************/ + void ZynqMpReadImage::VerifyAuthentication(bool verifyImageOption) + { +- ReadBinaryFile(); ++ ReadHeaderTableDetails(); + + if (iHT->headerAuthCertificateWordOffset != 0) + { +-- +2.39.5 +