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
aa073c2c
Commit
aa073c2c
authored
3 years ago
by
Alexander Popov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add the infrastructure for cmdline checks
parent
7425f0e2
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
21 additions
and
5 deletions
+21
-5
__init__.py
kconfig_hardened_check/__init__.py
+21
-5
No files found.
kconfig_hardened_check/__init__.py
View file @
aa073c2c
...
...
@@ -85,7 +85,7 @@ import re
import
json
from
.__about__
import
__version__
TYPES_OF_CHECKS
=
(
'kconfig'
,
'version
'
)
SIMPLE_OPTION_TYPES
=
(
'kconfig'
,
'version'
,
'cmdline
'
)
class
OptCheck
:
# Constructor without the 'expected' parameter is for option presence checks (any value is OK)
...
...
@@ -738,15 +738,15 @@ def print_checklist(mode, checklist, with_results):
def
populate_simple_opt_with_data
(
opt
,
data
,
data_type
):
if
opt
.
type
==
'complex'
:
sys
.
exit
(
'[!] ERROR: unexpected ComplexOptCheck {}: {}'
.
format
(
opt
.
name
,
vars
(
opt
)))
if
opt
.
type
not
in
TYPES_OF_CHECK
S
:
if
opt
.
type
not
in
SIMPLE_OPTION_TYPE
S
:
sys
.
exit
(
'[!] ERROR: invalid opt type "{}" for {}'
.
format
(
opt
.
type
,
opt
.
name
))
if
data_type
not
in
TYPES_OF_CHECK
S
:
if
data_type
not
in
SIMPLE_OPTION_TYPE
S
:
sys
.
exit
(
'[!] ERROR: invalid data type "{}"'
.
format
(
data_type
))
if
data_type
!=
opt
.
type
:
return
if
data_type
==
'kconfig'
:
if
data_type
in
(
'kconfig'
,
'cmdline'
)
:
opt
.
state
=
data
.
get
(
opt
.
name
,
None
)
elif
data_type
==
'version'
:
opt
.
ver
=
data
...
...
@@ -763,7 +763,7 @@ def populate_opt_with_data(opt, data, data_type):
else
:
populate_simple_opt_with_data
(
o
,
data
,
data_type
)
else
:
if
opt
.
type
!=
'kconfig'
:
if
opt
.
type
not
in
(
'kconfig'
,
'cmdline'
)
:
sys
.
exit
(
'[!] ERROR: bad type "{}" for a simple check {}'
.
format
(
opt
.
type
,
opt
.
name
))
populate_simple_opt_with_data
(
opt
,
data
,
data_type
)
...
...
@@ -802,6 +802,13 @@ def parse_kconfig_file(parsed_options, fname):
parsed_options
[
option
]
=
value
def
parse_cmdline_file
(
parsed_options
,
fname
):
with
open
(
fname
,
'r'
)
as
f
:
print
(
'FIXME! cmdline file:'
)
for
line
in
f
.
readlines
():
print
(
line
)
def
main
():
# Report modes:
# * verbose mode for
...
...
@@ -858,6 +865,15 @@ def main():
populate_with_data
(
config_checklist
,
parsed_kconfig_options
,
'kconfig'
)
populate_with_data
(
config_checklist
,
kernel_version
,
'version'
)
if
args
.
cmdline
:
# add relevant cmdline checks to the checklist
add_cmdline_checks
(
config_checklist
,
arch
)
# populate the checklist with the parsed kconfig data
parsed_cmdline_options
=
OrderedDict
()
parse_cmdline_file
(
parsed_cmdline_options
,
args
.
cmdline
)
populate_with_data
(
config_checklist
,
parsed_cmdline_options
,
'cmdline'
)
# now everything is ready for performing the checks
perform_checks
(
config_checklist
)
...
...
This diff is collapsed.
Click to expand it.
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