diff --git a/Mesa.changes b/Mesa.changes index c0290e8..f1d9b0e 100644 --- a/Mesa.changes +++ b/Mesa.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Fri Aug 1 23:28:45 CEST 2008 - sndirsch@suse.de + +- commit-c71fa34.diff + * added null texObj ptr check (bfo #15567, bnc #402687) + ------------------------------------------------------------------- Thu Jul 10 23:10:25 CEST 2008 - sndirsch@suse.de diff --git a/Mesa.spec b/Mesa.spec index 532b4fd..010273b 100644 --- a/Mesa.spec +++ b/Mesa.spec @@ -20,7 +20,7 @@ Provides: xorg-x11-Mesa Obsoletes: xorg-x11-Mesa AutoReqProv: on Version: 7.1 -Release: 5 +Release: 13 Summary: Mesa is a 3-D graphics library with an API which is very similar to that of OpenGL Source: MesaLib-6befdca.tar.bz2 Source1: MesaDemos-%{version}-rc1.tar.bz2 @@ -31,6 +31,7 @@ Patch1: dri_driver_dir.diff Patch2: MesaLib-6befdca.diff Patch6: link-shared.diff Patch7: disable_ttm_warning.diff +Patch8: commit-c71fa34.diff BuildRoot: %{_tmppath}/%{name}-%{version}-build %description @@ -118,6 +119,7 @@ sed -i 's/REPLACE/%_lib/g' src/glx/x11/Makefile ### FIXME #%patch6 %patch7 -p1 +%patch8 -p1 %build @@ -224,6 +226,9 @@ rm -rf $RPM_BUILD_ROOT /usr/%{_lib}/libOSMesa.a %changelog +* Sat Aug 02 2008 sndirsch@suse.de +- commit-c71fa34.diff + * added null texObj ptr check (bfo #15567, bnc #402687) * Fri Jul 11 2008 sndirsch@suse.de - even s390(x) needs swrast DRI driver now - specfile cleanup diff --git a/commit-c71fa34.diff b/commit-c71fa34.diff new file mode 100644 index 0000000..582d20a --- /dev/null +++ b/commit-c71fa34.diff @@ -0,0 +1,55 @@ +commit c71fa34728ef4eddd074aeb2bee49ae6a7acb3d1 +Author: Brian Paul +Date: Tue Jul 8 15:11:23 2008 -0600 + + added null texObj ptr check (bug 15567) + +diff --git a/src/mesa/swrast/s_fragprog.c b/src/mesa/swrast/s_fragprog.c +index ecace9c..bf7a1de 100644 +--- a/src/mesa/swrast/s_fragprog.c ++++ b/src/mesa/swrast/s_fragprog.c +@@ -44,7 +44,8 @@ fetch_texel_lod( GLcontext *ctx, const GLfloat texcoord[4], GLfloat lambda, + SWcontext *swrast = SWRAST_CONTEXT(ctx); + const struct gl_texture_object *texObj = ctx->Texture.Unit[unit]._Current; + +- lambda = CLAMP(lambda, texObj->MinLod, texObj->MaxLod); ++ if (texObj) ++ lambda = CLAMP(lambda, texObj->MinLod, texObj->MaxLod); + + /* XXX use a float-valued TextureSample routine here!!! */ + swrast->TextureSample[unit](ctx, texObj, 1, (const GLfloat (*)[4]) texcoord, +@@ -68,20 +69,23 @@ fetch_texel_deriv( GLcontext *ctx, const GLfloat texcoord[4], + { + SWcontext *swrast = SWRAST_CONTEXT(ctx); + const struct gl_texture_object *texObj = ctx->Texture.Unit[unit]._Current; +- const struct gl_texture_image *texImg = texObj->Image[0][texObj->BaseLevel]; +- const GLfloat texW = (GLfloat) texImg->WidthScale; +- const GLfloat texH = (GLfloat) texImg->HeightScale; ++ GLfloat lambda; + GLchan rgba[4]; + +- GLfloat lambda +- = _swrast_compute_lambda(texdx[0], texdy[0], /* ds/dx, ds/dy */ +- texdx[1], texdy[1], /* dt/dx, dt/dy */ +- texdx[3], texdy[2], /* dq/dx, dq/dy */ +- texW, texH, +- texcoord[0], texcoord[1], texcoord[3], +- 1.0F / texcoord[3]) + lodBias; ++ if (texObj) { ++ const struct gl_texture_image *texImg = texObj->Image[0][texObj->BaseLevel]; ++ const GLfloat texW = (GLfloat) texImg->WidthScale; ++ const GLfloat texH = (GLfloat) texImg->HeightScale; + +- lambda = CLAMP(lambda, texObj->MinLod, texObj->MaxLod); ++ lambda = _swrast_compute_lambda(texdx[0], texdy[0], /* ds/dx, ds/dy */ ++ texdx[1], texdy[1], /* dt/dx, dt/dy */ ++ texdx[3], texdy[2], /* dq/dx, dq/dy */ ++ texW, texH, ++ texcoord[0], texcoord[1], texcoord[3], ++ 1.0F / texcoord[3]) + lodBias; ++ ++ lambda = CLAMP(lambda, texObj->MinLod, texObj->MaxLod); ++ } + + swrast->TextureSample[unit](ctx, texObj, 1, (const GLfloat (*)[4]) texcoord, + &lambda, &rgba);