Skip to content

Commit 1ee2062

Browse files
committed
framebufferio: Check early if framebuffer is big enough
1 parent a33e48c commit 1ee2062

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

shared-module/framebufferio/FramebufferDisplay.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,13 @@ void common_hal_framebufferio_framebufferdisplay_construct(framebufferio_framebu
7979
if (self->row_stride == 0) {
8080
self->row_stride = self->core.width * self->core.colorspace.depth/8;
8181
}
82+
83+
self->framebuffer_protocol->get_bufinfo(self->framebuffer, &self->bufinfo);
84+
size_t framebuffer_size = self->first_pixel_offset + self->row_stride * self->core.height;
85+
if (self->bufinfo.len < framebuffer_size) {
86+
mp_raise_IndexError_varg(translate("Framebuffer requires %d bytes"), framebuffer_size);
87+
}
88+
8289
self->first_manual_refresh = !auto_refresh;
8390

8491
self->native_frames_per_second = self->framebuffer_protocol->get_native_frames_per_second(self->framebuffer);

0 commit comments

Comments
 (0)