Handle empty files properly
authorAlexander Popov <alex.popov@linux.com>
Sun, 6 Oct 2024 17:29:22 +0000 (20:29 +0300)
committerAlexander Popov <alex.popov@linux.com>
Sun, 6 Oct 2024 18:01:25 +0000 (21:01 +0300)
kernel_hardening_checker/__init__.py

index 740356e0c6adf1acd8da7b09fbba20e17e2a1765..13094b257ad276809a3d8b56971a9d05c4b71c6e 100755 (executable)
@@ -199,7 +199,7 @@ def parse_cmdline_file(mode: StrOrNone, parsed_options: Dict[str, str], fname: s
     with open(fname, 'r', encoding='utf-8') as f:
         line = f.readline()
         if not line:
-            sys.exit(f'[!] ERROR: empty "{fname}"')
+            sys.exit(f'[!] ERROR: empty cmdline file "{fname}"')
 
         opts = line.split()
 
@@ -225,6 +225,9 @@ def parse_sysctl_file(mode: StrOrNone, parsed_options: Dict[str, str], fname: st
         sys.exit(f'[!] ERROR: unable to open {fname}, are you sure it exists?')
 
     with open(fname, 'r', encoding='utf-8') as f:
+        if os.stat(fname).st_size == 0:
+            sys.exit(f'[!] ERROR: empty sysctl file "{fname}"')
+
         sysctl_pattern = re.compile(r"[a-zA-Z0-9/\._-]+ ?=.*$")
         for line in f.readlines():
             line = line.strip()