X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Futil.c;h=5daafdf7c2088d78d19fe93b05629bc83d22e87e;hp=a1686ed3892deffa3f7776073c132a49c0cdf5e2;hb=51b4af2c2833691976844a13464c1301643043d3;hpb=7c3b203c5c69fc37c8d143851cd395cbf8920786 diff --git a/src/util.c b/src/util.c index a1686ed38..5daafdf7c 100644 --- a/src/util.c +++ b/src/util.c @@ -513,7 +513,16 @@ int write_one_line_file(const char *fn, const char *line) { if (!endswith(line, "\n")) fputc('\n', f); - r = 0; + fflush(f); + + if (ferror(f)) { + if (errno != 0) + r = -errno; + else + r = -EIO; + } else + r = 0; + finish: fclose(f); return r;