From patchwork Wed Aug 26 21:38:45 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhao Zhili X-Patchwork-Id: 21948 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 2B329449BE7 for ; Thu, 27 Aug 2020 12:39:04 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 1541F689E2F; Thu, 27 Aug 2020 12:39:04 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from qq.com (out203-205-221-146.mail.qq.com [203.205.221.146]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 02FAA6883C9 for ; Thu, 27 Aug 2020 12:38:55 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1598521130; bh=DHH6pgxqOhxCc+Lnrgh1mDpF3W5RMajmqvcQl0XR8j8=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=GRyP9k6G5zIOpSmPcDjkZKodJ9gT0etGuNT3cYIA7KJI4a7TYY6Hu7NGIOTq9TWsN MJCvAemcIBoDfNlrRnFsEMTBkSHaqcdwAykFKQ1fHIVIPZKoNBH30F9kdkoGdwROgH NcIrJiNCDtUZ8YL6LNDYrtw3N8IgfAs+JWlB6F5A= Received: from ZHILIZHAO-MB1.tencent.com ([59.37.125.52]) by newxmesmtplogicsvrszc6.qq.com (NewEsmtp) with SMTP id 9ABAB257; Thu, 27 Aug 2020 17:38:43 +0800 X-QQ-mid: xmsmtpt1598521129t2f4kvnzc Message-ID: X-QQ-XMAILINFO: OOfuAEK1AWX7ApoRYoCSswUhEd6YutXB8YykOjqvKLGfCFdq5FZrbvVCbikFER jVIdQGBBYAzsMbEIHcb2QQLUNCAN5g3qRsEDKar06Qh+U5GUbuJhQb++km9Yt6RL0LTbgCrz0If8 TE0CBQptC7tno5e7zhqQ0qLppjPAhLTSvAxI40MMIXJDZO2GbiuSBKCNFVJxFcDfd0FSdo2kQO7S fqOZzT0OxvE/9Z4eWpUeVpJyICPI7LlahS7EXbs6f/eSdS55Py8O8Np0JkGNgobuK/1yBUcN+h9J 8xvQOl+vL4afKWp4pD40HfKXEF89DzCUQIH793GCYXVsAXu7ioA1kkc5urkmlRl1BFFsV3ryFBRr RAb5vlC1gw/2Zrk0gVdYynb2uj/BxKZfADVLYn4ny46d83IyB+IqCVExhmdCWW+AFGA72ebTy4Rz 2Qn9Qk5MgNKBI19ijWyjiVQCxtjEee7C+4NsIKMnTWa+ao/rW4+c8u0tIxBKVeqRD62QqwHpc1qa 3S14tayljMmFd9N0QwxigLxG+cO3InvIx3zNHuqAvNWpPZPxX1KuAMLmzCGY3T+hrx+e9uirdwQY jOQ6vz5Ttj58F+7DmxFEO7Kln2nC48Ue4xWdioOaakQFSvXz5w0RvilFjcwnsCGpvFXNAlVUrALg s4vxZJ5WIFmrK4pvdqH8mQJTN4xFpDKyjSgWKVdbngYt1qztTRxsp8V18392cizbgzPl/d/IC3Da NwB9aqC5RoASPfNLNSbStECw== From: quinkblack@foxmail.com To: ffmpeg-devel@ffmpeg.org Date: Thu, 27 Aug 2020 05:38:45 +0800 X-OQ-MSGID: <20200826213845.3400-2-quinkblack@foxmail.com> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20200826213845.3400-1-quinkblack@foxmail.com> References: <20200826213845.3400-1-quinkblack@foxmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 2/2] avcodec/videotoolboxenc: fix use after destroy X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 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: Zhao Zhili Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: Zhao Zhili The lock is used in clear_frame_queue(). --- libavcodec/videotoolboxenc.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/libavcodec/videotoolboxenc.c b/libavcodec/videotoolboxenc.c index 988782f10d..758db9641f 100644 --- a/libavcodec/videotoolboxenc.c +++ b/libavcodec/videotoolboxenc.c @@ -2496,14 +2496,17 @@ static av_cold int vtenc_close(AVCodecContext *avctx) { VTEncContext *vtctx = avctx->priv_data; - pthread_cond_destroy(&vtctx->cv_sample_sent); - pthread_mutex_destroy(&vtctx->lock); - - if(!vtctx->session) return 0; + if(!vtctx->session) { + pthread_cond_destroy(&vtctx->cv_sample_sent); + pthread_mutex_destroy(&vtctx->lock); + return 0; + } VTCompressionSessionCompleteFrames(vtctx->session, kCMTimeIndefinite); clear_frame_queue(vtctx); + pthread_cond_destroy(&vtctx->cv_sample_sent); + pthread_mutex_destroy(&vtctx->lock); CFRelease(vtctx->session); vtctx->session = NULL;