mirror of
https://github.com/systemd/systemd-stable.git
synced 2025-01-07 17:17:44 +03:00
Use _cleanup_ when reading config files
This commit is contained in:
parent
c84a948831
commit
245802dd89
@ -704,7 +704,7 @@ static int parse_config_file(void) {
|
||||
{ NULL, NULL, NULL, 0, NULL }
|
||||
};
|
||||
|
||||
FILE *f;
|
||||
FILE _cleanup_fclose_ *f;
|
||||
const char *fn;
|
||||
int r;
|
||||
|
||||
@ -722,8 +722,6 @@ static int parse_config_file(void) {
|
||||
if (r < 0)
|
||||
log_warning("Failed to parse configuration file: %s", strerror(-r));
|
||||
|
||||
fclose(f);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -262,23 +262,19 @@ int config_parse(
|
||||
void *userdata) {
|
||||
|
||||
unsigned line = 0;
|
||||
char *section = NULL;
|
||||
char _cleanup_free_ *section = NULL, *continuation = NULL;
|
||||
FILE _cleanup_fclose_ *ours = NULL;
|
||||
int r;
|
||||
bool ours = false;
|
||||
char *continuation = NULL;
|
||||
|
||||
assert(filename);
|
||||
assert(lookup);
|
||||
|
||||
if (!f) {
|
||||
f = fopen(filename, "re");
|
||||
f = ours = fopen(filename, "re");
|
||||
if (!f) {
|
||||
r = -errno;
|
||||
log_error("Failed to open configuration file '%s': %s", filename, strerror(-r));
|
||||
goto finish;
|
||||
log_error("Failed to open configuration file '%s': %m", filename);
|
||||
return -errno;
|
||||
}
|
||||
|
||||
ours = true;
|
||||
}
|
||||
|
||||
while (!feof(f)) {
|
||||
@ -289,19 +285,16 @@ int config_parse(
|
||||
if (feof(f))
|
||||
break;
|
||||
|
||||
r = -errno;
|
||||
log_error("Failed to read configuration file '%s': %s", filename, strerror(-r));
|
||||
goto finish;
|
||||
log_error("Failed to read configuration file '%s': %m", filename);
|
||||
return -errno;
|
||||
}
|
||||
|
||||
truncate_nl(l);
|
||||
|
||||
if (continuation) {
|
||||
c = strappend(continuation, l);
|
||||
if (!c) {
|
||||
r = -ENOMEM;
|
||||
goto finish;
|
||||
}
|
||||
if (!c)
|
||||
return -ENOMEM;
|
||||
|
||||
free(continuation);
|
||||
continuation = NULL;
|
||||
@ -323,10 +316,8 @@ int config_parse(
|
||||
continuation = c;
|
||||
else {
|
||||
continuation = strdup(l);
|
||||
if (!continuation) {
|
||||
r = -ENOMEM;
|
||||
goto finish;
|
||||
}
|
||||
if (!continuation)
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
continue;
|
||||
@ -344,19 +335,10 @@ int config_parse(
|
||||
free(c);
|
||||
|
||||
if (r < 0)
|
||||
goto finish;
|
||||
return r;
|
||||
}
|
||||
|
||||
r = 0;
|
||||
|
||||
finish:
|
||||
free(section);
|
||||
free(continuation);
|
||||
|
||||
if (f && ours)
|
||||
fclose(f);
|
||||
|
||||
return r;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int config_parse_int(
|
||||
|
Loading…
Reference in New Issue
Block a user