Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
K
kernel-hardening-checker
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
fact-depend
kernel-hardening-checker
Commits
271e6bf0
Commit
271e6bf0
authored
Jul 13, 2020
by
Alexander Popov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Get rid of 'kernel_version' global variable
(done while solving the issue #45)
parent
eeb0b9ee
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
10 additions
and
9 deletions
+10
-9
__init__.py
kconfig_hardened_check/__init__.py
+10
-9
No files found.
kconfig_hardened_check/__init__.py
View file @
271e6bf0
...
@@ -73,8 +73,6 @@ report_modes = ['verbose', 'json']
...
@@ -73,8 +73,6 @@ report_modes = ['verbose', 'json']
supported_archs
=
[
'X86_64'
,
'X86_32'
,
'ARM64'
,
'ARM'
]
supported_archs
=
[
'X86_64'
,
'X86_32'
,
'ARM64'
,
'ARM'
]
kernel_version
=
None
class
OptCheck
:
class
OptCheck
:
def
__init__
(
self
,
reason
,
decision
,
name
,
expected
):
def
__init__
(
self
,
reason
,
decision
,
name
,
expected
):
...
@@ -109,16 +107,17 @@ class OptCheck:
...
@@ -109,16 +107,17 @@ class OptCheck:
class
VerCheck
:
class
VerCheck
:
def
__init__
(
self
,
ver_expected
):
def
__init__
(
self
,
ver_expected
):
self
.
ver_expected
=
ver_expected
self
.
ver_expected
=
ver_expected
self
.
ver
=
None
self
.
result
=
None
self
.
result
=
None
def
check
(
self
):
def
check
(
self
):
if
kernel_version
[
0
]
>
self
.
ver_expected
[
0
]:
if
self
.
ver
[
0
]
>
self
.
ver_expected
[
0
]:
self
.
result
=
'OK: version >= '
+
str
(
self
.
ver_expected
[
0
])
+
'.'
+
str
(
self
.
ver_expected
[
1
])
self
.
result
=
'OK: version >= '
+
str
(
self
.
ver_expected
[
0
])
+
'.'
+
str
(
self
.
ver_expected
[
1
])
return
True
return
True
if
kernel_version
[
0
]
<
self
.
ver_expected
[
0
]:
if
self
.
ver
[
0
]
<
self
.
ver_expected
[
0
]:
self
.
result
=
'FAIL: version < '
+
str
(
self
.
ver_expected
[
0
])
+
'.'
+
str
(
self
.
ver_expected
[
1
])
self
.
result
=
'FAIL: version < '
+
str
(
self
.
ver_expected
[
0
])
+
'.'
+
str
(
self
.
ver_expected
[
1
])
return
False
return
False
if
kernel_version
[
1
]
>=
self
.
ver_expected
[
1
]:
if
self
.
ver
[
1
]
>=
self
.
ver_expected
[
1
]:
self
.
result
=
'OK: version >= '
+
str
(
self
.
ver_expected
[
0
])
+
'.'
+
str
(
self
.
ver_expected
[
1
])
self
.
result
=
'OK: version >= '
+
str
(
self
.
ver_expected
[
0
])
+
'.'
+
str
(
self
.
ver_expected
[
1
])
return
True
return
True
self
.
result
=
'FAIL: version < '
+
str
(
self
.
ver_expected
[
0
])
+
'.'
+
str
(
self
.
ver_expected
[
1
])
self
.
result
=
'FAIL: version < '
+
str
(
self
.
ver_expected
[
0
])
+
'.'
+
str
(
self
.
ver_expected
[
1
])
...
@@ -563,13 +562,15 @@ def print_checklist(mode, checklist, with_results):
...
@@ -563,13 +562,15 @@ def print_checklist(mode, checklist, with_results):
print
(
'[+] Config check is finished:
\'
OK
\'
- {} /
\'
FAIL
\'
- {}'
.
format
(
ok_count
,
error_count
))
print
(
'[+] Config check is finished:
\'
OK
\'
- {} /
\'
FAIL
\'
- {}'
.
format
(
ok_count
,
error_count
))
def
perform_checks
(
checklist
,
parsed_options
):
def
perform_checks
(
checklist
,
parsed_options
,
kernel_version
):
for
opt
in
checklist
:
for
opt
in
checklist
:
if
hasattr
(
opt
,
'opts'
):
if
hasattr
(
opt
,
'opts'
):
# prepare ComplexOptCheck
# prepare ComplexOptCheck
for
o
in
opt
.
opts
:
for
o
in
opt
.
opts
:
if
hasattr
(
o
,
'state'
):
if
hasattr
(
o
,
'state'
):
o
.
state
=
parsed_options
.
get
(
o
.
name
,
None
)
o
.
state
=
parsed_options
.
get
(
o
.
name
,
None
)
if
hasattr
(
o
,
'ver'
):
o
.
ver
=
kernel_version
else
:
else
:
# prepare simple check
# prepare simple check
if
not
hasattr
(
opt
,
'state'
):
if
not
hasattr
(
opt
,
'state'
):
...
@@ -605,9 +606,9 @@ def parse_config_file(parsed_options, fname):
...
@@ -605,9 +606,9 @@ def parse_config_file(parsed_options, fname):
def
main
():
def
main
():
global
kernel_version
mode
=
None
mode
=
None
arch
=
None
kernel_version
=
None
config_checklist
=
[]
config_checklist
=
[]
parsed_options
=
OrderedDict
()
parsed_options
=
OrderedDict
()
...
@@ -645,7 +646,7 @@ def main():
...
@@ -645,7 +646,7 @@ def main():
construct_checklist
(
config_checklist
,
arch
)
construct_checklist
(
config_checklist
,
arch
)
parse_config_file
(
parsed_options
,
args
.
config
)
parse_config_file
(
parsed_options
,
args
.
config
)
perform_checks
(
config_checklist
,
parsed_options
)
perform_checks
(
config_checklist
,
parsed_options
,
kernel_version
)
if
mode
==
'verbose'
:
if
mode
==
'verbose'
:
print_unknown_options
(
config_checklist
,
parsed_options
)
print_unknown_options
(
config_checklist
,
parsed_options
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment