summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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,
}