From: Matthias Clasen Date: Fri, 5 May 2023 13:42:34 +0000 (-0400) Subject: gsk: Add a few assertions X-Git-Tag: archive/raspbian/4.12.3+ds-1+rpi1~1^2^2^2~22^2~1^2~307^2~2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=2b85c49fb15040ce38db4385f2d046a5f6beeba4;p=gtk4.git gsk: Add a few assertions Make sure we don't overflow our fixed-size arrays. --- diff --git a/gsk/gl/gskglattachmentstate.c b/gsk/gl/gskglattachmentstate.c index f3f62cb210..92fe871a3a 100644 --- a/gsk/gl/gskglattachmentstate.c +++ b/gsk/gl/gskglattachmentstate.c @@ -78,6 +78,7 @@ gsk_gl_attachment_state_bind_texture (GskGLAttachmentState *self, target == GL_TEXTURE_2D || target == GL_TEXTURE_3D); g_assert (texture >= GL_TEXTURE0 && texture <= GL_TEXTURE16); + g_assert (texture - GL_TEXTURE0 < G_N_ELEMENTS (self->textures)); attach = &self->textures[texture - GL_TEXTURE0]; diff --git a/gsk/gl/gskglcommandqueue.c b/gsk/gl/gskglcommandqueue.c index 774b957785..50c9c3908c 100644 --- a/gsk/gl/gskglcommandqueue.c +++ b/gsk/gl/gskglcommandqueue.c @@ -1161,6 +1161,8 @@ gsk_gl_command_queue_execute (GskGLCommandQueue *self, if G_UNLIKELY (batch->draw.bind_count > 0) { const GskGLCommandBind *bind = &self->batch_binds.items[batch->draw.bind_offset]; + + g_assert (bind->texture < G_N_ELEMENTS (textures)); for (guint i = 0; i < batch->draw.bind_count; i++) { if (textures[bind->texture] != bind->id)