Blob Blame History Raw
From ce89ed552ff6feb1ecc1c05269022913b5a8edcc Mon Sep 17 00:00:00 2001
From: Rob Crittenden <rcritten@redhat.com>
Date: Thu, 28 Apr 2022 08:46:02 -0400
Subject: [PATCH] Limit config file delimiters to =, catch empty values

ConfigParser allows both = and : as a delimiter. Limit to
just = to match the configuration file man page.

Don't allow empty values in options in the config file.

https://bugzilla.redhat.com/show_bug.cgi?id=2079739

Signed-off-by: Rob Crittenden <rcritten@redhat.com>
---
 src/ipahealthcheck/core/config.py | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/src/ipahealthcheck/core/config.py b/src/ipahealthcheck/core/config.py
index c4322a5..01c7722 100644
--- a/src/ipahealthcheck/core/config.py
+++ b/src/ipahealthcheck/core/config.py
@@ -87,7 +87,7 @@ def read_config(config_file):
         )
         return config
 
-    parser = ConfigParser()
+    parser = ConfigParser(delimiters='=')
     try:
         parser.read(config_file)
     except ParsingError as e:
@@ -102,6 +102,13 @@ def read_config(config_file):
     items = parser.items(CONFIG_SECTION)
 
     for (key, value) in items:
-        config[key] = value
+        if len(value) == 0 or value is None:
+            logging.error(
+                "Empty value for %s in %s [%s]",
+                key, config_file, CONFIG_SECTION
+            )
+            return None
+        else:
+            config[key] = value
 
     return config
-- 
2.31.1