From patchwork Sun Dec 5 16:07:09 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 31984 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp3422899iog; Sun, 5 Dec 2021 08:07:34 -0800 (PST) X-Google-Smtp-Source: ABdhPJztqGvdcVHClCe9DFV6q0Da4eASNjgMBPTVdI1Ad4V38VXIgSk/7vV2PeDoKPPTdpdNG5h/ X-Received: by 2002:a05:6402:50c7:: with SMTP id h7mr46786297edb.277.1638720453961; Sun, 05 Dec 2021 08:07:33 -0800 (PST) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id j8si13920925edq.407.2021.12.05.08.07.31; Sun, 05 Dec 2021 08:07:33 -0800 (PST) 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=@outlook.com header.s=selector1 header.b=TmaDD3E8; arc=fail (body hash mismatch); 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=QUARANTINE dis=NONE) header.from=outlook.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 7B6C668AE5C; Sun, 5 Dec 2021 18:07:28 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR01-DB5-obe.outbound.protection.outlook.com (unknown [40.92.64.53]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id D32B068A929 for ; Sun, 5 Dec 2021 18:07:21 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CgNeCy/jpWiW5D+fOMfjDB6++DD1mlUOdtiwkmegjIimfriwxWDSFcfm3yS0aEL8cZJUst9IO4qLvsKZNXngFT01xO71lOwm1uGeHRq4d5fq9014BTul0ZAXbxKz0mjLROdYhzF5cVvwHZdE9NP6P0zSKqdpTo6ujtWYT9rhA4BCXGcEwHHblJFyB6NnRbAFPQPMhxNT5Xc/K2EWs6xWqzljp1o2hOrFU9KfMiRaLwp/9f76j09gEZN/2DAcj/Tq98fkm1cYgVc5JAc+Axid7fGrpCFhdyg0k8ejs4H8JKeeUGQRRBViOVfr/uLhE0Y2nUawNmJPiw8APDE7SdUMcg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=NdI9BehYYA19pN9YN90of42xSLF1X1EY7c/htZTOlo0=; b=T4AwptclSOYf1JfweSdfiFxlgrnxRja7pyQwb8FjOM0PmTRUJ+OwBoxG194SAjgZ2zi8mvo8cS617tzohhotpwqJJBZfbHWci2IYMQ7KXueKAOIVHyXPRNYAg0i3mKODHGwcZxN1adR/HV3XHIQqrrAyLid6ZLX5fzGjSN4truBWb6ZZrBAKerdz55kgVkNF6gXJGUJ+eCH/ikBtNwI5YlUQnhmNtoWKG84VwMRyR/XcIuu8xCsvdnmn8IPztiNxLQNMCuE7fBRxih4iEXGor4CYS1FK+5gVxCs/PPmmpLi4mboFFbT2n/c5jIMRazA2JcE5tED5v5Q56ntP5yIBTQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=NdI9BehYYA19pN9YN90of42xSLF1X1EY7c/htZTOlo0=; b=TmaDD3E82BlFVdyNWblTNFWlGNwSY5F68X9gbVl/HnjEOKOtbYHNm2oOi5bmHMvQIO+a6C0QirAf66eV0vcgjkQNrBr/9Srj3my54BmnH6ZIAF+RgmOLMw2iiItVxbXGHlf6zSFmxeoh4AzqARBjeuVmDXg4X3vcwc/W9CI2ggB2LJNkYAQmZaY8DQxaFilwPpAzQEEZmRCQaPcbInLd83rTgfQAywe95DSfOfyPnKOUHXrfsPumOhKrQJWmnYruqgHw5uuHXuNwdyg5R0EV9NgcB7IrqvzCNZOSiyeRRPD4d5V2UE6j4ZVEXdEzg/hLM5gMp+si7jfKZSg+nhVkuA== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AS8PR03MB6919.eurprd03.prod.outlook.com (2603:10a6:20b:29c::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4755.11; Sun, 5 Dec 2021 16:07:20 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::f0dc:92f5:6bc2:45ca]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::f0dc:92f5:6bc2:45ca%4]) with mapi id 15.20.4755.021; Sun, 5 Dec 2021 16:07:20 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sun, 5 Dec 2021 17:07:09 +0100 Message-ID: X-Mailer: git-send-email 2.32.0 X-TMN: [UYAAawqS2jK5T9NVbvIEuoCeVd/MGupT] X-ClientProxiedBy: AM0PR03CA0027.eurprd03.prod.outlook.com (2603:10a6:208:14::40) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20211205160710.57743-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.192.248.74) by AM0PR03CA0027.eurprd03.prod.outlook.com (2603:10a6:208:14::40) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4755.11 via Frontend Transport; Sun, 5 Dec 2021 16:07:19 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 57fa66ef-7aea-4f54-9c92-08d9b80950b5 X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiT2s5ZWgpZq8Ejmd9Sq8/vc3wOycuqQlyQzd6Z1EHcHnMhT3mWLCHyBI3U16c63iIiALQwOrwiXXJArpaESWn+KdNvbuzGJSCMIMq2KciLWs8qIBAwE3d2UuKPGUQR6PYREkzSainp2Y+62BhaqiDyhHBn4S05H2spRxiHv2smcGn0wPKIddjsIgoom6/6BbXlQZTJ2BkyqNr5WdlGmgRjy7p//GXhSLdmsGF32e0hoNLKn9u/mRcGp2fihUPRQH23Mdy8rNHU6inXse301z9jiAgZQwXseoNfvO6giE4IRmpC5z50B3EJtp1/XTwoZZ0Ql+fO2kuMsqcco3lnGFzpitXOdSEEprRc4KGss9LWhHjduKlZH0Zx5zi/5zTKF3V49o9Z6JMQ/TEsf4Vtrx6oWaloiqhhZZrUxcEs+/FKadTyNiaPjcOicsRC9ngsGUKJK2pZvnzWS6TZu2Jxj7lPo48VLlA7AWvOD6kyrtvN8r4dPbPGYZcwGS1Y9frTAcRIh9jOVCNQEDLPpuJy9+5xH1kIPpJyjfUkXBfs0AMxE8MZs6F/OzC5Qq1AiKq9OI/Ufh3X8Ogk9q2O05NW8OIy1yI6y/Jv/S8lP9EgMBRgT6K+nqXUKJbwMfmVmKCsqDz7VozJ2LS3bHWzpDHVWbuAjgKPQXcE/3+q9h/YnsScN3GhyAhZ6+7lobz3HtryNfUmP7YOATW6MMa0YFtqeef4VZuCS2af/j9qYuEExTvn6SLVYSThkbHctHMyL+UIzZWM= X-MS-TrafficTypeDiagnostic: AS8PR03MB6919: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 0NcLHuoLXMEQDTZfBK5g2nPEVl3wCDtOm0l99lXsHlbfkD2zx3wuYHOIcf8S7dGgY6GNdPnv5hxN2GiJaFOn27+II/DRsQNHokit/WiXwK3TsCSmByYnM2RjisjRt+37KZTAP+KGXAV+OLKMZJa8sYxUu2hKhGY2xBJsH6RG1oP5vXcsxF8U+jlp0bMzAwRG9MJNUTsLKdY2Icd9YO4k+VgMJBRtXmttOFezZ5eG/zRqOc+OfCkdbK7XTxYcivpWGN/nF6gdd0gasi+Owh/rA4wKi9Jz94jCOq2vj3upLv5PcNwOlnLP9LfEX4ZzcJS/BJ/mFQmba+WCjC5cwEGDFqAhnjc9yLOuewWyrIHjS232haIwxTV/EpEoQFWWCuzhGjHNaeyIeO+cXYXlh7ycCKzs/gFmmt8RDsH3AwXb2yi9zVNylsko5WLus3pDaSMpJ0L4xsVRdX7PnQXdHhF/DwvMcHelug4QZxHvichg3PmRs1HGtNmZtC3KCE1hRxCFcyXU9hKa0SlWn6buYi9WiY3Jovk5fASY8L0jqPycD5+PMfiK4coNUETzNPZ0R/BFnRrg5ARWYg+6KsVkw0b18g== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 21KTBm4F076NMZ62bu/MwUtPlDywod/nRFUrqdExyWkZFyte95lWKGI/rmDD/3OqrveZHZgFk5kircXIebGyI/0JFLS5KCp2806XZ/91wT4MnjF8D6MrxY/ZEtxHf+XQNQd8YPVCr8DU39qI1fdFOBjzQAD4GgrUCu8CB2ifBiLWxQS6ZCoSX25SdXyFEnoVilzC98w3fhEqYMvrx5IqQRKHEqSRVDv3hhusNYb3ZMpC9VILmXi7YZE1VA/yvRZA2AoEcI1YGVoeTJSs3sUGNqyECgzJbnlIcjnn0rC25EvxJic9uEmY5jC0cuuzjMpTtDy0kV42Wd7eLVNCISfLFhgKcbFR70dCTt7yJI6GnFQAM/h5UDBgLJtJPShB/5bw1Ce67uBzzgXf5SRDLUFYCSV/0LBNiDagsrqjbr3trNC1HONGFy9pmOD3i9XY3tKtQUeag4mOq2Qv4znOBS5kJ40YDIrU7l4sRBmdb8jM1QXFuwobIXnFEYz9hjusa64POiSyzUmAPT6J05XRU6ZkFqgwX09QvXaliZu+KCzwIJRJ0dxydQ96NmHzmaFxW1VV7CMVVYDeW+D8NQltGh9We9ezmoIbHqO8Gg31/TwFdZg6eYsrtVydlRV+03xrpZebVvzKL3NKH1h0LSSlDIT4ydfbKC3ZLyM/o9ntAtar+j9M1NKYBRPnnh2bAgkfvJBLzqlC3iq1Wepkgf6Y5Xj5Gt7a0UHC1K4eqqzzlXjAshnPurOqKkc47E3m3b/DHX6HIHGm1cKZbQu7ESgszqOb7Q7qI0PNFwaNElHHNOiAGOJvDoa+NTczAyZ0RFv9dTsBZMMJx5nzSRGMCoFYDLqcVQlX4GNRqOZk8AZgLWqzR5pHG0QMyHqGvnxTRzkxrFTsMkzDGjwCEGPhg4dh4hULTNoRIxS0xIpPA/5m+KLE1nRjdGM1saVp08EySa5oBABe2iRz8shIMbtyqCdjSEzbEQ== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 57fa66ef-7aea-4f54-9c92-08d9b80950b5 X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Dec 2021 16:07:20.0598 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB6919 Subject: [FFmpeg-devel] [PATCH 1/2] fftools/ffmpeg_opt: Improve checks for truncation/alloc error X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 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" X-TUID: tSEJCeDQ0qt5 Do this by switching from the dynamic buffer API to the AVBPrint API; the former has no defined way to check for errors. This also avoids allocating an AVIOContext. Signed-off-by: Andreas Rheinhardt --- fftools/ffmpeg_opt.c | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/fftools/ffmpeg_opt.c b/fftools/ffmpeg_opt.c index 6c2eb53290..78b5574a3d 100644 --- a/fftools/ffmpeg_opt.c +++ b/fftools/ffmpeg_opt.c @@ -34,6 +34,7 @@ #include "libavutil/avassert.h" #include "libavutil/avstring.h" #include "libavutil/avutil.h" +#include "libavutil/bprint.h" #include "libavutil/channel_layout.h" #include "libavutil/intreadwrite.h" #include "libavutil/fifo.h" @@ -1649,29 +1650,26 @@ static void parse_matrix_coeffs(uint16_t *dest, const char *str) } /* read file contents into a string */ -static uint8_t *read_file(const char *filename) +static char *read_file(const char *filename) { AVIOContext *pb = NULL; - AVIOContext *dyn_buf = NULL; int ret = avio_open(&pb, filename, AVIO_FLAG_READ); - uint8_t buf[1024], *str; + AVBPrint bprint; + char *str; if (ret < 0) { av_log(NULL, AV_LOG_ERROR, "Error opening file %s.\n", filename); return NULL; } - ret = avio_open_dyn_buf(&dyn_buf); + av_bprint_init(&bprint, 0, AV_BPRINT_SIZE_UNLIMITED); + ret = avio_read_to_bprint(pb, &bprint, SIZE_MAX); + avio_closep(&pb); if (ret < 0) { - avio_closep(&pb); + av_bprint_finalize(&bprint, NULL); return NULL; } - while ((ret = avio_read(pb, buf, sizeof(buf))) > 0) - avio_write(dyn_buf, buf, ret); - avio_w8(dyn_buf, 0); - avio_closep(&pb); - - ret = avio_close_dyn_buf(dyn_buf, &str); + ret = av_bprint_finalize(&bprint, &str); if (ret < 0) return NULL; return str; @@ -3279,7 +3277,7 @@ static int opt_filter_complex(void *optctx, const char *opt, const char *arg) static int opt_filter_complex_script(void *optctx, const char *opt, const char *arg) { - uint8_t *graph_desc = read_file(arg); + char *graph_desc = read_file(arg); if (!graph_desc) return AVERROR(EINVAL);