This is a no-op because the section names are lower-cased already in get_base_var, this is purely for demonstration that we do not need to care about case issues in this part of the code. Signed-off-by: Stefan Beller <sbeller@xxxxxxxxxx> --- config.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/config.c b/config.c index de646d2c56f..c247164ad17 100644 --- a/config.c +++ b/config.c @@ -2355,14 +2355,28 @@ static int store_aux_event(enum config_event_t type, store->parsed[store->parsed_nr].type = type; if (type == CONFIG_EVENT_SECTION) { + char *p; + int slen; /* section length */ if (cf->var.len < 2 || cf->var.buf[cf->var.len - 1] != '.') return error("invalid section name '%s'", cf->var.buf); + p = strchr(cf->var.buf, '.'); + if (!p) + /* no subsection, so treat all as section: */ + slen = store->baselen; + else + slen = p - cf->var.buf; + + if (slen > store->baselen) + slen = store->baselen; + /* Is this the section we were looking for? */ store->is_keys_section = store->parsed[store->parsed_nr].is_keys_section = cf->var.len - 1 == store->baselen && - !strncmp(cf->var.buf, store->key, store->baselen); + !strncasecmp(cf->var.buf, store->key, slen) && + !strncmp(cf->var.buf + slen, store->key + slen, + store->baselen - slen); if (store->is_keys_section) { store->section_seen = 1; ALLOC_GROW(store->seen, store->seen_nr + 1, -- 2.18.0.132.g195c49a2227