From 591b120d358bac159f80897af2823779e11b5553 Mon Sep 17 00:00:00 2001 From: Wolfgang Bumiller Date: Fri, 12 Mar 2021 10:00:34 +0100 Subject: [PATCH] fix feature flag logic in pxar create Signed-off-by: Wolfgang Bumiller --- src/bin/pxar.rs | 24 ++++++++++++------------ src/pxar/create.rs | 8 ++++---- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/bin/pxar.rs b/src/bin/pxar.rs index d830c570..0bd17ee1 100644 --- a/src/bin/pxar.rs +++ b/src/bin/pxar.rs @@ -130,22 +130,22 @@ fn extract_archive( ) -> Result<(), Error> { let mut feature_flags = Flags::DEFAULT; if no_xattrs { - feature_flags ^= Flags::WITH_XATTRS; + feature_flags.remove(Flags::WITH_XATTRS); } if no_fcaps { - feature_flags ^= Flags::WITH_FCAPS; + feature_flags.remove(Flags::WITH_FCAPS); } if no_acls { - feature_flags ^= Flags::WITH_ACL; + feature_flags.remove(Flags::WITH_ACL); } if no_device_nodes { - feature_flags ^= Flags::WITH_DEVICE_NODES; + feature_flags.remove(Flags::WITH_DEVICE_NODES); } if no_fifos { - feature_flags ^= Flags::WITH_FIFOS; + feature_flags.remove(Flags::WITH_FIFOS); } if no_sockets { - feature_flags ^= Flags::WITH_SOCKETS; + feature_flags.remove(Flags::WITH_SOCKETS); } let pattern = pattern.unwrap_or_else(Vec::new); @@ -353,22 +353,22 @@ async fn create_archive( let writer = std::io::BufWriter::with_capacity(1024 * 1024, file); let mut feature_flags = Flags::DEFAULT; if no_xattrs { - feature_flags ^= Flags::WITH_XATTRS; + feature_flags.remove(Flags::WITH_XATTRS); } if no_fcaps { - feature_flags ^= Flags::WITH_FCAPS; + feature_flags.remove(Flags::WITH_FCAPS); } if no_acls { - feature_flags ^= Flags::WITH_ACL; + feature_flags.remove(Flags::WITH_ACL); } if no_device_nodes { - feature_flags ^= Flags::WITH_DEVICE_NODES; + feature_flags.remove(Flags::WITH_DEVICE_NODES); } if no_fifos { - feature_flags ^= Flags::WITH_FIFOS; + feature_flags.remove(Flags::WITH_FIFOS); } if no_sockets { - feature_flags ^= Flags::WITH_SOCKETS; + feature_flags.remove(Flags::WITH_SOCKETS); } let writer = pxar::encoder::sync::StandardWriter::new(writer); diff --git a/src/pxar/create.rs b/src/pxar/create.rs index 6950b396..b024c926 100644 --- a/src/pxar/create.rs +++ b/src/pxar/create.rs @@ -768,7 +768,7 @@ fn get_metadata(fd: RawFd, stat: &FileStat, flags: Flags, fs_magic: i64) -> Resu } fn get_fcaps(meta: &mut Metadata, fd: RawFd, flags: Flags) -> Result<(), Error> { - if flags.contains(Flags::WITH_FCAPS) { + if !flags.contains(Flags::WITH_FCAPS) { return Ok(()); } @@ -790,7 +790,7 @@ fn get_xattr_fcaps_acl( proc_path: &Path, flags: Flags, ) -> Result<(), Error> { - if flags.contains(Flags::WITH_XATTRS) { + if !flags.contains(Flags::WITH_XATTRS) { return Ok(()); } @@ -879,7 +879,7 @@ fn get_quota_project_id( return Ok(()); } - if flags.contains(Flags::WITH_QUOTA_PROJID) { + if !flags.contains(Flags::WITH_QUOTA_PROJID) { return Ok(()); } @@ -914,7 +914,7 @@ fn get_quota_project_id( } fn get_acl(metadata: &mut Metadata, proc_path: &Path, flags: Flags) -> Result<(), Error> { - if flags.contains(Flags::WITH_ACL) { + if !flags.contains(Flags::WITH_ACL) { return Ok(()); } -- 2.39.2