diff options
author | Kaz Kyheku <kaz@kylheku.com> | 2020-02-05 19:29:50 -0800 |
---|---|---|
committer | Kaz Kyheku <kaz@kylheku.com> | 2020-02-05 19:29:50 -0800 |
commit | baf36818dfb471378b0952a6d79f26e605877aa5 (patch) | |
tree | 6917cb057d1eb3d4c3cfc5d60b353a9e52cbce27 /stream.c | |
parent | ffb07677cc6985997ad96064de3957183bb81997 (diff) | |
download | txr-baf36818dfb471378b0952a6d79f26e605877aa5.tar.gz txr-baf36818dfb471378b0952a6d79f26e605877aa5.tar.bz2 txr-baf36818dfb471378b0952a6d79f26e605877aa5.zip |
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.
Diffstat (limited to 'stream.c')
-rw-r--r-- | stream.c | 4 |
1 files changed, 2 insertions, 2 deletions
@@ -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) |