From: Mike Gilbert Date: Thu, 28 Dec 2017 02:46:52 +0000 (-0500) Subject: fileio: write_string_stream_ts: return errors from fputs and fputc X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=340b6a239d1d117da7e40c436a4751c9d56efbd7;p=elogind.git 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 --- 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};