diff options
-rw-r--r-- | rdiff-backup/CHANGELOG | 3 | ||||
-rw-r--r-- | rdiff-backup/rdiff_backup/Hardlink.py | 5 |
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""" |