From 58262f40f71158e42d681530744be5012346a936 Mon Sep 17 00:00:00 2001 From: Christian Ebner Date: Tue, 20 Aug 2019 13:40:18 +0200 Subject: [PATCH] src/pxar/decoder.rs: get correct stats for root directory Signed-off-by: Christian Ebner Signed-off-by: Wolfgang Bumiller --- src/pxar/decoder.rs | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/src/pxar/decoder.rs b/src/pxar/decoder.rs index e7e2713a..8ebf530b 100644 --- a/src/pxar/decoder.rs +++ b/src/pxar/decoder.rs @@ -43,19 +43,17 @@ impl Result<(), Error>> Decoder { }) } - pub fn root(&self) -> DirectoryEntry { - DirectoryEntry { + pub fn root(&mut self) -> Result { + self.seek(SeekFrom::Start(0))?; + let header: PxarHeader = self.inner.read_item()?; + check_ca_header::(&header, PXAR_ENTRY)?; + let entry: PxarEntry = self.inner.read_item()?; + Ok(DirectoryEntry { start: self.root_start, end: self.root_end, filename: OsString::new(), // Empty - entry: PxarEntry { - mode: 0, - flags: 0, - uid: 0, - gid: 0, - mtime: 0, - } - } + entry: entry, + }) } fn seek(&mut self, pos: SeekFrom) -> Result {