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-Tag: v235.1~84 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=e0e02387f7dfc8ab4f415212264666476fc4a21f;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 5dc303bb4..333effa5f 100644 --- a/src/basic/fileio.c +++ b/src/basic/fileio.c @@ -287,12 +287,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;