From effc3f45b4a9ed2614af624bbc0135e1d0fafb15 Mon Sep 17 00:00:00 2001 From: Timo Teräs Date: Mon, 17 Apr 2023 14:18:42 +0300 Subject: audit: report new file checksum always in details --- src/app_audit.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/app_audit.c b/src/app_audit.c index 694d8b5..a8be79f 100644 --- a/src/app_audit.c +++ b/src/app_audit.c @@ -128,17 +128,26 @@ static int audit_file(struct audit_ctx *actx, int dirfd, const char *name, struct apk_file_info *fi) { + int csum_type = APK_CHECKSUM_DEFAULT; + int xattr_csum_type = APK_CHECKSUM_DEFAULT; int rv = 0; - if (!dbf) return 'A'; + if (dbf) { + csum_type = dbf->csum.type; + xattr_csum_type = dbf->acl->xattr_csum.type ?: APK_CHECKSUM_DEFAULT; + } else { + if (!actx->details) return 'A'; + } if (apk_fileinfo_get(dirfd, name, APK_FI_NOFOLLOW | - APK_FI_XATTR_CSUM(dbf->acl->xattr_csum.type ?: APK_CHECKSUM_DEFAULT) | - APK_FI_CSUM(dbf->csum.type), + APK_FI_XATTR_CSUM(xattr_csum_type) | + APK_FI_CSUM(csum_type), fi, &db->atoms) != 0) return 'e'; + if (!dbf) return 'A'; + if (dbf->csum.type != APK_CHECKSUM_NONE && apk_checksum_compare(&fi->csum, &dbf->csum) != 0) rv = 'U'; -- cgit v1.2.3-70-g09d2