unsigned line = 0;
char *section = NULL;
int r;
+ bool ours = false;
assert(filename);
assert(t);
log_error("Failed to open configuration file '%s': %s", filename, strerror(-r));
goto finish;
}
+
+ ours = true;
}
while (!feof(f)) {
finish:
free(section);
- if (f)
+ if (f && ours)
fclose(f);
return r;
if (!(n = new(char*, k+1)))
return -ENOMEM;
- for (k = 0; (*sv)[k]; k++)
- n[k] = (*sv)[k];
+ if (*sv)
+ for (k = 0; (*sv)[k]; k++)
+ n[k] = (*sv)[k];
+ else
+ k = 0;
+
FOREACH_WORD_QUOTED(w, l, rvalue, state)
if (!(n[k++] = strndup(w, l)))
goto fail;