From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 855DC477CA for ; Tue, 20 Feb 2024 17:58:43 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id E9C4868D22E; Tue, 20 Feb 2024 19:58:41 +0200 (EET) Received: from out162-62-57-252.mail.qq.com (out162-62-57-252.mail.qq.com [162.62.57.252]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E15CA68CD89 for ; Tue, 20 Feb 2024 19:58:34 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1708451910; bh=ZGPOyqWyiZQ8yl5B19gw876jjayIUEwDvN1wnW4Eqgo=; h=Date:Subject:To:References:From:In-Reply-To; b=WbXVe9lW/QyLy3AW9UrTD+aW05lGhgEV1a1ShCQsBuBBxgTrIWJMlTvv6wlmw4lE/ beev/ZfHVdHUzvHssIt+P8v+Lhc+lYKqjjC+jSC1GEQVHXatvoKT9HhnfxGObR8J27 RY7jGp9IhjlD5oW3OmrLJU93n7izO7yP+5g6iz+U= Received: from [192.168.2.12] ([113.116.31.63]) by newxmesmtplogicsvrszb9-0.qq.com (NewEsmtp) with SMTP id E9DB648D; Wed, 21 Feb 2024 01:58:29 +0800 X-QQ-mid: xmsmtpt1708451909t5gnmn2xu Message-ID: X-QQ-XMAILINFO: NHTzLv3EXCja9Z6iLgHzPkOxX87S7Tf7w4/AYJ8iv8ZMg8L7IfLwg++DV0zYJS VZI+07YAgFZVGiheC0VlRKeScfLTWEwa7zgp5igVFhCqAmZbXmxiza6FnA9ykjXoSArMrNfqCUmf N/HHrfceAsCYvA5KVRd7ngRsux/K/JJj9X9krJPqZvZs+GmDm/Bp3yBzm3/KUB5bJd+95IOz03A8 2lSuPpgBnexwEIaaexG5mNh+d1hGDe4S820BDPK1pZZ6XJ2IV2Dg5Ac6se6i4OdFkISuT66cGM9v ZDkWYX8gDEcL7h6FIxwlxB5yak6U4QeFJpFVwP9Mhi9P3nWRWuta2MxLTJivK3DQEEgIQdBJs1u5 DblsTBCIkeiP/1C5fG0UBvX93RfSbgfhBbmf2bU38bdmWfMLmtWo62vVeTRIizKOHkZBUZiFfQLd fEZaKTshkAlVPKi+JGeunWO4xyohZA4XEt0tQkmFNVloDQlt9o9O/aKx8Bc2/5YaOmPuRF1KeTbx F5eDUL/nEu8PVbPz11Tx9Nmt9hnnfdl+nMfBOlJneqbS1T7NH3gNe1LizO6fB0t+WyAQIaqISbBQ cN2BpR4EnUigz3XemIOe5FnofsLjXQUHV3lDE2Re64K4lQ8ioAzwcM2FvZXtdDegdk48c0YnHxnM pS9ow2X0DLoAzNsTHfL9s/5uhZiS+2+mApKizcttw/9KAcyFpQuH/wNyd3Ww3iq74tRcQrwtkvk6 0Wj349powuKndPZM0KYzTHlaY+eEwiH98A9vimhcZJsYaDdVdfkuf2lXjfbHFrCXiCLgWESDKmES o/zOT8jqR9upPz2YJrWv8tRCOOVI00pBZ3WwiUoyZW1Q/7ljxcaevSlHAdoZtuppcJnp8o9FaQyX HGddYDyzpWEdDGMPkwVd/aB5bCRk4m37JhWFn2yKWi8ZjtcCd0QCoT9Imxpp54N/J1YtnSYEjAgH uzZHRSWtqgWKv9JwpY0yc+djPecJHu X-QQ-XMRINFO: NI4Ajvh11aEj8Xl/2s1/T8w= X-OQ-MSGID: Date: Wed, 21 Feb 2024 01:58:29 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird To: ffmpeg-devel@ffmpeg.org References: <20240220120858.317766-1-quinkblack@foxmail.com> Content-Language: en-US From: Zhao Zhili In-Reply-To: Subject: Re: [FFmpeg-devel] [PATCH 3/5] avutil/hwcontext_vulkan: Fix leaks when semaphore creation fails 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 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="us-ascii"; Format="flowed" Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: On 2024/2/21 01:10, Lynne wrote: > Feb 20, 2024, 13:10 by quinkblack@foxmail.com: > >> From: Zhao Zhili >> >> --- >> libavutil/hwcontext_vulkan.c | 30 +++++++++++++++++++----------- >> 1 file changed, 19 insertions(+), 11 deletions(-) >> >> diff --git a/libavutil/hwcontext_vulkan.c b/libavutil/hwcontext_vulkan.c >> index a84713e621..c64094f31c 100644 >> --- a/libavutil/hwcontext_vulkan.c >> +++ b/libavutil/hwcontext_vulkan.c >> @@ -1807,23 +1807,30 @@ static void vulkan_frame_free(AVHWFramesContext *hwfc, AVVkFrame *f) >> VulkanDevicePriv *p = hwfc->device_ctx->internal->priv; >> FFVulkanFunctions *vk = &p->vkctx.vkfn; >> int nb_images = ff_vk_count_images(f); >> + int nb_sems = 0; >> + >> + while (nb_sems < FF_ARRAY_ELEMS(f->sem) && f->sem[nb_sems]) >> + nb_sems++; >> + >> + if (nb_sems) { >> + VkSemaphoreWaitInfo sem_wait = { >> + .sType = VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO, >> + .flags = 0x0, >> + .pSemaphores = f->sem, >> + .pValues = f->sem_value, >> + .semaphoreCount = nb_sems, >> + }; >> >> - VkSemaphoreWaitInfo sem_wait = { >> - .sType = VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO, >> - .flags = 0x0, >> - .pSemaphores = f->sem, >> - .pValues = f->sem_value, >> - .semaphoreCount = nb_images, >> - }; >> - >> - vk->WaitSemaphores(hwctx->act_dev, &sem_wait, UINT64_MAX); >> + vk->WaitSemaphores(hwctx->act_dev, &sem_wait, UINT64_MAX); >> + } >> >> vulkan_free_internal(f); >> >> for (int i = 0; i < nb_images; i++) { >> vk->DestroyImage(hwctx->act_dev, f->img[i], hwctx->alloc); >> vk->FreeMemory(hwctx->act_dev, f->mem[i], hwctx->alloc); >> - vk->DestroySemaphore(hwctx->act_dev, f->sem[i], hwctx->alloc); >> + if (f->sem[i]) >> + vk->DestroySemaphore(hwctx->act_dev, f->sem[i], hwctx->alloc); >> > vkDestroySemaphore should already check for NULL, though? Yes, the check before vkDestroySemaphore can be removed. Will update the patch. > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".