diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/archive.c | 2 | ||||
-rw-r--r-- | src/audit.c | 2 |
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) |