[Mesa-dev] [PATCH] mesa: use signed temporary variable to store _ColorDrawBufferIndexes
Marek Olšák
maraeo at gmail.com
Mon Jan 13 01:13:38 PST 2014
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
Marek
On Sun, Jan 12, 2014 at 11:52 PM, Emil Velikov <emil.l.velikov at gmail.com> wrote:
> _ColorDrawBufferIndexes is defined as GLint* and using a GLuint*
> will result in the first part of the conditional to be evaluated to
> true always.
>
> Unintentionally introduced by the following commit, this will result
> in a driver segfault if one is using an old version of the piglit test
>
> bin/clearbuffer-mixed-format -auto -fbo
>
> commit 03d848ea1003abefd8fe51a5b4a780527cd852af
> Author: Marek Olšák <marek.olsak at amd.com>
> Date: Wed Dec 4 00:27:20 2013 +0100
>
> mesa: fix interpretation of glClearBuffer(drawbuffer)
>
> This corresponding piglit tests supported this incorrect behavior instead of
> pointing at it.
>
> Cc: Marek Olšák <marek.olsak at amd.com>
> Cc: 10.0 9.2 9.1 <mesa-stable at lists.freedesktop.org>
> Signed-off-by: Emil Velikov <emil.l.velikov at gmail.com>
> ---
> src/mesa/main/clear.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/src/mesa/main/clear.c b/src/mesa/main/clear.c
> index f0b525f..d568ed8 100644
> --- a/src/mesa/main/clear.c
> +++ b/src/mesa/main/clear.c
> @@ -274,7 +274,7 @@ make_color_buffer_mask(struct gl_context *ctx, GLint drawbuffer)
> break;
> default:
> {
> - GLuint buf = ctx->DrawBuffer->_ColorDrawBufferIndexes[drawbuffer];
> + GLint buf = ctx->DrawBuffer->_ColorDrawBufferIndexes[drawbuffer];
>
> if (buf >= 0 && att[buf].Renderbuffer) {
> mask |= 1 << buf;
> --
> 1.8.5.2
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-dev
mailing list