From patchwork Sat Sep 19 16:36:09 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 22501 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 11C984496B7 for ; Sat, 19 Sep 2020 19:40:14 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 0653D68B905; Sat, 19 Sep 2020 19:37:42 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f66.google.com (mail-wm1-f66.google.com [209.85.128.66]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8A33868B893 for ; Sat, 19 Sep 2020 19:37:35 +0300 (EEST) Received: by mail-wm1-f66.google.com with SMTP id x23so8096019wmi.3 for ; Sat, 19 Sep 2020 09:37:35 -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:in-reply-to:references :mime-version:content-transfer-encoding; bh=R3VjaVZEWcJJ1F8w5QyHUnQyIo1Swp3CCqr8soNXawo=; b=AXx44aV96t+iJq9SHzQb9QuWJUgbSiG1RQGXA171dYnx8L9dtD3Ul/qUiExYetYZZ2 mQlTjeS+6XyuLULDgWVtWDJlFa/IqHfHu28i9CyyQNZnC5F1hesM4AbfUgA4lvVaV6G1 /XkIOdJysUc/KHgv21vLIroYaxqE2XsKz49INqXhXc97+FiETxHuSzlZkUC3DQK/Kd4t Xwxo35H1W8Gg8WBw0AkJaXW+iwrwwQgrH/UEiIdYbKEdQoP1F95s5rIya4lQMjKVvdGd PGWM4VgEE749S1du10HimjnleZNAEnEFRuMmk8zQ7sY7x2jgylGbut9+2NKu+yj2enab TYew== 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:in-reply-to :references:mime-version:content-transfer-encoding; bh=R3VjaVZEWcJJ1F8w5QyHUnQyIo1Swp3CCqr8soNXawo=; b=n+dsngsQeLIid4Dh87gHzVoMxaUxiiNnxFjx2h2tMGWqdzZ7j9Mr/Y/Coz1buMtvaN xm+tEMNyABo66ZdJgw1uB6xgqXIFdz29LFBCjz4t/xFhyaGTeClPqW3d5B/NcMNn/KPA g+eJfFxEiNMMK98Okfb05UGqYY+QD82j8KI78TCP8BZhRVuZGB16ylrdhZE3CZ22YD0/ zs0rj61RiA5OXN3eELVeIVnml259uaofsAHC8q8sPxwRqiVwAGqeOvPmYQYYo8hKooew G7uUDDHr08qrMViENa8VoUaXrfgUB7336onEFvdXK42yyeVGbeQ7egdDIoUlV0o4psPD Vl/A== X-Gm-Message-State: AOAM533TNIu3ny3hrP029R7j6gh2p7X6DDV3DMWnQff2nAyIqSqTeoWY jo1MLu+SP4nX56bsVUu7I6j/Tja/yaA= X-Google-Smtp-Source: ABdhPJzIrH8zbtxJqRZ5NMduqrYXiTZl+xeegzjRHBRL+sTp+7wQD/4Q3Il8xEXBMbgSVKwcx3kkaQ== X-Received: by 2002:a1c:6145:: with SMTP id v66mr22138999wmb.171.1600533454509; Sat, 19 Sep 2020 09:37:34 -0700 (PDT) Received: from sblaptop.fritz.box (ipbcc1fb0f.dynamic.kabel-deutschland.de. [188.193.251.15]) by smtp.gmail.com with ESMTPSA id d5sm12451137wrb.28.2020.09.19.09.37.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 19 Sep 2020 09:37:33 -0700 (PDT) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sat, 19 Sep 2020 18:36:09 +0200 Message-Id: <20200919163610.1099233-20-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200919163610.1099233-1-andreas.rheinhardt@gmail.com> References: <20200919163610.1099233-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 20/21] avformat/dashdec: Fix memleak on allocation error, avoid allocation 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" get_content_url() allocates two buffers for temporary strings and when one of them couldn't be allocated, it simply returns, although one of the two allocations could have succeeded and would leak in this scenario. This can be fixed by avoiding one of the temporary buffers. Signed-off-by: Andreas Rheinhardt --- libavformat/dashdec.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/libavformat/dashdec.c b/libavformat/dashdec.c index 73740eb061..be67192b14 100644 --- a/libavformat/dashdec.c +++ b/libavformat/dashdec.c @@ -472,11 +472,9 @@ static char *get_content_url(xmlNodePtr *baseurl_nodes, char *text; char *url = NULL; char *tmp_str = av_mallocz(max_url_size); - char *tmp_str_2 = av_mallocz(max_url_size); - if (!tmp_str || !tmp_str_2) { + if (!tmp_str) return NULL; - } for (i = 0; i < n_baseurl_nodes; ++i) { if (baseurl_nodes[i] && @@ -485,9 +483,7 @@ static char *get_content_url(xmlNodePtr *baseurl_nodes, text = xmlNodeGetContent(baseurl_nodes[i]->children); if (text) { memset(tmp_str, 0, max_url_size); - memset(tmp_str_2, 0, max_url_size); - ff_make_absolute_url(tmp_str_2, max_url_size, tmp_str, text); - av_strlcpy(tmp_str, tmp_str_2, max_url_size); + ff_make_absolute_url(tmp_str, max_url_size, "", text); xmlFree(text); } } @@ -513,7 +509,6 @@ static char *get_content_url(xmlNodePtr *baseurl_nodes, } end: av_free(tmp_str); - av_free(tmp_str_2); return url; }