if (need <= av->sz) return;
newsz = av->sz ? 2*av->sz : 8;
while (newsz < need) newsz *= 2;
- av->v = xrealloc(av->v - av->o, newsz*sizeof(char *)) + av->o;
+ av->v = xrealloc(av->v - av->o, newsz*sizeof(char *)); av->v += av->o;
av->sz = newsz;
}
* to have, so we can allocate the `parents' vector and fill it in.
*/
sect->nparents = av.n/2;
- sect->parents = xmalloc(sect->nparents*sizeof(sect->parents));
+ sect->parents = xmalloc(sect->nparents*sizeof(*sect->parents));
for (i = 0; i < av.n; i += 2) {
n = av.v[i + 1] - av.v[i];
parent = config_find_section_n(conf, 0, av.v[i], n);
struct config_var *var =
config_find_var_n(conf, sect, CF_CREAT, name, namelen);
- if (var->f&~f&CF_OVERRIDE) return;
+ if (var->f&~f&CF_OVERRIDE) return (var);
free(var->val); var->val = xstrndup(value, valuelen); var->n = valuelen;
var->f = f;
return (var);