From f3d108161f4a842a26a63e140941e32d3ba16c64 Mon Sep 17 00:00:00 2001 From: Philipp Gesang Date: Mon, 14 Aug 2017 16:04:53 +0200 Subject: [PATCH] reject bad index files with a meaningful error --- deltatar/deltatar.py | 11 +++++++++-- 1 files changed, 9 insertions(+), 2 deletions(-) diff --git a/deltatar/deltatar.py b/deltatar/deltatar.py index 6f8cbb1..378310a 100644 --- a/deltatar/deltatar.py +++ b/deltatar/deltatar.py @@ -1387,8 +1387,15 @@ class DeltaTar(object): tarobj=index_it.tar_obj) elif mode == "diff": helper = RestoreHelper(self, cwd, backup_indexes_paths, disaster=disaster) - # get iterator from newest index at _data[0] - index_it = self.iterate_index_path(helper._data[0]["path"]) + try: + # get iterator from newest index at _data[0] + index1 = helper._data[0]["path"] + index_it = self.iterate_index_path(index1) + except tarfile.DecryptionError as exn: + self.logger.error("failed to decrypt file [%s]: %s; is this an " + "actual index file?" + % (str(exn), index1)) + return [(index1, exn)] dir_it = self._recursive_walk_dir('.') dir_path_it = self.jsonize_path_iterator(dir_it) -- 1.7.1