Don't segfault when encountering permission denied errors #208
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #189
The bug was caused by accessing a
nil
value fromArchiveResult<Archive, Error>
in order to get theArchive.Path
when encountering errors during file collection (such as permission denied) for snapshot creation insnapshot.go
.I decided to always include a set
Archive
when sending aArchiveResult
into the channel inscanner.go
. This is for the following reasons:nil
orfilepath/fs.SkipDir
in ourWalkFunk
implementation forfilepath.Walk
as this will cause Walk to stop walking the entire tree. The behavior when to stop is defined via the--pedantic
flag and set off by returning non-nilError
values inArchiveResult
.This PR also fixes a another segfault when entering invalid
exclude
patterns such as-x "\\"
. knoxite will now immediately exit regardless of--pedantic
with a message:as the pattern will never match and is probably an unintended error/typo from the user.