v4l2bufferpool: check that allocator is non null when stopping pool

Otherwise, we could dereference NULL allocator when the stop method is
called by the GstBufferPool's finalize method.

https://bugzilla.gnome.org/show_bug.cgi?id=738102
This commit is contained in:
Aurélien Zanelli 2014-10-08 10:35:14 +02:00 committed by Nicolas Dufresne
parent cc709d06de
commit 7ed27c264c

View file

@ -799,7 +799,8 @@ gst_v4l2_buffer_pool_stop (GstBufferPool * bpool)
if (!gst_v4l2_buffer_pool_streamoff (pool)) if (!gst_v4l2_buffer_pool_streamoff (pool))
goto streamoff_failed; goto streamoff_failed;
gst_v4l2_allocator_flush (pool->vallocator); if (pool->vallocator)
gst_v4l2_allocator_flush (pool->vallocator);
for (i = 0; i < VIDEO_MAX_FRAME; i++) { for (i = 0; i < VIDEO_MAX_FRAME; i++) {
if (pool->buffers[i]) { if (pool->buffers[i]) {
@ -818,7 +819,7 @@ gst_v4l2_buffer_pool_stop (GstBufferPool * bpool)
ret = GST_BUFFER_POOL_CLASS (parent_class)->stop (bpool); ret = GST_BUFFER_POOL_CLASS (parent_class)->stop (bpool);
if (ret) { if (ret && pool->vallocator) {
GstV4l2Return vret; GstV4l2Return vret;
vret = gst_v4l2_allocator_stop (pool->vallocator); vret = gst_v4l2_allocator_stop (pool->vallocator);