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
25ccc144
Unverified
Commit
25ccc144
authored
Mar 26, 2023
by
Alexander Popov
Committed by
GitHub
Mar 26, 2023
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #80 from nE0sIghT/feature/gzipped-config
Added support for gzipped config (eg. /proc/config.gz)
parents
b65af76d
8def541b
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
13 additions
and
4 deletions
+13
-4
__init__.py
kconfig_hardened_check/__init__.py
+13
-4
No files found.
kconfig_hardened_check/__init__.py
View file @
25ccc144
...
...
@@ -12,6 +12,7 @@ This module performs input/output.
# pylint: disable=missing-function-docstring,line-too-long,invalid-name,too-many-branches,too-many-statements
import
gzip
import
sys
from
argparse
import
ArgumentParser
from
collections
import
OrderedDict
...
...
@@ -22,8 +23,16 @@ from .checks import add_kconfig_checks, add_cmdline_checks, normalize_cmdline_op
from
.engine
import
populate_with_data
,
perform_checks
def
_open
(
file
:
str
,
*
args
,
**
kwargs
):
open_method
=
open
if
file
.
endswith
(
".gz"
):
open_method
=
gzip
.
open
return
open_method
(
file
,
*
args
,
**
kwargs
)
def
detect_arch
(
fname
,
archs
):
with
open
(
fname
,
'r
'
,
encoding
=
'utf-8'
)
as
f
:
with
_open
(
fname
,
'rt
'
,
encoding
=
'utf-8'
)
as
f
:
arch_pattern
=
re
.
compile
(
"CONFIG_[a-zA-Z0-9_]*=y"
)
arch
=
None
for
line
in
f
.
readlines
():
...
...
@@ -40,7 +49,7 @@ def detect_arch(fname, archs):
def
detect_kernel_version
(
fname
):
with
open
(
fname
,
'r
'
,
encoding
=
'utf-8'
)
as
f
:
with
_open
(
fname
,
'rt
'
,
encoding
=
'utf-8'
)
as
f
:
ver_pattern
=
re
.
compile
(
"# Linux/.* Kernel Configuration"
)
for
line
in
f
.
readlines
():
if
ver_pattern
.
match
(
line
):
...
...
@@ -58,7 +67,7 @@ def detect_kernel_version(fname):
def
detect_compiler
(
fname
):
gcc_version
=
None
clang_version
=
None
with
open
(
fname
,
'r
'
,
encoding
=
'utf-8'
)
as
f
:
with
_open
(
fname
,
'rt
'
,
encoding
=
'utf-8'
)
as
f
:
gcc_version_pattern
=
re
.
compile
(
"CONFIG_GCC_VERSION=[0-9]*"
)
clang_version_pattern
=
re
.
compile
(
"CONFIG_CLANG_VERSION=[0-9]*"
)
for
line
in
f
.
readlines
():
...
...
@@ -146,7 +155,7 @@ def print_checklist(mode, checklist, with_results):
def
parse_kconfig_file
(
parsed_options
,
fname
):
with
open
(
fname
,
'r
'
,
encoding
=
'utf-8'
)
as
f
:
with
_open
(
fname
,
'rt
'
,
encoding
=
'utf-8'
)
as
f
:
opt_is_on
=
re
.
compile
(
"CONFIG_[a-zA-Z0-9_]*=[a-zA-Z0-9_
\"
]*"
)
opt_is_off
=
re
.
compile
(
"# CONFIG_[a-zA-Z0-9_]* is not set"
)
...
...
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