From 11ae6b68eb7f659dc2c81e8dfadc702ebfab0b26 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Fri, 22 Sep 2017 21:05:03 +0200 Subject: [PATCH] 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. --- src/basic/fileio.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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; -- 2.30.2