aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Deutschmann <whissi@gentoo.org>2017-01-09 16:36:07 +0100
committerThomas Deutschmann <whissi@gentoo.org>2017-01-09 16:36:07 +0100
commitf4f55c3a59583336b249e098abffbe75400f2df5 (patch)
treecc1e69a0d252b8ebf066d2c2567d813437da1181
parentcvetool: Fix TypeError when requesting CVE info for not yet published CVE (diff)
downloadsecurity-f4f55c3a59583336b249e098abffbe75400f2df5.tar.gz
security-f4f55c3a59583336b249e098abffbe75400f2df5.tar.bz2
security-f4f55c3a59583336b249e098abffbe75400f2df5.zip
cvetool: Detect missing CVE and catch exception when requesting CVE info
-rwxr-xr-xbin/cvetool13
1 files changed, 11 insertions, 2 deletions
diff --git a/bin/cvetool b/bin/cvetool
index d6c2f6d..b8aa5ca 100755
--- a/bin/cvetool
+++ b/bin/cvetool
@@ -15,6 +15,9 @@ URI_BASE = 'https://glsamaker.gentoo.org'
class CVETool:
""" Interface to GLSAMaker's CVETool """
+ class NotFoundError(RuntimeError):
+ pass
+
def __init__(self, auth, command, args):
self.auth = auth
@@ -46,7 +49,11 @@ class CVETool:
sys.exit(1)
def info(self, cve):
- data = self.json_request('/cve/info/' + cve + '.json')
+ try:
+ data = self.json_request('/cve/info/' + cve + '.json')
+ except self.NotFoundError as e:
+ print('{} not found in Gentoo\'s CVE database!'.format(cve))
+ sys.exit(0)
print(' CVE ID: ' + data['cve_id'])
print(' Summary: ' + data['summary'])
@@ -107,7 +114,9 @@ class CVETool:
response, content = client.request(full_uri, method, headers = { 'Authorization': 'Basic ' + self.auth })
status = response['status']
- if (status[0] != '2' and status != '304'):
+ if (status == '404'):
+ raise self.NotFoundError(full_uri + ': ' + status)
+ elif (status[0] != '2' and status != '304'):
raise RuntimeError(full_uri + ': ' + status)
return content.decode('utf-8')