assert(obj_buffer);
+ if (!obj_buffer)
+ return VA_STATUS_ERROR_INVALID_BUFFER;
+
if ((num_elements < 0) ||
(num_elements > obj_buffer->max_num_elements)) {
- vaStatus = VA_STATUS_ERROR_UNKNOWN;
+ vaStatus = VA_STATUS_ERROR_MAX_NUM_EXCEEDED;
} else {
obj_buffer->num_elements = num_elements;
if (obj_buffer->buffer_store != NULL) {
assert(obj_buffer->buffer_store->bo || obj_buffer->buffer_store->buffer);
assert(!(obj_buffer->buffer_store->bo && obj_buffer->buffer_store->buffer));
+ if (!obj_buffer || !obj_buffer->buffer_store)
+ return VA_STATUS_ERROR_INVALID_BUFFER;
+
if (NULL != obj_buffer->buffer_store->bo) {
unsigned int tiling, swizzle;
assert(obj_buffer->buffer_store->bo || obj_buffer->buffer_store->buffer);
assert(!(obj_buffer->buffer_store->bo && obj_buffer->buffer_store->buffer));
+ if (!obj_buffer || !obj_buffer->buffer_store)
+ return VA_STATUS_ERROR_INVALID_BUFFER;
+
if (NULL != obj_buffer->buffer_store->bo) {
unsigned int tiling, swizzle;
struct object_buffer *obj_buffer = BUFFER(buffer_id);
assert(obj_buffer);
+
+ if (!obj_buffer)
+ return VA_STATUS_ERROR_INVALID_BUFFER;
+
i965_destroy_buffer(&i965->buffer_heap, (struct object_base *)obj_buffer);
return VA_STATUS_SUCCESS;
struct object_buffer *obj_buffer = BUFFER(buffers[i]);
assert(obj_buffer);
+ if (!obj_buffer)
+ return VA_STATUS_ERROR_INVALID_BUFFER;
+
switch (obj_buffer->type) {
case VAPictureParameterBufferType:
vaStatus = I965_RENDER_DECODE_BUFFER(picture_parameter);
struct object_buffer *obj_buffer = BUFFER(buffers[i]);
assert(obj_buffer);
+ if (!obj_buffer)
+ return VA_STATUS_ERROR_INVALID_BUFFER;
+
switch (obj_buffer->type) {
case VAQMatrixBufferType:
vaStatus = I965_RENDER_ENCODE_BUFFER(qmatrix);
struct object_buffer *obj_buffer = BUFFER(buffers[i]);
assert(obj_buffer);
+ if (!obj_buffer)
+ return VA_STATUS_ERROR_INVALID_BUFFER;
+
switch (obj_buffer->type) {
case VAProcPipelineParameterBufferType:
vaStatus = I965_RENDER_PROC_BUFFER(pipeline_parameter);
if (va_status != VA_STATUS_SUCCESS)
goto error;
- obj_image->bo = BUFFER(image->buf)->buffer_store->bo;
+ struct object_buffer *obj_buffer = BUFFER(image->buf);
+
+ if (!obj_buffer ||
+ !obj_buffer->buffer_store ||
+ !obj_buffer->buffer_store->bo)
+ return VA_STATUS_ERROR_ALLOCATION_FAILED;
+
+ obj_image->bo = obj_buffer->buffer_store->bo;
dri_bo_reference(obj_image->bo);
if (image->num_palette_entries > 0 && image->entry_bytes > 0) {
if (va_status != VA_STATUS_SUCCESS)
goto error;
- obj_image->bo = BUFFER(image->buf)->buffer_store->bo;
+ struct object_buffer *obj_buffer = BUFFER(image->buf);
+
+ if (!obj_buffer ||
+ !obj_buffer->buffer_store ||
+ !obj_buffer->buffer_store->bo)
+ return VA_STATUS_ERROR_ALLOCATION_FAILED;
+
+ obj_image->bo = obj_buffer->buffer_store->bo;
dri_bo_reference(obj_image->bo);
if (image->num_palette_entries > 0 && image->entry_bytes > 0) {
i965 = i965_driver_data(ctx);
obj_buffer = BUFFER(buf_id);
+ assert(obj_buffer);
+
+ if (!obj_buffer)
+ return VA_STATUS_ERROR_INVALID_BUFFER;
+
*type = obj_buffer->type;
*size = obj_buffer->size_element;
*num_elements = obj_buffer->num_elements;
for (i = 0; i < num_filters; i++) {
struct object_buffer *obj_buffer = BUFFER(filters[i]);
+
+ if (!obj_buffer ||
+ !obj_buffer->buffer_store ||
+ !obj_buffer->buffer_store->bo)
+ return VA_STATUS_ERROR_INVALID_BUFFER;
+
VAProcFilterParameterBufferBase *base = (VAProcFilterParameterBufferBase *)obj_buffer->buffer_store->buffer;
if (base->type == VAProcFilterNoiseReduction) {