From 9c152ca8b0c652cebda49eac0f5f868a41c93a77 Mon Sep 17 00:00:00 2001 From: Patrick Gansterer Date: Sun, 6 Sep 2026 13:33:02 +0200 Subject: [PATCH] keys: add additional test --- src/meta/keys.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/meta/keys.rs b/src/meta/keys.rs index e9cbb70..5e93b92 100644 --- a/src/meta/keys.rs +++ b/src/meta/keys.rs @@ -91,6 +91,23 @@ mod tests { assert_eq!(decoded, keys); } + #[test] + fn test_keys_truncated_entry_does_not_panic() { + let mut buf = Vec::new(); + buf.extend_from_slice(&24u32.to_be_bytes()); // outer `keys` box size + buf.extend_from_slice(b"keys"); + buf.extend_from_slice(&0u32.to_be_bytes()); // version + flags + buf.extend_from_slice(&1u32.to_be_bytes()); // entry_count = 1 + + // Inner entry header declares a body size of 100 bytes, but nothing + // actually follows within the outer box. + buf.extend_from_slice(&108u32.to_be_bytes()); + buf.extend_from_slice(b"mdta"); + + let result = Keys::decode(&mut buf.as_slice()); + assert!(result.is_err()); + } + #[test] fn test_keys_empty() { let keys = Keys::default();