From patchwork Thu Sep 21 22:04:37 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 5230 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.2.36.26 with SMTP id f26csp2458989jaa; Thu, 21 Sep 2017 15:13:07 -0700 (PDT) X-Received: by 10.223.160.46 with SMTP id k43mr3262846wrk.113.1506031987343; Thu, 21 Sep 2017 15:13:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1506031987; cv=none; d=google.com; s=arc-20160816; b=fmgT6wOLykE8nzSkNLgV9GRwNwwARSMhd5nb8dMqeyFY6GYFMfKHQYZfEWuZqld47I NrNMD6rVj6WeT+HwDTV+q2GWWiZUwLnuzLZyYnUFOGbxnq7lhizOR7z900N5/kjweY9s h3/BX8BdtO0JdzgvyuNrwW6cX4BylX1yPDMzLJ32EXzJg8iORZ60itfCAgl3c0Gw3Zuy dOycYViVR6St0P5qh3yrWNfpPcp5To4sOQ/b39Wk8IXoqTJ3Otsl41X7RmOrd52PkVoD zuqt0ok5qO9ilP7yxtsxjtZGK/ZaQoXOJB2dT12LlHCD6mHOE2yXOiMAmeHIr9t1J0Tp Woyg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:message-id:date:to:from:dkim-signature :delivered-to:arc-authentication-results; bh=E/vSxgnAF7tWLhtMCNr8rY2zo6G45F/CYYHutl4kFi8=; b=00q2sRhuNl7ebJgVMeHwA4jvM8DW6iHb/1RVCp+iyAkCOFSXJF6sLfFeDqOzAMIb8P bIyzrNHT7bY63kMep0RWpg7kJrv6V6T9xGBzbZAguJ9vDr4gsiKRFtRfRxnsWAWopA/+ KiuDHN2im2sSbi379Ggl7mRpYeqOCR7AaGouAAwqVcFBIKrStb/0UqmCvzT0+RDg6ru5 WdHOQrI7j5g0axR8pDIct/f1InZvdSns+pHKsqTB5NQbdJuiUa+MjM3RmW/HNxTE/kqO PoF36KI63+SbpYPZEd3EtS/Nli+5mR0GoI8FupXPx7TcJCdbml6Sjwm4MILcpiguDT6Y y3OA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=HUPXx7hz; 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=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 h130si1903795wmf.148.2017.09.21.15.13.06; Thu, 21 Sep 2017 15:13:07 -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=HUPXx7hz; 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=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 144516891EB; Fri, 22 Sep 2017 01:12:56 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt0-f196.google.com (mail-qt0-f196.google.com [209.85.216.196]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id F27F2680385 for ; Fri, 22 Sep 2017 01:12:49 +0300 (EEST) Received: by mail-qt0-f196.google.com with SMTP id q8so4652089qtb.1 for ; Thu, 21 Sep 2017 15:13:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id; bh=Cz68xUAjpT1j13Vf3FEAld8W4/e1yzTh2+CbGdyiW1M=; b=HUPXx7hzu0cKhvIXN4tFp5wSsUrX+72RoGNgi/WL7h4eAC+Mj2vyENTfPHC6XDUD4M XYnzV/jT2hotp1ioydWxFe09knkLVctahf8g5MGLKrlt5GUCdkPRBYhOVkThFLgPAe9r qC7NoN0tueYMZCtfvLPah3u/Vao1D/owH0HKOvkqbRze0IRrXwnt+v5qonU9s1mOHegR Ik36FgFMUMC0fC4GEd3wgzBtwRTLOzLQVL8xzPMFHTGdzw2q4hnwC/Kjq4ODSQsvj1Jx +pwgo++bWjZjvhFlZMbWb7eYlOwDxr6yFf/Mx+vSfnyJEWhqo1c72x1GOLCt2P3BhN37 dnug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id; bh=Cz68xUAjpT1j13Vf3FEAld8W4/e1yzTh2+CbGdyiW1M=; b=MVnj5ujo6ZTF32ulNGYWnnoaV8ngSPxZWMsp1sbKEcFnH/zIpJOUx84Y7gkBc+xaCS AWDrVFiFoF+twPnpG+Cp31x8WYDS7DWcSLqpYYhtsM6K3N3iP7Jiw+jRlnZblPZLCAJa 9RQST4bu8tfcxeH9Nsl2+7sSDs0wgP22ZVz3kh/2/RBfbIFp3SkvcSi4RjdxU8z0Ozhe UmzgvGuySxW5DTRuBR50Ym4RN//joHiODisuSfJKO5GHBp05L4cJqSwnOhaCeo3a+Dqh dasR77ZMfNyE6uq+Lj8r+sl/Zqrl85ZEJYx63RpNaZOZTdu6riJ8/mUAebYuQqaGxuHW o9+A== X-Gm-Message-State: AHPjjUiWfu+tFlKp56fulKxgriQTdLTw8LMKAUg5rLDPAfibIqZXuIF4 YNqZVuUYljCQ9geGQ8vMniMIyg== X-Google-Smtp-Source: AOwi7QDN0SFjHMdwMIyitiOVn2kKXso3hmaDRsX2CStJX88bCKA2jKVIlra2MVlaSJGkQyBC2O6qeA== X-Received: by 10.200.23.29 with SMTP id w29mr5868345qtj.151.1506031512473; Thu, 21 Sep 2017 15:05:12 -0700 (PDT) Received: from localhost.localdomain ([181.231.68.242]) by smtp.gmail.com with ESMTPSA id u23sm1688944qki.24.2017.09.21.15.05.11 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 21 Sep 2017 15:05:12 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Thu, 21 Sep 2017 19:04:37 -0300 Message-Id: <20170921220438.8216-1-jamrial@gmail.com> X-Mailer: git-send-email 2.14.1 Subject: [FFmpeg-devel] [PATCH 1/2] avcodec/avpacket: fix leaks when copying side data if src == dst 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 MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" The scenario makes no sense and produces all kinds of memory leaks. Return 0 instead of an error as the process is pretty much a nop. Signed-off-by: James Almer --- libavcodec/avpacket.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/libavcodec/avpacket.c b/libavcodec/avpacket.c index 5ce3228166..a68e2501ad 100644 --- a/libavcodec/avpacket.c +++ b/libavcodec/avpacket.c @@ -225,14 +225,14 @@ failed_alloc: int av_copy_packet_side_data(AVPacket *pkt, const AVPacket *src) { + if (src == pkt) + return 0; + if (src->side_data_elems) { int i; - DUP_DATA(pkt->side_data, src->side_data, - src->side_data_elems * sizeof(*src->side_data), 0, ALLOC_MALLOC); - if (src != pkt) { - memset(pkt->side_data, 0, - src->side_data_elems * sizeof(*src->side_data)); - } + pkt->side_data = av_mallocz_array(src->side_data_elems, sizeof(*src->side_data)); + if (!pkt->side_data) + goto failed_alloc; for (i = 0; i < src->side_data_elems; i++) { DUP_DATA(pkt->side_data[i].data, src->side_data[i].data, src->side_data[i].size, 1, ALLOC_MALLOC);