Merge ~alexmurray/ubuntu-cve-tracker:parse-patches-for-lp-1892523 into ubuntu-cve-tracker:master

Proposed by Alex Murray
Status: Merged
Merged at revision: fc1f947b23c1bfe73caa112ef879561b03115b7b
Proposed branch: ~alexmurray/ubuntu-cve-tracker:parse-patches-for-lp-1892523
Merge into: ubuntu-cve-tracker:master
Diff against target: 2426 lines (+673/-190)
132 files modified
active/00boilerplate.firefox (+1/-1)
active/00boilerplate.mozjs (+8/-8)
active/CVE-2011-2896 (+1/-2)
active/CVE-2011-3170 (+1/-2)
active/CVE-2017-13803 (+1/-1)
active/CVE-2018-4133 (+1/-1)
active/CVE-2018-4233 (+1/-1)
active/CVE-2018-4299 (+1/-1)
active/CVE-2018-4359 (+1/-1)
active/CVE-2019-8611 (+1/-1)
active/CVE-2019-8622 (+1/-1)
active/CVE-2019-8623 (+1/-1)
active/CVE-2020-15660 (+1/-1)
active/CVE-2020-21913 (+1/-1)
active/CVE-2021-23963 (+1/-1)
active/CVE-2021-23964 (+1/-1)
active/CVE-2021-23968 (+1/-1)
active/CVE-2021-23969 (+1/-1)
active/CVE-2021-23970 (+1/-1)
active/CVE-2021-23971 (+1/-1)
active/CVE-2021-23972 (+1/-1)
active/CVE-2021-23973 (+1/-1)
active/CVE-2021-23974 (+1/-1)
active/CVE-2021-23975 (+1/-1)
active/CVE-2021-23976 (+1/-1)
active/CVE-2021-23977 (+1/-1)
active/CVE-2021-23978 (+1/-1)
active/CVE-2021-23979 (+1/-1)
active/CVE-2021-23981 (+1/-1)
active/CVE-2021-23982 (+1/-1)
active/CVE-2021-23983 (+1/-1)
active/CVE-2021-23984 (+1/-1)
active/CVE-2021-23985 (+1/-1)
active/CVE-2021-23986 (+1/-1)
active/CVE-2021-23987 (+1/-1)
active/CVE-2021-23988 (+1/-1)
active/CVE-2021-23994 (+1/-1)
active/CVE-2021-23995 (+1/-1)
active/CVE-2021-23996 (+1/-1)
active/CVE-2021-23997 (+1/-1)
active/CVE-2021-23998 (+1/-1)
active/CVE-2021-23999 (+1/-1)
active/CVE-2021-24000 (+1/-1)
active/CVE-2021-24001 (+1/-1)
active/CVE-2021-24002 (+1/-1)
active/CVE-2021-29945 (+1/-1)
active/CVE-2021-29946 (+1/-1)
active/CVE-2021-29947 (+1/-1)
active/CVE-2021-29952 (+1/-1)
active/CVE-2021-29955 (+1/-1)
active/CVE-2021-29959 (+1/-1)
active/CVE-2021-29960 (+1/-1)
active/CVE-2021-29961 (+1/-1)
active/CVE-2021-29962 (+1/-1)
active/CVE-2021-29963 (+1/-1)
active/CVE-2021-29964 (+1/-1)
active/CVE-2021-29965 (+1/-1)
active/CVE-2021-29966 (+1/-1)
active/CVE-2021-29967 (+1/-1)
active/CVE-2021-29968 (+1/-1)
active/CVE-2021-29970 (+1/-1)
active/CVE-2021-29971 (+1/-1)
active/CVE-2021-29972 (+1/-1)
active/CVE-2021-29973 (+1/-1)
active/CVE-2021-29974 (+1/-1)
active/CVE-2021-29975 (+1/-1)
active/CVE-2021-29976 (+1/-1)
active/CVE-2021-29977 (+1/-1)
active/CVE-2021-29980 (+1/-1)
active/CVE-2021-29981 (+1/-1)
active/CVE-2021-29982 (+1/-1)
active/CVE-2021-29983 (+1/-1)
active/CVE-2021-29984 (+1/-1)
active/CVE-2021-29985 (+1/-1)
active/CVE-2021-29986 (+1/-1)
active/CVE-2021-29987 (+1/-1)
active/CVE-2021-29988 (+1/-1)
active/CVE-2021-29989 (+1/-1)
active/CVE-2021-29990 (+1/-1)
active/CVE-2021-29991 (+1/-1)
active/CVE-2021-38491 (+1/-1)
active/CVE-2021-38492 (+1/-1)
active/CVE-2021-38493 (+1/-1)
active/CVE-2021-38494 (+1/-1)
ignored/CVE-2021-29953 (+1/-1)
retired/CVE-2011-4330 (+1/-1)
retired/CVE-2014-1739 (+1/-1)
retired/CVE-2014-2580 (+1/-1)
retired/CVE-2014-4508 (+1/-1)
retired/CVE-2014-7843 (+1/-1)
retired/CVE-2015-6252 (+1/-1)
retired/CVE-2015-7799 (+1/-1)
retired/CVE-2015-8543 (+1/-1)
retired/CVE-2016-1784 (+1/-1)
retired/CVE-2016-2143 (+1/-1)
retired/CVE-2016-4735 (+1/-1)
retired/CVE-2016-7039 (+1/-1)
retired/CVE-2016-7598 (+1/-1)
retired/CVE-2017-0794 (+1/-1)
retired/CVE-2017-10810 (+1/-1)
retired/CVE-2017-12134 (+1/-1)
retired/CVE-2017-14106 (+1/-1)
retired/CVE-2017-7482 (+1/-1)
retired/CVE-2017-7645 (+1/-1)
retired/CVE-2017-7895 (+1/-1)
retired/CVE-2017-7979 (+1/-1)
retired/CVE-2018-5344 (+1/-1)
retired/CVE-2018-7566 (+1/-1)
retired/CVE-2020-16048 (+1/-1)
scripts/check-syntax (+29/-16)
scripts/cve_lib.py (+20/-3)
scripts/html_export.py (+5/-12)
scripts/publish-cves-to-website-api.py (+1/-3)
scripts/report-pending-fixes (+4/-6)
scripts/sync-bugs-kernel.py (+16/-23)
scripts/test_cve_lib.py (+2/-0)
test/okay/cve-id-N7.json (+3/-1)
test/okay/cve-id-NNNN.json (+3/-1)
test/okay/patches-missing-1 (+26/-0)
test/okay/patches-missing-1.json (+54/-0)
test/okay/patches-missing-2 (+35/-0)
test/okay/patches-missing-2.json (+88/-0)
test/okay/patches-missing-3 (+36/-0)
test/okay/patches-missing-3.json (+90/-0)
test/okay/patches-missing-4 (+36/-0)
test/okay/patches-missing-4.json (+90/-0)
test/okay/priority-critical.json (+3/-1)
test/okay/priority-high.json (+3/-1)
test/okay/priority-low.json (+3/-1)
test/okay/priority-medium.json (+4/-2)
test/okay/priority-negligible.json (+3/-1)
test/okay/priority-untriaged.json (+3/-1)
Reviewer Review Type Date Requested Status
Steve Beattie Approve
Albert Kolozsvari Pending
Review via email: mp+408919@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Steve Beattie (sbeattie) wrote :

I've not poked through this entirely, but on a couple of specific CVEs:

On Tue, Sep 21, 2021 at 05:09:27AM -0000, Alex Murray wrote:
> diff --git a/active/CVE-2011-2896 b/active/CVE-2011-2896
> index 14aab42..3e21273 100644
> --- a/active/CVE-2011-2896
> +++ b/active/CVE-2011-2896
> @@ -29,7 +29,6 @@ CVSS:
>
> Patches_cups:
> upstream: http://cups.org/str.php?L3867
> - upstream: r9840

That's a subversion revision number. Unfortunately, it looks like apple
based their github conversion on an internal tree that merged in changes
from upstream cups back in 2011, so it appears the original commit is
lost.

Based on one of the packages where it was fixed in Ubuntu
(https://launchpad.net/ubuntu/+source/cups/1.4.6-5ubuntu1.4) we can see
what the patches look like for the two cups cves.

For this one, given the merging behavior described above, the closest git commit I could find
for this issue is:

  https://github.com/apple/cups/commit/771bd8cbffe1ffb06d90b2c7f00191830e6b738c

Also, http://cups.org/str.php?L3867 should probably be moved to the bugs
section (and maybe replaced with its current github location).

> upstream_cups: released (1.4.7)
> hardy_cups: DNE
> lucid_cups: released (1.4.3-1ubuntu1.5)
> diff --git a/active/CVE-2011-3170 b/active/CVE-2011-3170
> index ab01c3d..0fb2405 100644
> --- a/active/CVE-2011-3170
> +++ b/active/CVE-2011-3170
> @@ -24,7 +24,6 @@ CVSS:
>
> Patches_cups:
> upstream: http://cups.org/str.php?L3914
> - upstream: r9865
> upstream_cups: released (1.5.0-8)
> hardy_cups: DNE
> lucid_cups: released (1.4.3-1ubuntu1.5)

Similarly, the only reference I could find in the current cups git repo
is again

https://github.com/apple/cups/commit/771bd8cbffe1ffb06d90b2c7f00191830e6b738c

or a48458814a4c26a6430b27105c0ab747c907473f (a merge of 1.6 devel cycle
which contains even more extraneous stuff).

And same point about the bug reference, too.

All the other deletions of DNE and not-affected look good, as well as
the cleaned up break-fix entry.

--
Steve Beattie
<email address hidden>

Revision history for this message
Alex Murray (alexmurray) wrote :

Thanks for the reviews Steve and for chasing down some more useful patch links - I've added these in 5d5cb999c5 and removed the http://cups.org/str.php?L3867 etc entries from under Patches_cups: as they were already duplicated in Bugs:.

Revision history for this message
Steve Beattie (sbeattie) wrote :
Download full text (14.9 KiB)

Comments and a question inline; modulo the answer to the question,
I'm okay with this patch set.

Thanks.

On Tue, Sep 21, 2021 at 05:09:27AM -0000, Alex Murray wrote:
> index 384fb7e..b3224c0 100755
> --- a/scripts/check-syntax
> +++ b/scripts/check-syntax
> @@ -812,23 +812,36 @@ for cve in args:
> )
> cve_okay = False
>
> - # Check to make sure all patch references match the type:reference
> - # pattern
> - for key in data.keys():
> - if "Patches_" in key and len(data[key]) > 0:
> - for line in re.split("\n", data[key]):
> - patch_type = re.split(":", line)[0]
> - if re.search("http", patch_type):
> - print(
> - "%s: %d: patch reference %s doesn't contain a type modifier (e.g. upstream:)"
> - % (cvepath, srcmap[key] if key in srcmap else 1, key),
> - file=sys.stderr,
> - )
> - cve_okay = False
> - if re.search("patch", patch_type):
> + for pkg in data["patches"]:
> + for index, value in enumerate(data["patches"][pkg]):
> + patch_type, patch = data["patches"][pkg][index]
> + # validate break-fix entries as 'I?hash|-|local-|URL' and
> + # others should be a URL - but don't bother with retired
> + # CVEs as these have a lot of old cruft
> + if patch_type == "break-fix":
> + try:
> + bfre = "^(-|I?[a-f0-9]{1,40}|local-[A-Za-z0-9-]+|https?://.*)$"
> + breaks, fixes = patch.split(' ', 1)
> + # breaks and fixes can contain multiple entries separated by |
> + for brk in breaks.split('|'):
> + if re.match(bfre, brk) is None:
> + raise ValueError("invalid break entry '%s':" % brk)
> + # fixes can contain multiple entries separated by |
> + for fix in fixes.split('|'):
> + if re.match(bfre, fix) is None:
> + raise ValueError("invalid fix entry '%s':" % fix)
> + except Exception as e:
> + print(
> + "%s: %d: invalid break-fix entry: '%s': %s"
> + % (cvepath, srcmap["patches"][pkg][index], patch, e),
> + file=sys.stderr,
> + )
> + cve_okay = False
> + elif not "retired/" in cvepath:

It would possibly be okay to check retired CVEs when --strict is passed.

> + if "://" not in patch:
> print(
> - "%s: %d: invalid type modifier in %s, please use upstream:, vendor:, debdiff:, other:, etc."
> - % (cvepath, srcmap[key] if key in srcmap else 1, key),
> + "%s: %d: invalid patch URL '%s'"
> + % (cvepath, srcmap["patches"][pkg][index], patch),
> file=sys.stderr,
> )
> cve_okay = F...

Revision history for this message
Alex Murray (alexmurray) wrote :

Tags do always get processed from what I can see in a very similar manner - if no Tags_foo are found then the source package 'foo' won't exist in data['tags'] - so if you have an empty Tags_foo: entry then data['tags']['foo'] will be an empty set.

The difference in this case is the boilerplates etc all contain empty Patches_foo: entries (but there is no corresponding Tags_foo:) so we will always get empty lists for each 'foo' in the data['patches']['foo'] - ie the parsing matches the underlying CVE file. Which seems more correct IMO but I am not really fussed either way.

I added the --strict check for retired CVEs in ffc1c94acb.

Revision history for this message
Steve Beattie (sbeattie) wrote :
Download full text (19.6 KiB)

On Tue, Sep 21, 2021 at 09:11:46AM -0000, Alex Murray wrote:
> Tags do always get processed from what I can see in a very similar
> manner - if no Tags_foo are found then the source package 'foo' won't
> exist in data['tags'] - so if you have an empty Tags_foo: entry then
> data['tags']['foo'] will be an empty set.
>
> The difference in this case is the boilerplates etc all contain empty
> Patches_foo: entries (but there is no corresponding Tags_foo:) so we
> will always get empty lists for each 'foo' in the data['patches']['foo']
> - ie the parsing matches the underlying CVE file. Which seems more
> correct IMO but I am not really fussed either way.

Yeah, not really fussed, just wanted to think about the implications.
>
> I added the --strict check for retired CVEs in ffc1c94acb.

Thanks.

Okay to merge with the following patches applied; though we should
convert the json into yaml so we can encode python tuples into the
comparison structure, which is why I don't have any test cases with
actual patch entries in them. You can run just the parsing tests
(skipping most of the CVSS test time) by doing:

  pytest-3 ./scripts/test_cve_lib.py -k TestParseCVEFiles

(It'd be good to add/make tests conformant with check-syntax, so that
the equivalent of

  find test/okay/ -type f -a -not -name "*.json" -print0 | xargs -0 ./scripts/check-syntax

could be done as tests.)

From 9d6c895e62e57661c48c3096f701905c421db8d8 Mon Sep 17 00:00:00 2001
From: Steve Beattie <email address hidden>
Date: Tue, 21 Sep 2021 08:19:55 -0700
Subject: [PATCH 1/2] cve_lib tests: update for patches restructuring

Signed-off-by: Steve Beattie <email address hidden>
---
 test/okay/cve-id-N7.json | 4 +++-
 test/okay/cve-id-NNNN.json | 4 +++-
 test/okay/priority-critical.json | 4 +++-
 test/okay/priority-high.json | 4 +++-
 test/okay/priority-low.json | 4 +++-
 test/okay/priority-medium.json | 6 ++++--
 test/okay/priority-negligible.json | 4 +++-
 test/okay/priority-untriaged.json | 4 +++-
 8 files changed, 25 insertions(+), 9 deletions(-)

