From patchwork Fri Jul 14 14:38:00 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Derek Buitenhuis X-Patchwork-Id: 4319 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.103.1.76 with SMTP id 73csp1098302vsb; Fri, 14 Jul 2017 07:45:12 -0700 (PDT) X-Received: by 10.28.22.6 with SMTP id 6mr3136521wmw.124.1500043512550; Fri, 14 Jul 2017 07:45:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1500043512; cv=none; d=google.com; s=arc-20160816; b=xXxb3wGB+JPwLgdW/KwcxS807FUoqQpX4r4qXYvhI4ufvJveFMLxstcj09nKd03tMC AjJ/uLWuRkIaKnfQ0AQ8rwWNuKuQFg+B110x2ZYrA5/kL/aAzAXWk+wvZsO1U/Vbx0Ec q4G20iPnFeB1eywdPW4HfcyhAalNPQU00fJ1Hax6EcMfs2Ch/MOlRzvwcxFxi/6o2tAC UcKRBzn/3ZZvFq3d/I7y7ARYx4n33XzuD8FwmMfzr7rF2bPJ7cV7jPsOGCyTxltLF2MO DUAq6URhRhvEH8Z5LTikVwhZ7P3gWBJEYYG1z89HiYm62O0RabYI75uOMLY3RdcP+wam jHjg== 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=STGH2Als8xsbBGOODoRJGnsc4dI7G3yLxcvYdGJSO/Y=; b=SiurjCvhzAqCvFBR+Hja5o3Z8gsUdx2JawDvLC16SbWS3+zLuFyk/h4J5OT6K3YCfx /gsDsPMmOOcIhnH7pS5nU/7bdL7ZFWzypUTPwCKygEkgXII/oLg87D02wpMMmeacBI2n GBFHkWBa8ikzrll3qcjf/feWhwdqzYhfHCczAqNHSza2jy6Pxdiy4H6IluATJWoT1nq+ w6Nh0OHFneW+SbH/gaCu1sdcuu9lnWrcHn/QKgiHKcZfGBDDjM6no2r13lP2c6CwCIHg y7mIt47jw9UuZV0mQOpbGJQ08vQnDSJ3bE13bK8x1OJR2R6ImoZdVIqYYNJcLPp24S2x E9qg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.b=sDHGOj2/; 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 o73si2479056wmi.82.2017.07.14.07.45.11; Fri, 14 Jul 2017 07:45:12 -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.b=sDHGOj2/; 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 A1345689E63; Fri, 14 Jul 2017 17:45:03 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm0-f68.google.com (mail-wm0-f68.google.com [74.125.82.68]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 17D35689AFA for ; Fri, 14 Jul 2017 17:44:57 +0300 (EEST) Received: by mail-wm0-f68.google.com with SMTP id j85so11196593wmj.0 for ; Fri, 14 Jul 2017 07:45:02 -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=bcBaeoGxHd2je0ODxh1j5UI37Zn9bk/kB4II1C+m64I=; b=sDHGOj2/depeGQrK/l2lOqWaTjI5NrjR6gpi2CRInwzAwPz6HBFTiDgs8ORFq3WIih p0S9bc/T7HFCwZz8gqzKdG4vl3OaSekzI9SdPbuO2Y+uQEyBFALKBunL1Owi0QBk2gFl YTF+yLq5Iv86ojUOJs7CMPuFPMx1Xi7+JtBEfelfOz+3Bm7ehgA3dhEk+boUptFcKvC4 gJS7coemFNILcMM9XbIoLsZLtwRGkVbe56KYO+WqJgPedy0fEpepsDGriCMqIHNwrJ/Y lHTEjNFbOpMlg9LWXj10A6mqZBVZrsmh3enaEpbXK82KbFid8xn0l5trZmWhPeijx0Iv Y4AA== 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=bcBaeoGxHd2je0ODxh1j5UI37Zn9bk/kB4II1C+m64I=; b=e4yyB49aBMUPpXjvHT83l2WAOG3St3SfEL/BDAP/1ZSSLBZZ6Ys6OlYYnqOvd9Lcpn Ivn+ntu1BJSgKayeC7Kt207ZUdMbSzzrvZIWPEBJYjVi1b9ANofMyUGKFKfCCITgPpPM ccGNcF00SXEhu62CcP0nTIJE0D+WVGT7yP1iVu7K4WQHtz9c0+4/LjFHd6G2d4VOeTHl s7ME7st3I3gDnVyXOh8Io9JRjxTGoAiyBf0BDqV/NeM+3Pr2Ltr3e5IYIPh1vOvjXWC1 vIFMjRJMH27ghMcwzWOagfP7gks7DLMZ++Pj0+ebR2BOHI8Qh5AsYLRNo8dUyJTBoTdF +EGA== X-Gm-Message-State: AIVw112nsAgqExcJNW03vvEQWN7l1IZPFSHUFIo9TxdKp+3MGPWquKd8 K0V2ORLwOX/gK++6uzg= X-Received: by 10.80.145.198 with SMTP id h6mr6991016eda.108.1500043131577; Fri, 14 Jul 2017 07:38:51 -0700 (PDT) Received: from localhost.localdomain ([149.12.6.116]) by smtp.gmail.com with ESMTPSA id 4sm4281536eds.48.2017.07.14.07.38.50 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 14 Jul 2017 07:38:50 -0700 (PDT) From: Derek Buitenhuis To: ffmpeg-devel@ffmpeg.org Date: Fri, 14 Jul 2017 15:38:00 +0100 Message-Id: <20170714143800.9231-1-derek.buitenhuis@gmail.com> X-Mailer: git-send-email 2.13.2 Subject: [FFmpeg-devel] [PATCH] webmdashenc: Fix memory leak 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" Signed-off-by: Derek Buitenhuis --- libavformat/webmdashenc.c | 38 ++++++++++++++++++++++++++++++-------- 1 file changed, 30 insertions(+), 8 deletions(-) diff --git a/libavformat/webmdashenc.c b/libavformat/webmdashenc.c index 550ad72e4d..1280d8a763 100644 --- a/libavformat/webmdashenc.c +++ b/libavformat/webmdashenc.c @@ -288,33 +288,55 @@ static int parse_filename(char *filename, char **representation_id, char *period_pos = NULL; char *temp_pos = NULL; char *filename_str = av_strdup(filename); - if (!filename_str) return AVERROR(ENOMEM); + int ret = 0; + + if (!filename_str) { + ret = AVERROR(ENOMEM); + goto end; + } temp_pos = av_stristr(filename_str, "_"); while (temp_pos) { underscore_pos = temp_pos + 1; temp_pos = av_stristr(temp_pos + 1, "_"); } - if (!underscore_pos) return AVERROR_INVALIDDATA; + if (!underscore_pos) { + ret = AVERROR_INVALIDDATA; + goto end; + } period_pos = av_stristr(underscore_pos, "."); - if (!period_pos) return AVERROR_INVALIDDATA; + if (!period_pos) { + ret = AVERROR_INVALIDDATA; + goto end; + } *(underscore_pos - 1) = 0; if (representation_id) { *representation_id = av_malloc(period_pos - underscore_pos + 1); - if (!(*representation_id)) return AVERROR(ENOMEM); + if (!(*representation_id)) { + ret = AVERROR(ENOMEM); + goto end; + } av_strlcpy(*representation_id, underscore_pos, period_pos - underscore_pos + 1); } if (initialization_pattern) { *initialization_pattern = av_asprintf("%s_$RepresentationID$.hdr", filename_str); - if (!(*initialization_pattern)) return AVERROR(ENOMEM); + if (!(*initialization_pattern)) { + ret = AVERROR(ENOMEM); + goto end; + } } if (media_pattern) { *media_pattern = av_asprintf("%s_$RepresentationID$_$Number$.chk", filename_str); - if (!(*media_pattern)) return AVERROR(ENOMEM); + if (!(*media_pattern)) { + ret = AVERROR(ENOMEM); + goto end; + } } - av_free(filename_str); - return 0; + +end: + av_freep(&filename_str); + return ret; } /*