]> git.sesse.net Git - ffmpeg/commitdiff
lavfi/dnn_backend_openvino.c: fix mem leak for RequestItem upon error
authorGuo, Yejun <yejun.guo@intel.com>
Sat, 13 Mar 2021 06:09:33 +0000 (14:09 +0800)
committerGuo, Yejun <yejun.guo@intel.com>
Thu, 18 Mar 2021 01:30:09 +0000 (09:30 +0800)
libavfilter/dnn/dnn_backend_openvino.c

index 50de6a996e8628eca67800d315cb4373c130cc10..55cb0c757ed19597a21ef5bba6160389167dd536 100644 (file)
@@ -353,25 +353,23 @@ static DNNReturnType init_model_ov(OVModel *ov_model, const char *input_name, co
             goto err;
         }
 
+        item->callback.completeCallBackFunc = infer_completion_callback;
+        item->callback.args = item;
+        if (ff_safe_queue_push_back(ov_model->request_queue, item) < 0) {
+            av_freep(&item);
+            goto err;
+        }
+
         status = ie_exec_network_create_infer_request(ov_model->exe_network, &item->infer_request);
         if (status != OK) {
-            av_freep(&item);
             goto err;
         }
 
         item->tasks = av_malloc_array(ctx->options.batch_size, sizeof(*item->tasks));
         if (!item->tasks) {
-            av_freep(&item);
             goto err;
         }
         item->task_count = 0;
-
-        item->callback.completeCallBackFunc = infer_completion_callback;
-        item->callback.args = item;
-        if (ff_safe_queue_push_back(ov_model->request_queue, item) < 0) {
-            av_freep(&item);
-            goto err;
-        }
     }
 
     ov_model->task_queue = ff_queue_create();