nvdec: Fix possible null object unref
authorSeungha Yang <seungha.yang@navercorp.com>
Tue, 13 Aug 2019 01:07:38 +0000 (10:07 +0900)
committerSeungha Yang <seungha.yang@navercorp.com>
Tue, 20 Aug 2019 01:14:54 +0000 (10:14 +0900)
gst_query_get_n_allocation_pools > 0 does not guarantee that
the N th internal array has GstBufferPool object. So users should
check the returned GstBufferPool object from
gst_query_parse_nth_allocation_pool.

sys/nvcodec/gstnvdec.c

index c098ca7..240e15b 100644 (file)
@@ -1121,12 +1121,12 @@ gst_nvdec_decide_allocation (GstVideoDecoder * decoder, GstQuery * query)
 
   gst_query_parse_allocation (query, &outcaps, NULL);
   n = gst_query_get_n_allocation_pools (query);
-  if (n > 0) {
+  if (n > 0)
     gst_query_parse_nth_allocation_pool (query, 0, &pool, &size, &min, &max);
-    if (!GST_IS_GL_BUFFER_POOL (pool)) {
-      gst_object_unref (pool);
-      pool = NULL;
-    }
+
+  if (pool && !GST_IS_GL_BUFFER_POOL (pool)) {
+    gst_object_unref (pool);
+    pool = NULL;
   }
 
   if (!pool) {