aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/archive.c2
-rw-r--r--src/audit.c2
2 files changed, 2 insertions, 2 deletions
diff --git a/src/archive.c b/src/archive.c
index 63eb48f..dab9f4d 100644
--- a/src/archive.c
+++ b/src/archive.c
@@ -476,7 +476,7 @@ int apk_archive_entry_extract(int atfd, const struct apk_file_info *ae,
}
/* extract xattrs */
- if (ae->xattrs && ae->xattrs->num) {
+ if (!S_ISLNK(ae->mode) && ae->xattrs && ae->xattrs->num) {
r = 0;
fd = openat(atfd, fn, O_RDWR);
if (fd >= 0) {
diff --git a/src/audit.c b/src/audit.c
index 6655cb3..0e57a61 100644
--- a/src/audit.c
+++ b/src/audit.c
@@ -110,7 +110,7 @@ static int audit_file(struct audit_ctx *actx,
if (dbf->csum.type != APK_CHECKSUM_NONE &&
apk_checksum_compare(&fi.csum, &dbf->csum) != 0)
rv = 'U';
- else if (!dbf->diri->pkg->ipkg->broken_xattr &&
+ else if (!S_ISLNK(fi.mode) && !dbf->diri->pkg->ipkg->broken_xattr &&
apk_checksum_compare(&fi.xattr_csum, &dbf->acl->xattr_csum) != 0)
rv = 'x';
else if (S_ISLNK(fi.mode) && dbf->csum.type == APK_CHECKSUM_NONE)