[Mesa-dev] [PATCH 1/4] swrast: allocate swrast_texture_image::ImageSlices array if needed
Brian Paul
brianp at vmware.com
Wed Apr 23 09:01:48 PDT 2014
Fixes a segmentation fault in conform divzero.c test.
This happens when glTexImage(level, width=0, height=0) is called. We
don't allocate texture memory in that case so the ImageSlices array
was never allocated.
Cc: "10.1" <mesa-stable at lists.freedesktop.org>
---
src/mesa/swrast/s_texture.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/src/mesa/swrast/s_texture.c b/src/mesa/swrast/s_texture.c
index c08a4e9..1d449a2 100644
--- a/src/mesa/swrast/s_texture.c
+++ b/src/mesa/swrast/s_texture.c
@@ -279,6 +279,13 @@ _swrast_map_texture(struct gl_context *ctx, struct gl_texture_object *texObj)
continue;
}
+ if (!swImage->ImageSlices) {
+ swImage->ImageSlices =
+ calloc(texture_slices(texImage), sizeof(void *));
+ if (!swImage->ImageSlices)
+ continue;
+ }
+
for (i = 0; i < texture_slices(texImage); i++) {
GLubyte *map;
GLint rowStride;
@@ -325,6 +332,9 @@ _swrast_unmap_texture(struct gl_context *ctx, struct gl_texture_object *texObj)
if (swImage->Buffer)
return;
+ if (!swImage->ImageSlices)
+ continue;
+
for (i = 0; i < texture_slices(texImage); i++) {
if (swImage->ImageSlices[i]) {
ctx->Driver.UnmapTextureImage(ctx, texImage, i);
--
1.7.10.4
More information about the mesa-dev
mailing list