vpudec: Report an error instead of segfaulting on new pooled buffers
If the pool returns a newly allocated and previously unseen buffer
error out instead of segfault.
Pools can legaly do this, something not considered in vpudec's design.
Change-Id: I9cf3a7ae31bdc9c9a55aa64ed02d8a32713b3470
diff --git a/plugins/vpu/gstvpudecobject.c b/plugins/vpu/gstvpudecobject.c
index b726362..07ad86b 100644
--- a/plugins/vpu/gstvpudecobject.c
+++ b/plugins/vpu/gstvpudecobject.c
@@ -918,6 +918,11 @@
vpu_dec_object->gstbuffer_in_vpudec = g_list_append ( \
vpu_dec_object->gstbuffer_in_vpudec, buffer);
frame_buffer = g_hash_table_lookup(vpu_dec_object->gstbuffer2frame_table, buffer);
+ if (!frame_buffer) {
+ GST_ERROR_OBJECT(vpu_dec_object, "buffer 0x%x not in gstbuffer2frame_table, "
+ "pool returned a newly allocated buffer which is not supported", buffer);
+ return FALSE;
+ }
GST_DEBUG_OBJECT (vpu_dec_object, "gstbuffer_in_vpudec list length: %d\n", \
g_list_length (vpu_dec_object->gstbuffer_in_vpudec));