From baf36818dfb471378b0952a6d79f26e605877aa5 Mon Sep 17 00:00:00 2001 From: Kaz Kyheku Date: Wed, 5 Feb 2020 19:29:50 -0800 Subject: fill-buf/fill-buf-adjust: incorrect return value. * stream.c (stdio_fill_buf): In the case of EOF, we must not return zero, but pos. Also, since pos and nread are cnum, we should use num to convert their sum to val. Converting to unum doesn't do anything for the overflow situation. --- stream.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stream.c b/stream.c index 3dd76a4d..0ca0f799 100644 --- a/stream.c +++ b/stream.c @@ -894,10 +894,10 @@ static val stdio_fill_buf(val stream, val buf, cnum pos) if (h->f != 0) { cnum nread = fread(ptr + pos, 1, len - pos, h->f); if (nread > 0) - return unum(pos + nread); + return num(pos + nread); } stdio_maybe_read_error(stream); - return zero; + return num(pos); } static val stdio_close(val stream, val throw_on_error) -- cgit v1.2.3