summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorEmilio Pozuelo Monfort <pochu@debian.org>2023-03-20 14:58:00 +0100
committerEmilio Pozuelo Monfort <pochu@debian.org>2023-03-27 10:25:24 +0200
commitc60cc24e47ae0c9532fa59676acabf8fbcba398f (patch)
treeea11f88048b8ab08086cd735a908be795350bd0d /lib
parent69712f5a48bfcb26510dcc281021d1b054a79802 (diff)
sectracker.parsers: make cvelist et al return a list of Bugs
Diffstat (limited to 'lib')
-rw-r--r--lib/python/sectracker/analyzers.py2
-rw-r--r--lib/python/sectracker/parsers.py13
-rw-r--r--lib/python/sectracker_test/test_parsers.py17
3 files changed, 15 insertions, 17 deletions
diff --git a/lib/python/sectracker/analyzers.py b/lib/python/sectracker/analyzers.py
index 7df09c4994..641227dd1a 100644
--- a/lib/python/sectracker/analyzers.py
+++ b/lib/python/sectracker/analyzers.py
@@ -30,7 +30,7 @@ def mergelists(listfiles, diag):
in diag."""
result = {}
for listfile in listfiles:
- for bug in listfile.list:
+ for bug in listfile:
header = bug.header
name = header.name
if name in result:
diff --git a/lib/python/sectracker/parsers.py b/lib/python/sectracker/parsers.py
index 2338565548..6b42d4a417 100644
--- a/lib/python/sectracker/parsers.py
+++ b/lib/python/sectracker/parsers.py
@@ -21,6 +21,7 @@ from dataclasses import dataclass
import typing
import traceback
import re
+import sys
from sys import intern
import debian_support
@@ -31,6 +32,8 @@ import sectracker.diagnostics
FORMAT = "5"
+_debug_enabled = False
+
def _sortedtuple(seq):
l = list(seq)
l.sort()
@@ -220,8 +223,6 @@ def _annotationdispatcher():
default=lambda text, diag: diag.error("invalid annotation"))
_annotationdispatcher = _annotationdispatcher()
-List = _namedtuple("List", "list messages")
-
@dataclass
class Header:
line: int
@@ -287,7 +288,13 @@ def _parselist(path, f, parseheader, finish):
if header is not None:
bugs.append(finish(header, headerlineno, anns, diag))
- return List(tuple(bugs), diag.messages())
+
+ if _debug_enabled:
+ for m in diag.messages():
+ sys.stderr.write(str(m) + "\n")
+ print("%s:%d: %s: %s" % (m.file, m.line, m.level, m.message))
+
+ return bugs
@_xpickle.loader("CVE" + FORMAT)
def cvelist(path, f):
diff --git a/lib/python/sectracker_test/test_parsers.py b/lib/python/sectracker_test/test_parsers.py
index 132b4e30e9..4c724ebced 100644
--- a/lib/python/sectracker_test/test_parsers.py
+++ b/lib/python/sectracker_test/test_parsers.py
@@ -25,25 +25,16 @@ assert "bash" in o
assert o["bash"].name == "bash"
assert "bash" in o["bash"].binary
-safeunlink("../../data/CVE/list" + EXTENSION)
-o = cvelist("../../data/CVE/list")
-for err in o.messages:
- print("%s:%d: %s: %s" % (err.file, err.line, err.level, err.message))
+p._debug_enabled = True
safeunlink("../../data/DSA/list" + EXTENSION)
-o = dsalist("../../data/DSA/list")
-for err in o.messages:
- print("%s:%d: %s: %s" % (err.file, err.line, err.level, err.message))
+dsalist("../../data/DSA/list")
safeunlink("../../data/DTSA/list" + EXTENSION)
-o = dtsalist("../../data/DTSA/list")
-for err in o.messages:
- print("%s:%d: %s: %s" % (err.file, err.line, err.level, err.message))
+dtsalist("../../data/DTSA/list")
safeunlink("../../data/DLA/list" + EXTENSION)
-o = dlalist("../../data/DLA/list")
-for err in o.messages:
- print("%s:%d: %s: %s" % (err.file, err.line, err.level, err.message))
+dlalist("../../data/DLA/list")
Message = sectracker.diagnostics.Message
for (line, res, xmsgs) in [

© 2014-2024 Faster IT GmbH | imprint | privacy policy