From patchwork Fri Jun 18 16:23:08 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shubhanshu Saxena X-Patchwork-Id: 28578 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a5e:c91a:0:0:0:0:0 with SMTP id z26csp1815971iol; Fri, 18 Jun 2021 09:23:49 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx4W3g1dm4UX0cQjt1TNjLK6ZLESjW4WlaZUh9fCvb5NfOboWsfZIQpN8aLT24I4pZxJFQX X-Received: by 2002:a05:6402:3581:: with SMTP id y1mr6103991edc.143.1624033429234; Fri, 18 Jun 2021 09:23:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1624033429; cv=none; d=google.com; s=arc-20160816; b=rCDDrTr4ApvfOTAIGfr1sbWtAlMf3/wosgunSpnHym8DQIMpCZFcVNzGXF3fvEsYp3 QbWCC0ao9tjKfLdjA68dGLhfyhSM/GhXb5bNLefKkt6GIFu3fER8aiC/o8wK0UVPAo9b WJFycfJTWiCasSo6zFlHFetci8Nl+EeVhpxQIrCvsiERFNQncuLwFxIdjlmTqProqTyY Zw0J9AV6Uqx2jorM2BvZGtqAKJLcPKuCMAqQ269mp8Jm+A9UNonzHoVKu5IF+SlXP13x sF0OAI/8qjtaSOfrEtJCYfBliucgcVl+ydx3q5xosrBNB7yh65LuW6dAN4IvY9jZ4vWt OLeA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:message-id:date:to:from :dkim-signature:delivered-to; bh=r68C4IRdNMbioFHOJYLv2I3tBiG2D3cMpDAoqD7Uzhc=; b=JJx5XClMxDVAhxl/eSISPecANRwkIuDGH2FVY/vkHasyZXT7UgzzF98JCrdpD3Uw/Z 2yjLw7ghNlW7m+jE1LMnFIel4aO6dPr9iYnD5YF8qv/y8NfvODfi1Ysg5WLdK3Om7rBX y5EvDUNXz1CxSAgebZumnwMSQnciomfA9wVrRX3xD/Yi+ULBBKtENBL2FhdkMxEe9BRC NLbwAyF2mmQ5A9rHvlJbo6IXaOddoAwqFL9Yk4PirVsUGNHmP7goenpCiwquDtI9f54E K3QpIqAA8tUcIh4DHvIKgeeXO5lNrpUkLdXNWtBg1cTO3JEMTv77wXIyrHKJmPAnAttz kGfg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=OwAuvb4H; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id l6si9223339edc.41.2021.06.18.09.23.48; Fri, 18 Jun 2021 09:23:49 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=OwAuvb4H; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 2FBB0689810; Fri, 18 Jun 2021 19:23:45 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pj1-f49.google.com (mail-pj1-f49.google.com [209.85.216.49]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id AD23E680B64 for ; Fri, 18 Jun 2021 19:23:37 +0300 (EEST) Received: by mail-pj1-f49.google.com with SMTP id t19-20020a17090ae513b029016f66a73701so1036946pjy.3 for ; Fri, 18 Jun 2021 09:23:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=yc516s+PxRIXd8kZxnKT7JDGt1iA2ZcjOhP2EXzvz1Y=; b=OwAuvb4Hep04AjhDGHEQSUimFNSWua9HSQA3VJyKvIeX/41dsp5JTETXyAARaoNRxy oKgNduhM39L+ihGNeVQYkwbHkDW9l8zE6Ev6oEG0O7K7lavU/dJ4vfAWPepbPKbzvm5y XCo0QOtUVATZ9fSLQ1732+IO0JABFUW9iMJW1ph3eg+KwBsxh9omwjZyOFsRcMaTpKku 85iyOZnPlO4+OWRusmyjnufNZnweuMuvrM/kJtzidcA3se5oyvP5474E59k27F44qLTU NQxaInKR1/Na72TJKKXRXJqLJu3kXfnI6z5lcA94tVLtCscrvc1lHgBNbiInVJnKJVKc UH4w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=yc516s+PxRIXd8kZxnKT7JDGt1iA2ZcjOhP2EXzvz1Y=; b=UoaRumSD6k1tq04EBeEIB6IUzY4vRSYkYYcRSYnpTTYHkHktIIsv4Ys0RY8+22WVi0 4g0ymD3l1LHYnQnkjp3bgHq/E6441Hc80rBuBJIwrXiYIqMI3qsCeODcEx6nb0sUY6Fw nT4Bku1Pufz+g0TSUokzhMxr7wAA18gDgEf/pT2pJAUvWj0eoT8juNwnAyioQ4ZjCSM2 VuGNYsUzCPLGKssABAq/LcF2+yPKCRhssJ1jRp1HxcoLtf9xS04jBuaXRNGRLAg0AK7p vfH4OJ9ZHtYRYqg1+hvzjiypZuHqV6IfO1ba+AsKnoEw3E4jFoS6MX2zV8U+HRIUTrkq jQbQ== X-Gm-Message-State: AOAM531uyiV6xQpUt0aFWdDjzuECGIvalt3Cbq/ZLHNOV9G/nQrXcCGt zzw6ZJIdrmwjgvxIKeW+FDHFOnFrWtvfRA== X-Received: by 2002:a17:902:9a4c:b029:119:d507:dccd with SMTP id x12-20020a1709029a4cb0290119d507dccdmr5378988plv.55.1624033415342; Fri, 18 Jun 2021 09:23:35 -0700 (PDT) Received: from Pavilion-x360.bbrouter ([103.133.123.172]) by smtp.googlemail.com with ESMTPSA id v1sm7918996pjg.19.2021.06.18.09.23.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 18 Jun 2021 09:23:34 -0700 (PDT) From: Shubhanshu Saxena To: ffmpeg-devel@ffmpeg.org Date: Fri, 18 Jun 2021 21:53:08 +0530 Message-Id: <20210618162307.20141-1-shubhanshu.e01@gmail.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] lavfi/dnn_backend_openvino.c: Fix Memory Leak in execute_model_ov X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Shubhanshu Saxena Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: 3Rerir84XUAU In cases where the execution inside the function execute_model_ov fails, push the RequestItem back to the request_queue before returning the error. In case pushing back fails, release the allocated memory. Signed-off-by: Shubhanshu Saxena --- libavfilter/dnn/dnn_backend_openvino.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/libavfilter/dnn/dnn_backend_openvino.c b/libavfilter/dnn/dnn_backend_openvino.c index 702c4fb9ee..29ec8f6a8f 100644 --- a/libavfilter/dnn/dnn_backend_openvino.c +++ b/libavfilter/dnn/dnn_backend_openvino.c @@ -448,12 +448,12 @@ static DNNReturnType execute_model_ov(RequestItem *request, Queue *inferenceq) status = ie_infer_set_completion_callback(request->infer_request, &request->callback); if (status != OK) { av_log(ctx, AV_LOG_ERROR, "Failed to set completion callback for inference\n"); - return DNN_ERROR; + goto err; } status = ie_infer_request_infer_async(request->infer_request); if (status != OK) { av_log(ctx, AV_LOG_ERROR, "Failed to start async inference\n"); - return DNN_ERROR; + goto err; } return DNN_SUCCESS; } else { @@ -464,11 +464,17 @@ static DNNReturnType execute_model_ov(RequestItem *request, Queue *inferenceq) status = ie_infer_request_infer(request->infer_request); if (status != OK) { av_log(ctx, AV_LOG_ERROR, "Failed to start synchronous model inference\n"); - return DNN_ERROR; + goto err; } infer_completion_callback(request); return (task->inference_done == task->inference_todo) ? DNN_SUCCESS : DNN_ERROR; } +err: + if (ff_safe_queue_push_back(ov_model->request_queue, request) < 0) { + ie_infer_request_free(&request->infer_request); + av_freep(&request); + } + return DNN_ERROR; } static DNNReturnType get_input_ov(void *model, DNNData *input, const char *input_name)