From 5aa69984595c8f63899a39cbeae8c86913bfb2d2 Mon Sep 17 00:00:00 2001 From: Timo Teräs Date: Mon, 9 Jul 2012 14:59:40 +0300 Subject: audit: get right protection mask for base directories in the lists Use the paths' protection mask where available instead of the parent paths'. ref #1241 --- src/audit.c | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) (limited to 'src/audit.c') diff --git a/src/audit.c b/src/audit.c index 03f977b..3a7cd3c 100644 --- a/src/audit.c +++ b/src/audit.c @@ -167,14 +167,22 @@ static int audit_directory_tree_item(void *ctx, int dirfd, const char *name) int recurse = TRUE; child = apk_db_dir_query(db, bfull); - if (actx->mode == MODE_BACKUP) { - if (!dbd->has_protected_children) - recurse = FALSE; - if (!dbd->protected) - goto recurse_check; + if (child != NULL) { + if (actx->mode == MODE_BACKUP) { + if (!child->has_protected_children) + recurse = FALSE; + if (!child->protected) + goto recurse_check; + } } else { - if (child == NULL) + if (actx->mode == MODE_BACKUP) { + if (!dbd->has_protected_children) + recurse = FALSE; + if (!dbd->protected) + goto recurse_check; + } else { recurse = FALSE; + } } reason = audit_directory(actx, db, child, &fi); -- cgit v1.2.3-60-g2f50