memorytexture: Add a check
authorBenjamin Otte <otte@redhat.com>
Mon, 24 Jul 2023 14:12:51 +0000 (16:12 +0200)
committerBenjamin Otte <otte@redhat.com>
Mon, 31 Jul 2023 14:51:03 +0000 (16:51 +0200)
Sophie Herold was running into this problem while coding, so let's help
people by catching it early.

gdk/gdkmemorytexture.c

index 85d9ba0a259f5d3882db6d8629d7ad2939f6103a..0e8e2cc78d77ba9fcde92d45d2096475eaa56416 100644 (file)
@@ -151,6 +151,8 @@ gdk_memory_texture_new (int              width,
   g_return_val_if_fail (height > 0, NULL);
   g_return_val_if_fail (bytes != NULL, NULL);
   g_return_val_if_fail (stride >= width * gdk_memory_format_bytes_per_pixel (format), NULL);
+  /* needs to be this complex to support subtexture of the bottom right part */
+  g_return_val_if_fail (g_bytes_get_size (bytes) >= stride * (height - 1) + width * gdk_memory_format_bytes_per_pixel (format), NULL);
 
   bytes = gdk_memory_sanitize (bytes, width, height, format, stride, &stride);