mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-06 02:58:05 +02:00
st/mesa: fix invalid pointer use in st_texture_get_sampler_view()
The '**used' pointer was pointing into the stObj->sampler_views array. If 'free' was null, we'd realloc that array, thus making the 'used' pointer invalid. This soon led to memory errors. Just change the pointer to be '*used' so it points directly at the pipe_sampler_view. Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
This commit is contained in:
parent
9fec560e63
commit
27496af67f
1 changed files with 3 additions and 3 deletions
|
|
@ -443,7 +443,7 @@ struct pipe_sampler_view **
|
|||
st_texture_get_sampler_view(struct st_context *st,
|
||||
struct st_texture_object *stObj)
|
||||
{
|
||||
struct pipe_sampler_view **used = NULL, **free = NULL;
|
||||
struct pipe_sampler_view *used = NULL, **free = NULL;
|
||||
GLuint i;
|
||||
|
||||
for (i = 0; i < stObj->num_sampler_views; ++i) {
|
||||
|
|
@ -455,7 +455,7 @@ st_texture_get_sampler_view(struct st_context *st,
|
|||
return sv;
|
||||
|
||||
/* Wasn't the right one, but remember it as template */
|
||||
used = sv;
|
||||
used = *sv;
|
||||
} else {
|
||||
/* Found a free slot, remember that */
|
||||
free = sv;
|
||||
|
|
@ -475,7 +475,7 @@ st_texture_get_sampler_view(struct st_context *st,
|
|||
|
||||
/* Add just any sampler view to be used as a template */
|
||||
if (used)
|
||||
pipe_sampler_view_reference(free, *used);
|
||||
pipe_sampler_view_reference(free, used);
|
||||
|
||||
return free;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue