From c9097ff801f99be000bfa29382d498687186c41a Mon Sep 17 00:00:00 2001 From: Fabian Ebner Date: Thu, 12 Nov 2020 12:38:06 +0100 Subject: [PATCH] pxar: avoid including archive root's exclude patterns in .pxarexclude-cli The patterns from the archive root's .pxarexclude file are already present in self.patterns when encode_pxarexclude_cli is called. Pass along the number of CLI patterns and slice accordingly. Suggested-By: Wolfgang Bumiller Signed-off-by: Fabian Ebner Signed-off-by: Wolfgang Bumiller --- src/pxar/create.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/pxar/create.rs b/src/pxar/create.rs index c907a8e0..cc28a79d 100644 --- a/src/pxar/create.rs +++ b/src/pxar/create.rs @@ -255,7 +255,7 @@ impl<'a, 'b> Archiver<'a, 'b> { let file_name = file_entry.name.to_bytes(); if is_root && file_name == b".pxarexclude-cli" { - self.encode_pxarexclude_cli(encoder, &file_entry.name)?; + self.encode_pxarexclude_cli(encoder, &file_entry.name, old_patterns_count)?; continue; } @@ -387,8 +387,9 @@ impl<'a, 'b> Archiver<'a, 'b> { &mut self, encoder: &mut Encoder, file_name: &CStr, + patterns_count: usize, ) -> Result<(), Error> { - let content = generate_pxar_excludes_cli(&self.patterns); + let content = generate_pxar_excludes_cli(&self.patterns[..patterns_count]); if let Some(ref mut catalog) = self.catalog { catalog.add_file(file_name, content.len() as u64, 0)?;