summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlexander Batischev <eual.jp@gmail.com>2021-07-28 22:35:04 +0300
committerAlexander Batischev <eual.jp@gmail.com>2021-07-28 23:04:00 +0300
commit084a2fa87d40e2b4c10b71df46205bfe3d1903a1 (patch)
tree5ec83d38c4ba3fc54fcd9b71d06b24fc8518b4ef /src
parent8f8efa64058beeeafa933c54e248fd32950ec772 (diff)
downloadobnam2-084a2fa87d40e2b4c10b71df46205bfe3d1903a1.tar.gz
Backup: exit non-zero if new tags are found
Diffstat (limited to 'src')
-rw-r--r--src/cmd/backup.rs8
-rw-r--r--src/error.rs5
2 files changed, 11 insertions, 2 deletions
diff --git a/src/cmd/backup.rs b/src/cmd/backup.rs
index 496477e..04dfb05 100644
--- a/src/cmd/backup.rs
+++ b/src/cmd/backup.rs
@@ -49,7 +49,7 @@ impl Backup {
if is_incremental && !outcome.new_cachedir_tags.is_empty() {
println!("New CACHEDIR.TAG files since the last backup:");
- for t in outcome.new_cachedir_tags {
+ for t in &outcome.new_cachedir_tags {
println!("- {:?}", t);
}
println!("You can configure Obnam to ignore all such files by setting `exclude_cache_tag_directories` to `false`.");
@@ -62,7 +62,11 @@ impl Backup {
outcome.warnings.len(),
)?;
- Ok(())
+ if is_incremental && !outcome.new_cachedir_tags.is_empty() {
+ Err(ObnamError::NewCachedirTagsFound)
+ } else {
+ Ok(())
+ }
}
}
diff --git a/src/error.rs b/src/error.rs
index e4d77d3..30571ec 100644
--- a/src/error.rs
+++ b/src/error.rs
@@ -52,4 +52,9 @@ pub enum ObnamError {
#[error(transparent)]
SerdeJsonError(#[from] serde_json::Error),
+
+ #[error(
+ "found CACHEDIR.TAG files that aren't present in the previous backup, might be an attack"
+ )]
+ NewCachedirTagsFound,
}