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