[Secure-testing-commits] r16589 - bin
Florian Weimer
fw at alioth.debian.org
Sun Apr 24 18:09:51 UTC 2011
Author: fw
Date: 2011-04-24 18:09:43 +0000 (Sun, 24 Apr 2011)
New Revision: 16589
Modified:
bin/gen-DSA.py
Log:
bin/gen_DSA.py: fill in version information for unstable (and, rarely, testing)
Modified: bin/gen-DSA.py
===================================================================
--- bin/gen-DSA.py 2011-04-24 17:52:21 UTC (rev 16588)
+++ bin/gen-DSA.py 2011-04-24 18:09:43 UTC (rev 16589)
@@ -187,6 +187,42 @@
format(package, codename))
return missing
+def searchlist_bugs(cve):
+ """Returns a list of bug objects pertinent to CVE."""
+ result = []
+ for bug in bugs.CVEFile(debian_support.findresource(
+ *"data CVE list".split())):
+ if bug.name in cve:
+ result.append(bug)
+ for bug in bugs.DTSAFile(debian_support.findresource(
+ *"data DTSA list".split())):
+ found = False
+ for xref in bug.xref:
+ if xref in cve:
+ found = True
+ if found:
+ result.append(bug)
+ return result
+
+def searchlist(buglist, package, codename):
+ "Returns the highest matching version number from BUGLIST."
+ relcode = debian_support.releasecodename
+ codename = relcode(codename)
+ versions = []
+ vzero = debian_support.Version("0") # filter out <not-affected> etc.
+ for bug in buglist:
+ for ann in bug.notes:
+ rel = relcode(ann.release or "sid")
+ if isinstance(ann, bugs.PackageNoteParsed) \
+ and ann.fixed_version is not None \
+ and ann.fixed_version != vzero \
+ and ann.package == package and rel == codename:
+ versions.append(ann.fixed_version)
+ if versions:
+ versions.sort()
+ return str(versions[-1])
+ return "<missing>"
+
parsecommand()
checklist()
checkfile()
@@ -194,9 +230,13 @@
queue = secmaster.listqueue()
stable_version = search_queue(queue, opt_package, "stable")
oldstable_version = search_queue(queue, opt_package, "oldstable", "<missing>")
-testing_version = search_queue(queue, opt_package, "testing", "<missing>")
-unstable_version = search_queue(queue, opt_package, "unstable", "<missing>")
+testing_version = search_queue(queue, opt_package, "testing", False)
+buglist = searchlist_bugs(opt_cve)
+if testing_version is False:
+ testing_version = searchlist(buglist, opt_package, "testing")
+unstable_version = searchlist(buglist, opt_package, "unstable")
+
template = filledtemplate({
"DEBFULLNAME" : gecos(),
"DEBEMAIL" : debemail(),
More information about the Secure-testing-commits
mailing list