Blame SOURCES/0007-Limit-config-file-delimiters-to-catch-empty-values.patch

d27d41
From ce89ed552ff6feb1ecc1c05269022913b5a8edcc Mon Sep 17 00:00:00 2001
d27d41
From: Rob Crittenden <rcritten@redhat.com>
d27d41
Date: Thu, 28 Apr 2022 08:46:02 -0400
d27d41
Subject: [PATCH] Limit config file delimiters to =, catch empty values
d27d41
d27d41
ConfigParser allows both = and : as a delimiter. Limit to
d27d41
just = to match the configuration file man page.
d27d41
d27d41
Don't allow empty values in options in the config file.
d27d41
d27d41
https://bugzilla.redhat.com/show_bug.cgi?id=2079739
d27d41
d27d41
Signed-off-by: Rob Crittenden <rcritten@redhat.com>
d27d41
---
d27d41
 src/ipahealthcheck/core/config.py | 11 +++++++++--
d27d41
 1 file changed, 9 insertions(+), 2 deletions(-)
d27d41
d27d41
diff --git a/src/ipahealthcheck/core/config.py b/src/ipahealthcheck/core/config.py
d27d41
index c4322a5..01c7722 100644
d27d41
--- a/src/ipahealthcheck/core/config.py
d27d41
+++ b/src/ipahealthcheck/core/config.py
d27d41
@@ -87,7 +87,7 @@ def read_config(config_file):
d27d41
         )
d27d41
         return config
d27d41
 
d27d41
-    parser = ConfigParser()
d27d41
+    parser = ConfigParser(delimiters='=')
d27d41
     try:
d27d41
         parser.read(config_file)
d27d41
     except ParsingError as e:
d27d41
@@ -102,6 +102,13 @@ def read_config(config_file):
d27d41
     items = parser.items(CONFIG_SECTION)
d27d41
 
d27d41
     for (key, value) in items:
d27d41
-        config[key] = value
d27d41
+        if len(value) == 0 or value is None:
d27d41
+            logging.error(
d27d41
+                "Empty value for %s in %s [%s]",
d27d41
+                key, config_file, CONFIG_SECTION
d27d41
+            )
d27d41
+            return None
d27d41
+        else:
d27d41
+            config[key] = value
d27d41
 
d27d41
     return config
d27d41
-- 
d27d41
2.31.1
d27d41