summaryrefslogtreecommitdiffstats
path: root/src/sysctl/sysctl.c
diff options
context:
space:
mode:
authorTiago Salem Herrmann <therrmann@suse.com>2017-12-12 16:43:17 +0100
committerTiago Salem Herrmann <therrmann@suse.com>2017-12-13 18:03:33 +0100
commita668bfe88a48d433a81dad8219bd98fc73838eda (patch)
tree97312a87c3b97e7d8c2a8919256ced7b86cdefb1 /src/sysctl/sysctl.c
parentresolved: fix wrong error code (#7601) (diff)
downloadsystemd-a668bfe88a48d433a81dad8219bd98fc73838eda.tar.xz
systemd-a668bfe88a48d433a81dad8219bd98fc73838eda.zip
Use read_line() and LONG_LINE_MAX to read values configuration files.
Diffstat (limited to '')
-rw-r--r--src/sysctl/sysctl.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/sysctl/sysctl.c b/src/sysctl/sysctl.c
index 4c468d011a..a1dc95b2bb 100644
--- a/src/sysctl/sysctl.c
+++ b/src/sysctl/sysctl.c
@@ -106,16 +106,16 @@ static int parse_file(OrderedHashmap *sysctl_options, const char *path, bool ign
log_debug("Parsing %s", path);
for (;;) {
- char l[LINE_MAX], *p, *value, *new_value, *property, *existing;
+ char *p, *value, *new_value, *property, *existing;
+ _cleanup_free_ char *l = NULL;
void *v;
int k;
+ k = read_line(f, LONG_LINE_MAX, &l);
+ if (k == 0)
+ break;
- if (!fgets(l, sizeof(l), f)) {
- if (feof(f))
- break;
-
- return log_error_errno(errno, "Failed to read file '%s', ignoring: %m", path);
- }
+ if (k < 0)
+ return log_error_errno(k, "Failed to read file '%s', ignoring: %m", path);
c++;