[pbs-devel] [PATCH proxmox-backup 1/3] pxar: fix anchored exclusion at archive root

Fabian Ebner f.ebner at proxmox.com
Thu Nov 12 10:03:50 CET 2020


There is no leading slash in an entry's full_path, causing an anchored
exclude at the root level to fail, e.g. having "/name" as the content of the
file archive/root/.pxarexclude didn't match the file archive/root/name

Fix this by prepending a leading slash before matching.

Signed-off-by: Fabian Ebner <f.ebner at proxmox.com>
---
 src/pxar/create.rs | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/pxar/create.rs b/src/pxar/create.rs
index a16005ce..7c8e3edb 100644
--- a/src/pxar/create.rs
+++ b/src/pxar/create.rs
@@ -443,9 +443,10 @@ impl<'a, 'b> Archiver<'a, 'b> {
                 Err(err) => bail!("stat failed on {:?}: {}", full_path, err),
             };
 
+            let match_path = PathBuf::from("/").join(full_path.clone());
             if self
                 .patterns
-                .matches(full_path.as_os_str().as_bytes(), Some(stat.st_mode as u32))
+                .matches(match_path.as_os_str().as_bytes(), Some(stat.st_mode as u32))
                 == Some(MatchType::Exclude)
             {
                 continue;
-- 
2.20.1






More information about the pbs-devel mailing list