From bf49a087b2005e45f7ec5672f5ecd2668e2deb4f Mon Sep 17 00:00:00 2001 From: TPReal Date: Sat, 26 Nov 2022 13:25:08 +0100 Subject: [PATCH] extmod/modframebuf: Fix crash in FrameBuffer scrolling beyond extents. Fixed the crash occurring when scrolling by at least the size of the framebuffer. --- extmod/modframebuf.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/extmod/modframebuf.c b/extmod/modframebuf.c index e7825b5912..87f7609dd8 100644 --- a/extmod/modframebuf.c +++ b/extmod/modframebuf.c @@ -748,19 +748,31 @@ STATIC mp_obj_t framebuf_scroll(mp_obj_t self_in, mp_obj_t xstep_in, mp_obj_t ys if (xstep < 0) { sx = 0; xend = self->width + xstep; + if (xend <= 0) { + return mp_const_none; + } dx = 1; } else { sx = self->width - 1; xend = xstep - 1; + if (xend >= sx) { + return mp_const_none; + } dx = -1; } if (ystep < 0) { y = 0; yend = self->height + ystep; + if (yend <= 0) { + return mp_const_none; + } dy = 1; } else { y = self->height - 1; yend = ystep - 1; + if (yend >= y) { + return mp_const_none; + } dy = -1; } for (; y != yend; y += dy) {