shadow/backport-def_load-avoid-NULL-deref.patch
yunjia_w 69dfb82329 backport some patches
Signed-off-by: yunjia_w <yunjia.wang@huawei.com>
2023-08-22 11:22:12 +08:00

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