From 1443927c02e0d04ac3d879f8c8d822a9d1074ff1 Mon Sep 17 00:00:00 2001 From: Christian Ebner Date: Mon, 9 Sep 2019 18:27:25 +0200 Subject: [PATCH] src/pxar/decoder.rs: correctly handle hardlinks in `Decoder`s attribute function If the attributes are then returned by seeking to the new offset. Signed-off-by: Christian Ebner --- src/pxar/decoder.rs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/pxar/decoder.rs b/src/pxar/decoder.rs index f2297582..aca74935 100644 --- a/src/pxar/decoder.rs +++ b/src/pxar/decoder.rs @@ -306,6 +306,13 @@ impl Result<(), Error>> Decoder { let _filename = self.inner.read_filename(size)?; marker = self.inner.read_item()?; } + + if marker == PXAR_FORMAT_HARDLINK { + let size: u64 = self.inner.read_item()?; + let (_, diff) = self.inner.read_hardlink(size)?; + return self.attributes(offset - diff); + } + if marker != PXAR_ENTRY { bail!("Expected PXAR_ENTRY, found 0x{:x?}", marker); }