[Mesa-stable] [Mesa-dev] [PATCH 1/4] nv50: add missing brackets when handling the samplers array

Ilia Mirkin imirkin at alum.mit.edu
Wed Mar 12 11:05:48 PDT 2014


On Wed, Mar 12, 2014 at 1:24 PM, Emil Velikov <emil.l.velikov at gmail.com> wrote:
> Commit 3805a864b1d(nv50: assert before trying to out-of-bounds access
> samplers) introduced a series of asserts as a precausion of a previous
> illegal memory access.
>
> Although it failed to encapsulate loop within nv50_sampler_state_delete
> effectively failing to clear the sampler state, apart from exadurating
> the illegal memory access issue.
>
> Fixes gcc warning "array subscript is above array bounds" and
> "Nesting level does not match indentation" and "Out-of-bounds read"
> defects reported by Coverity.
>
> Cc: "10.1" <mesa-stable at lists.freedesktop.org>
> Signed-off-by: Emil Velikov <emil.l.velikov at gmail.com>

Reviewed-by: Ilia Mirkin <imirkin at alum.mit.edu>

> ---
>  src/gallium/drivers/nouveau/nv50/nv50_state.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/src/gallium/drivers/nouveau/nv50/nv50_state.c b/src/gallium/drivers/nouveau/nv50/nv50_state.c
> index 862636b..647c01f 100644
> --- a/src/gallium/drivers/nouveau/nv50/nv50_state.c
> +++ b/src/gallium/drivers/nouveau/nv50/nv50_state.c
> @@ -558,11 +558,12 @@ nv50_sampler_state_delete(struct pipe_context *pipe, void *hwcso)
>  {
>     unsigned s, i;
>
> -   for (s = 0; s < 3; ++s)
> +   for (s = 0; s < 3; ++s) {
>        assert(nv50_context(pipe)->num_samplers[s] <= PIPE_MAX_SAMPLERS);
>        for (i = 0; i < nv50_context(pipe)->num_samplers[s]; ++i)
>           if (nv50_context(pipe)->samplers[s][i] == hwcso)
>              nv50_context(pipe)->samplers[s][i] = NULL;
> +   }
>
>     nv50_screen_tsc_free(nv50_context(pipe)->screen, nv50_tsc_entry(hwcso));
>
> --
> 1.9.0
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-stable mailing list