aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2023-12-10 01:03:40 -0500
committerJoseph Hunkeler <jhunkeler@gmail.com>2023-12-10 01:03:40 -0500
commit2d0c4492b676a6ae889a19530a6cd99ac27b267e (patch)
treeb73aa507e309a98d320522f99249bccf0faaa5b0
parentbe239071af02a0056fbc4ea07caf8efd27725ae1 (diff)
downloadstasis-2d0c4492b676a6ae889a19530a6cd99ac27b267e.tar.gz
Fix segfault on invalid section name
-rw-r--r--src/ini.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/ini.c b/src/ini.c
index e34088e..ffa258d 100644
--- a/src/ini.c
+++ b/src/ini.c
@@ -289,6 +289,13 @@ struct INIFILE *ini_open(const char *filename) {
// Test for section header: [string]
if (startswith(line, "[")) {
+ key_last = NULL;
+ char *name = substring_between(line, "[]");
+ if (!name) {
+ fprintf(stderr, "error: invalid section syntax, line %zu: '%s'\n", i + 1, line);
+ return NULL;
+ }
+
// Ignore default section because we already have an implicit one
if (!strncmp(&line[1], "default", strlen("default"))) {
continue;