From ee72f56116ae5039f33f990c5a5d476f0966b943 Mon Sep 17 00:00:00 2001 From: Daniel Maslowski Date: Sun, 30 Nov 2025 01:55:23 +0100 Subject: [PATCH] dir/gen3: check for magic when parsing CPD Signed-off-by: Daniel Maslowski --- src/dir/gen3.rs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/dir/gen3.rs b/src/dir/gen3.rs index 288a19d..97c0e47 100644 --- a/src/dir/gen3.rs +++ b/src/dir/gen3.rs @@ -150,6 +150,14 @@ impl CodePartitionDirectory { let Ok((header, _)) = CPDHeader::read_from_prefix(data) else { return Err("could not parse CPD header".to_string()); }; + + let m = header.magic; + if m != CPD_MAGIC_BYTES { + return Err(format!( + "missing CPD magic; got {m:02x?}, wanted {CPD_MAGIC_BYTES:02x?}" + )); + } + let name = header.name(); let header_size = if header.version_or_checksum == 0x00140102 { HEADER_SIZE + 4