summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorowsla <owsla@2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109>2008-07-04 15:00:38 +0000
committerowsla <owsla@2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109>2008-07-04 15:00:38 +0000
commitcb67046728b09d2f9e36ce106f82524b10bf3e3a (patch)
treec80b254e683571561dee75d92d53eac697db9b0f
parenta82f975652fdecb212806af58974823d8566107f (diff)
downloadrdiff-backup-cb67046728b09d2f9e36ce106f82524b10bf3e3a.tar.gz
Properly handle hardlink comparison when the metadata about a destination
hardlink has become corrupt. Closes Debian bug #486653. git-svn-id: http://svn.savannah.nongnu.org/svn/rdiff-backup/trunk@908 2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109
-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"""