From patchwork Wed Aug 1 10:03:52 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jacek Jendrzej X-Patchwork-Id: 9856 Delivered-To: ffmpegpatchwork@gmail.com Received: by 2002:a02:104:0:0:0:0:0 with SMTP id c4-v6csp1160920jad; Wed, 1 Aug 2018 11:37:21 -0700 (PDT) X-Google-Smtp-Source: AAOMgpfLHHI9+DzdHu3MAbFurM+5nLnyT7Hk41P99ae2ivNp/WNjCTBHGDsZaPWiTpdZhMPgpWxR X-Received: by 2002:a1c:af53:: with SMTP id y80-v6mr9994wme.55.1533148640948; Wed, 01 Aug 2018 11:37:20 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1533148640; cv=none; d=google.com; s=arc-20160816; b=p7aX0OnAno50PCKY2dHXsf2MUHEVPtgWwO/PxAl7euJtr2FdJX9NnKXGt3ZBFWHaGE YFzvDoyQozGSTdqrkz/vwv+Qn9AK1JbkgdRFELrjwngaWaM1e/YJpabziuIOjvikhaVI 5ZYvULlXzCsNM9iMeyDg3V2zFIhqSIT3xKg8Dul8Rlh2PKHU4aZwZ3ew2W4WvF+3SiQQ 6/80hkjkPHyYLH/08VQffuMD2kZmsu5KAuo7RJmVPBDnQEcEKIyIzYvZqb4J4sD0IROK 863vRnhz0Z+KOPDHTkd/e1JXJEA3BB7F4C+6HRCMTU2A1oZe69GIX9b/Ls9HHivx21RR zGZA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:reply-to:list-subscribe:list-help:list-post :list-archive:list-unsubscribe:list-id:precedence:subject:to :message-id:date:from:mime-version:dkim-signature:delivered-to :arc-authentication-results; bh=qRaIdKqUtLlFUlKMy1ZzX8jx2HwYo4xjcWgNTfzW1Jo=; b=xeaN0nq34aOyhOKVnW+gE6dNiOFEkTUio/+dMGl0cYykzUJeVzrrF86IbimW7bQrww aWW5cUwB8BtsNdpNaCZthLpA3/DxWPKSEcP6C/fm1iuZV/4Kuavb8FxkU9f8+/us3zFu prxBMeo+LMgs58Jovn8xHb4VUjxc8uZNDI2BEqDRICK6/4Fx5xArQzTER9ZJ7h2Wop/n YYxYw/2d4fD6l3dlEaHPlwctC9Ao56Z96xZGaRBT/E2WGtrWN0uaUuXlMtdj4nPK6uvW nz2b2JEt2x0u9fVZjnAl6arzqKnOp7RyEr/Sliw8A6sLnQBiddqhX+gyHgcFCq8lrDvn tQ1w== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=YrDkVeEu; 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 h5-v6si17017380wru.402.2018.08.01.11.37.20; Wed, 01 Aug 2018 11:37:20 -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=YrDkVeEu; 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 63401689E31; Wed, 1 Aug 2018 21:37:01 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-it0-f65.google.com (mail-it0-f65.google.com [209.85.214.65]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E707B689E11 for ; Wed, 1 Aug 2018 13:11:18 +0300 (EEST) Received: by mail-it0-f65.google.com with SMTP id g191-v6so8870667ita.0 for ; Wed, 01 Aug 2018 03:11:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=MK8MtLn7Dof8WWqUhYY0JC+kVFWZ5iVsPBI3sIsj84Q=; b=YrDkVeEu5Mxhc7gB9eK+Npy3lcrJTMz1lBf1z2Fadt0VdaR2dp3BQVpyIwPnU69ZMr 5OvHbVzEtmzUU8scw3Z65km9Fj6jXBUloxk983Hs3yloAN3kVJ1WiM49CztN9tCVHWK+ +f0EU9zHQQFNJNXtDAKgldF5hWFyZdfYQ+MkKwFDLw+6vhETDjc5XQEReWHUrSPNK+hr n7sC5DvU52b7kbLAnyTwV5laDZKqAN6iwMzEcxq8+xm/DyUs6aryxz+KZ6MrxBbqWJdu JO8JZUdB2K4crudXB+P/KM4wQ0zBHgLrrhd3vMllHOMf7fMFpMlY39YR2Xf8rCyXNC3m mqrQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=MK8MtLn7Dof8WWqUhYY0JC+kVFWZ5iVsPBI3sIsj84Q=; b=Z7Gp99n7SQd1XuNJ7HQVwc/ep6+oWn4U+t84MyULZmbp+2cqgm6KiCqvFXKqQgkaGK EG+Vhg0namwMwavGtpXaSQnGzBVtznJEAhIQPtuu3LWSA5sPBKG4Pkhvjm3aYIYn9v92 ggYhJQQO1ZgdETMaqi1zjUjdK79XpmzYuWmXCqoJY23ce+zS/k+bAf92kBcfcAhOzyc4 sT/pcdPrfseiAP56QN4PBoEUjD6t3/Uf8xk+rWXVB/SotFJ3pSibFZ8mAo9tyRXcLtrZ eI6Z8ybam8PZm68PFAhUF+pcvtZTvCJbewOl+GsP9FBeEcyScWJW9gabpYuDTa5oXkAV 7IdA== X-Gm-Message-State: AOUpUlF3XpcSu15XBU5igJAtl6TaYYhQrX4pEc24xWZWliYTDSbWCApS vuMy7nVAaE1FWISis/SSAH2RgA9ie5L+nUaEKvd9K3vL X-Received: by 2002:a24:1344:: with SMTP id 65-v6mr2945303itz.82.1533117832869; Wed, 01 Aug 2018 03:03:52 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a02:8803:0:0:0:0:0 with HTTP; Wed, 1 Aug 2018 03:03:52 -0700 (PDT) From: jacek jogo Date: Wed, 1 Aug 2018 12:03:52 +0200 Message-ID: To: ffmpeg-devel@ffmpeg.org X-Mailman-Approved-At: Wed, 01 Aug 2018 21:37:00 +0300 X-Content-Filtered-By: Mailman/MimeDel 2.1.20 Subject: [FFmpeg-devel] lavf/dashdec: Fix memleak 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Hi. This fix memleak in dashdec. ==5033== HEAP SUMMARY: ==5033== in use at exit: 86,144 bytes in 2,848 blocks ==5033== total heap usage: 10,089 allocs, 7,241 frees, 38,902,613 bytes allocated ==5033== ==5033== Searching for pointers to 2,848 not-freed blocks ==5033== Checked 9,139,304 bytes ==5033== ==5033== 528 bytes in 8 blocks are definitely lost in loss record 187 of 222 ==5033== at 0x4C2CB5F: malloc (vg_replace_malloc.c:299) ==5033== by 0x6868D38: xmlBufCreateSize (in /usr/lib64/libxml2.so.2.9.8) ==5033== by 0x67F1029: xmlNodeGetContent (in /usr/lib64/libxml2.so.2.9.8) ==5033== by 0x41EA43: resolve_content_path (dashdec.c:757) ==5033== by 0x41EA43: parse_manifest_representation (dashdec.c:873) ==5033== by 0x41EA43: parse_manifest_adaptationset (dashdec.c:1095) ==5033== by 0x41EA43: parse_manifest (dashdec.c:1272) ==5033== by 0x420E2A: dash_read_header (dashdec.c:1927) ==5033== by 0x53CF77: avformat_open_input (utils.c:631) ==5033== by 0x2647F4: open_input_file (ffmpeg_opt.c:1069) ==5033== by 0x266121: open_files (ffmpeg_opt.c:3219) ==5033== by 0x266121: ffmpeg_parse_options (ffmpeg_opt.c:3259) ==5033== by 0x25E991: main (ffmpeg.c:4859) ==5033== ==5033== LEAK SUMMARY: ==5033== definitely lost: 528 bytes in 8 blocks ==5033== indirectly lost: 0 bytes in 0 blocks ==5033== possibly lost: 0 bytes in 0 blocks ==5033== still reachable: 85,616 bytes in 2,840 blocks ==5033== suppressed: 0 bytes in 0 blocks ==5033== Reachable blocks (those to which a pointer was found) are not shown. ==5033== To see them, rerun with: --leak-check=full --show-leak-kinds=all ==5033== ==5033== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0) ==5033== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0) Can be reproduced with: valgrind --leak-check=full -v ffmpeg -i http://yt-dash-mse-test.commondatastorage.googleapis.com/media/motion-20120802-manifest.mpd From 1fa3d049a17dd4d135bb79423e0551ee7ee7f25d Mon Sep 17 00:00:00 2001 From: Jacek Jendrzej Date: Wed, 1 Aug 2018 11:53:41 +0200 Subject: [PATCH] lavf/dashdec: Fix memleak --- libavformat/dashdec.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libavformat/dashdec.c b/libavformat/dashdec.c index 89f3ac2759..010a2e8387 100644 --- a/libavformat/dashdec.c +++ b/libavformat/dashdec.c @@ -754,9 +754,12 @@ static int resolve_content_path(AVFormatContext *s, const char *url, int *max_ur if (!(node = baseurl_nodes[rootId])) { continue; } - if (ishttp(xmlNodeGetContent(node))) { + text = xmlNodeGetContent(node); + if (ishttp(text)) { + xmlFree(text); break; } + xmlFree(text); } node = baseurl_nodes[rootId]; -- 2.18.0