From: Lennart Poettering Date: Fri, 22 Sep 2017 19:05:03 +0000 (+0200) Subject: fileio: initialize errno to zero before we do fread() X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=11ae6b68eb7f659dc2c81e8dfadc702ebfab0b26;p=elogind.git 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. --- 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;