From patchwork Mon Jun 27 09:57:27 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhao Zhili X-Patchwork-Id: 36484 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:8b27:b0:88:1bbf:7fd2 with SMTP id l39csp1912991pzh; Mon, 27 Jun 2022 02:57:55 -0700 (PDT) X-Google-Smtp-Source: AGRyM1s6QAPAEfPcR2mjoeK/legTVRQlMGiXWigXTXL2HQBzsbP6KXSp7h36kOrB8n759g08qavA X-Received: by 2002:a05:6402:510b:b0:437:28b0:8988 with SMTP id m11-20020a056402510b00b0043728b08988mr15991441edd.260.1656323875534; Mon, 27 Jun 2022 02:57:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1656323875; cv=none; d=google.com; s=arc-20160816; b=O+MuslQi0acMC6vJVn4KEkNjSFvEOn+CAG7Usuz3QFan0o7AcQ05RQlw+l6ZTg+/mH 5jf1S3HNDGEh75Xk4TpU1w6jkg2vSugQT81krKV0dyJtq+XlvxvnLIT/7KxinFKzi3Sk 0KD57989NzGshFkJu/94HHuwKcxyVqxIRdzqwewhPx3maF9FSBLR9tPMG05V0xhUlvSx TJ6fL9QybBYJ/qS9lQwpQUK4qlqnkyUbL09Eb44NtVQbV8Ff07MXFVx4hscbZoqOE7oe Xe2BAl+3qKKPMw9wLIkO8SSBpkv0qH5IUNvoePHZ2ZCSlBjHRVxZ+YnWS0DFONnFBDM1 8FQA== 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:date:to:from:message-id :dkim-signature:delivered-to; bh=vW2kTAYE+fPGSJFw2Rqy593aNAJeB5Ppw3s/xMOrPX0=; b=WVGyF3MRjg/fU2wp1PyPcP+L0qUzy3i2oXy1mMpoG++O9r7g2NKjUdH33wPr40cgYA Hh7LMhKY08DwOHvwdLcl3dTxiDo0GJYQIfgDCQ4ltg+8XNLh7hOz6x8nrLxeLBE6ttRR cCberb2Ud9Lg6KWVK1Cq00j20F2beClLfkmWtOLxaOQvtTCTJf0upXD40CNgPKJq5IGT C9HdzizK2ne1WszyTOC+ujhhM9I7bRM5nM2G38JDFWidvI6dV85PjFS7yxVoFiDSqdEi GwKkdtk0w1a5G1K7BG7O4bqGG2u7xbnwlGoHkF/op9bvgd/T1KoLMLrrV1fvNW9SHKhh ICxg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@foxmail.com header.s=s201512 header.b=a2qxGZpP; 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=NONE dis=NONE) header.from=foxmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id lf27-20020a170907175b00b006f3969d2189si11897651ejc.576.2022.06.27.02.57.54; Mon, 27 Jun 2022 02:57:55 -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=@foxmail.com header.s=s201512 header.b=a2qxGZpP; 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=NONE dis=NONE) header.from=foxmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 5C4C668B87E; Mon, 27 Jun 2022 12:57:50 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org 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 E632268B757 for ; Mon, 27 Jun 2022 12:57:42 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1656323859; bh=AwbCdZ5mMYAj2UQHbxUhTTg7bQmQwJfWFrnkiCQZtKM=; h=From:To:Cc:Subject:Date; b=a2qxGZpPmdPHPINLEv5MB30qAYfqMUhQvEdtSbKYhYr2Cav4bsyxrIk6riSi9048Q 7V+bz7Bf77lIBhN53c3h37bRkwPfh+JwnOKC9mnrNBTetCLzxU3pwKe0IxeFeWJncD wkWFXLWblp5mLXeixjGuBSozTcy1TMn5f2zIUQrw= Received: from ZHILIZHAO-MB2.tencent.com ([59.37.125.120]) by newxmesmtplogicsvrsza30.qq.com (NewEsmtp) with SMTP id E652D26D; Mon, 27 Jun 2022 17:57:37 +0800 X-QQ-mid: xmsmtpt1656323857th0m20ib6 Message-ID: X-QQ-XMAILINFO: MaZu5Xhaz90xMU8voTpp+yrDj7VlD6bfpMGDGD9nAYE6Qwyecx0RALlC7jB3dJ q5JUqIlpO3FTd3tmXTWTWOo0pvhwRYPyPKn0Kwhy50z3z2X3hCPumKbVUYCZCKG5fKkg2xqPADo2 +gEFqKW97keTdGeXxDpYb2PsJ9nJAGll6Oy9YoItJpgIxKvC1IE8oT88lhxen3w4MJYQLAD8SdUA lbXB0rChlUSx7FPKfJm3gZZvozr4W7cWGumKvUGAu0F0Lc88P2ACBCx3LTjNb8dWa8rGBQCed3oR nFvf9yE0Uxj9CaOHpnJ7NU8e00uMxab0pSJ75PZZ3vDU228QjPRx1qr7H+/OKdFflDlBd+1z/yb2 YCv466YDaVFCNlUQfCZdvP7GlZNUFkpAh/twoFJbgnVNUDnH5O85XuhtnK+NHgeI+od0HWAwSopJ UfZ5mDWHgATGOg+xX6ChK+asSw/WRh1j9N95YgA66Di08gxAlo7bWKdv5UIl+OyIYZeg9T5kXmUJ G3kTOhJnWxDgvdtndyQ93jb1I4Fq/ptwewzAZa4ihzFEgxvRJKQXqQ8joK1ZWJUw9eftUiqbbt7I jSxt9ODzwUUKnpJGQ9xUFNVHv5k/SN1z8BDVJwb/0AgRGuRvOoi7imYEf/3cp5YXBmyUaHywPLPH OYKcQiemsearB526SFO1rKTN5pgMrdOU0fyrA/on29rCFv8awkwGBsVioylkZ+RhyRD+/tw/fv/g BAGDjhxuolgXKzTpXVf1qdeW7nrz7B+MlRO5pMpKY1XXsMLfNs0p/2fqngV030KeH64R59/xEL7d kPWpcrVhdfLCQ+YwAN5O8eOWxP+m/v2RaeNWBrALE+nlXyu3PlZtZJuKMlqnTZFq1YfUt3bP/wJD XKH3dWukhkttJp5qzqYXaAPoY0TFaiI+Ro/2GzsdQ3h1rDWyrt+ccIgd83frOjcaX+rCKmwDd2hz whg0lsiTgqjIWD7rGvRQ== From: Zhao Zhili To: ffmpeg-devel@ffmpeg.org Date: Mon, 27 Jun 2022 17:57:27 +0800 X-OQ-MSGID: <20220627095728.55330-1-quinkblack@foxmail.com> X-Mailer: git-send-email 2.35.3 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] avcodec/libdavs2: workaround memory leak 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: Zhao Zhili , Zhao Zhili Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: QZ1piQeB9DtV davs2_decoder_close doesn't free those on the fly frames which don't get output yet. It's a design bug, but easy to workaround. Before the patch: Direct leak of 1198606 byte(s) in 2 object(s) allocated from: #0 0x563af5e1e5f0 in malloc (ffmpeg+0x6675f0) #1 0x563af9765ef3 in davs2_malloc davs2/source/common/common.h:1240 #2 0x563af9765ef3 in davs2_alloc_picture davs2/source/common/header.cc:815 Indirect leak of 3595818 byte(s) in 6 object(s) allocated from: #0 0x563af5e1e5f0 in malloc (ffmpeg+0x6675f0) #1 0x563af9765ef3 in davs2_malloc davs2/source/common/common.h:1240 #2 0x563af9765ef3 in davs2_alloc_picture davs2/source/common/header.cc:815 Signed-off-by: Zhao Zhili --- libavcodec/libdavs2.c | 1 + 1 file changed, 1 insertion(+) diff --git a/libavcodec/libdavs2.c b/libavcodec/libdavs2.c index d7625718a2..c2040775ae 100644 --- a/libavcodec/libdavs2.c +++ b/libavcodec/libdavs2.c @@ -177,6 +177,7 @@ static av_cold int davs2_end(AVCodecContext *avctx) /* close the decoder */ if (cad->decoder) { + davs2_flush(avctx); davs2_decoder_close(cad->decoder); cad->decoder = NULL; }