In cases where the execution inside the function execute_model_ov fails, the OVRequestItem must be pushed back to the request_queue before returning the error. In case pushing back fails, release the allocated memory.
Unified · Split
| @@ -432,6 +432,8 @@ static DNNReturnType execute_model_ov(RequestItem *request, Queue *inferenceq) · 431 unmodified lines | ||
| 432 | 432 | OVModel *ov_model; |
| 433 | 433 | |
| 434 | 434 | if (ff_queue_size(inferenceq) == 0) { |
| 435 | + ie_infer_request_free(&request->infer_request); | |
| 436 | + av_freep(&request); | |
| 435 | 437 | return DNN_SUCCESS; |
| 436 | 438 | } |
| 437 | 439 | |
| @@ -443,7 +445,7 @@ static DNNReturnType execute_model_ov(RequestItem *request, Queue *inferenceq) · 5 unmodified lines | ||
| 443 | 445 | if (task->async) { |
| 444 | 446 | ret = fill_model_input_ov(ov_model, request); |
| 445 | 447 | if (ret != DNN_SUCCESS) { |
| 446 | − return ret; | |
| 448 | + goto err; | |
| 447 | 449 | } |
| 448 | 450 | status = ie_infer_set_completion_callback(request->infer_request, &request->callback); |
| 449 | 451 | if (status != OK) { |
| @@ -459,7 +461,7 @@ static DNNReturnType execute_model_ov(RequestItem *request, Queue *inferenceq) · 9 unmodified lines | ||
| 459 | 461 | } else { |
| 460 | 462 | ret = fill_model_input_ov(ov_model, request); |
| 461 | 463 | if (ret != DNN_SUCCESS) { |
| 462 | − return ret; | |
| 464 | + goto err; | |
| 463 | 465 | } |
| 464 | 466 | status = ie_infer_request_infer(request->infer_request); |
| 465 | 467 | if (status != OK) { |