[Secure-testing-commits] r3136 - bin

Florian Weimer fw at costa.debian.org
Fri Dec 23 21:09:33 UTC 2005


Author: fw
Date: 2005-12-23 21:09:32 +0000 (Fri, 23 Dec 2005)
New Revision: 3136

Modified:
   bin/tracker_service.py
Log:
bin/tracker_service.py (TrackerService):
  Add page data/latently-vulnerable.
(TrackerService.page_data_latently_vulnerable):
  New method.


Modified: bin/tracker_service.py
===================================================================
--- bin/tracker_service.py	2005-12-23 19:31:59 UTC (rev 3135)
+++ bin/tracker_service.py	2005-12-23 21:09:32 UTC (rev 3136)
@@ -97,6 +97,8 @@
         self.register('status/itp', self.page_status_itp)
         self.register('data/unknown-packages', self.page_data_unknown_packages)
         self.register('data/missing-epochs', self.page_data_missing_epochs)
+        self.register('data/latently-vulnerable',
+                      self.page_data_latently_vulnerable)
         self.register('data/releases', self.page_data_releases)
         self.register('data/funny-versions', self.page_data_funny_versions)
         self.register('data/fake-names', self.page_data_fake_names)
@@ -138,6 +140,8 @@
             ('data/fake-names', 'Tracked issues without a CVE name'),
             ('data/missing-epochs',
              'Package versions which might lack an epoch'),
+            ('data/latently-vulnerable',
+             'Packages which are latently vulnerable in unstable'),
             ('data/funny-versions',
              'Packages with strange version numbers'),
             ('data/releases',
@@ -807,6 +811,36 @@
                 caption=("Bug", "Package", "Version 1", "Version 2"),
                 replacement="No source package version with missing epochs.")])
 
+    def page_data_latently_vulnerable(self, path, params, url):
+        def gen():
+            for pkg, bugs in self.db.cursor().execute(
+                """SELECT package, string_set(bug_name)
+                FROM package_notes AS p1
+                WHERE release <> ''
+                AND (bug_name LIKE 'CVE-%' OR bug_name LIKE 'FAKE-%')
+                AND NOT EXISTS (SELECT 1 FROM package_notes AS p2
+                                WHERE p2.bug_name = p1.bug_name
+                                AND p2.package = p1.package
+                                AND release = '')
+                AND EXISTS (SELECT 1 FROM source_packages
+                           WHERE name = p1.package AND release = 'sid')
+                GROUP BY package
+                ORDER BY package"""):
+                pkg = self.make_source_package_ref(url, pkg)
+                bugs = bugs.split(',')
+                yield pkg, self.make_xref_list(url, bugs)
+
+        return self.create_page(
+            url, "Latently vulnerable packages in unstable",
+            [P(
+"""A package is latently vulnerable in unstable if it is vulnerable in
+any release, and there is no package note for the same vulnerability
+and package in unstable (and the package is still available in
+unstable, of course)."""),
+             make_table(gen(),
+                caption=("Package", "Bugs"),
+                replacement="No latently vulnerable packages were found.")])
+
     def page_data_releases(self, path, params, url):
         def gen():
             for (rel, subrel, archive, sources, archs) \




More information about the Secure-testing-commits mailing list