From de0aa53174594face59478a9b9fb4419ac3e96f6 Mon Sep 17 00:00:00 2001 From: Christian Ebner Date: Wed, 27 Nov 2019 16:27:56 +0100 Subject: [PATCH] pxar: decoder: fix incorrect read for hardlinks. Decoders read must check if the file is a hardlink and read data from the corresponding offset if so. Signed-off-by: Christian Ebner --- src/pxar/decoder.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/pxar/decoder.rs b/src/pxar/decoder.rs index 39a8096f..6e3a5b23 100644 --- a/src/pxar/decoder.rs +++ b/src/pxar/decoder.rs @@ -381,6 +381,10 @@ impl Decoder { let _filename = self.inner.read_filename(head.size)?; let head: PxarHeader = self.inner.read_item()?; + if head.htype == PXAR_FORMAT_HARDLINK { + let (_, diff) = self.inner.read_hardlink(head.size)?; + return self.read(offset - diff, size, data_offset); + } check_ca_header::(&head, PXAR_ENTRY)?; let _: PxarEntry = self.inner.read_item()?;