From patchwork Tue Aug 15 19:08:44 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Niki Bowe X-Patchwork-Id: 4713 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.103.46.211 with SMTP id u202csp5912261vsu; Tue, 15 Aug 2017 12:16:10 -0700 (PDT) X-Received: by 10.223.136.81 with SMTP id e17mr7200150wre.218.1502824570226; Tue, 15 Aug 2017 12:16:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1502824570; cv=none; d=google.com; s=arc-20160816; b=K0U8PvI2vKJrwfEMbCH266e4az4diqCmIIdCiJsI2uQt3ZkNg7PkogLZpxpVIj56k6 3NzXT6I3MAFgkvm8/ngjS4TW/RmFdp5xKwhTHL/3aktbL7bVfr/gqPjl1PybObw3THks Ww5fi6jkrfB/s7T+QdUpj6BlG9oAxSz2qTA0wb5euDVj7TxlY3jRehUTPdiiONNZYnUs CCxOGtI1Pbs7eVuMdZ2rctgyM7xrx3I8Q3FUPc9Jv0NN6G5/iratMYRCuBqmtwqmmNyj JpV5Z/62vKgay5k0k73I4HoDQYo1Gr7gohfdM932sev/IlGf3V/PX9p65X0ECHR0hMR2 8/4Q== 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:cc: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=Cd9ajHbEWDt7P6rMk+znH6DaPoD9d+txzVToSzApAM4=; b=gGHygPv/thKZu33sQOue9tAesBHmc4hrBlKgfzGfsBwy7rD1oZoQ9rerQjbP34yVzm RVGGLshv5700xrFYN/bLrKdrzIMOZGgALeRcUeC9nAg8SPMGj1cpM5rVWoCoikPJQaVg /tWkv6wbrSgOdpWmH7CHTVLUP6rvcOWPvuK1JXoFbPEfvy0WECQdOeH1t4EdPlUqLbtR fLRZcO04E2MGUpgZPhKkcUwrR9Umoa5tjv/4BgxBRuoIIKWMzQFt0PctlbleRr7lTRHn rW5p6MIpndzBG/I5QPtYVIGVGB82KaBaCBf92mJaKRo78wgVO99Q9TgGPioRdwJMrYBQ dfrQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@google.com header.s=20161025 header.b=FZ4SyjmO; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id s131si1700841wmf.163.2017.08.15.12.16.09; Tue, 15 Aug 2017 12:16:10 -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=@google.com header.s=20161025 header.b=FZ4SyjmO; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id A2810680953; Tue, 15 Aug 2017 22:16:02 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pg0-f44.google.com (mail-pg0-f44.google.com [74.125.83.44]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 4015668077F for ; Tue, 15 Aug 2017 22:15:56 +0300 (EEST) Received: by mail-pg0-f44.google.com with SMTP id u5so11196647pgn.0 for ; Tue, 15 Aug 2017 12:16:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=NZGyEHHtqbbcGhfP7Yea52/Eaq06rGz/Elf0vtOaOzw=; b=FZ4SyjmOKg3TLOmNldXWIDABlD/VpgBdeB+OKD5NTqrAyPKz8yivsw1RQTspONz7nI 3q9eb7r+ROsyonlJJqDJGRQGwRVQo4JQHLD66gt71v1lcKrBjc6Rd3AHtl2h7RrLiXoZ ERfliCHWLdeiX+/JvhGwP2GP598V2MHqDo9WgIuXbnyGQ30eVGf9dgfJ72aTix9OoUas VpqxVzB99WW7Dda8clBiuYgWZlIAU+sFF8+knPkkcpuOLOeZ51Bnm5KlSdigXWbdVEAS nLjBnNxViRctJ93+aFbX6db1wjqxYbxeGnP7mdqPGrmMf5JU/nlWNcw7nM2m3NALganU njHg== 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; bh=NZGyEHHtqbbcGhfP7Yea52/Eaq06rGz/Elf0vtOaOzw=; b=m62SvjS/1imy6s6NikTdwuxZqz8UN6fjI0WlrHg5veTk11UZrny4+MFYwfD0rqZbOJ xYeL7rUaw1fZ+yUZM7sZuxV/XY/zJvvqoLbuw2QtjLm0at9x0TnIj3JzoYoZ19UAk9/I L3kzmEQlMhA17z5R9TL3eg1o9CTHWeXbKF3Mo3r4UkY642HKawHw42gH9LKJQDTEal7R 5c+UFPwvY68bUWURsMKcOwox25Otvh6dQFTzG9ODNHA/UqV6suWZXruTMadFeuGFRwAn SHzO9/yEEPPi1KmiSHqZiKgEoOlR5Q0UV8lYtb1SNU5YMcSX4FG6IDHpospD+H05mo08 B1PQ== X-Gm-Message-State: AHYfb5j6fyUqy51+wsTNDjoH9pYcApdbTOGO/Uyi4ZwulfbYvDHHlWso txffUeyxhbIE5cnWepCbNw== X-Received: by 10.98.150.138 with SMTP id s10mr6027025pfk.80.1502824130872; Tue, 15 Aug 2017 12:08:50 -0700 (PDT) Received: from nbowe.mtv.corp.google.com ([100.98.24.43]) by smtp.gmail.com with ESMTPSA id f123sm7313235pfg.86.2017.08.15.12.08.50 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 15 Aug 2017 12:08:50 -0700 (PDT) From: Nikolas Bowe To: ffmpeg-devel@ffmpeg.org Date: Tue, 15 Aug 2017 12:08:44 -0700 Message-Id: <20170815190844.112408-1-nbowe@google.com> X-Mailer: git-send-email 2.14.1.480.gb18f417b89-goog Subject: [FFmpeg-devel] [PATCH] Fix memory leak when reading DDTS box. 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: Nikolas Bowe MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" --- libavformat/mov.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libavformat/mov.c b/libavformat/mov.c index 63f84be782..c02caf6719 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -889,6 +889,7 @@ static int mov_read_ddts(MOVContext *c, AVIOContext *pb, MOVAtom atom) init_get_bits(&gb, buf, 8*ddts_size); if (c->fc->nb_streams < 1) { + av_free(buf); return 0; } st = c->fc->streams[c->fc->nb_streams-1]; @@ -896,6 +897,7 @@ static int mov_read_ddts(MOVContext *c, AVIOContext *pb, MOVAtom atom) st->codecpar->sample_rate = get_bits_long(&gb, 32); if (st->codecpar->sample_rate <= 0) { av_log(c->fc, AV_LOG_ERROR, "Invalid sample rate %d\n", st->codecpar->sample_rate); + av_free(buf); return AVERROR_INVALIDDATA; } skip_bits_long(&gb, 32); /* max bitrate */ @@ -923,6 +925,7 @@ static int mov_read_ddts(MOVContext *c, AVIOContext *pb, MOVAtom atom) ((channel_layout_code & 0x8) ? AV_CH_LOW_FREQUENCY : 0); st->codecpar->channels = av_get_channel_layout_nb_channels(st->codecpar->channel_layout); + av_free(buf); return 0; }