diff --git a/src/gallium/frontends/va/buffer.c b/src/gallium/frontends/va/buffer.c index 6d40addc575..ffe1658b4ae 100644 --- a/src/gallium/frontends/va/buffer.c +++ b/src/gallium/frontends/va/buffer.c @@ -57,7 +57,11 @@ vlVaCreateBuffer(VADriverContextP ctx, VAContextID context, VABufferType type, buf->type = type; buf->size = size; buf->num_elements = num_elements; - buf->data = MALLOC(size * num_elements); + + if (buf->type == VAEncCodedBufferType) + buf->data = CALLOC(1, sizeof(VACodedBufferSegment)); + else + buf->data = MALLOC(size * num_elements); if (!buf->data) { FREE(buf); @@ -172,7 +176,6 @@ vlVaMapBuffer(VADriverContextP ctx, VABufferID buf_id, void **pbuff) if (buf->type == VAEncCodedBufferType) { ((VACodedBufferSegment*)buf->data)->buf = *pbuff; ((VACodedBufferSegment*)buf->data)->size = buf->coded_size; - ((VACodedBufferSegment*)buf->data)->next = NULL; *pbuff = buf->data; } } else {