diff options
author | Mike Gilbert <floppym@gentoo.org> | 2017-12-27 21:46:52 -0500 |
---|---|---|
committer | Sven Eden <yamakuzure@gmx.net> | 2018-05-30 07:49:46 +0200 |
commit | 340b6a239d1d117da7e40c436a4751c9d56efbd7 (patch) | |
tree | 1d2cb818c53dd9ede70a45d3b9be9d648ca6da82 /src | |
parent | 9376a8929700bfe3d2d45a41d9e66232ca9ec9dd (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.c | 7 |
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}; |