From 831df3d6afbd5a785394de6bbcce594a0ab305c0 Mon Sep 17 00:00:00 2001 From: austin Date: Wed, 28 Aug 2024 22:57:08 -0400 Subject: [PATCH] add buffer limit checks to texture construction --- src/main/java/electrosphere/renderer/texture/Texture.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main/java/electrosphere/renderer/texture/Texture.java b/src/main/java/electrosphere/renderer/texture/Texture.java index 193cebc9..a0c98a31 100644 --- a/src/main/java/electrosphere/renderer/texture/Texture.java +++ b/src/main/java/electrosphere/renderer/texture/Texture.java @@ -202,12 +202,18 @@ public class Texture { //buffer data for(int y = height - 1; y > -1; y--){ for(int x = 0; x < width; x++){ - Color temp = new Color(image_data.getRGB(x, y), true); + Color temp = new Color(image_data.getRGB(x, y), hasTransparency); + if(data.position() + 3 > data.limit() + 1){ + throw new IllegalStateException("Hit buffer limit!"); + } data.put((byte)temp.getRed()); data.put((byte)temp.getGreen()); data.put((byte)temp.getBlue()); if(hasTransparency){ + if(data.position() + 1 > data.limit() + 1){ + throw new IllegalStateException("Hit buffer limit!"); + } data.put((byte)temp.getAlpha()); } }