From 1c931823711a4d6c6e8c978f57958510790d9b86 Mon Sep 17 00:00:00 2001 From: Christian Ebner Date: Mon, 16 Sep 2019 16:59:31 +0200 Subject: [PATCH] src/pxar/decoder.rs: fix bug in decoder read `offset` points to the `PXAR_FILENAME`, therefore read the filename before the `PXAR_ENTRY`. Signed-off-by: Christian Ebner --- src/pxar/decoder.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/pxar/decoder.rs b/src/pxar/decoder.rs index 767cc8b3..e21f3bf2 100644 --- a/src/pxar/decoder.rs +++ b/src/pxar/decoder.rs @@ -345,6 +345,11 @@ impl Result<(), Error>> Decoder { /// returned. pub fn read(&mut self, offset: u64, size: usize, data_offset: u64) -> Result, Error> { self.seek(SeekFrom::Start(offset))?; + let head: PxarHeader = self.inner.read_item()?; + if head.htype != PXAR_FILENAME { + bail!("Expected PXAR_FILENAME, encountered 0x{:x?}", head.htype); + } + let _filename = self.inner.read_filename(head.size)?; let head: PxarHeader = self.inner.read_item()?; check_ca_header::(&head, PXAR_ENTRY)?;