fix(config): fix parse error when list ends on last line of config file (#3772)

This commit is contained in:
ReenigneArcher 2025-03-31 16:05:02 -04:00 committed by GitHub
parent 7ca2721739
commit fc9b548edd
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -652,9 +652,13 @@ namespace config {
// Lists might contain newlines
if (*begin_val == '[') {
endl = skip_list(begin_val + 1, end);
if (endl == end) {
BOOST_LOG(warning) << "config: Missing ']' in config option: " << to_string(begin, end_name);
// Check if we reached the end of the file without finding a closing bracket
// We know we have a valid closing bracket if:
// 1. We didn't reach the end, or
// 2. We reached the end but the last character was the matching closing bracket
if (endl == end && end == begin_val + 1) {
BOOST_LOG(warning) << "config: Missing ']' in config option: " << to_string(begin, end_name);
return std::make_pair(endl, std::nullopt);
}
}