summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMaarten Lankhorst <m.b.lankhorst@gmail.com>2011-12-19 10:06:58 +0100
committerChristoph Bumiller <e0425955@student.tuwien.ac.at>2011-12-23 16:21:25 +0100
commitebe7c687ceed4e5ca704b325aac6b91791d394b0 (patch)
tree6217b7407c2cf60a1ed780cbb7a5c67411f9c10c
parent2eafd07323891944b9c012a17359cd5f07a87890 (diff)
nouveau: Fix bugs in nouveau_video_buffer
Double free and array overflow, even if only 2 members are used the last one needs to be set to NULL explicitly. Signed-off-by: Maarten Lankhorst <m.b.lankhorst@gmail.com
-rw-r--r--src/gallium/drivers/nouveau/nouveau_video.c1
-rw-r--r--src/gallium/drivers/nouveau/nouveau_video.h6
2 files changed, 3 insertions, 4 deletions
diff --git a/src/gallium/drivers/nouveau/nouveau_video.c b/src/gallium/drivers/nouveau/nouveau_video.c
index 162e1aa89a6..a442537c320 100644
--- a/src/gallium/drivers/nouveau/nouveau_video.c
+++ b/src/gallium/drivers/nouveau/nouveau_video.c
@@ -835,7 +835,6 @@ nouveau_video_buffer_create(struct pipe_context *pipe,
error:
nouveau_video_buffer_destroy(&buffer->base);
- FREE(buffer);
return NULL;
}
diff --git a/src/gallium/drivers/nouveau/nouveau_video.h b/src/gallium/drivers/nouveau/nouveau_video.h
index c6875c39a04..22593ff9bbc 100644
--- a/src/gallium/drivers/nouveau/nouveau_video.h
+++ b/src/gallium/drivers/nouveau/nouveau_video.h
@@ -7,10 +7,10 @@
struct nouveau_video_buffer {
struct pipe_video_buffer base;
unsigned num_planes;
- struct pipe_resource *resources[2];
- struct pipe_sampler_view *sampler_view_planes[2];
+ struct pipe_resource *resources[3];
+ struct pipe_sampler_view *sampler_view_planes[3];
struct pipe_sampler_view *sampler_view_components[3];
- struct pipe_surface *surfaces[2];
+ struct pipe_surface *surfaces[3];
};
struct nouveau_decoder {