commit:     98f8a4a8f5c38dfb3c797ad8d66f8cac1822805d
Author:     Aaron Bauman <bman <AT> gentoo <DOT> org>
AuthorDate: Wed Aug 14 18:05:00 2019 +0000
Commit:     Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Mon Aug 19 01:03:15 2019 +0000
URL:        https://gitweb.gentoo.org/proj/portage.git/commit/?id=98f8a4a8

portage/glsa.py: only check for revision based on GLSA DTD

* All GLSA's have been converted to use the revision attribute
* If there is no count attribute then raise a GlsaFormatException
* Ensure the attribute is an integer

Signed-off-by: Aaron Bauman <bman <AT> gentoo.org>
Signed-off-by: Zac Medico <zmedico <AT> gentoo.org>

 lib/portage/glsa.py                         | 15 +++++----------
 lib/portage/tests/glsa/test_security_set.py |  2 +-
 2 files changed, 6 insertions(+), 11 deletions(-)

diff --git a/lib/portage/glsa.py b/lib/portage/glsa.py
index ccf93439d..3fd877b22 100644
--- a/lib/portage/glsa.py
+++ b/lib/portage/glsa.py
@@ -528,25 +528,20 @@ class Glsa:
                self.synopsis = 
getText(myroot.getElementsByTagName("synopsis")[0], format="strip")
                self.announced = 
format_date(getText(myroot.getElementsByTagName("announced")[0], 
format="strip"))
 
-               # Support both formats of revised:
-               # <revised>December 30, 2007: 02</revised>
+               # Support only format defined in GLSA DTD
                # <revised count="2">2007-12-30</revised>
                revisedEl = myroot.getElementsByTagName("revised")[0]
                self.revised = getText(revisedEl, format="strip")
                count = revisedEl.getAttribute("count")
                if not count:
-                       if self.revised.find(":") >= 0:
-                               (self.revised, count) = self.revised.split(":")
-                       else:
-                               count = 1
-
-               self.revised = format_date(self.revised)
+                       raise GlsaFormatException("Count attribute is missing 
or blank in GLSA: " + myroot.getAttribute("id"))
 
                try:
                        self.count = int(count)
                except ValueError:
-                       # TODO should this raise a GlsaFormatException?
-                       self.count = 1
+                       raise GlsaFormatException("Revision attribute in GLSA: 
" + myroot.getAttribute("id") + " is not an integer")
+
+               self.revised = format_date(self.revised)
 
                # now the optional and 0-n toplevel, #PCDATA tags and references
                try:

diff --git a/lib/portage/tests/glsa/test_security_set.py 
b/lib/portage/tests/glsa/test_security_set.py
index e73deaba9..a602f83d4 100644
--- a/lib/portage/tests/glsa/test_security_set.py
+++ b/lib/portage/tests/glsa/test_security_set.py
@@ -24,7 +24,7 @@ class SecuritySetTestCase(TestCase):
   </synopsis>
   <product type="ebuild">%(pkgname)s</product>
   <announced>January 18, 2013</announced>
-  <revised>January 18, 2013: 1</revised>
+  <revised count="1">January 18, 2013</revised>
   <bug>55555</bug>
   <access>remote</access>
   <affected>

Reply via email to