summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMike Gilbert <floppym@gentoo.org>2017-12-27 21:46:52 -0500
committerSven Eden <yamakuzure@gmx.net>2018-05-30 07:49:46 +0200
commit340b6a239d1d117da7e40c436a4751c9d56efbd7 (patch)
tree1d2cb818c53dd9ede70a45d3b9be9d648ca6da82 /src
parent9376a8929700bfe3d2d45a41d9e66232ca9ec9dd (diff)
fileio: write_string_stream_ts: return errors from fputs and fputc
Ignoring errors from these functions may mask errors returned by the kernel. Fixes: https://github.com/systemd/systemd/issues/7744
Diffstat (limited to 'src')
-rw-r--r--src/basic/fileio.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/basic/fileio.c b/src/basic/fileio.c
index 5a918c1e7..eb92ac595 100644
--- a/src/basic/fileio.c
+++ b/src/basic/fileio.c
@@ -65,9 +65,12 @@ int write_string_stream_ts(
assert(f);
assert(line);
- fputs(line, f);
+ if (fputs(line, f) == EOF)
+ return -errno;
+
if (!(flags & WRITE_STRING_FILE_AVOID_NEWLINE) && !endswith(line, "\n"))
- fputc('\n', f);
+ if (fputc('\n', f) == EOF)
+ return -errno;
if (ts) {
struct timespec twice[2] = {*ts, *ts};