From patchwork Sun Mar 29 00:32:34 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 18476 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 2D70744B0D7 for ; Sun, 29 Mar 2020 02:32:50 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 0460668B643; Sun, 29 Mar 2020 02:32:50 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f68.google.com (mail-wr1-f68.google.com [209.85.221.68]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 77CA268B1E2 for ; Sun, 29 Mar 2020 02:32:43 +0200 (EET) Received: by mail-wr1-f68.google.com with SMTP id d5so16631008wrn.2 for ; Sat, 28 Mar 2020 17:32:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=3S7mkwf61fzgAFAcIHAmrzxfEDeJa497okIdpmokw3Q=; b=JAPK1wD9kqiLYDLSBkJ2w4rke3XabO4ylSC8y+ihLbL6DulTl9jG10ba+BjKZqW8Pp 3xAYdeiCEvNXikUSRlqz57g37EERCi3I3pnaRB8zHbybsvm0p36z6xVkn9AByU+nufvb ABf3kntA3z2Oa0bduWz/r+Rko3iqlEW53hCQQm/iZb7JLDFVkcvNKzZokOmjQ7nW4vYk 37UqzyJ3tNFnIMt5ppNG5IdyGLm/9hUNza4IHDJlOOJtVSP1x1e38HNC+EvCxldbtgPm Nu5t7Ft3x4RVtwBBmBaTVZjRNsUCJE94G42r0YAoFG0RCc95fKyG0oi8ZACf1J2gULbT I77g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=3S7mkwf61fzgAFAcIHAmrzxfEDeJa497okIdpmokw3Q=; b=iiVVhpkYHwqbefQFKqff6E40TNm1VCWMnF0Y9ArI21huewJruXXjDAyevoiQvXEdAw 1PMEl0+skATT0RtzRTYtI75TdQ3AKiCfopm/wUGOTeiGookVJBBRlWysFrxum3/coHg0 HFSyIpAaUM7k9k9dIPKNvwea4UxQ3L5bg7AdulJ6gEJfG+yrOuWfB5ppzD16pDWDJeki d7UrW61tB7ADCDNJfFBQrwhA8wxZ2QjgL/oOXTMDRzx1e7K7/8Ab0NYUtZmMgiOHOkfK +RQkGnOrPqhxKwmlyKf3i5IaN8wPDUtC0IKrOamFVe9RygaQ8Pr5pbYwJ1PfkKuhXtn5 3syA== X-Gm-Message-State: ANhLgQ0ejIT4xP5QlveSkygRuqCgyu7O/KLQI8Kqj8jUDaq49QMQwwCG HZsfjgJXsIPcUr3MVl69EDCalIdq X-Google-Smtp-Source: ADFU+vsGwx8Z+vIWxYST/o9F1q+rZV2XU0VT8Nv3yvyPs2iKHHAwnx9k78eIiUJr63y9FB9F+s3vJA== X-Received: by 2002:a5d:5687:: with SMTP id f7mr6771228wrv.425.1585441962603; Sat, 28 Mar 2020 17:32:42 -0700 (PDT) Received: from sblaptop.fritz.box (ipbcc1ab57.dynamic.kabel-deutschland.de. [188.193.171.87]) by smtp.gmail.com with ESMTPSA id a13sm7431486wrt.64.2020.03.28.17.32.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 28 Mar 2020 17:32:41 -0700 (PDT) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sun, 29 Mar 2020 01:32:34 +0100 Message-Id: <20200329003234.11039-1-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v2] avformat/dashdec: Don't allocate and leak strings that are never used 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: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Since commit e134c203 strdups of several elements of a manifest are kept in the DASHContext; but said commit completely forgot to free these strings again (with xmlFree()). Given that these strings are never used at all, this commit closes this leak by reverting said commit. This reverts commit e134c20374ee3cbc6d04885d306b02c9871683a2. Signed-off-by: Andreas Rheinhardt --- The only change in comparison to [1] is that the commit message now contains the typical "git revert"-line, including the full hash of the commit to be reverted. [1]: https://ffmpeg.org/pipermail/ffmpeg-devel/2020-March/258389.html libavformat/dashdec.c | 27 --------------------------- 1 file changed, 27 deletions(-) diff --git a/libavformat/dashdec.c b/libavformat/dashdec.c index 5bbe5d3985..271202b0a5 100644 --- a/libavformat/dashdec.c +++ b/libavformat/dashdec.c @@ -122,19 +122,6 @@ struct representation { typedef struct DASHContext { const AVClass *class; char *base_url; - char *adaptionset_contenttype_val; - char *adaptionset_par_val; - char *adaptionset_lang_val; - char *adaptionset_minbw_val; - char *adaptionset_maxbw_val; - char *adaptionset_minwidth_val; - char *adaptionset_maxwidth_val; - char *adaptionset_minheight_val; - char *adaptionset_maxheight_val; - char *adaptionset_minframerate_val; - char *adaptionset_maxframerate_val; - char *adaptionset_segmentalignment_val; - char *adaptionset_bitstreamswitching_val; int n_videos; struct representation **videos; @@ -1124,26 +1111,12 @@ static int parse_manifest_adaptationset(AVFormatContext *s, const char *url, xmlNodePtr period_segmentlist_node) { int ret = 0; - DASHContext *c = s->priv_data; xmlNodePtr fragment_template_node = NULL; xmlNodePtr content_component_node = NULL; xmlNodePtr adaptionset_baseurl_node = NULL; xmlNodePtr adaptionset_segmentlist_node = NULL; xmlNodePtr adaptionset_supplementalproperty_node = NULL; xmlNodePtr node = NULL; - c->adaptionset_contenttype_val = xmlGetProp(adaptionset_node, "contentType"); - c->adaptionset_par_val = xmlGetProp(adaptionset_node, "par"); - c->adaptionset_lang_val = xmlGetProp(adaptionset_node, "lang"); - c->adaptionset_minbw_val = xmlGetProp(adaptionset_node, "minBandwidth"); - c->adaptionset_maxbw_val = xmlGetProp(adaptionset_node, "maxBandwidth"); - c->adaptionset_minwidth_val = xmlGetProp(adaptionset_node, "minWidth"); - c->adaptionset_maxwidth_val = xmlGetProp(adaptionset_node, "maxWidth"); - c->adaptionset_minheight_val = xmlGetProp(adaptionset_node, "minHeight"); - c->adaptionset_maxheight_val = xmlGetProp(adaptionset_node, "maxHeight"); - c->adaptionset_minframerate_val = xmlGetProp(adaptionset_node, "minFrameRate"); - c->adaptionset_maxframerate_val = xmlGetProp(adaptionset_node, "maxFrameRate"); - c->adaptionset_segmentalignment_val = xmlGetProp(adaptionset_node, "segmentAlignment"); - c->adaptionset_bitstreamswitching_val = xmlGetProp(adaptionset_node, "bitstreamSwitching"); node = xmlFirstElementChild(adaptionset_node); while (node) {