summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/audit.c20
1 files changed, 14 insertions, 6 deletions
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);