Mesa (master): draw: Fix regression in draw_set_sampler(_views).

Jose Fonseca jrfonseca at kemper.freedesktop.org
Fri Aug 24 10:28:08 UTC 2012


Module: Mesa
Branch: master
Commit: 3e3f99277df947a96029580dc4e66ae38a93f004
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=3e3f99277df947a96029580dc4e66ae38a93f004

Author: José Fonseca <jfonseca at vmware.com>
Date:   Fri Aug 24 11:27:22 2012 +0100

draw: Fix regression in draw_set_sampler(_views).

draw->samplers(_views) now has PIPE_SHADER_TYPES elements, instead of
PIPE_MAX_SAMPLERS as before.

Also, shader_stage must be less than PIPE_SHADER_TYPES to prevent buffer
overflow.

Trivial.

---

 src/gallium/auxiliary/draw/draw_context.c |   12 ++++++------
 1 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/src/gallium/auxiliary/draw/draw_context.c b/src/gallium/auxiliary/draw/draw_context.c
index 4fc59a5..1aa9b61 100644
--- a/src/gallium/auxiliary/draw/draw_context.c
+++ b/src/gallium/auxiliary/draw/draw_context.c
@@ -760,12 +760,12 @@ draw_set_sampler_views(struct draw_context *draw,
 {
    unsigned i;
 
-   debug_assert(num <= Elements(draw->sampler_views));
-   debug_assert(shader_stage <= PIPE_SHADER_TYPES);
+   debug_assert(shader_stage < PIPE_SHADER_TYPES);
+   debug_assert(num <= PIPE_MAX_SAMPLERS);
 
    for (i = 0; i < num; ++i)
       draw->sampler_views[shader_stage][i] = views[i];
-   for (i = num; i < Elements(draw->sampler_views); ++i)
+   for (i = num; i < PIPE_MAX_SAMPLERS; ++i)
       draw->sampler_views[shader_stage][i] = NULL;
 
    draw->num_sampler_views[shader_stage] = num;
@@ -779,12 +779,12 @@ draw_set_samplers(struct draw_context *draw,
 {
    unsigned i;
 
-   debug_assert(num <= Elements(draw->samplers));
-   debug_assert(shader_stage <= PIPE_SHADER_TYPES);
+   debug_assert(shader_stage < PIPE_SHADER_TYPES);
+   debug_assert(num <= PIPE_MAX_SAMPLERS);
 
    for (i = 0; i < num; ++i)
       draw->samplers[shader_stage][i] = samplers[i];
-   for (i = num; i < Elements(draw->samplers); ++i)
+   for (i = num; i < PIPE_MAX_SAMPLERS; ++i)
       draw->samplers[shader_stage][i] = NULL;
 
    draw->num_samplers[shader_stage] = num;




More information about the mesa-commit mailing list