From 2ae16c8c615827a34fd5075cb81ba1997f8df934 Mon Sep 17 00:00:00 2001 From: kichikuou Date: Sat, 6 Apr 2024 08:16:04 +0900 Subject: [PATCH] Fix crash in system3.ini parser Fixes #27. --- src/config.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/config.cpp b/src/config.cpp index 99985ae..c00ab76 100644 --- a/src/config.cpp +++ b/src/config.cpp @@ -127,6 +127,8 @@ void Config::load_ini() if (line[0] == ';') // comment continue; + if (is_empty_line(line)) + continue; if (sscanf(line, "[%[^]]]", val)) { if (strcasecmp(val, "config") == 0) @@ -138,7 +140,7 @@ void Config::load_ini() } else if (current_section == CONFIG) { char *key, *val; std::tie(key, val) = parse_keyval(line); - if (!key && !is_empty_line(line)) { + if (!key) { WARNING(INIFILENAME ":%d parse error", lineno); continue; } @@ -167,7 +169,7 @@ void Config::load_ini() } else if (current_section == STRING) { char *key, *val; std::tie(key, val) = parse_keyval(line); - if (!key && !is_empty_line(line)) { + if (!key) { WARNING(INIFILENAME ":%d parse error", lineno); continue; } @@ -191,7 +193,7 @@ void Config::load_ini() strings.dps_mariko = val; else WARNING(INIFILENAME ":%d unknown key '%s'", lineno, key); - } else if (!is_empty_line(line)) { + } else { WARNING(INIFILENAME ":%d parse error", lineno); } }