From bd5fa39ba96721185547a495305630e1865a0e01 Mon Sep 17 00:00:00 2001 From: KAMADA Ken'ichi Date: Sun, 12 Mar 2017 19:09:02 +0900 Subject: [PATCH] Clarify the error messages on truncated IFDs. --- src/tiff.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/tiff.rs b/src/tiff.rs index 442ece4..79db457 100644 --- a/src/tiff.rs +++ b/src/tiff.rs @@ -81,7 +81,7 @@ fn parse_ifd(data: &[u8], offset: usize, ctx: Context, thumbnail: bool) -> Result, Error> where E: Endian { // Count (the number of the entries). if data.len() < offset || data.len() - offset < 2 { - return Err(Error::InvalidFormat("Truncated IFD")); + return Err(Error::InvalidFormat("Truncated IFD count")); } let count = E::loadu16(data, offset) as usize; @@ -105,7 +105,7 @@ fn parse_ifd(data: &[u8], offset: usize, ctx: Context, thumbnail: bool) val = parser(data, offset + 2 + i * 12 + 8, cnt); } else { if data.len() < ofs || data.len() - ofs < vallen { - return Err(Error::InvalidFormat("Truncated IFD")); + return Err(Error::InvalidFormat("Truncated field value")); } val = parser(data, ofs, cnt); } @@ -136,7 +136,7 @@ fn parse_ifd(data: &[u8], offset: usize, ctx: Context, thumbnail: bool) // Offset to the next IFD. if data.len() - offset - 2 - count * 12 < 4 { - return Err(Error::InvalidFormat("Truncated IFD")); + return Err(Error::InvalidFormat("Truncated next IFD offset")); } let next_ifd_offset = E::loadu32(data, offset + 2 + count * 12) as usize; if next_ifd_offset != 0 {