From 5ca20ab70b14710b605cc0f80048150e667a11eb Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Sun, 4 May 2008 06:39:58 +0000 Subject: Do more validation of resume data from the mtimedb. svn path=/main/trunk/; revision=10165 --- pym/_emerge/__init__.py | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) (limited to 'pym/_emerge') diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py index 96158c8c6..0042a6072 100644 --- a/pym/_emerge/__init__.py +++ b/pym/_emerge/__init__.py @@ -7743,12 +7743,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 \ -- cgit v1.2.3-1-g7c22