diff options
author | Lennart Poettering <lennart@poettering.net> | 2017-09-22 21:05:03 +0200 |
---|---|---|
committer | Sven Eden <yamakuzure@gmx.net> | 2017-09-22 21:05:03 +0200 |
commit | 11ae6b68eb7f659dc2c81e8dfadc702ebfab0b26 (patch) | |
tree | f2a51a32a82760a88d29f984742c27f9583f7247 /src/basic/fileio.c | |
parent | 23223261b38be3b59c7bf2bd824eb69db425f29b (diff) |
fileio: initialize errno to zero before we do fread()
if there was something in the read buffer already errno might not be set
on error, let's detect that case.
Diffstat (limited to 'src/basic/fileio.c')
-rw-r--r-- | src/basic/fileio.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/basic/fileio.c b/src/basic/fileio.c index 7638ae87a..f4ab6612b 100644 --- a/src/basic/fileio.c +++ b/src/basic/fileio.c @@ -271,12 +271,13 @@ int read_full_stream(FILE *f, char **contents, size_t *size) { return -ENOMEM; buf = t; + errno = 0; k = fread(buf + l, 1, n - l, f); if (k > 0) l += k; if (ferror(f)) - return -errno; + return errno > 0 ? -errno : -EIO; if (feof(f)) break; |