diff --git a/test/okay/cve-id-N7.json b/test/okay/cve-id-N7.json
index 071d883086..b246c169a1 100644
--- a/test/okay/cve-id-N7.json
+++ b/test/okay/cve-id-N7.json
@@ -1,5 +1,8 @@
 {
   "tags": {},
+ "patches": {
+ "ppp": []
+ },
   "PublicDateAtUSN": "2020-08-04 17:00:00 UTC",
   "Candidate": "CVE-2020-1234567",
   "CRD": "2020-08-04 17:00:00 UTC",
@@ -14,7 +17,6 @@
   "Discovered-by": "",
   "Assigned-to": "",
   "CVSS": [],
- "Patches_ppp": "",
   "pkgs": {
     "ppp": {
       "upstream": [
diff --git a/test/okay/cve-id-NNNN.json b/test/okay/cve-id-NNNN.json
index e0cf3cfb99..9c6411fb42 100644
--- a/test/okay/cve-id-NNNN.json
+++ b/test/okay/cve-id-NNNN.json
@@ -1,5 +1,8 @@
 {
   "tags": {},
+ "patches": {
+ "ppp": []
+ },
   "PublicDateAtUSN": "2020-08-04 17:00:00 UTC",
   "Candidate": "CVE-2020-1234",
   "CRD": "2020-08-04 17:00:00 UTC",
@@ -14,7 +17,6 @@
   "Discovered-by": "",
   "Assigned-to": "",
   "CVSS": [],
- "Patches_ppp": "",
   "pkgs": {
     "ppp": {
       "upstream": [
diff --git a/test/okay/priority-critical.json b/test/okay/priority-critical.json
index d2b7b...

Revision history for this message
Steve Beattie (sbeattie) :
review: Approve
Revision history for this message
Alex Murray (alexmurray) wrote :

Awesome - thanks for the test sbeattie - I have added those commits to this branch.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/active/00boilerplate.firefox b/active/00boilerplate.firefox
2index 7192bea..81491c7 100644
3--- a/active/00boilerplate.firefox
4+++ b/active/00boilerplate.firefox
5@@ -65,7 +65,7 @@ focal_mozjs68: needs-triage
6 hirsute_mozjs68: DNE
7 devel_mozjs68: DNE
8
9-Patches_mozjs78: DNE
10+Patches_mozjs78:
11 upstream_mozjs78: needs-triage
12 trusty_mozjs78: DNE
13 trusty/esm_mozjs78: DNE
14diff --git a/active/00boilerplate.mozjs b/active/00boilerplate.mozjs
15index 020a8f3..6ca78f3 100644
16--- a/active/00boilerplate.mozjs
17+++ b/active/00boilerplate.mozjs
18@@ -11,7 +11,7 @@ Discovered-by: DNE
19 Assigned-to:
20 CVSS:
21
22-Patches_mozjs: DNE
23+Patches_mozjs:
24 upstream_mozjs: needs-triage
25 trusty_mozjs: ignored (out of standard support)
26 trusty/esm_mozjs: DNE
27@@ -21,7 +21,7 @@ focal_mozjs: DNE
28 hirsute_mozjs: DNE
29 devel_mozjs: DNE
30
31-Patches_mozjs17: DNE
32+Patches_mozjs17:
33 upstream_mozjs17: needs-triage
34 trusty_mozjs17: ignored (out of standard support)
35 trusty/esm_mozjs17: DNE
36@@ -31,7 +31,7 @@ focal_mozjs17: DNE
37 hirsute_mozjs17: DNE
38 devel_mozjs17: DNE
39
40-Patches_mozjs24: DNE
41+Patches_mozjs24:
42 upstream_mozjs24: needs-triage
43 trusty_mozjs24: ignored (out of standard support)
44 trusty/esm_mozjs24: DNE
45@@ -41,7 +41,7 @@ focal_mozjs24: DNE
46 hirsute_mozjs24: DNE
47 devel_mozjs24: DNE
48
49-Patches_mozjs38: DNE
50+Patches_mozjs38:
51 upstream_mozjs38: needs-triage
52 trusty_mozjs38: DNE
53 trusty/esm_mozjs38: DNE
54@@ -51,7 +51,7 @@ focal_mozjs38: DNE
55 hirsute_mozjs38: DNE
56 devel_mozjs38: DNE
57
58-Patches_mozjs52: DNE
59+Patches_mozjs52:
60 upstream_mozjs52: needs-triage
61 trusty_mozjs52: DNE
62 trusty/esm_mozjs52: DNE
63@@ -61,7 +61,7 @@ focal_mozjs52: needs-triage
64 hirsute_mozjs52: DNE
65 devel_mozjs52: DNE
66
67-Patches_mozjs60: DNE
68+Patches_mozjs60:
69 upstream_mozjs60: needs-triage
70 trusty_mozjs60: DNE
71 trusty/esm_mozjs60: DNE
72@@ -71,7 +71,7 @@ focal_mozjs60: DNE
73 hirsute_mozjs60: DNE
74 devel_mozjs60: DNE
75
76-Patches_mozjs68: DNE
77+Patches_mozjs68:
78 upstream_mozjs68: needs-triage
79 trusty_mozjs68: DNE
80 trusty/esm_mozjs68: DNE
81@@ -81,7 +81,7 @@ focal_mozjs68: needs-triage
82 hirsute_mozjs68: DNE
83 devel_mozjs68: DNE
84
85-Patches_mozjs78: DNE
86+Patches_mozjs78:
87 upstream_mozjs78: needs-triage
88 trusty_mozjs78: DNE
89 trusty/esm_mozjs78: DNE
90diff --git a/active/CVE-2011-2896 b/active/CVE-2011-2896
91index 14aab42..b79888f 100644
92--- a/active/CVE-2011-2896
93+++ b/active/CVE-2011-2896
94@@ -28,8 +28,7 @@ Assigned-to: mdeslaur
95 CVSS:
96
97 Patches_cups:
98- upstream: http://cups.org/str.php?L3867
99- upstream: r9840
100+ upstream: https://github.com/apple/cups/commit/771bd8cbffe1ffb06d90b2c7f00191830e6b738c
101 upstream_cups: released (1.4.7)
102 hardy_cups: DNE
103 lucid_cups: released (1.4.3-1ubuntu1.5)
104diff --git a/active/CVE-2011-3170 b/active/CVE-2011-3170
105index ab01c3d..76d701b 100644
106--- a/active/CVE-2011-3170
107+++ b/active/CVE-2011-3170
108@@ -23,8 +23,7 @@ Assigned-to: mdeslaur
109 CVSS:
110
111 Patches_cups:
112- upstream: http://cups.org/str.php?L3914
113- upstream: r9865
114+ upstream: https://github.com/apple/cups/commit/771bd8cbffe1ffb06d90b2c7f00191830e6b738c
115 upstream_cups: released (1.5.0-8)
116 hardy_cups: DNE
117 lucid_cups: released (1.4.3-1ubuntu1.5)
118diff --git a/active/CVE-2017-13803 b/active/CVE-2017-13803
119index 4ff7cff..775145f 100644
120--- a/active/CVE-2017-13803
121+++ b/active/CVE-2017-13803
122@@ -76,7 +76,7 @@ groovy_qtwebkit-source: DNE
123 hirsute_qtwebkit-source: DNE
124 devel_qtwebkit-source: DNE
125
126-Patches_qtwebkit-opensource-src: needs-triage
127+Patches_qtwebkit-opensource-src:
128 upstream_qtwebkit-opensource-src: needs-triage
129 precise/esm_qtwebkit-opensource-src: DNE
130 trusty_qtwebkit-opensource-src: ignored (reached end-of-life)
131diff --git a/active/CVE-2018-4133 b/active/CVE-2018-4133
132index 2784297..c311676 100644
133--- a/active/CVE-2018-4133
134+++ b/active/CVE-2018-4133
135@@ -72,7 +72,7 @@ groovy_qtwebkit-source: DNE
136 hirsute_qtwebkit-source: DNE
137 devel_qtwebkit-source: DNE
138
139-Patches_qtwebkit-opensource-src: needs-triage
140+Patches_qtwebkit-opensource-src:
141 upstream_qtwebkit-opensource-src: needs-triage
142 precise/esm_qtwebkit-opensource-src: DNE
143 trusty_qtwebkit-opensource-src: ignored (reached end-of-life)
144diff --git a/active/CVE-2018-4233 b/active/CVE-2018-4233
145index 38b69d1..8b9e0be 100644
146--- a/active/CVE-2018-4233
147+++ b/active/CVE-2018-4233
148@@ -81,7 +81,7 @@ groovy_qtwebkit-source: DNE
149 hirsute_qtwebkit-source: DNE
150 devel_qtwebkit-source: DNE
151
152-Patches_qtwebkit-opensource-src: needs-triage
153+Patches_qtwebkit-opensource-src:
154 upstream_qtwebkit-opensource-src: needs-triage
155 precise/esm_qtwebkit-opensource-src: DNE
156 trusty_qtwebkit-opensource-src: ignored (reached end-of-life)
157diff --git a/active/CVE-2018-4299 b/active/CVE-2018-4299
158index d8ff6f2..9845cc7 100644
159--- a/active/CVE-2018-4299
160+++ b/active/CVE-2018-4299
161@@ -68,7 +68,7 @@ groovy_qtwebkit-source: DNE
162 hirsute_qtwebkit-source: DNE
163 devel_qtwebkit-source: DNE
164
165-Patches_qtwebkit-opensource-src: needs-triage
166+Patches_qtwebkit-opensource-src:
167 upstream_qtwebkit-opensource-src: needs-triage
168 precise/esm_qtwebkit-opensource-src: DNE
169 trusty_qtwebkit-opensource-src: ignored (reached end-of-life)
170diff --git a/active/CVE-2018-4359 b/active/CVE-2018-4359
171index 84215b4..0fe0e8f 100644
172--- a/active/CVE-2018-4359
173+++ b/active/CVE-2018-4359
174@@ -68,7 +68,7 @@ groovy_qtwebkit-source: DNE
175 hirsute_qtwebkit-source: DNE
176 devel_qtwebkit-source: DNE
177
178-Patches_qtwebkit-opensource-src: needs-triage
179+Patches_qtwebkit-opensource-src:
180 upstream_qtwebkit-opensource-src: needs-triage
181 precise/esm_qtwebkit-opensource-src: DNE
182 trusty_qtwebkit-opensource-src: ignored (reached end-of-life)
183diff --git a/active/CVE-2019-8611 b/active/CVE-2019-8611
184index 328eb9c..de8a9c5 100644
185--- a/active/CVE-2019-8611
186+++ b/active/CVE-2019-8611
187@@ -67,7 +67,7 @@ groovy_qtwebkit-source: DNE
188 hirsute_qtwebkit-source: DNE
189 devel_qtwebkit-source: DNE
190
191-Patches_qtwebkit-opensource-src: needs-triage
192+Patches_qtwebkit-opensource-src:
193 upstream_qtwebkit-opensource-src: needs-triage
194 precise/esm_qtwebkit-opensource-src: DNE
195 trusty_qtwebkit-opensource-src: ignored (out of standard support)
196diff --git a/active/CVE-2019-8622 b/active/CVE-2019-8622
197index afc4fa4..a933b39 100644
198--- a/active/CVE-2019-8622
199+++ b/active/CVE-2019-8622
200@@ -67,7 +67,7 @@ groovy_qtwebkit-source: DNE
201 hirsute_qtwebkit-source: DNE
202 devel_qtwebkit-source: DNE
203
204-Patches_qtwebkit-opensource-src: needs-triage
205+Patches_qtwebkit-opensource-src:
206 upstream_qtwebkit-opensource-src: needs-triage
207 precise/esm_qtwebkit-opensource-src: DNE
208 trusty_qtwebkit-opensource-src: ignored (out of standard support)
209diff --git a/active/CVE-2019-8623 b/active/CVE-2019-8623
210index de4bebe..fd6d48a 100644
211--- a/active/CVE-2019-8623
212+++ b/active/CVE-2019-8623
213@@ -67,7 +67,7 @@ groovy_qtwebkit-source: DNE
214 hirsute_qtwebkit-source: DNE
215 devel_qtwebkit-source: DNE
216
217-Patches_qtwebkit-opensource-src: needs-triage
218+Patches_qtwebkit-opensource-src:
219 upstream_qtwebkit-opensource-src: needs-triage
220 precise/esm_qtwebkit-opensource-src: DNE
221 trusty_qtwebkit-opensource-src: ignored (out of standard support)
222diff --git a/active/CVE-2020-15660 b/active/CVE-2020-15660
223index a882294..988d001 100644
224--- a/active/CVE-2020-15660
225+++ b/active/CVE-2020-15660
226@@ -72,7 +72,7 @@ focal_mozjs68: not-affected
227 hirsute_mozjs68: DNE
228 devel_mozjs68: DNE
229
230-Patches_mozjs78: DNE
231+Patches_mozjs78:
232 upstream_mozjs78: not-affected
233 trusty_mozjs78: DNE
234 trusty/esm_mozjs78: DNE
235diff --git a/active/CVE-2020-21913 b/active/CVE-2020-21913
236index ee62b4a..699bde5 100644
237--- a/active/CVE-2020-21913
238+++ b/active/CVE-2020-21913
239@@ -71,7 +71,7 @@ focal_mozjs68: needs-triage
240 hirsute_mozjs68: DNE
241 devel_mozjs68: DNE
242
243-Patches_mozjs78: DNE
244+Patches_mozjs78:
245 upstream_mozjs78: needs-triage
246 trusty_mozjs78: DNE
247 trusty/esm_mozjs78: DNE
248diff --git a/active/CVE-2021-23963 b/active/CVE-2021-23963
249index a5f8f5e..7d9f9ba 100644
250--- a/active/CVE-2021-23963
251+++ b/active/CVE-2021-23963
252@@ -82,7 +82,7 @@ groovy_mozjs68: ignored (reached end-of-life)
253 hirsute_mozjs68: DNE
254 devel_mozjs68: DNE
255
256-Patches_mozjs78: DNE
257+Patches_mozjs78:
258 upstream_mozjs78: needs-triage
259 precise/esm_mozjs78: DNE
260 trusty_mozjs78: DNE
261diff --git a/active/CVE-2021-23964 b/active/CVE-2021-23964
262index 5d0193e..e41ee3d 100644
263--- a/active/CVE-2021-23964
264+++ b/active/CVE-2021-23964
265@@ -99,7 +99,7 @@ groovy_mozjs68: ignored (reached end-of-life)
266 hirsute_mozjs68: DNE
267 devel_mozjs68: DNE
268
269-Patches_mozjs78: DNE
270+Patches_mozjs78:
271 upstream_mozjs78: needs-triage
272 precise/esm_mozjs78: DNE
273 trusty_mozjs78: DNE
274diff --git a/active/CVE-2021-23968 b/active/CVE-2021-23968
275index 4a046e1..d940a28 100644
276--- a/active/CVE-2021-23968
277+++ b/active/CVE-2021-23968
278@@ -104,7 +104,7 @@ groovy_mozjs68: ignored (reached end-of-life)
279 hirsute_mozjs68: DNE
280 devel_mozjs68: DNE
281
282-Patches_mozjs78: DNE
283+Patches_mozjs78:
284 upstream_mozjs78: needs-triage
285 precise/esm_mozjs78: DNE
286 trusty_mozjs78: DNE
287diff --git a/active/CVE-2021-23969 b/active/CVE-2021-23969
288index d5eafcd..958a7bc 100644
289--- a/active/CVE-2021-23969
290+++ b/active/CVE-2021-23969
291@@ -107,7 +107,7 @@ groovy_mozjs68: ignored (reached end-of-life)
292 hirsute_mozjs68: DNE
293 devel_mozjs68: DNE
294
295-Patches_mozjs78: DNE
296+Patches_mozjs78:
297 upstream_mozjs78: needs-triage
298 precise/esm_mozjs78: DNE
299 trusty_mozjs78: DNE
300diff --git a/active/CVE-2021-23970 b/active/CVE-2021-23970
301index 01d12d0..8b8511b 100644
302--- a/active/CVE-2021-23970
303+++ b/active/CVE-2021-23970
304@@ -83,7 +83,7 @@ groovy_mozjs68: ignored (reached end-of-life)
305 hirsute_mozjs68: DNE
306 devel_mozjs68: DNE
307
308-Patches_mozjs78: DNE
309+Patches_mozjs78:
310 upstream_mozjs78: needs-triage
311 precise/esm_mozjs78: DNE
312 trusty_mozjs78: DNE
313diff --git a/active/CVE-2021-23971 b/active/CVE-2021-23971
314index 5c8b708..ac85947 100644
315--- a/active/CVE-2021-23971
316+++ b/active/CVE-2021-23971
317@@ -85,7 +85,7 @@ groovy_mozjs68: ignored (reached end-of-life)
318 hirsute_mozjs68: DNE
319 devel_mozjs68: DNE
320
321-Patches_mozjs78: DNE
322+Patches_mozjs78:
323 upstream_mozjs78: needs-triage
324 precise/esm_mozjs78: DNE
325 trusty_mozjs78: DNE
326diff --git a/active/CVE-2021-23972 b/active/CVE-2021-23972
327index 3473207..f8fb2f7 100644
328--- a/active/CVE-2021-23972
329+++ b/active/CVE-2021-23972
330@@ -85,7 +85,7 @@ groovy_mozjs68: ignored (reached end-of-life)
331 hirsute_mozjs68: DNE
332 devel_mozjs68: DNE
333
334-Patches_mozjs78: DNE
335+Patches_mozjs78:
336 upstream_mozjs78: needs-triage
337 precise/esm_mozjs78: DNE
338 trusty_mozjs78: DNE
339diff --git a/active/CVE-2021-23973 b/active/CVE-2021-23973
340index 2cc1380..b1bdec3 100644
341--- a/active/CVE-2021-23973
342+++ b/active/CVE-2021-23973
343@@ -103,7 +103,7 @@ groovy_mozjs68: ignored (reached end-of-life)
344 hirsute_mozjs68: DNE
345 devel_mozjs68: DNE
346
347-Patches_mozjs78: DNE
348+Patches_mozjs78:
349 upstream_mozjs78: needs-triage
350 precise/esm_mozjs78: DNE
351 trusty_mozjs78: DNE
352diff --git a/active/CVE-2021-23974 b/active/CVE-2021-23974
353index ce806fe..49eccf9 100644
354--- a/active/CVE-2021-23974
355+++ b/active/CVE-2021-23974
356@@ -83,7 +83,7 @@ groovy_mozjs68: ignored (reached end-of-life)
357 hirsute_mozjs68: DNE
358 devel_mozjs68: DNE
359
360-Patches_mozjs78: DNE
361+Patches_mozjs78:
362 upstream_mozjs78: needs-triage
363 precise/esm_mozjs78: DNE
364 trusty_mozjs78: DNE
365diff --git a/active/CVE-2021-23975 b/active/CVE-2021-23975
366index db50c9c..5da6731 100644
367--- a/active/CVE-2021-23975
368+++ b/active/CVE-2021-23975
369@@ -85,7 +85,7 @@ groovy_mozjs68: ignored (reached end-of-life)
370 hirsute_mozjs68: DNE
371 devel_mozjs68: DNE
372
373-Patches_mozjs78: DNE
374+Patches_mozjs78:
375 upstream_mozjs78: needs-triage
376 precise/esm_mozjs78: DNE
377 trusty_mozjs78: DNE
378diff --git a/active/CVE-2021-23976 b/active/CVE-2021-23976
379index 520ec40..b17ecc9 100644
380--- a/active/CVE-2021-23976
381+++ b/active/CVE-2021-23976
382@@ -85,7 +85,7 @@ groovy_mozjs68: ignored (reached end-of-life)
383 hirsute_mozjs68: DNE
384 devel_mozjs68: DNE
385
386-Patches_mozjs78: DNE
387+Patches_mozjs78:
388 upstream_mozjs78: needs-triage
389 precise/esm_mozjs78: DNE
390 trusty_mozjs78: DNE
391diff --git a/active/CVE-2021-23977 b/active/CVE-2021-23977
392index 043bb2a..6590058 100644
393--- a/active/CVE-2021-23977
394+++ b/active/CVE-2021-23977
395@@ -83,7 +83,7 @@ groovy_mozjs68: ignored (reached end-of-life)
396 hirsute_mozjs68: DNE
397 devel_mozjs68: DNE
398
399-Patches_mozjs78: DNE
400+Patches_mozjs78:
401 upstream_mozjs78: needs-triage
402 precise/esm_mozjs78: DNE
403 trusty_mozjs78: DNE
404diff --git a/active/CVE-2021-23978 b/active/CVE-2021-23978
405index 533ad4f..e9bc7c1 100644
406--- a/active/CVE-2021-23978
407+++ b/active/CVE-2021-23978
408@@ -104,7 +104,7 @@ groovy_mozjs68: ignored (reached end-of-life)
409 hirsute_mozjs68: DNE
410 devel_mozjs68: DNE
411
412-Patches_mozjs78: DNE
413+Patches_mozjs78:
414 upstream_mozjs78: needs-triage
415 precise/esm_mozjs78: DNE
416 trusty_mozjs78: DNE
417diff --git a/active/CVE-2021-23979 b/active/CVE-2021-23979
418index 5f60ff3..e2e9d26 100644
419--- a/active/CVE-2021-23979
420+++ b/active/CVE-2021-23979
421@@ -84,7 +84,7 @@ groovy_mozjs68: ignored (reached end-of-life)
422 hirsute_mozjs68: DNE
423 devel_mozjs68: DNE
424
425-Patches_mozjs78: DNE
426+Patches_mozjs78:
427 upstream_mozjs78: needs-triage
428 precise/esm_mozjs78: DNE
429 trusty_mozjs78: DNE
430diff --git a/active/CVE-2021-23981 b/active/CVE-2021-23981
431index 8415f98..8c3bc56 100644
432--- a/active/CVE-2021-23981
433+++ b/active/CVE-2021-23981
434@@ -102,7 +102,7 @@ groovy_mozjs68: ignored (reached end-of-life)
435 hirsute_mozjs68: DNE
436 devel_mozjs68: DNE
437
438-Patches_mozjs78: DNE
439+Patches_mozjs78:
440 upstream_mozjs78: needs-triage
441 precise/esm_mozjs78: DNE
442 trusty_mozjs78: DNE
443diff --git a/active/CVE-2021-23982 b/active/CVE-2021-23982
444index c5751eb..a4810d2 100644
445--- a/active/CVE-2021-23982
446+++ b/active/CVE-2021-23982
447@@ -102,7 +102,7 @@ groovy_mozjs68: ignored (reached end-of-life)
448 hirsute_mozjs68: DNE
449 devel_mozjs68: DNE
450
451-Patches_mozjs78: DNE
452+Patches_mozjs78:
453 upstream_mozjs78: needs-triage
454 precise/esm_mozjs78: DNE
455 trusty_mozjs78: DNE
456diff --git a/active/CVE-2021-23983 b/active/CVE-2021-23983
457index 92d5f75..1cf3ce4 100644
458--- a/active/CVE-2021-23983
459+++ b/active/CVE-2021-23983
460@@ -83,7 +83,7 @@ groovy_mozjs68: ignored (reached end-of-life)
461 hirsute_mozjs68: DNE
462 devel_mozjs68: DNE
463
464-Patches_mozjs78: DNE
465+Patches_mozjs78:
466 upstream_mozjs78: needs-triage
467 precise/esm_mozjs78: DNE
468 trusty_mozjs78: DNE
469diff --git a/active/CVE-2021-23984 b/active/CVE-2021-23984
470index 889f49b..9d7fc35 100644
471--- a/active/CVE-2021-23984
472+++ b/active/CVE-2021-23984
473@@ -90,7 +90,7 @@ groovy_mozjs68: ignored (reached end-of-life)
474 hirsute_mozjs68: DNE
475 devel_mozjs68: DNE
476
477-Patches_mozjs78: DNE
478+Patches_mozjs78:
479 upstream_mozjs78: needs-triage
480 precise/esm_mozjs78: DNE
481 trusty_mozjs78: DNE
482diff --git a/active/CVE-2021-23985 b/active/CVE-2021-23985
483index 8a26594..3cf3200 100644
484--- a/active/CVE-2021-23985
485+++ b/active/CVE-2021-23985
486@@ -74,7 +74,7 @@ groovy_mozjs68: ignored (reached end-of-life)
487 hirsute_mozjs68: DNE
488 devel_mozjs68: DNE
489
490-Patches_mozjs78: DNE
491+Patches_mozjs78:
492 upstream_mozjs78: needs-triage
493 precise/esm_mozjs78: DNE
494 trusty_mozjs78: DNE
495diff --git a/active/CVE-2021-23986 b/active/CVE-2021-23986
496index 517464e..3b0956e 100644
497--- a/active/CVE-2021-23986
498+++ b/active/CVE-2021-23986
499@@ -74,7 +74,7 @@ groovy_mozjs68: ignored (reached end-of-life)
500 hirsute_mozjs68: DNE
501 devel_mozjs68: DNE
502
503-Patches_mozjs78: DNE
504+Patches_mozjs78:
505 upstream_mozjs78: needs-triage
506 precise/esm_mozjs78: DNE
507 trusty_mozjs78: DNE
508diff --git a/active/CVE-2021-23987 b/active/CVE-2021-23987
509index 4ceff64..8de25ac 100644
510--- a/active/CVE-2021-23987
511+++ b/active/CVE-2021-23987
512@@ -90,7 +90,7 @@ groovy_mozjs68: ignored (reached end-of-life)
513 hirsute_mozjs68: DNE
514 devel_mozjs68: DNE
515
516-Patches_mozjs78: DNE
517+Patches_mozjs78:
518 upstream_mozjs78: needs-triage
519 precise/esm_mozjs78: DNE
520 trusty_mozjs78: DNE
521diff --git a/active/CVE-2021-23988 b/active/CVE-2021-23988
522index d82568d..469c992 100644
523--- a/active/CVE-2021-23988
524+++ b/active/CVE-2021-23988
525@@ -70,7 +70,7 @@ groovy_mozjs68: ignored (reached end-of-life)
526 hirsute_mozjs68: DNE
527 devel_mozjs68: DNE
528
529-Patches_mozjs78: DNE
530+Patches_mozjs78:
531 upstream_mozjs78: needs-triage
532 precise/esm_mozjs78: DNE
533 trusty_mozjs78: DNE
534diff --git a/active/CVE-2021-23994 b/active/CVE-2021-23994
535index 03db544..77314ab 100644
536--- a/active/CVE-2021-23994
537+++ b/active/CVE-2021-23994
538@@ -87,7 +87,7 @@ groovy_mozjs68: ignored (reached end-of-life)
539 hirsute_mozjs68: DNE
540 devel_mozjs68: DNE
541
542-Patches_mozjs78: DNE
543+Patches_mozjs78:
544 upstream_mozjs78: needs-triage
545 precise/esm_mozjs78: DNE
546 trusty_mozjs78: DNE
547diff --git a/active/CVE-2021-23995 b/active/CVE-2021-23995
548index 81a5e7c..1065316 100644
549--- a/active/CVE-2021-23995
550+++ b/active/CVE-2021-23995
551@@ -88,7 +88,7 @@ groovy_mozjs68: ignored (reached end-of-life)
552 hirsute_mozjs68: DNE
553 devel_mozjs68: DNE
554
555-Patches_mozjs78: DNE
556+Patches_mozjs78:
557 upstream_mozjs78: needs-triage
558 precise/esm_mozjs78: DNE
559 trusty_mozjs78: DNE
560diff --git a/active/CVE-2021-23996 b/active/CVE-2021-23996
561index 97133cb..6a461c0 100644
562--- a/active/CVE-2021-23996
563+++ b/active/CVE-2021-23996
564@@ -70,7 +70,7 @@ groovy_mozjs68: ignored (reached end-of-life)
565 hirsute_mozjs68: DNE
566 devel_mozjs68: DNE
567
568-Patches_mozjs78: DNE
569+Patches_mozjs78:
570 upstream_mozjs78: needs-triage
571 precise/esm_mozjs78: DNE
572 trusty_mozjs78: DNE
573diff --git a/active/CVE-2021-23997 b/active/CVE-2021-23997
574index df6e388..a431ade 100644
575--- a/active/CVE-2021-23997
576+++ b/active/CVE-2021-23997
577@@ -70,7 +70,7 @@ groovy_mozjs68: ignored (reached end-of-life)
578 hirsute_mozjs68: DNE
579 devel_mozjs68: DNE
580
581-Patches_mozjs78: DNE
582+Patches_mozjs78:
583 upstream_mozjs78: needs-triage
584 precise/esm_mozjs78: DNE
585 trusty_mozjs78: DNE
586diff --git a/active/CVE-2021-23998 b/active/CVE-2021-23998
587index ab49a71..138baea 100644
588--- a/active/CVE-2021-23998
589+++ b/active/CVE-2021-23998
590@@ -87,7 +87,7 @@ groovy_mozjs68: ignored (reached end-of-life)
591 hirsute_mozjs68: DNE
592 devel_mozjs68: DNE
593
594-Patches_mozjs78: DNE
595+Patches_mozjs78:
596 upstream_mozjs78: needs-triage
597 precise/esm_mozjs78: DNE
598 trusty_mozjs78: DNE
599diff --git a/active/CVE-2021-23999 b/active/CVE-2021-23999
600index 695d6ec..2e8757d 100644
601--- a/active/CVE-2021-23999
602+++ b/active/CVE-2021-23999
603@@ -88,7 +88,7 @@ groovy_mozjs68: ignored (reached end-of-life)
604 hirsute_mozjs68: DNE
605 devel_mozjs68: DNE
606
607-Patches_mozjs78: DNE
608+Patches_mozjs78:
609 upstream_mozjs78: needs-triage
610 precise/esm_mozjs78: DNE
611 trusty_mozjs78: DNE
612diff --git a/active/CVE-2021-24000 b/active/CVE-2021-24000
613index 0bf1f1e..d32f0cb 100644
614--- a/active/CVE-2021-24000
615+++ b/active/CVE-2021-24000
616@@ -72,7 +72,7 @@ groovy_mozjs68: ignored (reached end-of-life)
617 hirsute_mozjs68: DNE
618 devel_mozjs68: DNE
619
620-Patches_mozjs78: DNE
621+Patches_mozjs78:
622 upstream_mozjs78: needs-triage
623 precise/esm_mozjs78: DNE
624 trusty_mozjs78: DNE
625diff --git a/active/CVE-2021-24001 b/active/CVE-2021-24001
626index f3a2707..b8b9a61 100644
627--- a/active/CVE-2021-24001
628+++ b/active/CVE-2021-24001
629@@ -70,7 +70,7 @@ groovy_mozjs68: ignored (reached end-of-life)
630 hirsute_mozjs68: DNE
631 devel_mozjs68: DNE
632
633-Patches_mozjs78: DNE
634+Patches_mozjs78:
635 upstream_mozjs78: needs-triage
636 precise/esm_mozjs78: DNE
637 trusty_mozjs78: DNE
638diff --git a/active/CVE-2021-24002 b/active/CVE-2021-24002
639index 4037a13..f5a0936 100644
640--- a/active/CVE-2021-24002
641+++ b/active/CVE-2021-24002
642@@ -88,7 +88,7 @@ groovy_mozjs68: ignored (reached end-of-life)
643 hirsute_mozjs68: DNE
644 devel_mozjs68: DNE
645
646-Patches_mozjs78: DNE
647+Patches_mozjs78:
648 upstream_mozjs78: needs-triage
649 precise/esm_mozjs78: DNE
650 trusty_mozjs78: DNE
651diff --git a/active/CVE-2021-29945 b/active/CVE-2021-29945
652index d9a3bf2..dae7c1f 100644
653--- a/active/CVE-2021-29945
654+++ b/active/CVE-2021-29945
655@@ -90,7 +90,7 @@ groovy_mozjs68: ignored (reached end-of-life)
656 hirsute_mozjs68: DNE
657 devel_mozjs68: DNE
658
659-Patches_mozjs78: DNE
660+Patches_mozjs78:
661 upstream_mozjs78: needs-triage
662 precise/esm_mozjs78: DNE
663 trusty_mozjs78: DNE
664diff --git a/active/CVE-2021-29946 b/active/CVE-2021-29946
665index b034101..d46dfa9 100644
666--- a/active/CVE-2021-29946
667+++ b/active/CVE-2021-29946
668@@ -89,7 +89,7 @@ groovy_mozjs68: ignored (reached end-of-life)
669 hirsute_mozjs68: DNE
670 devel_mozjs68: DNE
671
672-Patches_mozjs78: DNE
673+Patches_mozjs78:
674 upstream_mozjs78: needs-triage
675 precise/esm_mozjs78: DNE
676 trusty_mozjs78: DNE
677diff --git a/active/CVE-2021-29947 b/active/CVE-2021-29947
678index 819e53c..b1dd5f6 100644
679--- a/active/CVE-2021-29947
680+++ b/active/CVE-2021-29947
681@@ -71,7 +71,7 @@ groovy_mozjs68: ignored (reached end-of-life)
682 hirsute_mozjs68: DNE
683 devel_mozjs68: DNE
684
685-Patches_mozjs78: DNE
686+Patches_mozjs78:
687 upstream_mozjs78: needs-triage
688 precise/esm_mozjs78: DNE
689 trusty_mozjs78: DNE
690diff --git a/active/CVE-2021-29952 b/active/CVE-2021-29952
691index 8f695b6..3b062d6 100644
692--- a/active/CVE-2021-29952
693+++ b/active/CVE-2021-29952
694@@ -84,7 +84,7 @@ groovy_mozjs68: ignored (reached end-of-life)
695 hirsute_mozjs68: DNE
696 devel_mozjs68: DNE
697
698-Patches_mozjs78: DNE
699+Patches_mozjs78:
700 upstream_mozjs78: needs-triage
701 precise/esm_mozjs78: DNE
702 trusty_mozjs78: DNE
703diff --git a/active/CVE-2021-29955 b/active/CVE-2021-29955
704index d14d7d8..6ee8af7 100644
705--- a/active/CVE-2021-29955
706+++ b/active/CVE-2021-29955
707@@ -82,7 +82,7 @@ groovy_mozjs68: ignored (reached end-of-life)
708 hirsute_mozjs68: DNE
709 devel_mozjs68: DNE
710
711-Patches_mozjs78: DNE
712+Patches_mozjs78:
713 upstream_mozjs78: needs-triage
714 trusty_mozjs78: DNE
715 trusty/esm_mozjs78: DNE
716diff --git a/active/CVE-2021-29959 b/active/CVE-2021-29959
717index aafc7a2..2fda804 100644
718--- a/active/CVE-2021-29959
719+++ b/active/CVE-2021-29959
720@@ -80,7 +80,7 @@ groovy_mozjs68: ignored (reached end-of-life)
721 hirsute_mozjs68: DNE
722 devel_mozjs68: DNE
723
724-Patches_mozjs78: DNE
725+Patches_mozjs78:
726 upstream_mozjs78: needs-triage
727 trusty_mozjs78: DNE
728 trusty/esm_mozjs78: DNE
729diff --git a/active/CVE-2021-29960 b/active/CVE-2021-29960
730index 8c11e83..da60cb6 100644
731--- a/active/CVE-2021-29960
732+++ b/active/CVE-2021-29960
733@@ -80,7 +80,7 @@ groovy_mozjs68: ignored (reached end-of-life)
734 hirsute_mozjs68: DNE
735 devel_mozjs68: DNE
736
737-Patches_mozjs78: DNE
738+Patches_mozjs78:
739 upstream_mozjs78: needs-triage
740 trusty_mozjs78: DNE
741 trusty/esm_mozjs78: DNE
742diff --git a/active/CVE-2021-29961 b/active/CVE-2021-29961
743index e28aef3..bd896f1 100644
744--- a/active/CVE-2021-29961
745+++ b/active/CVE-2021-29961
746@@ -78,7 +78,7 @@ groovy_mozjs68: ignored (reached end-of-life)
747 hirsute_mozjs68: DNE
748 devel_mozjs68: DNE
749
750-Patches_mozjs78: DNE
751+Patches_mozjs78:
752 upstream_mozjs78: needs-triage
753 trusty_mozjs78: DNE
754 trusty/esm_mozjs78: DNE
755diff --git a/active/CVE-2021-29962 b/active/CVE-2021-29962
756index cfabf33..6769257 100644
757--- a/active/CVE-2021-29962
758+++ b/active/CVE-2021-29962
759@@ -77,7 +77,7 @@ groovy_mozjs68: ignored (reached end-of-life)
760 hirsute_mozjs68: DNE
761 devel_mozjs68: DNE
762
763-Patches_mozjs78: DNE
764+Patches_mozjs78:
765 upstream_mozjs78: needs-triage
766 trusty_mozjs78: DNE
767 trusty/esm_mozjs78: DNE
768diff --git a/active/CVE-2021-29963 b/active/CVE-2021-29963
769index 7bf3c39..684a003 100644
770--- a/active/CVE-2021-29963
771+++ b/active/CVE-2021-29963
772@@ -77,7 +77,7 @@ groovy_mozjs68: ignored (reached end-of-life)
773 hirsute_mozjs68: DNE
774 devel_mozjs68: DNE
775
776-Patches_mozjs78: DNE
777+Patches_mozjs78:
778 upstream_mozjs78: needs-triage
779 trusty_mozjs78: DNE
780 trusty/esm_mozjs78: DNE
781diff --git a/active/CVE-2021-29964 b/active/CVE-2021-29964
782index 681a67e..19602e2 100644
783--- a/active/CVE-2021-29964
784+++ b/active/CVE-2021-29964
785@@ -80,7 +80,7 @@ groovy_mozjs68: ignored (reached end-of-life)
786 hirsute_mozjs68: DNE
787 devel_mozjs68: DNE
788
789-Patches_mozjs78: DNE
790+Patches_mozjs78:
791 upstream_mozjs78: needs-triage
792 trusty_mozjs78: DNE
793 trusty/esm_mozjs78: DNE
794diff --git a/active/CVE-2021-29965 b/active/CVE-2021-29965
795index 1fae7b0..d8cc908 100644
796--- a/active/CVE-2021-29965
797+++ b/active/CVE-2021-29965
798@@ -78,7 +78,7 @@ groovy_mozjs68: ignored (reached end-of-life)
799 hirsute_mozjs68: DNE
800 devel_mozjs68: DNE
801
802-Patches_mozjs78: DNE
803+Patches_mozjs78:
804 upstream_mozjs78: needs-triage
805 trusty_mozjs78: DNE
806 trusty/esm_mozjs78: DNE
807diff --git a/active/CVE-2021-29966 b/active/CVE-2021-29966
808index 080bb43..3c5028e 100644
809--- a/active/CVE-2021-29966
810+++ b/active/CVE-2021-29966
811@@ -79,7 +79,7 @@ groovy_mozjs68: ignored (reached end-of-life)
812 hirsute_mozjs68: DNE
813 devel_mozjs68: DNE
814
815-Patches_mozjs78: DNE
816+Patches_mozjs78:
817 upstream_mozjs78: needs-triage
818 trusty_mozjs78: DNE
819 trusty/esm_mozjs78: DNE
820diff --git a/active/CVE-2021-29967 b/active/CVE-2021-29967
821index cb8149a..9868946 100644
822--- a/active/CVE-2021-29967
823+++ b/active/CVE-2021-29967
824@@ -83,7 +83,7 @@ groovy_mozjs68: ignored (reached end-of-life)
825 hirsute_mozjs68: DNE
826 devel_mozjs68: DNE
827
828-Patches_mozjs78: DNE
829+Patches_mozjs78:
830 upstream_mozjs78: needs-triage
831 trusty_mozjs78: DNE
832 trusty/esm_mozjs78: DNE
833diff --git a/active/CVE-2021-29968 b/active/CVE-2021-29968
834index 151aef1..5d45ec6 100644
835--- a/active/CVE-2021-29968
836+++ b/active/CVE-2021-29968
837@@ -78,7 +78,7 @@ groovy_mozjs68: not-affected
838 hirsute_mozjs68: DNE
839 devel_mozjs68: DNE
840
841-Patches_mozjs78: DNE
842+Patches_mozjs78:
843 upstream_mozjs78: needs-triage
844 trusty_mozjs78: DNE
845 trusty/esm_mozjs78: DNE
846diff --git a/active/CVE-2021-29970 b/active/CVE-2021-29970
847index 6caac74..482c952 100644
848--- a/active/CVE-2021-29970
849+++ b/active/CVE-2021-29970
850@@ -82,7 +82,7 @@ groovy_mozjs68: ignored (reached end-of-life)
851 hirsute_mozjs68: DNE
852 devel_mozjs68: DNE
853
854-Patches_mozjs78: DNE
855+Patches_mozjs78:
856 upstream_mozjs78: needs-triage
857 trusty_mozjs78: DNE
858 trusty/esm_mozjs78: DNE
859diff --git a/active/CVE-2021-29971 b/active/CVE-2021-29971
860index 7177eca..8c5017f 100644
861--- a/active/CVE-2021-29971
862+++ b/active/CVE-2021-29971
863@@ -78,7 +78,7 @@ groovy_mozjs68: ignored (reached end-of-life)
864 hirsute_mozjs68: DNE
865 devel_mozjs68: DNE
866
867-Patches_mozjs78: DNE
868+Patches_mozjs78:
869 upstream_mozjs78: needs-triage
870 trusty_mozjs78: DNE
871 trusty/esm_mozjs78: DNE
872diff --git a/active/CVE-2021-29972 b/active/CVE-2021-29972
873index 96123ee..e6696b4 100644
874--- a/active/CVE-2021-29972
875+++ b/active/CVE-2021-29972
876@@ -79,7 +79,7 @@ groovy_mozjs68: ignored (reached end-of-life)
877 hirsute_mozjs68: DNE
878 devel_mozjs68: DNE
879
880-Patches_mozjs78: DNE
881+Patches_mozjs78:
882 upstream_mozjs78: needs-triage
883 trusty_mozjs78: DNE
884 trusty/esm_mozjs78: DNE
885diff --git a/active/CVE-2021-29973 b/active/CVE-2021-29973
886index 29e77aa..e90baec 100644
887--- a/active/CVE-2021-29973
888+++ b/active/CVE-2021-29973
889@@ -79,7 +79,7 @@ groovy_mozjs68: ignored (reached end-of-life)
890 hirsute_mozjs68: DNE
891 devel_mozjs68: DNE
892
893-Patches_mozjs78: DNE
894+Patches_mozjs78:
895 upstream_mozjs78: needs-triage
896 trusty_mozjs78: DNE
897 trusty/esm_mozjs78: DNE
898diff --git a/active/CVE-2021-29974 b/active/CVE-2021-29974
899index 4ce47fb..78a82b6 100644
900--- a/active/CVE-2021-29974
901+++ b/active/CVE-2021-29974
902@@ -81,7 +81,7 @@ groovy_mozjs68: ignored (reached end-of-life)
903 hirsute_mozjs68: DNE
904 devel_mozjs68: DNE
905
906-Patches_mozjs78: DNE
907+Patches_mozjs78:
908 upstream_mozjs78: needs-triage
909 trusty_mozjs78: DNE
910 trusty/esm_mozjs78: DNE
911diff --git a/active/CVE-2021-29975 b/active/CVE-2021-29975
912index 615d69c..dfe2c8d 100644
913--- a/active/CVE-2021-29975
914+++ b/active/CVE-2021-29975
915@@ -80,7 +80,7 @@ groovy_mozjs68: ignored (reached end-of-life)
916 hirsute_mozjs68: DNE
917 devel_mozjs68: DNE
918
919-Patches_mozjs78: DNE
920+Patches_mozjs78:
921 upstream_mozjs78: needs-triage
922 trusty_mozjs78: DNE
923 trusty/esm_mozjs78: DNE
924diff --git a/active/CVE-2021-29976 b/active/CVE-2021-29976
925index 599eb3e..0c7e117 100644
926--- a/active/CVE-2021-29976
927+++ b/active/CVE-2021-29976
928@@ -83,7 +83,7 @@ groovy_mozjs68: ignored (reached end-of-life)
929 hirsute_mozjs68: DNE
930 devel_mozjs68: DNE
931
932-Patches_mozjs78: DNE
933+Patches_mozjs78:
934 upstream_mozjs78: needs-triage
935 trusty_mozjs78: DNE
936 trusty/esm_mozjs78: DNE
937diff --git a/active/CVE-2021-29977 b/active/CVE-2021-29977
938index 7d2970d..33c23db 100644
939--- a/active/CVE-2021-29977
940+++ b/active/CVE-2021-29977
941@@ -79,7 +79,7 @@ groovy_mozjs68: ignored (reached end-of-life)
942 hirsute_mozjs68: DNE
943 devel_mozjs68: DNE
944
945-Patches_mozjs78: DNE
946+Patches_mozjs78:
947 upstream_mozjs78: needs-triage
948 trusty_mozjs78: DNE
949 trusty/esm_mozjs78: DNE
950diff --git a/active/CVE-2021-29980 b/active/CVE-2021-29980
951index 1cbc16c..bfa385f 100644
952--- a/active/CVE-2021-29980
953+++ b/active/CVE-2021-29980
954@@ -76,7 +76,7 @@ focal_mozjs68: needs-triage
955 hirsute_mozjs68: DNE
956 devel_mozjs68: DNE
957
958-Patches_mozjs78: DNE
959+Patches_mozjs78:
960 upstream_mozjs78: needs-triage
961 trusty_mozjs78: DNE
962 trusty/esm_mozjs78: DNE
963diff --git a/active/CVE-2021-29981 b/active/CVE-2021-29981
964index f903996..594b32e 100644
965--- a/active/CVE-2021-29981
966+++ b/active/CVE-2021-29981
967@@ -74,7 +74,7 @@ focal_mozjs68: needs-triage
968 hirsute_mozjs68: DNE
969 devel_mozjs68: DNE
970
971-Patches_mozjs78: DNE
972+Patches_mozjs78:
973 upstream_mozjs78: needs-triage
974 trusty_mozjs78: DNE
975 trusty/esm_mozjs78: DNE
976diff --git a/active/CVE-2021-29982 b/active/CVE-2021-29982
977index b4f1956..7f3c798 100644
978--- a/active/CVE-2021-29982
979+++ b/active/CVE-2021-29982
980@@ -73,7 +73,7 @@ focal_mozjs68: needs-triage
981 hirsute_mozjs68: DNE
982 devel_mozjs68: DNE
983
984-Patches_mozjs78: DNE
985+Patches_mozjs78:
986 upstream_mozjs78: needs-triage
987 trusty_mozjs78: DNE
988 trusty/esm_mozjs78: DNE
989diff --git a/active/CVE-2021-29983 b/active/CVE-2021-29983
990index 6982d5f..fd03b57 100644
991--- a/active/CVE-2021-29983
992+++ b/active/CVE-2021-29983
993@@ -72,7 +72,7 @@ focal_mozjs68: needs-triage
994 hirsute_mozjs68: DNE
995 devel_mozjs68: DNE
996
997-Patches_mozjs78: DNE
998+Patches_mozjs78:
999 upstream_mozjs78: needs-triage
1000 trusty_mozjs78: DNE
1001 trusty/esm_mozjs78: DNE
1002diff --git a/active/CVE-2021-29984 b/active/CVE-2021-29984
1003index e3a9785..5152bf8 100644
1004--- a/active/CVE-2021-29984
1005+++ b/active/CVE-2021-29984
1006@@ -77,7 +77,7 @@ focal_mozjs68: needs-triage
1007 hirsute_mozjs68: DNE
1008 devel_mozjs68: DNE
1009
1010-Patches_mozjs78: DNE
1011+Patches_mozjs78:
1012 upstream_mozjs78: needs-triage
1013 trusty_mozjs78: DNE
1014 trusty/esm_mozjs78: DNE
1015diff --git a/active/CVE-2021-29985 b/active/CVE-2021-29985
1016index 6858f9d..01677bc 100644
1017--- a/active/CVE-2021-29985
1018+++ b/active/CVE-2021-29985
1019@@ -76,7 +76,7 @@ focal_mozjs68: needs-triage
1020 hirsute_mozjs68: DNE
1021 devel_mozjs68: DNE
1022
1023-Patches_mozjs78: DNE
1024+Patches_mozjs78:
1025 upstream_mozjs78: needs-triage
1026 trusty_mozjs78: DNE
1027 trusty/esm_mozjs78: DNE
1028diff --git a/active/CVE-2021-29986 b/active/CVE-2021-29986
1029index 191e66f..b6fdcea 100644
1030--- a/active/CVE-2021-29986
1031+++ b/active/CVE-2021-29986
1032@@ -77,7 +77,7 @@ focal_mozjs68: needs-triage
1033 hirsute_mozjs68: DNE
1034 devel_mozjs68: DNE
1035
1036-Patches_mozjs78: DNE
1037+Patches_mozjs78:
1038 upstream_mozjs78: needs-triage
1039 trusty_mozjs78: DNE
1040 trusty/esm_mozjs78: DNE
1041diff --git a/active/CVE-2021-29987 b/active/CVE-2021-29987
1042index 1a617aa..2d3357f 100644
1043--- a/active/CVE-2021-29987
1044+++ b/active/CVE-2021-29987
1045@@ -76,7 +76,7 @@ focal_mozjs68: needs-triage
1046 hirsute_mozjs68: DNE
1047 devel_mozjs68: DNE
1048
1049-Patches_mozjs78: DNE
1050+Patches_mozjs78:
1051 upstream_mozjs78: needs-triage
1052 trusty_mozjs78: DNE
1053 trusty/esm_mozjs78: DNE
1054diff --git a/active/CVE-2021-29988 b/active/CVE-2021-29988
1055index 8ecb968..04db211 100644
1056--- a/active/CVE-2021-29988
1057+++ b/active/CVE-2021-29988
1058@@ -76,7 +76,7 @@ focal_mozjs68: needs-triage
1059 hirsute_mozjs68: DNE
1060 devel_mozjs68: DNE
1061
1062-Patches_mozjs78: DNE
1063+Patches_mozjs78:
1064 upstream_mozjs78: needs-triage
1065 trusty_mozjs78: DNE
1066 trusty/esm_mozjs78: DNE
1067diff --git a/active/CVE-2021-29989 b/active/CVE-2021-29989
1068index e6adbd4..5079a46 100644
1069--- a/active/CVE-2021-29989
1070+++ b/active/CVE-2021-29989
1071@@ -77,7 +77,7 @@ focal_mozjs68: needs-triage
1072 hirsute_mozjs68: DNE
1073 devel_mozjs68: DNE
1074
1075-Patches_mozjs78: DNE
1076+Patches_mozjs78:
1077 upstream_mozjs78: needs-triage
1078 trusty_mozjs78: DNE
1079 trusty/esm_mozjs78: DNE
1080diff --git a/active/CVE-2021-29990 b/active/CVE-2021-29990
1081index 052ef86..a3df7aa 100644
1082--- a/active/CVE-2021-29990
1083+++ b/active/CVE-2021-29990
1084@@ -75,7 +75,7 @@ focal_mozjs68: needs-triage
1085 hirsute_mozjs68: DNE
1086 devel_mozjs68: DNE
1087
1088-Patches_mozjs78: DNE
1089+Patches_mozjs78:
1090 upstream_mozjs78: needs-triage
1091 trusty_mozjs78: DNE
1092 trusty/esm_mozjs78: DNE
1093diff --git a/active/CVE-2021-29991 b/active/CVE-2021-29991
1094index 06a06ac..8e58262 100644
1095--- a/active/CVE-2021-29991
1096+++ b/active/CVE-2021-29991
1097@@ -72,7 +72,7 @@ focal_mozjs68: needs-triage
1098 hirsute_mozjs68: DNE
1099 devel_mozjs68: DNE
1100
1101-Patches_mozjs78: DNE
1102+Patches_mozjs78:
1103 upstream_mozjs78: needs-triage
1104 trusty_mozjs78: DNE
1105 trusty/esm_mozjs78: DNE
1106diff --git a/active/CVE-2021-38491 b/active/CVE-2021-38491
1107index d139435..6837f80 100644
1108--- a/active/CVE-2021-38491
1109+++ b/active/CVE-2021-38491
1110@@ -69,7 +69,7 @@ focal_mozjs68: needs-triage
1111 hirsute_mozjs68: DNE
1112 devel_mozjs68: DNE
1113
1114-Patches_mozjs78: DNE
1115+Patches_mozjs78:
1116 upstream_mozjs78: needs-triage
1117 trusty_mozjs78: DNE
1118 trusty/esm_mozjs78: DNE
1119diff --git a/active/CVE-2021-38492 b/active/CVE-2021-38492
1120index 46f71ee..8fc3e9d 100644
1121--- a/active/CVE-2021-38492
1122+++ b/active/CVE-2021-38492
1123@@ -72,7 +72,7 @@ focal_mozjs68: needs-triage
1124 hirsute_mozjs68: DNE
1125 devel_mozjs68: DNE
1126
1127-Patches_mozjs78: DNE
1128+Patches_mozjs78:
1129 upstream_mozjs78: needs-triage
1130 trusty_mozjs78: DNE
1131 trusty/esm_mozjs78: DNE
1132diff --git a/active/CVE-2021-38493 b/active/CVE-2021-38493
1133index e37d827..ca434c5 100644
1134--- a/active/CVE-2021-38493
1135+++ b/active/CVE-2021-38493
1136@@ -74,7 +74,7 @@ focal_mozjs68: needs-triage
1137 hirsute_mozjs68: DNE
1138 devel_mozjs68: DNE
1139
1140-Patches_mozjs78: DNE
1141+Patches_mozjs78:
1142 upstream_mozjs78: needs-triage
1143 trusty_mozjs78: DNE
1144 trusty/esm_mozjs78: DNE
1145diff --git a/active/CVE-2021-38494 b/active/CVE-2021-38494
1146index d5a1570..1efd5a9 100644
1147--- a/active/CVE-2021-38494
1148+++ b/active/CVE-2021-38494
1149@@ -69,7 +69,7 @@ focal_mozjs68: needs-triage
1150 hirsute_mozjs68: DNE
1151 devel_mozjs68: DNE
1152
1153-Patches_mozjs78: DNE
1154+Patches_mozjs78:
1155 upstream_mozjs78: needs-triage
1156 trusty_mozjs78: DNE
1157 trusty/esm_mozjs78: DNE
1158diff --git a/ignored/CVE-2021-29953 b/ignored/CVE-2021-29953
1159index 8296e6f..63313ec 100644
1160--- a/ignored/CVE-2021-29953
1161+++ b/ignored/CVE-2021-29953
1162@@ -87,7 +87,7 @@ groovy_mozjs68: not-affected
1163 hirsute_mozjs68: DNE
1164 devel_mozjs68: DNE
1165
1166-Patches_mozjs78: DNE
1167+Patches_mozjs78:
1168 upstream_mozjs78: not-affected
1169 precise/esm_mozjs78: DNE
1170 trusty_mozjs78: DNE
1171diff --git a/retired/CVE-2011-4330 b/retired/CVE-2011-4330
1172index ad76cf9..ca7421a 100644
1173--- a/retired/CVE-2011-4330
1174+++ b/retired/CVE-2011-4330
1175@@ -256,7 +256,7 @@ yakkety_linux-armadaxp: DNE
1176 zesty_linux-armadaxp: DNE
1177 devel_linux-armadaxp: DNE
1178
1179-Patches_linux-lts-quantal: DNE
1180+Patches_linux-lts-quantal:
1181 upstream_linux-lts-quantal: released (3.2~rc2)
1182 hardy_linux-lts-quantal: DNE
1183 lucid_linux-lts-quantal: DNE
1184diff --git a/retired/CVE-2014-1739 b/retired/CVE-2014-1739
1185index 35e51f1..dfbb7ae 100644
1186--- a/retired/CVE-2014-1739
1187+++ b/retired/CVE-2014-1739
1188@@ -217,7 +217,7 @@ yakkety_linux-armadaxp: DNE
1189 zesty_linux-armadaxp: DNE
1190 devel_linux-armadaxp: DNE
1191
1192-Patches_linux-lts-quantal: DNE
1193+Patches_linux-lts-quantal:
1194 upstream_linux-lts-quantal: released (3.15~rc6)
1195 lucid_linux-lts-quantal: DNE
1196 precise_linux-lts-quantal: released (3.5.0-54.81~precise1)
1197diff --git a/retired/CVE-2014-2580 b/retired/CVE-2014-2580
1198index 8f8ed3c..2419437 100644
1199--- a/retired/CVE-2014-2580
1200+++ b/retired/CVE-2014-2580
1201@@ -168,7 +168,7 @@ vivid/ubuntu-core_linux-armadaxp: DNE
1202 wily_linux-armadaxp: DNE
1203 devel_linux-armadaxp: DNE
1204
1205-Patches_linux-lts-quantal: DNE
1206+Patches_linux-lts-quantal:
1207 upstream_linux-lts-quantal: released (3.15~rc1)
1208 lucid_linux-lts-quantal: DNE
1209 precise_linux-lts-quantal: not-affected
1210diff --git a/retired/CVE-2014-4508 b/retired/CVE-2014-4508
1211index f415ee4..5c43a67 100644
1212--- a/retired/CVE-2014-4508
1213+++ b/retired/CVE-2014-4508
1214@@ -218,7 +218,7 @@ zesty_linux-armadaxp: DNE
1215 devel_linux-armadaxp: DNE
1216
1217 Tags_linux-lts-quantal: not-ue
1218-Patches_linux-lts-quantal: DNE
1219+Patches_linux-lts-quantal:
1220 upstream_linux-lts-quantal: released (3.16~rc3)
1221 lucid_linux-lts-quantal: DNE
1222 precise_linux-lts-quantal: ignored (was pending [3.5.0-55.82~precise1] OEM release)
1223diff --git a/retired/CVE-2014-7843 b/retired/CVE-2014-7843
1224index ef4f81d..cf1faba 100644
1225--- a/retired/CVE-2014-7843
1226+++ b/retired/CVE-2014-7843
1227@@ -163,7 +163,7 @@ wily_linux-armadaxp: DNE
1228 devel_linux-armadaxp: DNE
1229
1230 Tags_linux-lts-quantal: not-ue
1231-Patches_linux-lts-quantal: DNE
1232+Patches_linux-lts-quantal:
1233 upstream_linux-lts-quantal: released (3.18~rc5)
1234 lucid_linux-lts-quantal: DNE
1235 precise_linux-lts-quantal: not-affected
1236diff --git a/retired/CVE-2015-6252 b/retired/CVE-2015-6252
1237index b1ed102..00fb067 100644
1238--- a/retired/CVE-2015-6252
1239+++ b/retired/CVE-2015-6252
1240@@ -186,7 +186,7 @@ zesty_linux-armadaxp: DNE
1241 devel_linux-armadaxp: DNE
1242
1243 Tags_linux-lts-quantal: not-ue
1244-Patches_linux-lts-quantal: DNE
1245+Patches_linux-lts-quantal:
1246 upstream_linux-lts-quantal: released (4.2~rc5)
1247 precise_linux-lts-quantal: ignored (was needed now end-of-life)
1248 precise/esm_linux-lts-quantal: DNE (precise was ignored [was needed now end-of-life])
1249diff --git a/retired/CVE-2015-7799 b/retired/CVE-2015-7799
1250index 9edddff..4dab84d 100644
1251--- a/retired/CVE-2015-7799
1252+++ b/retired/CVE-2015-7799
1253@@ -193,7 +193,7 @@ zesty_linux-armadaxp: DNE
1254 devel_linux-armadaxp: DNE
1255
1256 Tags_linux-lts-quantal: not-ue
1257-Patches_linux-lts-quantal: DNE
1258+Patches_linux-lts-quantal:
1259 upstream_linux-lts-quantal: released (4.4~rc1)
1260 precise_linux-lts-quantal: ignored (was needs-triage now end-of-life)
1261 precise/esm_linux-lts-quantal: DNE (precise was ignored [was needs-triage now end-of-life])
1262diff --git a/retired/CVE-2015-8543 b/retired/CVE-2015-8543
1263index 88d49cb..8ba4ed9 100644
1264--- a/retired/CVE-2015-8543
1265+++ b/retired/CVE-2015-8543
1266@@ -193,7 +193,7 @@ zesty_linux-armadaxp: DNE
1267 devel_linux-armadaxp: DNE
1268
1269 Tags_linux-lts-quantal: not-ue
1270-Patches_linux-lts-quantal: DNE
1271+Patches_linux-lts-quantal:
1272 upstream_linux-lts-quantal: released (4.4~rc6)
1273 precise_linux-lts-quantal: ignored (was needs-triage now end-of-life)
1274 precise/esm_linux-lts-quantal: DNE (precise was ignored [was needs-triage now end-of-life])
1275diff --git a/retired/CVE-2016-1784 b/retired/CVE-2016-1784
1276index c8822ea..6cc6054 100644
1277--- a/retired/CVE-2016-1784
1278+++ b/retired/CVE-2016-1784
1279@@ -74,7 +74,7 @@ xenial_qtwebkit-source: ignored (no update available)
1280 yakkety_qtwebkit-source: ignored (no update available)
1281 devel_qtwebkit-source: ignored (no update available)
1282
1283-Patches_qtwebkit-opensource-src: needs-triage
1284+Patches_qtwebkit-opensource-src:
1285 upstream_qtwebkit-opensource-src: needs-triage
1286 precise_qtwebkit-opensource-src: DNE
1287 trusty_qtwebkit-opensource-src: ignored (no update available)
1288diff --git a/retired/CVE-2016-2143 b/retired/CVE-2016-2143
1289index 9238cf9..01703f1 100644
1290--- a/retired/CVE-2016-2143
1291+++ b/retired/CVE-2016-2143
1292@@ -108,7 +108,7 @@ xenial_linux-armadaxp: DNE
1293 devel_linux-armadaxp: DNE
1294
1295 Tags_linux-lts-quantal: not-ue
1296-Patches_linux-lts-quantal: DNE
1297+Patches_linux-lts-quantal:
1298 upstream_linux-lts-quantal: released (4.5)
1299 precise_linux-lts-quantal: ignored (end-of-life)
1300 trusty_linux-lts-quantal: DNE
1301diff --git a/retired/CVE-2016-4735 b/retired/CVE-2016-4735
1302index 4c8da6f..c7eea06 100644
1303--- a/retired/CVE-2016-4735
1304+++ b/retired/CVE-2016-4735
1305@@ -67,7 +67,7 @@ xenial_qtwebkit-source: ignored (no update available)
1306 yakkety_qtwebkit-source: ignored (no update available)
1307 devel_qtwebkit-source: ignored (no update available)
1308
1309-Patches_qtwebkit-opensource-src: needs-triage
1310+Patches_qtwebkit-opensource-src:
1311 upstream_qtwebkit-opensource-src: needs-triage
1312 precise_qtwebkit-opensource-src: DNE
1313 trusty_qtwebkit-opensource-src: ignored (no update available)
1314diff --git a/retired/CVE-2016-7039 b/retired/CVE-2016-7039
1315index eabdd98..6d5b49c 100644
1316--- a/retired/CVE-2016-7039
1317+++ b/retired/CVE-2016-7039
1318@@ -118,7 +118,7 @@ yakkety_linux-armadaxp: DNE
1319 devel_linux-armadaxp: DNE
1320
1321 Tags_linux-lts-quantal: not-ue
1322-Patches_linux-lts-quantal: DNE
1323+Patches_linux-lts-quantal:
1324 upstream_linux-lts-quantal: released (4.9~rc4)
1325 precise_linux-lts-quantal: ignored (end-of-life)
1326 trusty_linux-lts-quantal: DNE
1327diff --git a/retired/CVE-2016-7598 b/retired/CVE-2016-7598
1328index d3cdb99..1ce67ee 100644
1329--- a/retired/CVE-2016-7598
1330+++ b/retired/CVE-2016-7598
1331@@ -67,7 +67,7 @@ xenial_qtwebkit-source: ignored (no update available)
1332 yakkety_qtwebkit-source: ignored (no update available)
1333 devel_qtwebkit-source: ignored (no update available)
1334
1335-Patches_qtwebkit-opensource-src: needs-triage
1336+Patches_qtwebkit-opensource-src:
1337 upstream_qtwebkit-opensource-src: needs-triage
1338 precise_qtwebkit-opensource-src: DNE
1339 trusty_qtwebkit-opensource-src: ignored (no update available)
1340diff --git a/retired/CVE-2017-0794 b/retired/CVE-2017-0794
1341index c93dd57..aa3dd0d 100644
1342--- a/retired/CVE-2017-0794
1343+++ b/retired/CVE-2017-0794
1344@@ -120,7 +120,7 @@ cosmic_linux-armadaxp: DNE
1345 devel_linux-armadaxp: DNE
1346
1347 Tags_linux-lts-quantal: not-ue
1348-Patches_linux-lts-quantal: DNE
1349+Patches_linux-lts-quantal:
1350 upstream_linux-lts-quantal: released (4.14~rc1)
1351 precise/esm_linux-lts-quantal: ignored (end-of-life)
1352 trusty_linux-lts-quantal: DNE
1353diff --git a/retired/CVE-2017-10810 b/retired/CVE-2017-10810
1354index a36f734..4f9752c 100644
1355--- a/retired/CVE-2017-10810
1356+++ b/retired/CVE-2017-10810
1357@@ -108,7 +108,7 @@ zesty_linux-armadaxp: DNE
1358 devel_linux-armadaxp: DNE
1359
1360 Tags_linux-lts-quantal: not-ue
1361-Patches_linux-lts-quantal: DNE
1362+Patches_linux-lts-quantal:
1363 upstream_linux-lts-quantal: released (4.12~rc1)
1364 precise/esm_linux-lts-quantal: ignored (end-of-life)
1365 trusty_linux-lts-quantal: DNE
1366diff --git a/retired/CVE-2017-12134 b/retired/CVE-2017-12134
1367index 6fb1287..30f7621 100644
1368--- a/retired/CVE-2017-12134
1369+++ b/retired/CVE-2017-12134
1370@@ -115,7 +115,7 @@ bionic_linux-armadaxp: DNE
1371 devel_linux-armadaxp: DNE
1372
1373 Tags_linux-lts-quantal: not-ue
1374-Patches_linux-lts-quantal: DNE
1375+Patches_linux-lts-quantal:
1376 upstream_linux-lts-quantal: released (4.13~rc6)
1377 precise/esm_linux-lts-quantal: ignored (end-of-life)
1378 trusty_linux-lts-quantal: DNE
1379diff --git a/retired/CVE-2017-14106 b/retired/CVE-2017-14106
1380index 44c222c..768d6ca 100644
1381--- a/retired/CVE-2017-14106
1382+++ b/retired/CVE-2017-14106
1383@@ -29,7 +29,7 @@ CVSS:
1384 nvd: CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
1385
1386 Patches_linux:
1387- break-fix: - 499350a5a6e7512d9ed369ed63a4244b6536f4f8
1388+ break-fix: - 499350a5a6e7512d9ed369ed63a4244b6536f4f8
1389 upstream_linux: released (4.12~rc3)
1390 precise/esm_linux: ignored (was needed ESM criteria)
1391 trusty_linux: released (3.13.0-133.182)
1392diff --git a/retired/CVE-2017-7482 b/retired/CVE-2017-7482
1393index 71bddb7..b613d17 100644
1394--- a/retired/CVE-2017-7482
1395+++ b/retired/CVE-2017-7482
1396@@ -126,7 +126,7 @@ bionic_linux-armadaxp: DNE
1397 devel_linux-armadaxp: DNE
1398
1399 Tags_linux-lts-quantal: not-ue
1400-Patches_linux-lts-quantal: DNE
1401+Patches_linux-lts-quantal:
1402 upstream_linux-lts-quantal: released (4.12~rc7)
1403 precise/esm_linux-lts-quantal: ignored (end-of-life)
1404 trusty_linux-lts-quantal: DNE
1405diff --git a/retired/CVE-2017-7645 b/retired/CVE-2017-7645
1406index 7da6892..4165d0f 100644
1407--- a/retired/CVE-2017-7645
1408+++ b/retired/CVE-2017-7645
1409@@ -150,7 +150,7 @@ cosmic_linux-armadaxp: DNE
1410 devel_linux-armadaxp: DNE
1411
1412 Tags_linux-lts-quantal: not-ue
1413-Patches_linux-lts-quantal: DNE
1414+Patches_linux-lts-quantal:
1415 upstream_linux-lts-quantal: released (4.11)
1416 precise_linux-lts-quantal: ignored (end-of-life)
1417 precise/esm_linux-lts-quantal: DNE (precise was ignored [end-of-life])
1418diff --git a/retired/CVE-2017-7895 b/retired/CVE-2017-7895
1419index 25dfad7..6736577 100644
1420--- a/retired/CVE-2017-7895
1421+++ b/retired/CVE-2017-7895
1422@@ -135,7 +135,7 @@ artful_linux-armadaxp: DNE
1423 devel_linux-armadaxp: DNE
1424
1425 Tags_linux-lts-quantal: not-ue
1426-Patches_linux-lts-quantal: DNE
1427+Patches_linux-lts-quantal:
1428 upstream_linux-lts-quantal: released (4.11)
1429 precise_linux-lts-quantal: ignored (end-of-life)
1430 precise/esm_linux-lts-quantal: DNE (precise was ignored [end-of-life])
1431diff --git a/retired/CVE-2017-7979 b/retired/CVE-2017-7979
1432index 942c97c..fc27d22 100644
1433--- a/retired/CVE-2017-7979
1434+++ b/retired/CVE-2017-7979
1435@@ -133,7 +133,7 @@ zesty_linux-armadaxp: DNE
1436 devel_linux-armadaxp: DNE
1437
1438 Tags_linux-lts-quantal: not-ue
1439-Patches_linux-lts-quantal: DNE
1440+Patches_linux-lts-quantal:
1441 upstream_linux-lts-quantal: released (4.11~rc8)
1442 precise_linux-lts-quantal: ignored (end-of-life)
1443 precise/esm_linux-lts-quantal: DNE (precise was ignored [end-of-life])
1444diff --git a/retired/CVE-2018-5344 b/retired/CVE-2018-5344
1445index 9ddb499..400ba16 100644
1446--- a/retired/CVE-2018-5344
1447+++ b/retired/CVE-2018-5344
1448@@ -112,7 +112,7 @@ bionic_linux-armadaxp: DNE
1449 devel_linux-armadaxp: DNE
1450
1451 Tags_linux-lts-quantal: not-ue
1452-Patches_linux-lts-quantal: DNE
1453+Patches_linux-lts-quantal:
1454 upstream_linux-lts-quantal: released (4.15~rc8)
1455 precise/esm_linux-lts-quantal: ignored (end-of-life)
1456 trusty_linux-lts-quantal: DNE
1457diff --git a/retired/CVE-2018-7566 b/retired/CVE-2018-7566
1458index 5133058..335ab48 100644
1459--- a/retired/CVE-2018-7566
1460+++ b/retired/CVE-2018-7566
1461@@ -108,7 +108,7 @@ cosmic_linux-armadaxp: DNE
1462 devel_linux-armadaxp: DNE
1463
1464 Tags_linux-lts-quantal: not-ue
1465-Patches_linux-lts-quantal: DNE
1466+Patches_linux-lts-quantal:
1467 upstream_linux-lts-quantal: released (4.16~rc5)
1468 precise/esm_linux-lts-quantal: ignored (end-of-life)
1469 trusty_linux-lts-quantal: DNE
1470diff --git a/retired/CVE-2020-16048 b/retired/CVE-2020-16048
1471index 59fb765..beb18e1 100644
1472--- a/retired/CVE-2020-16048
1473+++ b/retired/CVE-2020-16048
1474@@ -73,7 +73,7 @@ focal_mozjs68: not-affected
1475 groovy_mozjs68: not-affected
1476 devel_mozjs68: DNE
1477
1478-Patches_mozjs78: DNE
1479+Patches_mozjs78:
1480 upstream_mozjs78: needs-triage
1481 precise/esm_mozjs78: DNE
1482 trusty_mozjs78: DNE
1483diff --git a/scripts/check-syntax b/scripts/check-syntax
1484index 384fb7e..da1f7f3 100755
1485--- a/scripts/check-syntax
1486+++ b/scripts/check-syntax
1487@@ -812,23 +812,36 @@ for cve in args:
1488 )
1489 cve_okay = False
1490
1491- # Check to make sure all patch references match the type:reference
1492- # pattern
1493- for key in data.keys():
1494- if "Patches_" in key and len(data[key]) > 0:
1495- for line in re.split("\n", data[key]):
1496- patch_type = re.split(":", line)[0]
1497- if re.search("http", patch_type):
1498- print(
1499- "%s: %d: patch reference %s doesn't contain a type modifier (e.g. upstream:)"
1500- % (cvepath, srcmap[key] if key in srcmap else 1, key),
1501- file=sys.stderr,
1502- )
1503- cve_okay = False
1504- if re.search("patch", patch_type):
1505+ for pkg in data["patches"]:
1506+ for index, value in enumerate(data["patches"][pkg]):
1507+ patch_type, patch = data["patches"][pkg][index]
1508+ # validate break-fix entries as 'I?hash|-|local-|URL' and
1509+ # others should be a URL - but don't bother with retired
1510+ # CVEs as these have a lot of old cruft
1511+ if patch_type == "break-fix":
1512+ try:
1513+ bfre = "^(-|I?[a-f0-9]{1,40}|local-[A-Za-z0-9-]+|https?://.*)$"
1514+ breaks, fixes = patch.split(' ', 1)
1515+ # breaks and fixes can contain multiple entries separated by |
1516+ for brk in breaks.split('|'):
1517+ if re.match(bfre, brk) is None:
1518+ raise ValueError("invalid break entry '%s':" % brk)
1519+ # fixes can contain multiple entries separated by |
1520+ for fix in fixes.split('|'):
1521+ if re.match(bfre, fix) is None:
1522+ raise ValueError("invalid fix entry '%s':" % fix)
1523+ except Exception as e:
1524+ print(
1525+ "%s: %d: invalid break-fix entry: '%s': %s"
1526+ % (cvepath, srcmap["patches"][pkg][index], patch, e),
1527+ file=sys.stderr,
1528+ )
1529+ cve_okay = False
1530+ elif opt.strict or not "retired/" in cvepath:
1531+ if "://" not in patch:
1532 print(
1533- "%s: %d: invalid type modifier in %s, please use upstream:, vendor:, debdiff:, other:, etc."
1534- % (cvepath, srcmap[key] if key in srcmap else 1, key),
1535+ "%s: %d: invalid patch URL '%s'"
1536+ % (cvepath, srcmap["patches"][pkg][index], patch),
1537 file=sys.stderr,
1538 )
1539 cve_okay = False
1540diff --git a/scripts/cve_lib.py b/scripts/cve_lib.py
1541index 36e4383..54bc812 100755
1542--- a/scripts/cve_lib.py
1543+++ b/scripts/cve_lib.py
1544@@ -1195,6 +1195,8 @@ def load_cve(cve, strict=False, subprojects=list(), srcmap=None):
1545 srcmap.setdefault('pkgs', dict())
1546 srcmap.setdefault('tags', dict())
1547 data.setdefault('tags', dict())
1548+ srcmap.setdefault('patches', dict())
1549+ data.setdefault('patches', dict())
1550 affected = dict()
1551 non_ubuntu_affected = dict()
1552 lastfield = ""
1553@@ -1220,6 +1222,17 @@ def load_cve(cve, strict=False, subprojects=list(), srcmap=None):
1554 code, newmsg = notes_parser.parse_line(cve, line, linenum, code)
1555 if code != EXIT_OKAY:
1556 msg += newmsg
1557+ elif 'Patches_' in lastfield:
1558+ try:
1559+ _, pkg = lastfield.split('_', 1)
1560+ patch_type, entry = line.split(':', 1)
1561+ patch_type = patch_type.strip()
1562+ entry = entry.strip()
1563+ data['patches'][pkg].append((patch_type, entry))
1564+ srcmap['patches'][pkg].append(linenum)
1565+ except Exception as e:
1566+ msg += "%s: %d: Failed to parse '%s' entry %s: %s\n" % (cve, linenum, lastfield, line, e)
1567+ code = EXIT_FAIL
1568 elif lastfield == 'CVSS':
1569 source, vector = line.split(':', 1)
1570 try:
1571@@ -1280,15 +1293,19 @@ def load_cve(cve, strict=False, subprojects=list(), srcmap=None):
1572 msg += "%s: %d: unknown Priority '%s'\n" % (cve, linenum, value)
1573 code = EXIT_FAIL
1574 elif 'Patches_' in field:
1575- '''These are raw fields'''
1576 try:
1577 foo, pkg = field.split('_', 1)
1578 except ValueError:
1579 msg += "%s: %d: bad field with 'Patches_': '%s'\n" % (cve, linenum, field)
1580 code = EXIT_FAIL
1581 continue
1582- data.setdefault(field, value)
1583- srcmap.setdefault(field, linenum)
1584+ # value should be empty
1585+ if len(value) > 0:
1586+ msg += "%s: %d: '%s' field should have no value\n" % (cve, linenum, field)
1587+ code = EXIT_FAIL
1588+ continue
1589+ data['patches'].setdefault(pkg, list())
1590+ srcmap['patches'].setdefault(pkg, list())
1591 elif 'Tags_' in field:
1592 '''These are processed into the "tags" hash'''
1593 try:
1594diff --git a/scripts/html_export.py b/scripts/html_export.py
1595index 066ffea..0253eaa 100755
1596--- a/scripts/html_export.py
1597+++ b/scripts/html_export.py
1598@@ -272,16 +272,10 @@ def htmlize_cve(cvefile, outfd, commit=None):
1599 print('</td></tr>', file=outfd)
1600 print('</table>', file=outfd)
1601
1602- patches = 'Patches_%s' % (pkg)
1603- if patches in data:
1604- entries = data[patches]
1605- if entries != "":
1606- print('<div class="patches">Patches:</div>', file=outfd)
1607- print('<table class="table table-responsive patches">', file=outfd)
1608- for patch in entries.split('\n'):
1609- if not ':' in patch:
1610- continue
1611- source, url = patch.split(':', 1)
1612+ if len(data['patches'][pkg]) > 0:
1613+ print('<div class="patches">Patches:</div>', file=outfd)
1614+ print('<table class="table table-responsive patches">', file=outfd)
1615+ for source, url in data['patches'][pkg]:
1616 # We need to handle the line info first, since it may have
1617 # additional info as (master) or something else after the patch
1618 # url.
1619@@ -304,8 +298,7 @@ def htmlize_cve(cvefile, outfd, commit=None):
1620 print('<tr><td>%s:</td><td><a href="%s">%s %s</a></td></tr>' % (escape(source).capitalize(), url.replace('"', '%22'), escape(url), url_additional_info), file=outfd)
1621 else:
1622 print('<tr><td>%s:</td><td>%s</td></tr>' % (escape(source).capitalize(), escape(url)), file=outfd)
1623- if entries != "":
1624- print('</table>', file=outfd)
1625+ print('</table>', file=outfd)
1626
1627 # tags
1628 urlregex = re.compile(r"(http[^\s]+)")
1629diff --git a/scripts/publish-cves-to-website-api.py b/scripts/publish-cves-to-website-api.py
1630index 0dbb5e6..904595d 100755
1631--- a/scripts/publish-cves-to-website-api.py
1632+++ b/scripts/publish-cves-to-website-api.py
1633@@ -40,9 +40,7 @@ def get_tags(cve_data, pkg):
1634 return list(cve_data['tags'].get(pkg, list()))
1635
1636 def get_patches(cve_data, pkg):
1637- patches_str = cve_data.get(f'Patches_{pkg}', "")
1638- return [line for line in patches_str.split('\n') if line]
1639-
1640+ return [ patch_type + ": " + entry for patch_type, entry in cve_data['patches'].get(pkg, list())]
1641
1642 def get_devel_codename(cve_releases):
1643 for skip_release in ['upstream', 'devel', 'product', 'snap']:
1644diff --git a/scripts/report-pending-fixes b/scripts/report-pending-fixes
1645index ca7b7f4..6800f10 100755
1646--- a/scripts/report-pending-fixes
1647+++ b/scripts/report-pending-fixes
1648@@ -67,12 +67,10 @@ for name in cves:
1649 report += " %s %s %s %s" % (opt.pkg, rel, state, version)
1650
1651 if opt.fixes:
1652- patch_section = 'Patches_%s' % ('linux' if opt.pkg in cve_lib.kernel_srcs else opt.pkg)
1653- if patch_section in cve:
1654- for line in cve[patch_section].split('\n'):
1655- line.strip()
1656- if line.lstrip().startswith('break-fix:'):
1657- report += '\n %s' % line.split()[2]
1658+ pkg = 'linux' if opt.pkg in cve_lib.kernel_srcs else opt.pkg
1659+ for (patch_type, patch) in cve['patches'][pkg]:
1660+ if patch_type == 'break-fix':
1661+ report += '\n %s' % patch.split()[1]
1662
1663 if opt.descriptions:
1664 desc = cve['Ubuntu-Description'].strip()
1665diff --git a/scripts/sync-bugs-kernel.py b/scripts/sync-bugs-kernel.py
1666index a379f8b..67b1bf9 100755
1667--- a/scripts/sync-bugs-kernel.py
1668+++ b/scripts/sync-bugs-kernel.py
1669@@ -283,8 +283,8 @@ def add_uct_sha(data, src, sha_pair_to_add):
1670
1671 raise ValueError("TODO")
1672
1673- if value.strip() != data.get(patchfield, ''):
1674- data[patchfield] = cve_lib.update_multiline_field('%s/%s' % (cve_lib.active_dir, data['Candidate']), patchfield, value)
1675+ # if value.strip() != data.get(patchfield, ''):
1676+ # data[patchfield] = cve_lib.update_multiline_field('%s/%s' % (cve_lib.active_dir, data['Candidate']), patchfield, value)
1677
1678
1679 def del_uct_sha(data, src, sha_pair_to_remove):
1680@@ -298,8 +298,8 @@ def del_uct_sha(data, src, sha_pair_to_remove):
1681
1682 raise ValueError("TODO")
1683
1684- if value.strip() != data.get(patchfield, ''):
1685- data[patchfield] = cve_lib.update_multiline_field('%s/%s' % (cve_lib.active_dir, data['Candidate']), patchfield, value)
1686+ # if value.strip() != data.get(patchfield, ''):
1687+ # data[patchfield] = cve_lib.update_multiline_field('%s/%s' % (cve_lib.active_dir, data['Candidate']), patchfield, value)
1688
1689 # FIXME: there is a lot of copy/paste loop code here to walk the bug
1690 # task vs uct status maps. This should probably be generalized into a
1691@@ -454,24 +454,18 @@ def _update_description_from_uct(bug, tasks, data):
1692 # a full abort is not needed.
1693 continue
1694
1695- if 'Patches_%s' % (src) in data:
1696- for line in data['Patches_%s' % (src)].splitlines():
1697- if ':' not in line:
1698- continue
1699- field, value = line.strip().split(':', 1)
1700- field = field.strip()
1701- if field not in ['upstream', 'break-fix']:
1702- continue
1703- value = value.strip()
1704- broken = None
1705- sha = None
1706- if field == 'upstream':
1707- broken = '-'
1708- sha = _extract_sha(value)
1709- if field == 'break-fix' and ' ' in value:
1710- broken, sha = [_extract_sha(x) for x in value.split(' ', 1)]
1711- if sha:
1712- shas.append((broken, sha))
1713+ for (field, value) in data['patches'][src]:
1714+ if field not in ['upstream', 'break-fix']:
1715+ continue
1716+ broken = None
1717+ sha = None
1718+ if field == 'upstream':
1719+ broken = '-'
1720+ sha = _extract_sha(value)
1721+ if field == 'break-fix' and ' ' in value:
1722+ broken, sha = [_extract_sha(x) for x in value.split(' ', 1)]
1723+ if sha:
1724+ shas.append((broken, sha))
1725
1726 description = data['Description'].strip().replace('\n', ' ').strip()
1727 if description == "":
1728@@ -525,7 +519,6 @@ def sync_new_bug(bug, tasks, data):
1729 touched = False
1730 if opt.debug:
1731 print("\tsync new bug", file=sys.stderr)
1732- shas = []
1733 for src in data['pkgs']:
1734 if src not in cve_lib.kernel_srcs:
1735 continue
1736diff --git a/scripts/test_cve_lib.py b/scripts/test_cve_lib.py
1737index 7cd8244..7147b6e 100755
1738--- a/scripts/test_cve_lib.py
1739+++ b/scripts/test_cve_lib.py
1740@@ -71,6 +71,8 @@ PARSE_OKAY_TESTS = [
1741 "priority-negligible", "priority-low", "priority-medium",
1742 "priority-high", "priority-critical", "priority-untriaged",
1743 'cve-id-NNNN', 'cve-id-N7',
1744+ "patches-missing-1", "patches-missing-2", "patches-missing-3",
1745+ "patches-missing-4",
1746 ]
1747
1748 # these are tests located the 'bad' subdirectory that cve_lib should
1749diff --git a/test/okay/cve-id-N7.json b/test/okay/cve-id-N7.json
1750index 071d883..b246c16 100644
1751--- a/test/okay/cve-id-N7.json
1752+++ b/test/okay/cve-id-N7.json
1753@@ -1,5 +1,8 @@
1754 {
1755 "tags": {},
1756+ "patches": {
1757+ "ppp": []
1758+ },
1759 "PublicDateAtUSN": "2020-08-04 17:00:00 UTC",
1760 "Candidate": "CVE-2020-1234567",
1761 "CRD": "2020-08-04 17:00:00 UTC",
1762@@ -14,7 +17,6 @@
1763 "Discovered-by": "",
1764 "Assigned-to": "",
1765 "CVSS": [],
1766- "Patches_ppp": "",
1767 "pkgs": {
1768 "ppp": {
1769 "upstream": [
1770diff --git a/test/okay/cve-id-NNNN.json b/test/okay/cve-id-NNNN.json
1771index e0cf3cf..9c6411f 100644
1772--- a/test/okay/cve-id-NNNN.json
1773+++ b/test/okay/cve-id-NNNN.json
1774@@ -1,5 +1,8 @@
1775 {
1776 "tags": {},
1777+ "patches": {
1778+ "ppp": []
1779+ },
1780 "PublicDateAtUSN": "2020-08-04 17:00:00 UTC",
1781 "Candidate": "CVE-2020-1234",
1782 "CRD": "2020-08-04 17:00:00 UTC",
1783@@ -14,7 +17,6 @@
1784 "Discovered-by": "",
1785 "Assigned-to": "",
1786 "CVSS": [],
1787- "Patches_ppp": "",
1788 "pkgs": {
1789 "ppp": {
1790 "upstream": [
1791diff --git a/test/okay/patches-missing-1 b/test/okay/patches-missing-1
1792new file mode 100644
1793index 0000000..8b8522b
1794--- /dev/null
1795+++ b/test/okay/patches-missing-1
1796@@ -0,0 +1,26 @@
1797+PublicDateAtUSN: 2020-08-04 17:00:00 UTC
1798+Candidate: CVE-2020-0001
1799+CRD: 2020-08-04 17:00:00 UTC
1800+PublicDate: 2020-08-04 17:00:00 UTC
1801+References:
1802+ https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-0001
1803+Description:
1804+ test when patches entry is missing
1805+Ubuntu-Description:
1806+Notes:
1807+Mitigation:
1808+Bugs:
1809+Priority: medium
1810+Discovered-by:
1811+Assigned-to:
1812+CVSS:
1813+
1814+
1815+upstream_ppp: needs-triage
1816+precise/esm_ppp: needed
1817+trusty_ppp: ignored (out of standard support)
1818+trusty/esm_ppp: needed
1819+xenial_ppp: released (2.4.7-1+2ubuntu1.16.04.3)
1820+bionic_ppp: released (2.4.7-2+2ubuntu1.3)
1821+focal_ppp: released (2.4.7-2+4.1ubuntu5.1)
1822+devel_ppp: released (2.4.7-2+4.1ubuntu6)
1823diff --git a/test/okay/patches-missing-1.json b/test/okay/patches-missing-1.json
1824new file mode 100644
1825index 0000000..4dc6073
1826--- /dev/null
1827+++ b/test/okay/patches-missing-1.json
1828@@ -0,0 +1,54 @@
1829+{
1830+ "tags": {},
1831+ "patches": {},
1832+ "PublicDateAtUSN": "2020-08-04 17:00:00 UTC",
1833+ "Candidate": "CVE-2020-0001",
1834+ "CRD": "2020-08-04 17:00:00 UTC",
1835+ "PublicDate": "2020-08-04 17:00:00 UTC",
1836+ "References": "\nhttps://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-0001",
1837+ "Description": "\ntest when patches entry is missing",
1838+ "Ubuntu-Description": "",
1839+ "Notes": [],
1840+ "Mitigation": "",
1841+ "Bugs": "",
1842+ "Priority": "medium",
1843+ "Discovered-by": "",
1844+ "Assigned-to": "",
1845+ "CVSS": [],
1846+ "pkgs": {
1847+ "ppp": {
1848+ "upstream": [
1849+ "needs-triage",
1850+ ""
1851+ ],
1852+ "precise/esm": [
1853+ "needed",
1854+ ""
1855+ ],
1856+ "trusty": [
1857+ "ignored",
1858+ "out of standard support"
1859+ ],
1860+ "trusty/esm": [
1861+ "needed",
1862+ ""
1863+ ],
1864+ "xenial": [
1865+ "released",
1866+ "2.4.7-1+2ubuntu1.16.04.3"
1867+ ],
1868+ "bionic": [
1869+ "released",
1870+ "2.4.7-2+2ubuntu1.3"
1871+ ],
1872+ "focal": [
1873+ "released",
1874+ "2.4.7-2+4.1ubuntu5.1"
1875+ ],
1876+ "devel": [
1877+ "released",
1878+ "2.4.7-2+4.1ubuntu6"
1879+ ]
1880+ }
1881+ }
1882+}
1883diff --git a/test/okay/patches-missing-2 b/test/okay/patches-missing-2
1884new file mode 100644
1885index 0000000..dcbac7e
1886--- /dev/null
1887+++ b/test/okay/patches-missing-2
1888@@ -0,0 +1,35 @@
1889+PublicDateAtUSN: 2020-08-04 17:00:00 UTC
1890+Candidate: CVE-2020-0001
1891+CRD: 2020-08-04 17:00:00 UTC
1892+PublicDate: 2020-08-04 17:00:00 UTC
1893+References:
1894+ https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-0001
1895+Description:
1896+ test when patches entry is missing
1897+Ubuntu-Description:
1898+Notes:
1899+Mitigation:
1900+Bugs:
1901+Priority: medium
1902+Discovered-by:
1903+Assigned-to:
1904+CVSS:
1905+
1906+
1907+upstream_ppp: needs-triage
1908+precise/esm_ppp: needed
1909+trusty_ppp: ignored (out of standard support)
1910+trusty/esm_ppp: needed
1911+xenial_ppp: released (2.4.7-1+2ubuntu1.16.04.3)
1912+bionic_ppp: released (2.4.7-2+2ubuntu1.3)
1913+focal_ppp: released (2.4.7-2+4.1ubuntu5.1)
1914+devel_ppp: released (2.4.7-2+4.1ubuntu6)
1915+
1916+upstream_pptp: needs-triage
1917+precise/esm_pptp: needed
1918+trusty_pptp: ignored (out of standard support)
1919+trusty/esm_pptp: not-affected
1920+xenial_pptp: released (2.4.7-1+2ubuntu1.16.04.3)
1921+bionic_pptp: released (2.4.7-2+2ubuntu1.3)
1922+focal_pptp: released (2.4.7-2+4.1ubuntu5.1)
1923+devel_pptp: released (2.4.7-2+4.1ubuntu6)
1924diff --git a/test/okay/patches-missing-2.json b/test/okay/patches-missing-2.json
1925new file mode 100644
1926index 0000000..c4714d1
1927--- /dev/null
1928+++ b/test/okay/patches-missing-2.json
1929@@ -0,0 +1,88 @@
1930+{
1931+ "tags": {},
1932+ "patches": {},
1933+ "PublicDateAtUSN": "2020-08-04 17:00:00 UTC",
1934+ "Candidate": "CVE-2020-0001",
1935+ "CRD": "2020-08-04 17:00:00 UTC",
1936+ "PublicDate": "2020-08-04 17:00:00 UTC",
1937+ "References": "\nhttps://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-0001",
1938+ "Description": "\ntest when patches entry is missing",
1939+ "Ubuntu-Description": "",
1940+ "Notes": [],
1941+ "Mitigation": "",
1942+ "Bugs": "",
1943+ "Priority": "medium",
1944+ "Discovered-by": "",
1945+ "Assigned-to": "",
1946+ "CVSS": [],
1947+ "pkgs": {
1948+ "ppp": {
1949+ "upstream": [
1950+ "needs-triage",
1951+ ""
1952+ ],
1953+ "precise/esm": [
1954+ "needed",
1955+ ""
1956+ ],
1957+ "trusty": [
1958+ "ignored",
1959+ "out of standard support"
1960+ ],
1961+ "trusty/esm": [
1962+ "needed",
1963+ ""
1964+ ],
1965+ "xenial": [
1966+ "released",
1967+ "2.4.7-1+2ubuntu1.16.04.3"
1968+ ],
1969+ "bionic": [
1970+ "released",
1971+ "2.4.7-2+2ubuntu1.3"
1972+ ],
1973+ "focal": [
1974+ "released",
1975+ "2.4.7-2+4.1ubuntu5.1"
1976+ ],
1977+ "devel": [
1978+ "released",
1979+ "2.4.7-2+4.1ubuntu6"
1980+ ]
1981+ },
1982+ "pptp": {
1983+ "upstream": [
1984+ "needs-triage",
1985+ ""
1986+ ],
1987+ "precise/esm": [
1988+ "needed",
1989+ ""
1990+ ],
1991+ "trusty": [
1992+ "ignored",
1993+ "out of standard support"
1994+ ],
1995+ "trusty/esm": [
1996+ "not-affected",
1997+ ""
1998+ ],
1999+ "xenial": [
2000+ "released",
2001+ "2.4.7-1+2ubuntu1.16.04.3"
2002+ ],
2003+ "bionic": [
2004+ "released",
2005+ "2.4.7-2+2ubuntu1.3"
2006+ ],
2007+ "focal": [
2008+ "released",
2009+ "2.4.7-2+4.1ubuntu5.1"
2010+ ],
2011+ "devel": [
2012+ "released",
2013+ "2.4.7-2+4.1ubuntu6"
2014+ ]
2015+ }
2016+ }
2017+}
2018diff --git a/test/okay/patches-missing-3 b/test/okay/patches-missing-3
2019new file mode 100644
2020index 0000000..316ecb8
2021--- /dev/null
2022+++ b/test/okay/patches-missing-3
2023@@ -0,0 +1,36 @@
2024+PublicDateAtUSN: 2020-08-04 17:00:00 UTC
2025+Candidate: CVE-2020-0001
2026+CRD: 2020-08-04 17:00:00 UTC
2027+PublicDate: 2020-08-04 17:00:00 UTC
2028+References:
2029+ https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-0001
2030+Description:
2031+ test when patches entry is missing
2032+Ubuntu-Description:
2033+Notes:
2034+Mitigation:
2035+Bugs:
2036+Priority: medium
2037+Discovered-by:
2038+Assigned-to:
2039+CVSS:
2040+
2041+
2042+Patches_ppp:
2043+upstream_ppp: needs-triage
2044+precise/esm_ppp: needed
2045+trusty_ppp: ignored (out of standard support)
2046+trusty/esm_ppp: needed
2047+xenial_ppp: released (2.4.7-1+2ubuntu1.16.04.3)
2048+bionic_ppp: released (2.4.7-2+2ubuntu1.3)
2049+focal_ppp: released (2.4.7-2+4.1ubuntu5.1)
2050+devel_ppp: released (2.4.7-2+4.1ubuntu6)
2051+
2052+upstream_pptp: needs-triage
2053+precise/esm_pptp: needed
2054+trusty_pptp: ignored (out of standard support)
2055+trusty/esm_pptp: not-affected
2056+xenial_pptp: released (2.4.7-1+2ubuntu1.16.04.3)
2057+bionic_pptp: released (2.4.7-2+2ubuntu1.3)
2058+focal_pptp: released (2.4.7-2+4.1ubuntu5.1)
2059+devel_pptp: released (2.4.7-2+4.1ubuntu6)
2060diff --git a/test/okay/patches-missing-3.json b/test/okay/patches-missing-3.json
2061new file mode 100644
2062index 0000000..846d6b1
2063--- /dev/null
2064+++ b/test/okay/patches-missing-3.json
2065@@ -0,0 +1,90 @@
2066+{
2067+ "tags": {},
2068+ "patches": {
2069+ "ppp": []
2070+ },
2071+ "PublicDateAtUSN": "2020-08-04 17:00:00 UTC",
2072+ "Candidate": "CVE-2020-0001",
2073+ "CRD": "2020-08-04 17:00:00 UTC",
2074+ "PublicDate": "2020-08-04 17:00:00 UTC",
2075+ "References": "\nhttps://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-0001",
2076+ "Description": "\ntest when patches entry is missing",
2077+ "Ubuntu-Description": "",
2078+ "Notes": [],
2079+ "Mitigation": "",
2080+ "Bugs": "",
2081+ "Priority": "medium",
2082+ "Discovered-by": "",
2083+ "Assigned-to": "",
2084+ "CVSS": [],
2085+ "pkgs": {
2086+ "ppp": {
2087+ "upstream": [
2088+ "needs-triage",
2089+ ""
2090+ ],
2091+ "precise/esm": [
2092+ "needed",
2093+ ""
2094+ ],
2095+ "trusty": [
2096+ "ignored",
2097+ "out of standard support"
2098+ ],
2099+ "trusty/esm": [
2100+ "needed",
2101+ ""
2102+ ],
2103+ "xenial": [
2104+ "released",
2105+ "2.4.7-1+2ubuntu1.16.04.3"
2106+ ],
2107+ "bionic": [
2108+ "released",
2109+ "2.4.7-2+2ubuntu1.3"
2110+ ],
2111+ "focal": [
2112+ "released",
2113+ "2.4.7-2+4.1ubuntu5.1"
2114+ ],
2115+ "devel": [
2116+ "released",
2117+ "2.4.7-2+4.1ubuntu6"
2118+ ]
2119+ },
2120+ "pptp": {
2121+ "upstream": [
2122+ "needs-triage",
2123+ ""
2124+ ],
2125+ "precise/esm": [
2126+ "needed",
2127+ ""
2128+ ],
2129+ "trusty": [
2130+ "ignored",
2131+ "out of standard support"
2132+ ],
2133+ "trusty/esm": [
2134+ "not-affected",
2135+ ""
2136+ ],
2137+ "xenial": [
2138+ "released",
2139+ "2.4.7-1+2ubuntu1.16.04.3"
2140+ ],
2141+ "bionic": [
2142+ "released",
2143+ "2.4.7-2+2ubuntu1.3"
2144+ ],
2145+ "focal": [
2146+ "released",
2147+ "2.4.7-2+4.1ubuntu5.1"
2148+ ],
2149+ "devel": [
2150+ "released",
2151+ "2.4.7-2+4.1ubuntu6"
2152+ ]
2153+ }
2154+ }
2155+}
2156diff --git a/test/okay/patches-missing-4 b/test/okay/patches-missing-4
2157new file mode 100644
2158index 0000000..d37d527
2159--- /dev/null
2160+++ b/test/okay/patches-missing-4
2161@@ -0,0 +1,36 @@
2162+PublicDateAtUSN: 2020-08-04 17:00:00 UTC
2163+Candidate: CVE-2020-0001
2164+CRD: 2020-08-04 17:00:00 UTC
2165+PublicDate: 2020-08-04 17:00:00 UTC
2166+References:
2167+ https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-0001
2168+Description:
2169+ test when patches entry is missing
2170+Ubuntu-Description:
2171+Notes:
2172+Mitigation:
2173+Bugs:
2174+Priority: medium
2175+Discovered-by:
2176+Assigned-to:
2177+CVSS:
2178+
2179+
2180+upstream_ppp: needs-triage
2181+precise/esm_ppp: needed
2182+trusty_ppp: ignored (out of standard support)
2183+trusty/esm_ppp: needed
2184+xenial_ppp: released (2.4.7-1+2ubuntu1.16.04.3)
2185+bionic_ppp: released (2.4.7-2+2ubuntu1.3)
2186+focal_ppp: released (2.4.7-2+4.1ubuntu5.1)
2187+devel_ppp: released (2.4.7-2+4.1ubuntu6)
2188+
2189+Patches_pptp:
2190+upstream_pptp: needs-triage
2191+precise/esm_pptp: needed
2192+trusty_pptp: ignored (out of standard support)
2193+trusty/esm_pptp: not-affected
2194+xenial_pptp: released (2.4.7-1+2ubuntu1.16.04.3)
2195+bionic_pptp: released (2.4.7-2+2ubuntu1.3)
2196+focal_pptp: released (2.4.7-2+4.1ubuntu5.1)
2197+devel_pptp: released (2.4.7-2+4.1ubuntu6)
2198diff --git a/test/okay/patches-missing-4.json b/test/okay/patches-missing-4.json
2199new file mode 100644
2200index 0000000..6a9ba18
2201--- /dev/null
2202+++ b/test/okay/patches-missing-4.json
2203@@ -0,0 +1,90 @@
2204+{
2205+ "tags": {},
2206+ "patches": {
2207+ "pptp": []
2208+ },
2209+ "PublicDateAtUSN": "2020-08-04 17:00:00 UTC",
2210+ "Candidate": "CVE-2020-0001",
2211+ "CRD": "2020-08-04 17:00:00 UTC",
2212+ "PublicDate": "2020-08-04 17:00:00 UTC",
2213+ "References": "\nhttps://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-0001",
2214+ "Description": "\ntest when patches entry is missing",
2215+ "Ubuntu-Description": "",
2216+ "Notes": [],
2217+ "Mitigation": "",
2218+ "Bugs": "",
2219+ "Priority": "medium",
2220+ "Discovered-by": "",
2221+ "Assigned-to": "",
2222+ "CVSS": [],
2223+ "pkgs": {
2224+ "ppp": {
2225+ "upstream": [
2226+ "needs-triage",
2227+ ""
2228+ ],
2229+ "precise/esm": [
2230+ "needed",
2231+ ""
2232+ ],
2233+ "trusty": [
2234+ "ignored",
2235+ "out of standard support"
2236+ ],
2237+ "trusty/esm": [
2238+ "needed",
2239+ ""
2240+ ],
2241+ "xenial": [
2242+ "released",
2243+ "2.4.7-1+2ubuntu1.16.04.3"
2244+ ],
2245+ "bionic": [
2246+ "released",
2247+ "2.4.7-2+2ubuntu1.3"
2248+ ],
2249+ "focal": [
2250+ "released",
2251+ "2.4.7-2+4.1ubuntu5.1"
2252+ ],
2253+ "devel": [
2254+ "released",
2255+ "2.4.7-2+4.1ubuntu6"
2256+ ]
2257+ },
2258+ "pptp": {
2259+ "upstream": [
2260+ "needs-triage",
2261+ ""
2262+ ],
2263+ "precise/esm": [
2264+ "needed",
2265+ ""
2266+ ],
2267+ "trusty": [
2268+ "ignored",
2269+ "out of standard support"
2270+ ],
2271+ "trusty/esm": [
2272+ "not-affected",
2273+ ""
2274+ ],
2275+ "xenial": [
2276+ "released",
2277+ "2.4.7-1+2ubuntu1.16.04.3"
2278+ ],
2279+ "bionic": [
2280+ "released",
2281+ "2.4.7-2+2ubuntu1.3"
2282+ ],
2283+ "focal": [
2284+ "released",
2285+ "2.4.7-2+4.1ubuntu5.1"
2286+ ],
2287+ "devel": [
2288+ "released",
2289+ "2.4.7-2+4.1ubuntu6"
2290+ ]
2291+ }
2292+ }
2293+}
2294diff --git a/test/okay/priority-critical.json b/test/okay/priority-critical.json
2295index d2b7ba2..6c960ab 100644
2296--- a/test/okay/priority-critical.json
2297+++ b/test/okay/priority-critical.json
2298@@ -1,5 +1,8 @@
2299 {
2300 "tags": {},
2301+ "patches": {
2302+ "ppp": []
2303+ },
2304 "PublicDateAtUSN": "2020-08-04 17:00:00 UTC",
2305 "Candidate": "CVE-2020-0001",
2306 "CRD": "2020-08-04 17:00:00 UTC",
2307@@ -14,7 +17,6 @@
2308 "Discovered-by": "",
2309 "Assigned-to": "",
2310 "CVSS": [],
2311- "Patches_ppp": "",
2312 "pkgs": {
2313 "ppp": {
2314 "upstream": [
2315diff --git a/test/okay/priority-high.json b/test/okay/priority-high.json
2316index 315cd84..d2088c1 100644
2317--- a/test/okay/priority-high.json
2318+++ b/test/okay/priority-high.json
2319@@ -1,5 +1,8 @@
2320 {
2321 "tags": {},
2322+ "patches": {
2323+ "ppp": []
2324+ },
2325 "PublicDateAtUSN": "2020-08-04 17:00:00 UTC",
2326 "Candidate": "CVE-2020-0001",
2327 "CRD": "2020-08-04 17:00:00 UTC",
2328@@ -14,7 +17,6 @@
2329 "Discovered-by": "",
2330 "Assigned-to": "",
2331 "CVSS": [],
2332- "Patches_ppp": "",
2333 "pkgs": {
2334 "ppp": {
2335 "upstream": [
2336diff --git a/test/okay/priority-low.json b/test/okay/priority-low.json
2337index 332e089..4674b3e 100644
2338--- a/test/okay/priority-low.json
2339+++ b/test/okay/priority-low.json
2340@@ -1,5 +1,8 @@
2341 {
2342 "tags": {},
2343+ "patches": {
2344+ "ppp": []
2345+ },
2346 "PublicDateAtUSN": "2020-08-04 17:00:00 UTC",
2347 "Candidate": "CVE-2020-0003",
2348 "CRD": "2020-08-04 17:00:00 UTC",
2349@@ -14,7 +17,6 @@
2350 "Discovered-by": "",
2351 "Assigned-to": "",
2352 "CVSS": [],
2353- "Patches_ppp": "",
2354 "pkgs": {
2355 "ppp": {
2356 "upstream": [
2357diff --git a/test/okay/priority-medium.json b/test/okay/priority-medium.json
2358index 9b08b9f..e3b5227 100644
2359--- a/test/okay/priority-medium.json
2360+++ b/test/okay/priority-medium.json
2361@@ -1,5 +1,8 @@
2362 {
2363 "tags": {},
2364+ "patches": {
2365+ "ppp": []
2366+ },
2367 "PublicDateAtUSN": "2020-08-04 17:00:00 UTC",
2368 "Candidate": "CVE-2020-0001",
2369 "CRD": "2020-08-04 17:00:00 UTC",
2370@@ -14,7 +17,6 @@
2371 "Discovered-by": "",
2372 "Assigned-to": "",
2373 "CVSS": [],
2374- "Patches_ppp": "",
2375 "pkgs": {
2376 "ppp": {
2377 "upstream": [
2378@@ -51,4 +53,4 @@
2379 ]
2380 }
2381 }
2382-}
2383\ No newline at end of file
2384+}
2385diff --git a/test/okay/priority-negligible.json b/test/okay/priority-negligible.json
2386index 64c288f..f940c73 100644
2387--- a/test/okay/priority-negligible.json
2388+++ b/test/okay/priority-negligible.json
2389@@ -1,5 +1,8 @@
2390 {
2391 "tags": {},
2392+ "patches": {
2393+ "ppp": []
2394+ },
2395 "PublicDateAtUSN": "2020-08-04 17:00:00 UTC",
2396 "Candidate": "CVE-2020-0002",
2397 "CRD": "2020-08-04 17:00:00 UTC",
2398@@ -14,7 +17,6 @@
2399 "Discovered-by": "",
2400 "Assigned-to": "",
2401 "CVSS": [],
2402- "Patches_ppp": "",
2403 "pkgs": {
2404 "ppp": {
2405 "upstream": [
2406diff --git a/test/okay/priority-untriaged.json b/test/okay/priority-untriaged.json
2407index 3ae7ed0..f4c977f 100644
2408--- a/test/okay/priority-untriaged.json
2409+++ b/test/okay/priority-untriaged.json
2410@@ -1,5 +1,8 @@
2411 {
2412 "tags": {},
2413+ "patches": {
2414+ "ppp": []
2415+ },
2416 "PublicDateAtUSN": "2020-08-04 17:00:00 UTC",
2417 "Candidate": "CVE-2020-0001",
2418 "CRD": "2020-08-04 17:00:00 UTC",
2419@@ -14,7 +17,6 @@
2420 "Discovered-by": "",
2421 "Assigned-to": "",
2422 "CVSS": [],
2423- "Patches_ppp": "",
2424 "pkgs": {
2425 "ppp": {
2426 "upstream": [

Subscribers

People subscribed via source and target branches