From patchwork Wed Mar 24 05:40:38 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 26586 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 954F044B89C for ; Wed, 24 Mar 2021 07:41:08 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 6F5E468AA53; Wed, 24 Mar 2021 07:41:08 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-ed1-f52.google.com (mail-ed1-f52.google.com [209.85.208.52]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C179768A7D9 for ; Wed, 24 Mar 2021 07:41:02 +0200 (EET) Received: by mail-ed1-f52.google.com with SMTP id dm8so26223072edb.2 for ; Tue, 23 Mar 2021 22:41:02 -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:reply-to:mime-version :content-transfer-encoding; bh=/Z8fSVwjYKlSeauaxEKx7pLZgG3/oCBKH6vPG/6W7vw=; b=VheeUTFd+IHDFuLzSTxDFm1tHGKlA7oeFdx3HQ3Ui2VgpMr70M3eacv8VFMNBaFugF 8tSCSTvBwXC9xBU3pA60DdfKDm7jSzTRx/nVdlFbhqLc8A9lEgFFo81IS4FGc9JzvJA2 tmFUbkJzTinf6yuyenq1YOb73Kj41zJl94K/o654iykHxpGBaGi38/d7kra1VCD76Pq4 hqX3JwAWwAgcxChVCgGcSHZn+C7IK51QUSVOxPU/FOfhSYoWblc6YXr1hLhSCHhkePy8 m6WSqJ/mu3L/XjPX2FIkYjs66HYl8mwbB2jyCA1YCr8auweSNlCJxQlyOCgT4KKN9fvr S2BQ== 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:reply-to :mime-version:content-transfer-encoding; bh=/Z8fSVwjYKlSeauaxEKx7pLZgG3/oCBKH6vPG/6W7vw=; b=CknbCs+b+nQxZTRdtyAr52+izUouf+KpE8DPNu0D8A221BwCeWna4Tdts8qoY61+NV 9AwhIPj7pfnfVK/lwFjnqyHZwic005TJJF/LuXG7SruXLMaeOl8zLkU8dHGllWe75pdK l3zDlZDmhPjFvzQxezB+5Ii1cx81+qoCzJnmK208gW0x9OWcUoGuPR6wReEJbUkUG40e HDqNdAr6oXoPgnilhv3AiC6KmI3UjsFUgysHsL2i2izAdPwytAh3JxS3WmVbGFfo+7Mo hrVtDDonKQWr0cFcMrM4BipajAutbdNPMRua330RrTXnwg/LmE1B/mgPNkQOZZ8M8Kya Qd2A== X-Gm-Message-State: AOAM532Bzpp7cXayc26rdRGsD9FCbn4Mc0faZnbDlC4c8GPIePfNgc7x k4xCfvtfPfyVudaYAWuh9qzqBlpgrEK4Vg== X-Google-Smtp-Source: ABdhPJzEcR18gAjd4pslgULfKEnLiQvdNQMawk/1eIP+oM4ngDoHzAApRHZJnPvTAxPoT9yOaoarCw== X-Received: by 2002:aa7:da48:: with SMTP id w8mr1466361eds.81.1616564462056; Tue, 23 Mar 2021 22:41:02 -0700 (PDT) Received: from sblaptop.fritz.box (ipbcc08960.dynamic.kabel-deutschland.de. [188.192.137.96]) by smtp.gmail.com with ESMTPSA id n16sm561041edr.42.2021.03.23.22.41.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Mar 2021 22:41:01 -0700 (PDT) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Wed, 24 Mar 2021 06:40:38 +0100 Message-Id: <20210324054043.1729328-1-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.27.0 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/6] avformat/jacosubdec: Fix leak on error 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" Signed-off-by: Andreas Rheinhardt --- libavformat/jacosubdec.c | 1 + 1 file changed, 1 insertion(+) diff --git a/libavformat/jacosubdec.c b/libavformat/jacosubdec.c index b44e3b7783..828c33057f 100644 --- a/libavformat/jacosubdec.c +++ b/libavformat/jacosubdec.c @@ -199,6 +199,7 @@ static int jacosub_read_header(AVFormatContext *s) sub = ff_subtitles_queue_insert(&jacosub->q, line, len, merge_line); if (!sub) { + av_bprint_finalize(&header, NULL); ret = AVERROR(ENOMEM); goto fail; } From patchwork Wed Mar 24 05:40:39 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 26587 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 B593D44B89C for ; Wed, 24 Mar 2021 07:41:30 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 9AE2F68A957; Wed, 24 Mar 2021 07:41:30 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-ej1-f48.google.com (mail-ej1-f48.google.com [209.85.218.48]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7A1E868A9E8 for ; Wed, 24 Mar 2021 07:41:24 +0200 (EET) Received: by mail-ej1-f48.google.com with SMTP id r12so30854793ejr.5 for ; Tue, 23 Mar 2021 22:41:24 -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:reply-to :mime-version:content-transfer-encoding; bh=wgllkag1hqGgzo9JVCOWJifGCYv5VaTKvE+pdC1ZpeQ=; b=kpuizfjRcGkIXy3Rn0HaDJIZiMe5Hdrq2jERx24aUqOxUV5cumOnARgfnpXKJqVKtd C5Be28y6zdQwPbac24PRis/B25bRLmhfCf5id7rLZOXjn9x/tzgOGxatZ09BnTT0bmaW Yu+twWePzB+bocsYrZXnOTy01nGS879vLfmYLUwIw/ZQJMUC61v35/CSEuH7luahCgWw fZAEc8sCGxSVep7CFoxCB9c4h1RstNqK1eLZwcJUwP61szeTrBRHrEl8xv32s4UiORmu 675B3NW+iC5QONpSH+sNRmVp9vyy9EtsS04LjzyqURI7Lsi1GbBtlwbUnMxiCPG3ltLv db9Q== 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:reply-to:mime-version:content-transfer-encoding; bh=wgllkag1hqGgzo9JVCOWJifGCYv5VaTKvE+pdC1ZpeQ=; b=M/fsVTlYCBZLBEFhnq5wxje9YEQiOOQpQynoN2nhIbkz1M2Pe4wN48JCIa20YIIYeA i1OSu1gYuRwA9EpufrL2vZ1G4dCyTgmGDfXIN/iH/SBM8PTOfeMS3FHpJcXiqaBdEkjP O2UP5op99kbosDnzzvBp2IQnfo5u7gv2NB9EFNtpUmDihVXgV/cIfdDE015zVBea3hjs 3wVw4sJgtyjFMNyDrWaad/XK8BYAkev0CjG7DxEhsV6RP0V7ZIZyEw4kL4QMEXyF1BnI pBNGjEUUcVjcxMkDu8pH4iRexKo2wrE8cQ++1RImLOUCTYy3LPOA2MRIukZNbvDF8VYi 5Vng== X-Gm-Message-State: AOAM533HrDUHV/EQqvhExPElULkbqzsv510kgbs7FNN49omNp/5khqyt +f/set9zDd9E/XH7uq7nOLGjrFsVBv2dlg== X-Google-Smtp-Source: ABdhPJx4AlMkoSN3gAMkBynTfihAq6DqvmE3kVWRqi2rpbgtw6DKCkYUVHOc9f//0yjcZvzbNgAX1g== X-Received: by 2002:a17:906:4150:: with SMTP id l16mr1848452ejk.90.1616564483671; Tue, 23 Mar 2021 22:41:23 -0700 (PDT) Received: from sblaptop.fritz.box (ipbcc08960.dynamic.kabel-deutschland.de. [188.192.137.96]) by smtp.gmail.com with ESMTPSA id n16sm561041edr.42.2021.03.23.22.41.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Mar 2021 22:41:23 -0700 (PDT) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Wed, 24 Mar 2021 06:40:39 +0100 Message-Id: <20210324054043.1729328-2-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210324054043.1729328-1-andreas.rheinhardt@gmail.com> References: <20210324054043.1729328-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 2/6] avformat/aadec: Fix leak on error 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" Signed-off-by: Andreas Rheinhardt --- libavformat/aadec.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/libavformat/aadec.c b/libavformat/aadec.c index 80ca2c12d7..2575e98153 100644 --- a/libavformat/aadec.c +++ b/libavformat/aadec.c @@ -229,8 +229,11 @@ static int aa_read_header(AVFormatContext *s) chapter_pos -= start + CHAPTER_HEADER_SIZE * chapter_idx; avio_skip(pb, 4 + chapter_size); if (!avpriv_new_chapter(s, chapter_idx, st->time_base, - chapter_pos * TIMEPREC, (chapter_pos + chapter_size) * TIMEPREC, NULL)) - return AVERROR(ENOMEM); + chapter_pos * TIMEPREC, + (chapter_pos + chapter_size) * TIMEPREC, NULL)) { + av_freep(&c->tea_ctx); + return AVERROR(ENOMEM); + } } st->duration = (largest_size - CHAPTER_HEADER_SIZE * s->nb_chapters) * TIMEPREC; From patchwork Wed Mar 24 05:40:40 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 26588 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 D514544B89C for ; Wed, 24 Mar 2021 07:41:31 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id BEBFC68AB05; Wed, 24 Mar 2021 07:41:31 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-ed1-f51.google.com (mail-ed1-f51.google.com [209.85.208.51]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 101BD68A9E8 for ; Wed, 24 Mar 2021 07:41:25 +0200 (EET) Received: by mail-ed1-f51.google.com with SMTP id e7so26117878edu.10 for ; Tue, 23 Mar 2021 22:41:25 -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:reply-to :mime-version:content-transfer-encoding; bh=U+yHGUsmJCHzIzgNaVSWE7I2c78a1ckUBKDNs7QTYlw=; b=m6fot+XtzpdTILuXt1J+7j3oaeQoU2kIf2fZd+qIAeot8GJj2yDjRFl+9zVzZjFl5O IiC4a5ZsC39vAOe2uzfBf/9NX/v4v7EmkHU26h3Rvu1CSq+2uYeLGjgnsAzGhL+rUmg+ o5MJLTRRG/1veE9dnb5doWRfwUWvFhklU33M06MelKq8NgnE1RK7EtPmZPHjeMfBjR/J 8mkrb9U5aHaXa0bgY0MECXr98WBmX4clhAqCm2KwLMv0RQmnbVcrKXtoWCEApsr984Y6 GIEMjNL8rwMqjmHfDUK/BRo1Jae1GleDeAqF/52SaKggmLj7SwAnEL8de21IeGd2aiMi e53A== 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:reply-to:mime-version:content-transfer-encoding; bh=U+yHGUsmJCHzIzgNaVSWE7I2c78a1ckUBKDNs7QTYlw=; b=NjYAQjZc/XMxsbIVNq4+DZK95VPyPFcoKKYhD0vYOxzbf+xIjXbsF9zdCtgOm3E6Ke wBQkHIQu5LKZAu3UregHLpm8ynTgDgac68MPdhI/d8Z470LOHbuR/33IRhqqG+uSxQ1h obCQrXAaafwwV+wplGTQOVvNKnuDOTHS57tY2XQF09tL/9DbjyeR+BT55H0+oAjpXFQt 98PsCiX5OL2GSkFVG1Jn8iTKTc141IdAdLN5+LwBwxJVQ4+JOKadR/UJKmjNVfRNcd07 OprjoVKe7pC8aJUr4G41k7PtCaoX2OR+p9/fa/x39KF42N7uaQ0anfJn9x39EMkAsOjN zH3g== X-Gm-Message-State: AOAM53276+Vp0b6ORTssElEra+j1cPI/wTB1ySbWPIi8rg+DiuhBeh2F okxAU3GbUr8oXfDYy7l+0MPaafiWWXOA9Q== X-Google-Smtp-Source: ABdhPJw4bj3O+oLpJHaY48LUm8Ra3CZdmSdx3bbvaYM0TsMbmuIsLCduU7QOpDX7lRUyr8OC/Xf2uA== X-Received: by 2002:a50:e882:: with SMTP id f2mr1555435edn.184.1616564484346; Tue, 23 Mar 2021 22:41:24 -0700 (PDT) Received: from sblaptop.fritz.box (ipbcc08960.dynamic.kabel-deutschland.de. [188.192.137.96]) by smtp.gmail.com with ESMTPSA id n16sm561041edr.42.2021.03.23.22.41.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Mar 2021 22:41:24 -0700 (PDT) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Wed, 24 Mar 2021 06:40:40 +0100 Message-Id: <20210324054043.1729328-3-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210324054043.1729328-1-andreas.rheinhardt@gmail.com> References: <20210324054043.1729328-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 3/6] avformat/libgme: Fix memleaks on errors 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" Also free the gme_info_t structure immediately after its use. This simplifies cleanup, because it might be unsafe to call gme_free_info(NULL) (or even worse, gme_track_info() might even on error set the pointer to the gme_info_t structure to something else than NULL). Signed-off-by: Andreas Rheinhardt --- libavformat/libgme.c | 48 ++++++++++++++++++++++++++------------------ 1 file changed, 29 insertions(+), 19 deletions(-) diff --git a/libavformat/libgme.c b/libavformat/libgme.c index e6c56c4872..f9d9abaad5 100644 --- a/libavformat/libgme.c +++ b/libavformat/libgme.c @@ -31,7 +31,6 @@ typedef struct GMEContext { const AVClass *class; Music_Emu *music_emu; - gme_info_t *info; ///< selected track /* options */ int track_index; @@ -55,12 +54,16 @@ static void add_meta(AVFormatContext *s, const char *name, const char *value) av_dict_set(&s->metadata, name, value, 0); } -static int load_metadata(AVFormatContext *s) +static int load_metadata(AVFormatContext *s, int64_t *duration) { GMEContext *gme = s->priv_data; - gme_info_t *info = gme->info; + gme_info_t *info = NULL; char buf[30]; + if (gme_track_info(gme->music_emu, &info, gme->track_index)) + return AVERROR_STREAM_NOT_FOUND; + + *duration = info->length; add_meta(s, "system", info->system); add_meta(s, "game", info->game); add_meta(s, "song", info->song); @@ -71,20 +74,30 @@ static int load_metadata(AVFormatContext *s) snprintf(buf, sizeof(buf), "%d", (int)gme_track_count(gme->music_emu)); add_meta(s, "tracks", buf); + gme_free_info(info); return 0; } #define AUDIO_PKT_SIZE 512 +static int read_close_gme(AVFormatContext *s) +{ + GMEContext *gme = s->priv_data; + gme_delete(gme->music_emu); + return 0; +} + static int read_header_gme(AVFormatContext *s) { AVStream *st; AVIOContext *pb = s->pb; GMEContext *gme = s->priv_data; int64_t sz = avio_size(pb); + int64_t duration; char *buf; char dummy; + int ret; if (sz < 0) { av_log(s, AV_LOG_WARNING, "Could not determine file size\n"); @@ -103,6 +116,7 @@ static int read_header_gme(AVFormatContext *s) av_log(s, AV_LOG_ERROR, "File size is larger than max_size option " "value %"PRIi64", consider increasing the max_size option\n", gme->max_size); + av_freep(&buf); return AVERROR_BUFFER_TOO_SMALL; } @@ -112,20 +126,24 @@ static int read_header_gme(AVFormatContext *s) } av_freep(&buf); - if (gme_track_info(gme->music_emu, &gme->info, gme->track_index)) - return AVERROR_STREAM_NOT_FOUND; - - if (gme_start_track(gme->music_emu, gme->track_index)) + ret = load_metadata(s, &duration); + if (ret < 0) { + read_close_gme(s); + return ret; + } + if (gme_start_track(gme->music_emu, gme->track_index)) { + read_close_gme(s); return AVERROR_UNKNOWN; - - load_metadata(s); + } st = avformat_new_stream(s, NULL); - if (!st) + if (!st) { + read_close_gme(s); return AVERROR(ENOMEM); + } avpriv_set_pts_info(st, 64, 1, 1000); if (st->duration > 0) - st->duration = gme->info->length; + st->duration = duration; st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; st->codecpar->codec_id = AV_NE(AV_CODEC_ID_PCM_S16BE, AV_CODEC_ID_PCM_S16LE); st->codecpar->channels = 2; @@ -153,14 +171,6 @@ static int read_packet_gme(AVFormatContext *s, AVPacket *pkt) return 0; } -static int read_close_gme(AVFormatContext *s) -{ - GMEContext *gme = s->priv_data; - gme_free_info(gme->info); - gme_delete(gme->music_emu); - return 0; -} - static int read_seek_gme(AVFormatContext *s, int stream_idx, int64_t ts, int flags) { GMEContext *gme = s->priv_data; From patchwork Wed Mar 24 05:40:41 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 26589 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 42A1244B89C for ; Wed, 24 Mar 2021 07:41:33 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 2696668AAD0; Wed, 24 Mar 2021 07:41:33 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-ej1-f47.google.com (mail-ej1-f47.google.com [209.85.218.47]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B177368AAF0 for ; Wed, 24 Mar 2021 07:41:25 +0200 (EET) Received: by mail-ej1-f47.google.com with SMTP id a7so30827591ejs.3 for ; Tue, 23 Mar 2021 22:41:25 -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:reply-to :mime-version:content-transfer-encoding; bh=JUijkp52d3u6QkwT/jq/E6rWB1qVrGvpEpwj39dLIwI=; b=N+Q3VIOaPU3XErVfDQUvZvgpyd+cqKarNZTVGFKRtUZltDlOYOaUClYStiAQAWf2h6 goX0OMHPzMkcDUq56nGIFqafmWJkHohK0ZwNEWD9vK5h5eVaw5GZT83DrMj7WZnagBLG hv5cRigaVZzIxo88mqkUEAXIQ+d9X5lw24YQRQoyx7II+KfoRfaRom8Z1R2IJXmR1Lyb 2Qp/bA9WYtrBJ4asdJJWR02K8QGy6f5YkGdaVyT4+WUvehtJM4eHFG1SyrvjhL+b7Z3Y S20YjyEoeu6H06pTJ7AdwBJvyC+bcnuQvbrjZzxd6u867AeNW3FOYvqE+zwPCkLqvgrw qvSQ== 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:reply-to:mime-version:content-transfer-encoding; bh=JUijkp52d3u6QkwT/jq/E6rWB1qVrGvpEpwj39dLIwI=; b=FDWzRsJtD6xLjGc2Zjok5aqyzu47OeUIUfbWq5mkhm47l1ke+ViUqW6UjJJlmZCmf4 BVY5MwwHjyBrHiWih2lNKzvfCCvUaONlPQaKMW9ZdeC5GS1/mOK+7rUVNFbOTYq3yf5F oi3N1UHNp0NLJsAJK0JhALuKFHm/v8RkC3TsnqEjJlmpHllBpq3JjbNL+2k7n6vEqcJQ grmRLzpj24EGeD39l+Sp5W+/OfyP8KacglmFs6lgfGwfiSbW/Tw3fW3z6AB0Xy2bSbEA j7E2y//Z8Gsu2cgpJMd9md2cSVJtakLC4XSl/Ka1Uz+qAtoDeVVJaRr7zslbl/iYeA20 j3NA== X-Gm-Message-State: AOAM532ktmlJxvG+IHba9KSnJfr07m/OUdJbP+1p7LZDujRcEcMCFZmu FqK8A2FFhtjtP3FIPhA87s7T6dy5YWc7cA== X-Google-Smtp-Source: ABdhPJw6NmPtSRqNX+C+ddZzzdlIkOSms3QNOG6L1L7nDmjH0JJG7hpUPRcKmCmxEyfg70764x73gg== X-Received: by 2002:a17:907:689:: with SMTP id wn9mr1756411ejb.485.1616564485101; Tue, 23 Mar 2021 22:41:25 -0700 (PDT) Received: from sblaptop.fritz.box (ipbcc08960.dynamic.kabel-deutschland.de. [188.192.137.96]) by smtp.gmail.com with ESMTPSA id n16sm561041edr.42.2021.03.23.22.41.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Mar 2021 22:41:24 -0700 (PDT) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Wed, 24 Mar 2021 06:40:41 +0100 Message-Id: <20210324054043.1729328-4-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210324054043.1729328-1-andreas.rheinhardt@gmail.com> References: <20210324054043.1729328-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 4/6] avformat/libgme: Actually set the duration 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" Signed-off-by: Andreas Rheinhardt --- libavformat/libgme.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavformat/libgme.c b/libavformat/libgme.c index f9d9abaad5..ad59971fcd 100644 --- a/libavformat/libgme.c +++ b/libavformat/libgme.c @@ -142,7 +142,7 @@ static int read_header_gme(AVFormatContext *s) return AVERROR(ENOMEM); } avpriv_set_pts_info(st, 64, 1, 1000); - if (st->duration > 0) + if (duration > 0) st->duration = duration; st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; st->codecpar->codec_id = AV_NE(AV_CODEC_ID_PCM_S16BE, AV_CODEC_ID_PCM_S16LE); From patchwork Wed Mar 24 05:40:42 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 26590 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 7E34644B89C for ; Wed, 24 Mar 2021 07:41:34 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 63B0868AAEB; Wed, 24 Mar 2021 07:41:34 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-ed1-f53.google.com (mail-ed1-f53.google.com [209.85.208.53]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6F79F68AB05 for ; Wed, 24 Mar 2021 07:41:26 +0200 (EET) Received: by mail-ed1-f53.google.com with SMTP id dm8so26223771edb.2 for ; Tue, 23 Mar 2021 22:41:26 -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:reply-to :mime-version:content-transfer-encoding; bh=JerEJaUx7SBUSMMS7FYkUuZGdLVNXhLMvdQ+y1H3EJY=; b=EqTv/jBQ6xB6kCz5DkL7XZoJD5141kO3eI6LTG4NSWSJ2WdC2fhkCCSoPoKdXy4+lP k/uqd2kLAx46tFOuJTCmeUqx9oTJN/PW9HgiWo514Fn4DoCKCEBjwhrv+4UNEVAZuNAy qjW9g8b5GJXsbMoRWcAr8xoEzNfze++GfW2/YT8uGZXhmtPzu1KRgnOKbm+LzEu/XOrH iApuiHd3+HAnrSZc5FW2yKSsW7cezFJE6DKKDetW7R2CAbjV9bbUkI7I/4RH0ino9J7N MdU9anqGNqHoQC8vNUWD+bzfHALRhoXMB22Iq1BNTyFP2TLIKNvNK4hKLO1NyeVVjtd7 fDkQ== 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:reply-to:mime-version:content-transfer-encoding; bh=JerEJaUx7SBUSMMS7FYkUuZGdLVNXhLMvdQ+y1H3EJY=; b=rPsbabjXy9UK7jGs5trjI+lEuuod29wcyjhZIkGKMkDPBGshIVROjO520SKmhJ73ay b5hcgPaoL8nV0+9gRKQAPefSk6qKhubJGQEJK7eeKSgHxFJ791uZr93yqSvQTk1ZuBn+ 4LUfS1EO82/X0Z5YT+W3avrg/34SL+uPwNsT5CFodFn7RJIdtkxNC74IXjXAGr8CMb9I 41/sPVYsFwPbSpGFZDsomHKzX/Zs9+af2e4CBZDAckOM/QgjFhVVb79BkxpZzH62MAE6 gJy6b2guo2RH9T9C+aVFd4jbL/XHCAO18iMCthxUM6mmSMpFG0bHpZxUPFzye+/FiFWs xTmw== X-Gm-Message-State: AOAM5318syB+6uKwnFQj3A9FQAvKZ5A16+gQjxXaay3cIHy/BMK+yds4 cflm3YIUKQJvYSE3U4TJppGKz/7TW8VBGg== X-Google-Smtp-Source: ABdhPJxLi2FAHSzB7EFhMsEUhZt2datG5dorTZHB53LUKmgt2+bmeTxpiPXseX4tWQBaaHdNc6cjOQ== X-Received: by 2002:aa7:d954:: with SMTP id l20mr1515848eds.1.1616564485813; Tue, 23 Mar 2021 22:41:25 -0700 (PDT) Received: from sblaptop.fritz.box (ipbcc08960.dynamic.kabel-deutschland.de. [188.192.137.96]) by smtp.gmail.com with ESMTPSA id n16sm561041edr.42.2021.03.23.22.41.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Mar 2021 22:41:25 -0700 (PDT) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Wed, 24 Mar 2021 06:40:42 +0100 Message-Id: <20210324054043.1729328-5-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210324054043.1729328-1-andreas.rheinhardt@gmail.com> References: <20210324054043.1729328-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 5/6] avformat/libgme: Remove redundant setting of packet size 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" Signed-off-by: Andreas Rheinhardt --- libavformat/libgme.c | 1 - 1 file changed, 1 deletion(-) diff --git a/libavformat/libgme.c b/libavformat/libgme.c index ad59971fcd..a9c487bdb4 100644 --- a/libavformat/libgme.c +++ b/libavformat/libgme.c @@ -166,7 +166,6 @@ static int read_packet_gme(AVFormatContext *s, AVPacket *pkt) if (gme_play(gme->music_emu, n_samples, (short *)pkt->data)) return AVERROR_EXTERNAL; - pkt->size = AUDIO_PKT_SIZE; return 0; } From patchwork Wed Mar 24 05:40:43 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 26591 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 9F5A044B89C for ; Wed, 24 Mar 2021 07:41:35 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 8958C68AB0A; Wed, 24 Mar 2021 07:41:35 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-ej1-f41.google.com (mail-ej1-f41.google.com [209.85.218.41]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5075768AB48 for ; Wed, 24 Mar 2021 07:41:27 +0200 (EET) Received: by mail-ej1-f41.google.com with SMTP id u9so30838487ejj.7 for ; Tue, 23 Mar 2021 22:41:27 -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:reply-to :mime-version:content-transfer-encoding; bh=FknVd2UvUUy1KDIU+FvbZQ6pa8KEyZxZ1hjlDhsJyfA=; b=jf6yPbI2Ljpf3xHlXbTLpJSHWT+3qTvx7PhOmkMlOcawWSVOTN9ayh7ZE5lTfGWmrF VHxLIIgAkq9nxqW62IoTkUYnKhRYD10DwEFsJonVvA/ZAqXRSDjeJe+pyvZ6IbUtFSGJ L+FcfXsDDctbzWbwgLDvSFK944SHYaIpLWUVDmpswzXGrbViQncoAwsXOMF6aK6cwXnJ bCIgv3Zj7aC9wwqhCTSNrUjTlSyzsw89smUROJmV19d04WrrUKhVvlBCnLQs0T2OuRgl cukXjYytUuuhuKUZNiIaelioG50z3UQEX1fhYJkaxSiC/nX6HI8ndUfFqhFXVzCFKkKg fxNQ== 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:reply-to:mime-version:content-transfer-encoding; bh=FknVd2UvUUy1KDIU+FvbZQ6pa8KEyZxZ1hjlDhsJyfA=; b=Ecq8cc3zbdBYDqCw+SHesX942SuwGW7NMT9Fnz1ER1R7NJF8A6FeWItOgJ28w0OAjt P/Lj9ILJbiMfPEYIMzHbjXcJEeACxsKXMWKrs2SXHvY9TEwnat6iK+j1IV0GcYRfRUhA xeeK67Kvx3E4zF0q8XCKzQwdTGavDm1Fd5Q43RKLUoFtDbiPWL6RseOLb+7Y1kxxXopy Ifd8U4GWXzk8BN9bDTsUFrBejF5FfY6dOKzVSixGqm+VIq0UU8fMZcdmDZKWaghHWQ6O RBQ1V6EOg0ZEWZQ4KLLwsqK5XyOFqolDbcu/lYltuO/EEYxlaO9T9Wq7fo9w5Q1ZDcI5 6GMA== X-Gm-Message-State: AOAM530WZqRooHf0BYueaDgVuS6BndmaOs7R9m2/9l47leH1ZTEEitHn pNSD3EIqCQrfslB9czYziVdU8WJYTdvCMw== X-Google-Smtp-Source: ABdhPJzfLx39RjWnEy7pvSzTnbiE+9NL4X/F1zcpIjRHTX4vmAFipNzrTgZ48QFvaLf5bbPyVkVdjQ== X-Received: by 2002:a17:906:4ada:: with SMTP id u26mr1793696ejt.129.1616564486580; Tue, 23 Mar 2021 22:41:26 -0700 (PDT) Received: from sblaptop.fritz.box (ipbcc08960.dynamic.kabel-deutschland.de. [188.192.137.96]) by smtp.gmail.com with ESMTPSA id n16sm561041edr.42.2021.03.23.22.41.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Mar 2021 22:41:26 -0700 (PDT) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Wed, 24 Mar 2021 06:40:43 +0100 Message-Id: <20210324054043.1729328-6-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210324054043.1729328-1-andreas.rheinhardt@gmail.com> References: <20210324054043.1729328-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 6/6] avformat/libmodplug: Fix memleaks on error 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" Signed-off-by: Andreas Rheinhardt --- libavformat/libmodplug.c | 37 ++++++++++++++++++++++++------------- 1 file changed, 24 insertions(+), 13 deletions(-) diff --git a/libavformat/libmodplug.c b/libavformat/libmodplug.c index 6e567f5f98..b85269341b 100644 --- a/libavformat/libmodplug.c +++ b/libavformat/libmodplug.c @@ -99,6 +99,14 @@ static const AVOption options[] = { {NULL}, }; +static int modplug_read_close(AVFormatContext *s) +{ + ModPlugContext *modplug = s->priv_data; + ModPlug_Unload(modplug->f); + av_freep(&modplug->buf); + return 0; +} + #define SET_OPT_IF_REQUESTED(libopt, opt, flag) do { \ if (modplug->opt) { \ settings.libopt = modplug->opt; \ @@ -168,6 +176,7 @@ static int modplug_read_header(AVFormatContext *s) ModPlug_Settings settings; ModPlugContext *modplug = s->priv_data; int64_t sz = avio_size(pb); + int ret; if (sz < 0) { av_log(s, AV_LOG_WARNING, "Could not determine file size\n"); @@ -221,8 +230,10 @@ static int modplug_read_header(AVFormatContext *s) return AVERROR_INVALIDDATA; } st = avformat_new_stream(s, NULL); - if (!st) - return AVERROR(ENOMEM); + if (!st) { + ret = AVERROR(ENOMEM); + goto fail; + } avpriv_set_pts_info(st, 64, 1, 1000); st->duration = ModPlug_GetLength(modplug->f); st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; @@ -235,8 +246,10 @@ static int modplug_read_header(AVFormatContext *s) if (modplug->video_stream) { AVStream *vst = avformat_new_stream(s, NULL); - if (!vst) - return AVERROR(ENOMEM); + if (!vst) { + ret = AVERROR(ENOMEM); + goto fail; + } avpriv_set_pts_info(vst, 64, 1, 1000); vst->duration = st->duration; vst->codecpar->codec_type = AVMEDIA_TYPE_VIDEO; @@ -247,7 +260,13 @@ static int modplug_read_header(AVFormatContext *s) modplug->fsize = modplug->linesize * modplug->h; } - return modplug_load_metadata(s); + ret = modplug_load_metadata(s); + if (ret < 0) + goto fail; + return 0; +fail: + modplug_read_close(s); + return ret; } static void write_text(uint8_t *dst, const char *s, int linesize, int x, int y) @@ -332,14 +351,6 @@ static int modplug_read_packet(AVFormatContext *s, AVPacket *pkt) return 0; } -static int modplug_read_close(AVFormatContext *s) -{ - ModPlugContext *modplug = s->priv_data; - ModPlug_Unload(modplug->f); - av_freep(&modplug->buf); - return 0; -} - static int modplug_read_seek(AVFormatContext *s, int stream_idx, int64_t ts, int flags) { ModPlugContext *modplug = s->priv_data;