diff options
author | Florian Weimer <fw@deneb.enyo.de> | 2010-05-10 20:02:30 +0000 |
---|---|---|
committer | Florian Weimer <fw@deneb.enyo.de> | 2010-05-10 20:02:30 +0000 |
commit | b5289e1e18a6cbc4bb06de616ae8516686c87358 (patch) | |
tree | 84ddcfc544c85f32a26367b0b921992ed1372572 /lib | |
parent | 61a053b8ad05e43ee8ec609d7ce36f24c0bfb976 (diff) |
sectracker.analyzers.vulnerabilities(): allow {} overrides
See thread "A new ambiguity" on the debian-security-tracker list:
<http://lists.debian.org/debian-security-tracker/2010/05/msg00011.html>
git-svn-id: svn+ssh://svn.debian.org/svn/secure-testing@14666 e39458fd-73e7-0310-bf30-c45bca0a0e42
Diffstat (limited to 'lib')
-rw-r--r-- | lib/python/sectracker/analyzers.py | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/lib/python/sectracker/analyzers.py b/lib/python/sectracker/analyzers.py index 921c2fa085..814ae526da 100644 --- a/lib/python/sectracker/analyzers.py +++ b/lib/python/sectracker/analyzers.py @@ -109,21 +109,25 @@ def fixedversions(bugdb, copysrc, versions, diag): assert "sid" in versions # should come from extractversions() - def buildpackages1(bug): + def buildpackages1(bug, target=None): packages = {} + xref = () # current {} contents for ann in bug.annotations: - if ann.type == "package": + # only copy if target is listed in current {} list + if ann.type == "package" and (target is None or target in xref): if ann.package not in packages: packages[ann.package] = {} pkg = packages[ann.package] pkg[ann.release] = (bug, ann) + elif ann.type == "xref": + xref = ann.bugs return packages def buildpackages(bug): packages = buildpackages1(bug) if bug.header.name not in copysrc: return packages - copiers = [buildpackages1(bugdb[b]) + copiers = [buildpackages1(bugdb[b], target=bug.header.name) for b in copysrc[bug.header.name]] for c in copiers: for pname, creleases in c.items(): |