From 7486b46baa2647cae926ffa6b8847b9079aa2ad1 Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Wed, 28 Feb 2018 18:45:41 -0800 Subject: bugfix: buf-get-* not allowing last byte of buffer. * buf.c (buf_get_bytes): Fix off-by-one test for reading past end of buffer. This prevents, e.g. a buf-get-u32 from the last four bytes of a buffer (or from a four-byte-long buffer, period). --- buf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buf.c b/buf.c index 192449c2..3e1ed76a 100644 --- a/buf.c +++ b/buf.c @@ -423,7 +423,7 @@ static void buf_get_bytes(val buf, val pos, mem_t *ptr, cnum size, val self) cnum e = p + size; cnum l = c_num(b->len); - if (e >= l || e < 0) + if (e > l || e < 0) uw_throwf(error_s, lit("~a: attempted read past buffer end"), self, nao); memcpy(ptr, b->data + p, size); -- cgit v1.2.3