[Secure-testing-commits] r2058 - lib/python

Florian Weimer fw at costa.debian.org
Tue Sep 20 17:59:10 UTC 2005


Author: fw
Date: 2005-09-20 17:59:09 +0000 (Tue, 20 Sep 2005)
New Revision: 2058

Modified:
   lib/python/bugs.py
Log:
lib/python/bugs.py (FileBase.finishBug):
  New method to apply last-minute checks to bug objects.
(FileBase.__iter__):
  Use it.
(DSAFile.finishBug):
  Override, to enforce the "etch" tag.


Modified: lib/python/bugs.py
===================================================================
--- lib/python/bugs.py	2005-09-20 16:36:15 UTC (rev 2057)
+++ lib/python/bugs.py	2005-09-20 17:59:09 UTC (rev 2058)
@@ -625,9 +625,10 @@
                     # The bug has extra data even though it is marked
                     # reserved by CVE, we have to issue the full
                     # version because the official CVE lags a bit.
-                    yield Bug(self.file.name, first_lineno, date,
-                              record_name, description, comments,
-                              notes=pkg_notes, xref=xref)
+                    yield self.finishBug(Bug(self.file.name, first_lineno,
+                                             date, record_name, description,
+                                             comments,
+                                             notes=pkg_notes, xref=xref))
                 else:
                     yield BugReservedCVE(self.file.name, first_lineno,
                                          record_name, comments)
@@ -651,16 +652,21 @@
                     self.raiseSyntaxError\
                         ('package information not allowed in not-for-us bugs',
                          first_lineno)
-                yield Bug(self.file.name, first_lineno, date,
-                          record_name, description, comments, notes=[],
-                          xref=xref, not_for_us=True)
+                yield self.finishBug(Bug(self.file.name, first_lineno, date,
+                                         record_name, description, comments,
+                                         notes=[], xref=xref, not_for_us=True))
             else:
                 if not self.isUniqueName(record_name):
                     record_name = 'FAKE-%07d-%06d' % (first_bug, first_lineno)
-                yield Bug(self.file.name, first_lineno, date,
-                          record_name, description,
-                          comments, notes=pkg_notes, xref=xref)
+                yield self.finishBug(Bug(self.file.name, first_lineno, date,
+                                         record_name, description,
+                                         comments, notes=pkg_notes, xref=xref))
 
+    def finishBug(self, bug):
+        """Applies a transformation to the bug after it has been
+        parsed, or adds some additional checking."""
+        return bug
+
 class CANFile(FileBase):
     """A CAN file, as used by the Debian testing security team."""
     
@@ -791,6 +797,17 @@
             self.raiseSyntaxError("invalid month name %s" % `month`)
         return ("%s-%02d-%02d" % (year, month, int(day)), name, desc)
 
+    def finishBug(self, bug):
+        # Convert all package notes to notes for etch (testing).
+        testing = debian_support.internRelease("etch")
+        for n in bug.notes:
+            if n.release is not None:
+                self.raiseSyntaxError(
+                    "no release annotations allowed in DTSA files",
+                    lineno=bug.source_line)
+            n.release = testing
+        return bug
+
 def test():
     assert internUrgency("high") > internUrgency("medium")
 




More information about the Secure-testing-commits mailing list