summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBjoern Tropf <asymmail@googlemail.com>2009-08-25 19:28:45 +0200
committerBjoern Tropf <asymmail@googlemail.com>2009-08-25 19:28:45 +0200
commit83d27a77a53edc5cb7d325e6c72c1b3bacfc0cb4 (patch)
treea915c8d1f36b806fc6dc7bfc4635059108f9b659 /kernellib.py
parentImplement IntervalTestCase (diff)
downloadkernel-check-83d27a77a53edc5cb7d325e6c72c1b3bacfc0cb4.tar.gz
kernel-check-83d27a77a53edc5cb7d325e6c72c1b3bacfc0cb4.tar.bz2
kernel-check-83d27a77a53edc5cb7d325e6c72c1b3bacfc0cb4.zip
Add hardened/git kernel check
Move genpatch as attribute to kernel
Diffstat (limited to 'kernellib.py')
-rwxr-xr-xkernellib.py18
1 files changed, 11 insertions, 7 deletions
diff --git a/kernellib.py b/kernellib.py
index 21921b3..d28323c 100755
--- a/kernellib.py
+++ b/kernellib.py
@@ -46,6 +46,8 @@ REGEX = {
'r_kernel' : re.compile(r'^r\d{1,3}$')
}
+SUPPORTED = ['gentoo', 'git', 'hardened']
+
KERNEL_TYPES = [
'aa', 'acpi', 'ac', 'alpha', 'arm', 'as', 'cell', 'ck', 'compaq', 'crypto',
'development', 'gaming','gentoo-dev', 'gentoo', 'gentoo-test', 'gfs',
@@ -212,6 +214,7 @@ class Kernel:
revision = str()
source = str()
version = str()
+ genpatch = None
def __init__(self, source):
self.source = source
@@ -222,8 +225,9 @@ class Kernel:
def __eq__(self, other):
- return (''.join((self.revision, self.source, self.version))
- == ''.join((other.revision, other.source, other.version)))
+ return (''.join((self.revision, self.source, self.version,
+ str(self.genpatch))) == ''.join((other.revision,
+ other.source, other.version, str(other.genpatch))))
def __ne__(self, other):
@@ -668,7 +672,7 @@ def find_cve(cve, directory):
return None
-def eval_cve_files(directory, kernel, kernel_gp, arch):
+def eval_cve_files(directory, kernel, arch):
'Returns a vulnerabilty evaluation'
files = parse_cve_files(directory)
@@ -687,7 +691,7 @@ def eval_cve_files(directory, kernel, kernel_gp, arch):
else:
evaluation.arch += 1
- if is_affected(item.affected, kernel, kernel_gp, item):
+ if is_affected(item.affected, kernel, item):
evaluation.affected.append(item)
else:
evaluation.unaffected.append(item)
@@ -695,10 +699,10 @@ def eval_cve_files(directory, kernel, kernel_gp, arch):
return evaluation
-def is_affected(interval_list, kernel, kernel_gp, item): #TODO Remove item
+def is_affected(interval_list, kernel, item): #TODO Remove item
'Returns true if a kernel is affected'
- kernel_gentoo = (kernel.source == 'gentoo' and kernel_gp is not None)
+ kernel_gentoo = (kernel.source == 'gentoo' and kernel.genpatch is not None)
kernel_affected = False
kernel_linux_affected = False
kernel_gp_affected = False
@@ -710,7 +714,7 @@ def is_affected(interval_list, kernel, kernel_gp, item): #TODO Remove item
if interval.name == 'genpatches':
gentoo_interval = True
if kernel_gentoo:
- if is_in_interval(interval, kernel_gp, item):
+ if is_in_interval(interval, kernel.genpatch, item):
kernel_gp_affected = True
elif interval.name == 'linux':