diff options
author | Zac Medico <zmedico@gentoo.org> | 2008-05-04 06:41:57 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2008-05-04 06:41:57 +0000 |
commit | f2028bc81c055b193f66f0bc4e73f3602f2cf3c1 (patch) | |
tree | e13cccf35fda4a20233a2bcf0d79353cf6f4765c | |
parent | 1862a43a41c221b30ec7ac4f281098c6e229aba3 (diff) | |
download | portage-f2028bc81c055b193f66f0bc4e73f3602f2cf3c1.tar.gz portage-f2028bc81c055b193f66f0bc4e73f3602f2cf3c1.tar.bz2 portage-f2028bc81c055b193f66f0bc4e73f3602f2cf3c1.zip |
Do more validation of resume data from the mtimedb. (trunk r10165)
svn path=/main/branches/2.1.2/; revision=10166
-rwxr-xr-x | bin/emerge | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/bin/emerge b/bin/emerge index 2e9b0d0c2..75da6349c 100755 --- a/bin/emerge +++ b/bin/emerge @@ -7761,12 +7761,24 @@ def action_build(settings, trees, mtimedb, # validate the state of the resume data # so that we can make assumptions later. for k in ("resume", "resume_backup"): - if k in mtimedb: - if "mergelist" in mtimedb[k]: - if not mtimedb[k]["mergelist"]: - del mtimedb[k] - else: - del mtimedb[k] + if k not in mtimedb: + continue + resume_data = mtimedb[k] + if not isinstance(resume_data, dict): + del mtimedb[k] + continue + mergelist = resume_data.get("mergelist") + if not isinstance(mergelist, list): + del mtimedb[k] + continue + resume_opts = resume_data.get("myopts") + if not isinstance(resume_opts, (dict, list)): + del mtimedb[k] + continue + favorites = resume_data.get("favorites") + if not isinstance(resume_opts, list): + del mtimedb[k] + continue resume = False if "--resume" in myopts and \ |