diff --git a/crates/relicario-core/src/imgsecret.rs b/crates/relicario-core/src/imgsecret.rs index e495529..ab30a5a 100644 --- a/crates/relicario-core/src/imgsecret.rs +++ b/crates/relicario-core/src/imgsecret.rs @@ -139,7 +139,7 @@ fn peek_jpeg_dimensions(jpeg: &[u8]) -> Result<(u32, u32)> { } // SOI / EOI 0xC0..=0xC3 | 0xC5..=0xC7 | 0xC9..=0xCB | 0xCD..=0xCF => { // SOFn — height in [i+5..i+7], width in [i+7..i+9] - if i + 9 >= jpeg.len() { + if i + 8 >= jpeg.len() { return Err(RelicarioError::ImgSecret("truncated SOF marker".into())); } let height = u16::from_be_bytes([jpeg[i + 5], jpeg[i + 6]]) as u32;