SHA256
1
0
forked from pool/Mesa
Mesa/0001-Fix-crash-in-swrast-when-setting-a-texture-for-a-pix.patch
2010-11-06 08:50:48 +00:00

40 lines
1.5 KiB
Diff

From 761ca4b98dfe7440402aa8e24defc2c881975f07 Mon Sep 17 00:00:00 2001
From: Egbert Eich <eich@suse.de>
Date: Fri, 5 Nov 2010 08:00:12 +0100
Subject: [PATCH] Fix crash in swrast when setting a texture for a pixmap.
When getImage() is called in swrastSetTexBuffer2() there will be
a crash somewhere down the line since texImage->Data isn't initialized
which holds a pointer to the destination.
To initialize texImage->Data we call ctx->Driver.TexImage2D().
---
Mesa-7.9/src/mesa/drivers/dri/swrast/swrast.c | 5 +++++
1 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/Mesa-7.9/src/mesa/drivers/dri/swrast/swrast.c b/Mesa-7.9/src/mesa/drivers/dri/swrast/swrast.c
index ff53ffd..233f225 100644
--- a/Mesa-7.9/src/mesa/drivers/dri/swrast/swrast.c
+++ b/Mesa-7.9/src/mesa/drivers/dri/swrast/swrast.c
@@ -62,6 +62,7 @@
static void swrastSetTexBuffer2(__DRIcontext *pDRICtx, GLint target,
GLint texture_format, __DRIdrawable *dPriv)
{
+ GET_CURRENT_CONTEXT(ctx);
struct dri_context *dri_ctx;
int x, y, w, h;
__DRIscreen *sPriv = dPriv->driScreenPriv;
@@ -92,6 +93,10 @@ static void swrastSetTexBuffer2(__DRIcontext *pDRICtx, GLint target,
_mesa_set_fetch_functions(texImage, 2);
+ ctx->Driver.TexImage2D(ctx, target, 0, internalFormat,
+ w, h, 0, texture_format, GL_UNSIGNED_INT_8_8_8_8,
+ NULL, &ctx->Unpack, texObj, texImage);
+
sPriv->swrast_loader->getImage(dPriv, x, y, w, h, (char *)texImage->Data,
dPriv->loaderPrivate);
--
1.7.3.1