diff --git a/libpkg/pkg_add.c b/libpkg/pkg_add.c index b64c9481e1..eef2488fea 100644 --- a/libpkg/pkg_add.c +++ b/libpkg/pkg_add.c @@ -262,12 +262,12 @@ do_extract(struct archive *a, struct archive_entry *ae, const char *location, #ifdef HAVE_CHFLAGS bool old = false; if (aest->st_flags & NOCHANGESFLAGS) - chflags(rpath, aest->st_flags & ~NOCHANGESFLAGS); + chflags(rpath, 0); if (lstat(pathname, &st) != -1) { old = true; if (st.st_flags & NOCHANGESFLAGS) - chflags(pathname, aest->st_flags & ~NOCHANGESFLAGS); + chflags(pathname, 0); } #endif diff --git a/libpkg/pkg_delete.c b/libpkg/pkg_delete.c index b29f9e13f5..547cec1660 100644 --- a/libpkg/pkg_delete.c +++ b/libpkg/pkg_delete.c @@ -198,13 +198,12 @@ rmdir_p(struct pkgdb *db, struct pkg *pkg, char *dir, const char *prefix_r) if (fstatat(pkg->rootfd, dir, &st, AT_SYMLINK_NOFOLLOW) != -1) { if (st.st_flags & NOCHANGESFLAGS) #ifdef HAVE_CHFLAGSAT - chflagsat(pkg->rootfd, dir, - st.st_flags & ~NOCHANGESFLAGS, - AT_SYMLINK_NOFOLLOW); + /* Disable all flags*/ + chflagsat(pkg->rootfd, dir, 0, AT_SYMLINK_NOFOLLOW); #else fd = openat(pkg->rootfd, dir, O_NOFOLLOW); if (fd > 0) { - fchflags(fd, st.st_flags & ~NOCHANGESFLAGS); + fchflags(fd, 0); close(fd); } #endif