From feb602580e8cfd9ec59400dc554751a972e0fb8b Mon Sep 17 00:00:00 2001 From: Roman Fomin Date: Thu, 18 May 2023 01:17:51 +0700 Subject: [PATCH] fix setting EOF in memio (#1059) --- src/memio.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/memio.c b/src/memio.c index 913eee8d..3dcc6de1 100644 --- a/src/memio.c +++ b/src/memio.c @@ -71,22 +71,24 @@ size_t mem_fread(void *buf, size_t size, size_t nmemb, MEMFILE *stream) return 0; } - if (stream->read_eof) - { - stream->eof = true; - } - // Trying to read more bytes than we have left? items = nmemb; if (items * size > stream->buflen - stream->position) { + if (stream->read_eof) + { + stream->eof = true; + } + else + { + stream->read_eof = true; + } + items = (stream->buflen - stream->position) / size; } - stream->read_eof = (items > 0 ? false : true); - // Copy bytes to buffer memcpy(buf, stream->buf + stream->position, items * size);