diff options
author | bescoto <bescoto@2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109> | 2005-04-13 02:58:58 +0000 |
---|---|---|
committer | bescoto <bescoto@2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109> | 2005-04-13 02:58:58 +0000 |
commit | b71f6ba4a153baf15a7f77f6aa461f6691229f6f (patch) | |
tree | 59c883c9fbea41a24ca0e194ba07e9a45e81f0e2 /rdiff-backup | |
parent | ed42f82f05df39833f996d3cf2a1783eb783bd38 (diff) | |
download | rdiff-backup-b71f6ba4a153baf15a7f77f6aa461f6691229f6f.tar.gz |
Fix for when 64 bit uids read from FS, but only 16 bit ones supported
git-svn-id: http://svn.savannah.nongnu.org/svn/rdiff-backup/trunk@582 2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109
Diffstat (limited to 'rdiff-backup')
-rw-r--r-- | rdiff-backup/CHANGELOG | 7 | ||||
-rw-r--r-- | rdiff-backup/rdiff_backup/user_group.py | 4 | ||||
-rw-r--r-- | rdiff-backup/testing/user_grouptest.py | 9 |
3 files changed, 16 insertions, 4 deletions
diff --git a/rdiff-backup/CHANGELOG b/rdiff-backup/CHANGELOG index f7933d6..1aeaeb2 100644 --- a/rdiff-backup/CHANGELOG +++ b/rdiff-backup/CHANGELOG @@ -1,3 +1,10 @@ +New in v0.13.7 (????/??/??) +--------------------------- + +Handle cases of junk uid/gids better on 64bit systems. (Bug report by +Nick Bailey) + + New in v0.13.6 (2005/04/07) --------------------------- diff --git a/rdiff-backup/rdiff_backup/user_group.py b/rdiff-backup/rdiff_backup/user_group.py index b34f0cf..3b82d23 100644 --- a/rdiff-backup/rdiff_backup/user_group.py +++ b/rdiff-backup/rdiff_backup/user_group.py @@ -47,7 +47,7 @@ def uid2uname(uid): try: return uid2uname_dict[uid] except KeyError: try: uname = pwd.getpwuid(uid)[0] - except KeyError: uname = None + except (KeyError, OverflowError), e: uname = None uid2uname_dict[uid] = uname return uname @@ -56,7 +56,7 @@ def gid2gname(gid): try: return gid2gname_dict[gid] except KeyError: try: gname = grp.getgrgid(gid)[0] - except KeyError: gname = None + except (KeyError, OverflowError), e: gname = None gid2gname_dict[gid] = gname return gname diff --git a/rdiff-backup/testing/user_grouptest.py b/rdiff-backup/testing/user_grouptest.py index a103ee7..73c8bcf 100644 --- a/rdiff-backup/testing/user_grouptest.py +++ b/rdiff-backup/testing/user_grouptest.py @@ -49,7 +49,12 @@ sync:0""" assert user_group.UserMap.get_id(123, 'daemon') == daemonid if 0: code.InteractiveConsole(globals()).interact() - - + + def test_overflow(self): + """Make sure querying large uids/gids doesn't raise exception""" + large_num = 4000000000 + assert user_group.uid2uname(large_num) is None + assert user_group.gid2gname(large_num) is None + if __name__ == "__main__": unittest.main() |