fix gcc build, introduce a hard limit on ini section size

This commit is contained in:
Enno Rehling 2017-01-21 20:39:46 +01:00
parent ebbe4fa4ac
commit 75a97c2977
1 changed files with 2 additions and 8 deletions

View File

@ -721,15 +721,12 @@ void config_set_from(const dictionary *d)
char key[128];
const char *sec = iniparser_getsecname(d, s);
int k, nkeys = iniparser_getsecnkeys(d, sec);
char *akeys[MAXKEYS];
char ** keys = akeys;
const char *keys[MAXKEYS];
size_t slen = strlen(sec);
assert(nkeys <= MAXKEYS);
assert(slen<sizeof(key));
memcpy(key, sec, slen);
key[slen] = '.';
if (nkeys>MAXKEYS) {
keys = malloc(sizeof(const char *) * nkeys);
}
iniparser_getseckeys(d, sec, keys);
for (k=0;k!=nkeys;++k) {
const char *val;
@ -741,9 +738,6 @@ void config_set_from(const dictionary *d)
config_set(key, val);
}
}
if (keys!=akeys) {
free(keys);
}
}
}