summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--rdiff-backup/CHANGELOG3
-rw-r--r--rdiff-backup/rdiff_backup/Hardlink.py5
2 files changed, 7 insertions, 1 deletions
diff --git a/rdiff-backup/CHANGELOG b/rdiff-backup/CHANGELOG
index 66dc67c..7f60689 100644
--- a/rdiff-backup/CHANGELOG
+++ b/rdiff-backup/CHANGELOG
@@ -1,6 +1,9 @@
New in v1.1.17 (????/??/??)
---------------------------
+Properly handle hardlink comparison when the metadata about a destination
+hardlink has become corrupt. Closes Debian bug #486653. (Andrew Ferguson)
+
Fix typo in fs_abilities noticed by Martin Krafft. Add EILSEQ ("Invalid or
incomplete multibyte or wide character") to the list of recoverable errors.
Thanks to Hanno Stock for catching that. (Andrew Ferguson)
diff --git a/rdiff-backup/rdiff_backup/Hardlink.py b/rdiff-backup/rdiff_backup/Hardlink.py
index 1dddbbb..d0cb19f 100644
--- a/rdiff-backup/rdiff_backup/Hardlink.py
+++ b/rdiff-backup/rdiff_backup/Hardlink.py
@@ -103,7 +103,10 @@ def rorp_eq(src_rorp, dest_rorp):
# subsequent ones
_inode_index[src_key] = (index, remaining, None, None)
return 1
- return dest_key == get_inode_key(dest_rorp)
+ try:
+ return dest_key == get_inode_key(dest_rorp)
+ except KeyError:
+ return 0 # Inode key might be missing if the metadata file is corrupt
def islinked(rorp):
"""True if rorp's index is already linked to something on src side"""