From 87894bc6fd24045bac73590e412e5a292a195847 Mon Sep 17 00:00:00 2001 From: Kaz Kylheku 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