From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 2E8B749103 for ; Sat, 3 Feb 2024 19:47:19 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 94D4968D12E; Sat, 3 Feb 2024 21:47:17 +0200 (EET) 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: =?us-ascii?Q?wPMo/aomB0k+Z76ACFmQEh/KEI2bjggP1Dvls269i6rFM9e31BMgQqydCCqZ?= =?us-ascii?Q?T1tWtWWwQy4mdxCTAuJcJCTVtp9TzxbysW0TPQ/vQaoGPbemR5Ry0fNbwnUB?= =?us-ascii?Q?wwX5YAOk0oesGDSapWTSswnlRIuIfWRUYoMzRhzEsPgm4YMdFpvrZIStkHf/?= =?us-ascii?Q?ZWG4/YitxCwpWAuGG5XDRI6JHH0RpKvpiGsced4xD20/mO4LwYI568hCBI91?= =?us-ascii?Q?jDt+cRvZFsidv2u2uc35z3QiAu51WeeChgcWiu+k5ViecFCxeFJkyTal3O2N?= =?us-ascii?Q?492hL6VUfhhWUQm+RQpX8bL6Qu48XNryGfySYCarpzNOThB/YO6i4yjTWtJA?= =?us-ascii?Q?WzosWHvQ85kPM4mTdyKT7p9zgrVfMOx4N9GTQwzAe4mGrC3wHapkR4x7mUOa?= =?us-ascii?Q?wIwvJtmm8+/ufG2/4sQNLNvttyv0u6XTn1JUZxroET+XKz6WE5MRshPR/2a9?= =?us-ascii?Q?Ayxuq0TAiTo/ViUJo+Hl30xLsO4SPESw6N5ex8JZO8NKvOaQM/4RZFz3k03c?= =?us-ascii?Q?UeXted5sS/waatFiy2feFq01rW+1dHMMKLjy+8sY5PC8hXjukLVLa0rY6rWH?= =?us-ascii?Q?n7Cm6yQHW2Gi04vZ5yKAzvjrllVaL0IpGSRsD6PBS3G6atKjnrYt5ljjBOhV?= =?us-ascii?Q?84vLUMxg+d13eLdjGUzQT/yNxwIY7cyiwjGGyxrsub4HFXTDeRUdfnFlVVNE?= =?us-ascii?Q?gR+oUHdWERu29V2ZQ3KbHg85vII2tsI4TVNPafJFfCzYMN2Syh9eLlP2VVLY?= =?us-ascii?Q?YhX98EwJODLVGRi5+sxaUFITMDO0fSlJqdmQvxBfN5T57hGLxpe0oUW7ueSj?= =?us-ascii?Q?rzvyu+AoWJsAdRdSQELBDWlvnE4K8ju43gdI6CAXi8tShea8QNbzswpeHgsY?= =?us-ascii?Q?3QA+xC7vjWtxLUSqawpN36FjAHPp1QMl9EyXB8YU/lbwa22uQjyETrff8YRD?= =?us-ascii?Q?omixawr1WeAlwvZ7fzu6WRZ1orvXdUVqeqvtb3z9/yUlVyO8fdOSRJEuD0VK?= =?us-ascii?Q?2yoLqEY6Syq1ZnNeRWkhqb9cjQVXYDefPDhD7YSdJDV3onRN7nBqtP9ssOzx?= =?us-ascii?Q?lVFgQ5FHBXj9+eVILguHanHzHGjbKWqbSCrFrWsPn6c6LGWL9jdtc8UVLIwe?= =?us-ascii?Q?MwjK0gCaejMO9B/sg2PV4Tl1YyYHBGVKUIWhSBB7KB8zcXC1ktNXihFmbRuF?= =?us-ascii?Q?eGkI1dOY5mC8MM8WJqxPxsJLjfnKQI5tfJlzQ1lmlmY6RQSTSJmNciO0asEC?= =?us-ascii?Q?/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 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: 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; } -- 2.34.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".