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~70^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F6894%2Fhead;p=thirdparty%2Fsystemd.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 e7cd03b939f..690c67cf621 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;