From patchwork Sat Feb 3 19:33:29 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 45999 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:1a28:b0:199:de12:6fa6 with SMTP id cj40csp1712616pzb; Sat, 3 Feb 2024 11:47:21 -0800 (PST) X-Google-Smtp-Source: AGHT+IHsWUJ3/mVEbQeJhPwAHr+iBxoCyKlwv9UU+oskiP6cZr6Wffj9v6hIIQ0+PWuYAgGimLva X-Received: by 2002:a17:906:3082:b0:a36:f42f:83a3 with SMTP id 2-20020a170906308200b00a36f42f83a3mr3988115ejv.41.1706989641109; Sat, 03 Feb 2024 11:47:21 -0800 (PST) X-Forwarded-Encrypted: i=1; AJvYcCXUDMkUtCyao62+M6zRxINsoEi695WGFvudiHUCQcHG0s0nIT+TgL7C/kTd8GuYaXTuec+PKiqWUcoNCWJllC02L+njr+6U0nx7MpiVOl6ZOC03N99UTPW/Ju0XGsxULNVXb81FzdYWzKJzcpeL5UQEFuPN3Jl82GJD4vgP/cP/jp5+yq3MSAwTvJEqiC/x0bHjeHcaKL7y3xoK4gwVp4bC/jEPVVCCpdl5UQUaUJL1Vu6uYax27PjTem87985JU8aEqfcugYupX8PW5UU4xiV7GBR24t/L4klFudmC3OYvESifanjowLZWAhIy6/q8qQ+eflNckLDhLVBan7DeY87/XIhdFVn6ijX0aIEDUebNA+lWO4HxozfnX2JV+WmTkTNidrczIRM6C6DhhZMBIr+5GBD04HOtR9NvhA7iVO2afQvi+hDLGYeWvlpPGj+4+sJ5mvCnKEf7NCG3+JkUgaQs46ES8j8hrwyo8w69MnHpmH6OVfH5vA2/NEfOm7gO19nSwWKVHbwjAaENbMXi8bYgvEUJQE11O97lReR0HRGLf/pONcUxANH5YoWicolqwheyMl1sPiPmrBWEt0K3joV8pKWyh5teIN5C3zh9KYplpGzBpWUVpilAQbndNzU69G7+9MGp65Hvu7ZR7EMO+IhMuu/sxEoKEQ1Us6+cg4oULel6yjl+l4XjtlosZsfstOATPU5JCLDcUk1OmvUW9Q9SzsAMSm01L9hGWCb6Wz29QSbzu0IDT/hFbBcKWimI1XTd+hqlM2vOgjwGrN3wKwnuQxpEqf7cPRwpfDzjZtiGJYAiH82TR+eQEOO2ajMp+2Xjeyfo9SWhrLLkOxxa0AMlfuiQf/C8BDpLerI5qfh4DdEchMLzegdjMavZA+7VMN2GzMknOIfBtsxLrnkW+g+jA4P9GFn8Fsb283fc8hKv1h74k+jps9YxgG6FudYflyMCnN 6wo67GfTkPniXZ0Kc08Ro4f+NSVAOOF+IS93mC/H2/ZFrSmM9Gbc0ijZU0qcfS8ts7zCoqTakHjz9+ZCKdbP1gZMtXIBliFxTAqcOa471h1b9MIwVxbZQNx1iUQaGo8WhGIvUvVCsj1zE5zwRtWwynKh7sdz1AmnhCYNH9+KAst8Q+3J8JDO7p2lqzS0Zv/VgtNdt2PQAokC/3FDecbFnsfSWX03UF7b11KL5cOJpdf6EGHvZsKSWokCpCKkGb4rdRjNnhhY0xWLPRvP3WrXWPproiGsYzYMyHK5aWNlmdOjfqTWgP40g3hNf3tWJjWl2yLbHQMttLNbYbt+fejPhwMaQ9jg72Y0XNbqcL0JxtZHlha5NjW0Xfv52FZERlcj5cZSTFK0D0aBb5V3EcEXYhNsIqgGxF43zNwFY35q+xGLX7EJSPxTDluDvQUZXB8H9G2YPpE8H4elUD+VDLI1SOd4iu4wy87LIlESLJyhBp4SlAn8OF2Ru3tjHGRlNgCtYEnUXDoEEQQ7UZ+3f73BhmxEqaLuPeUHKFmTsREkwuLlaaGCtYdNc9aUttLQp6e4m0WyydhWeFBCWsaMCUV+AEjWfmX/UEWTSGAxsClwP6 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id ce1-20020a170906b24100b00a3538bc2ad7si2074005ejb.462.2024.02.03.11.47.20; Sat, 03 Feb 2024 11:47:21 -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=ovIfiSqo; 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 D40AE68D130; Sat, 3 Feb 2024 21:47:17 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05olkn2013.outbound.protection.outlook.com [40.92.91.13]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 581EC68C6BB for ; Sat, 3 Feb 2024 21:47:11 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DVqdGW6oJ0FmXJmfh9p0akyMqkdeqyotgBekiTUt2u17EqmPOHdhRYQe4UFvPK2GS8cgTqgEgH4G7qzKKq3IIhVoVmIftzXqCbYHLzOOr5dH1x2MM/170PYO+yXtpE0PxCE2JNGcfT+tgAG9J6a0FxJBix0rFO21ogfscqun1SOTf42l/+fveckaq/jxFrmmY3jduLxo1zh/HM8akSLYJPxyG59d8dT1Ux/D499h7CCSd0xE6JSberBAMP4acLt/qh/nKNflNbrnKYva+zzWw0zdSS00n19rOl6Qo01+lYZRNm0aRzhhoO4LSPYz3EGBQzb7yvUUbLLQc9GmWSpjLw== 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=awRyHiwBzcWTxvejSvV8o3YtdRjhdDRX30toBcapHP4=; b=JibkFPF6wfZUSRWVA4ovCIMPilTEtY5zXWdXVKNtwuZFODR5dgr3sflsIxLFAHp646TPFKVY7O0OeBLRiE5PRvmT7x/o7PP5hzRgaz44XdzSH9Y5JmtyP86apJ62xKlbD1uDE7qlRYE0N6tXne7ZCmc090QhvrxBdO9uZ9391ieT4dTakbTrODYWbj0kuutmp2yZVLomw/GR2AcYTGxTFUjsIN5ZFmir6rR5TLin4rhhOeNo6gEICosNrv0zPJdVWkqH8iuh4yelgmg1tbP1J/VCh4KlE9kne/Z9W2U2kCOMNfnfeGrY8DytkvSkq+YNHUyr4JjYduGQBbE2i6YPeA== 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=awRyHiwBzcWTxvejSvV8o3YtdRjhdDRX30toBcapHP4=; b=ovIfiSqoVWGRkNi/kD4wbS4yKoMidXar1HJpoRi/5MAmgFB8v8mVSM32aA7Y8RvJLmH2S8j6tI0Zc/6IQQ61Te0eOtsywZ3fqw3tp8MPfoSRmjMpq0hmJbztXEHN37PMu1F2aQP81ERTU9Bc9MJB6cso1i47+psLaeUpalQF9JMWCrYjjYQV1ME77USmASseDydbOYm+S4jp1lFF5/PUxeZTidiBFQXuNiFyFjwwY2FPvyIVsa+OvUI4cK5XKmg7pUog1UIP14kJkCvd8bKYI8IRVNXtMoIpR6gc+nDsGeK33ZZoLd+gOTeHFW1qFCz7homK0zoZQDg/ZpJ7ctrJ7A== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by AS8P250MB0005.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:358::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7249.31; Sat, 3 Feb 2024 19:31:42 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::65aa:deb0:a18e:d48d]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::65aa:deb0:a18e:d48d%5]) with mapi id 15.20.7202.031; Sat, 3 Feb 2024 19:31:42 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sat, 3 Feb 2024 20:33:29 +0100 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [lX30ezxlpfKUN0Dl8Om/J6y6CxqVEH78lKShdjOlU1M=] X-ClientProxiedBy: ZR0P278CA0146.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:41::7) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20240203193330.2254723-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|AS8P250MB0005:EE_ X-MS-Office365-Filtering-Correlation-Id: c07f290b-6881-4962-d6fc-08dc24eec049 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ChFeL98mIjKwEVYurfG6ue+W3jeMZg2nvqDDimYQjAGU5i1nj+XOEn/zOtXNhUYWzjSYkoOPeMADimw814A0cG4xerwYgTGTleRVvE5ubnza6PajE7vSSRMn3e7oMwgQ805npvE4KEN0aGUAd9QJmHLTLV8KkprcSpQaxaadqD6jsuj2kA6SqshfJHt9Gl+Fir7IKa/p1hr+bArCI/o1cIhDOarDfjQ3VWpwNEnq1qAZIQoFwCeyIIcHU/XWFcJCJsq6DRrvExi8tnfhpmk20MFp6/Y1HabRTZPjiHKwESPg1ei3HXiW56kZalj74vD9yvn28ix31drhZn30e2jEzK3wHQaV52Dy3ezCk8RvYD850RiLypVLpkCxqMTXRa+NPOncviCj/3J3Kh8yukq1I92/0zk7XJrvGjZdncLaexpkb9NXdcGCbcq01hj9jGTDiOGV+XFS7rFDNtjKfbb7uy8XKhoWJlMfEwli1ia8u0Yxw6xxQh+R7Ape3epFfKokngum+yWLuxM2zwLFG/Db3VudHeUxoC8IWcllhPJNWUjFKTHhj02kOxJMzzfEjfqamZQ/MXeoH8cmHQ5QzitlZqfTSrJjw9Cq+/p12eQ3Dg6MhOHLgrqCnH5+SsHLTUr3 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: wPMo/aomB0k+Z76ACFmQEh/KEI2bjggP1Dvls269i6rFM9e31BMgQqydCCqZT1tWtWWwQy4mdxCTAuJcJCTVtp9TzxbysW0TPQ/vQaoGPbemR5Ry0fNbwnUBwwX5YAOk0oesGDSapWTSswnlRIuIfWRUYoMzRhzEsPgm4YMdFpvrZIStkHf/ZWG4/YitxCwpWAuGG5XDRI6JHH0RpKvpiGsced4xD20/mO4LwYI568hCBI91jDt+cRvZFsidv2u2uc35z3QiAu51WeeChgcWiu+k5ViecFCxeFJkyTal3O2N492hL6VUfhhWUQm+RQpX8bL6Qu48XNryGfySYCarpzNOThB/YO6i4yjTWtJAWzosWHvQ85kPM4mTdyKT7p9zgrVfMOx4N9GTQwzAe4mGrC3wHapkR4x7mUOawIwvJtmm8+/ufG2/4sQNLNvttyv0u6XTn1JUZxroET+XKz6WE5MRshPR/2a9Ayxuq0TAiTo/ViUJo+Hl30xLsO4SPESw6N5ex8JZO8NKvOaQM/4RZFz3k03cUeXted5sS/waatFiy2feFq01rW+1dHMMKLjy+8sY5PC8hXjukLVLa0rY6rWHn7Cm6yQHW2Gi04vZ5yKAzvjrllVaL0IpGSRsD6PBS3G6atKjnrYt5ljjBOhV84vLUMxg+d13eLdjGUzQT/yNxwIY7cyiwjGGyxrsub4HFXTDeRUdfnFlVVNEgR+oUHdWERu29V2ZQ3KbHg85vII2tsI4TVNPafJFfCzYMN2Syh9eLlP2VVLYYhX98EwJODLVGRi5+sxaUFITMDO0fSlJqdmQvxBfN5T57hGLxpe0oUW7ueSjrzvyu+AoWJsAdRdSQELBDWlvnE4K8ju43gdI6CAXi8tShea8QNbzswpeHgsY3QA+xC7vjWtxLUSqawpN36FjAHPp1QMl9EyXB8YU/lbwa22uQjyETrff8YRDomixawr1WeAlwvZ7fzu6WRZ1orvXdUVqeqvtb3z9/yUlVyO8fdOSRJEuD0VK2yoLqEY6Syq1ZnNeRWkhqb9cjQVXYDefPDhD7YSdJDV3onRN7nBqtP9ssOzxlVFgQ5FHBXj9+eVILguHanHzHGjbKWqbSCrFrWsPn6c6LGWL9jdtc8UVLIweMwjK0gCaejMO9B/sg2PV4Tl1YyYHBGVKUIWhSBB7KB8zcXC1ktNXihFmbRuFeGkI1dOY5mC8MM8WJqxPxsJLjfnKQI5tfJlzQ1lmlmY6RQSTSJmNciO0asEC/32iM/SGa5afDD2ubNyG X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: c07f290b-6881-4962-d6fc-08dc24eec049 X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Feb 2024 19:31:42.8408 (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: AS8P250MB0005 Subject: [FFmpeg-devel] [PATCH 4/5] avformat/avformat: Avoid av_strdup(NULL) 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: 1QQkdmMle7d3 It is not documented to be safe. Also copy these lists in a more generic manner. Signed-off-by: Andreas Rheinhardt --- libavformat/avformat.c | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/libavformat/avformat.c b/libavformat/avformat.c index 9cacaef87d..ae79ee6ef7 100644 --- a/libavformat/avformat.c +++ b/libavformat/avformat.c @@ -875,20 +875,28 @@ const AVCodec *ff_find_decoder(AVFormatContext *s, const AVStream *st, int ff_copy_whiteblacklists(AVFormatContext *dst, const AVFormatContext *src) { +#define OFF(field) offsetof(AVFormatContext, field) + static const unsigned offsets[] = { + OFF(codec_whitelist), OFF(format_whitelist), + OFF(protocol_whitelist), OFF(protocol_blacklist), + }; +#undef OFF av_assert0(!dst->codec_whitelist && !dst->format_whitelist && !dst->protocol_whitelist && !dst->protocol_blacklist); - dst-> codec_whitelist = av_strdup(src->codec_whitelist); - dst->format_whitelist = av_strdup(src->format_whitelist); - dst->protocol_whitelist = av_strdup(src->protocol_whitelist); - dst->protocol_blacklist = av_strdup(src->protocol_blacklist); - if ( (src-> codec_whitelist && !dst-> codec_whitelist) - || (src-> format_whitelist && !dst-> format_whitelist) - || (src->protocol_whitelist && !dst->protocol_whitelist) - || (src->protocol_blacklist && !dst->protocol_blacklist)) { - av_log(dst, AV_LOG_ERROR, "Failed to duplicate black/whitelist\n"); - return AVERROR(ENOMEM); + for (unsigned i = 0; i < FF_ARRAY_ELEMS(offsets); i++) { + const char *src_str = *(char *const*)((const char*)src + offsets[i]); + + if (src_str) { + char *dst_str = av_strdup(src_str); + if (!dst_str) { + av_log(dst, AV_LOG_ERROR, "Failed to duplicate black/whitelist\n"); + return AVERROR(ENOMEM); + } + + *(char **)((char*)dst + offsets[i]) = dst_str; + } } return 0; }