36 lines
1012 B
Diff
36 lines
1012 B
Diff
From 419cf1f1c4721829c4d68c9e5fee112a5da5890f Mon Sep 17 00:00:00 2001
|
|
From: Serge Hallyn <serge@hallyn.com>
|
|
Date: Fri, 19 May 2023 14:49:04 -0500
|
|
Subject: [PATCH] def_load: avoid NULL deref
|
|
|
|
If econf_getStringValue() fails, it will return an error and
|
|
set value to NULL. Look for the error and avoid dereferencing
|
|
value in that case.
|
|
|
|
Signed-off-by: Serge Hallyn <serge@hallyn.com>
|
|
---
|
|
lib/getdef.c | 7 ++++++-
|
|
1 file changed, 6 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/lib/getdef.c b/lib/getdef.c
|
|
index 39cd62d5..8075821b 100644
|
|
--- a/lib/getdef.c
|
|
+++ b/lib/getdef.c
|
|
@@ -505,7 +505,12 @@ static void def_load (void)
|
|
for (size_t i = 0; i < key_number; i++) {
|
|
char *value;
|
|
|
|
- econf_getStringValue(defs_file, NULL, keys[i], &value);
|
|
+ error = econf_getStringValue(defs_file, NULL, keys[i], &value);
|
|
+ if (error) {
|
|
+ SYSLOG ((LOG_CRIT, "failed reading key %zu from econf [%s]",
|
|
+ i, econf_errString(error)));
|
|
+ exit (EXIT_FAILURE);
|
|
+ }
|
|
|
|
/*
|
|
* Store the value in def_table.
|
|
--
|
|
2.27.0
|
|
|