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 0B4AC47599 for ; Tue, 12 Sep 2023 12:34:02 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id EA73968C9B6; Tue, 12 Sep 2023 15:33:52 +0300 (EEST) Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05olkn2043.outbound.protection.outlook.com [40.92.89.43]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B279B68C8A7 for ; Tue, 12 Sep 2023 15:33:50 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mO2YJoza1dYl8GcI3afsP1LZ/bhPcFbdgOsftiCbNt4lteAf7i37GrjAuAr/xmGPYxkVMo6B2wBB5mB89muOu2mSeDY+PC0EswWXuT5HQRXmbK4ryR9qLa7d8odeilVJwJMsd9ni2Zm1MS0q0thH+dm4SMAbLQa99R8sJr3MFbr27rvJPA5UH+s3HtZaTClDrSinePqgSGX/6nbKAYlyrC3ipUjSwbsmxMR+/wntBMsqef4Gvpo4tUGByo/nz5qKogLCDCNuKT2rkQdPc67S+018ToQQy2llxw5JNZLOtVn4Lxq2+hLPJBFh3hUaU3hQYiTMsCDPSULv6BWqN6RG8w== 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=s2iRHMVaFMmMU6OMvWA4EqafVNuV7elr3pgr/6MMoyw=; b=jsLwE92a+UbD2MJhQ80k1JQupxagM2xyUL9cegzr1GucYO3+9hYfxVa7tLOkTYIemKkoINKdR2EicAWGAjbQfCFAGX7gRjC7galsaXny4twGfD/5yTg8X5BA0EikFLm4yTYPabjDuNdo2Y+Uk02x8IMduWbn4HjSneIrEIb/GxFxNxgh97wAi8qgPJMl7VuHrjPl7VG486Nsa7L5yrSpXokqCx+I6jeY2pywj6rmRkas+xWQYzu94Tjv5zgyaT9aI6KqtQSqPmzeWhpW1YLh1VlJufqoYWImIFndbke5OInaVCvvEQzSbUYN0HY6I1j+fuWBF4ZcSQh3WqtkmYDobQ== 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=s2iRHMVaFMmMU6OMvWA4EqafVNuV7elr3pgr/6MMoyw=; b=E1TCMk28QYFm+Wwhc3A1eocUGaD9SbccYJbcoLNOxYNdQ8mHGOmrON7MnQyrrBAjxuktjsLa1nIm2TdAQa89H24Hbo0ztjhdeVuEcwkyNpjDwUKqJ6GbnCxk17YfxOujPqxV/DDI6VyI9DJiqzgkFIJEZJwODgcpbU8Cid+QrlReKKugjYEHnxgSiCOE+GW2/IUMumPBwaUU3UUIVgy2pHHwR39it9NwOJ7VCCQy97HjyZRHdwtGI/vc+IKRuosDlLwRhHje2zk3P0Mv1aYHv6CUYLtWWP6DSq3gpsAEtc9UX4Lr3GLLg92xOrhpjiy+8LCA7+wRmwupQHA/St7vhQ== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by AM8P250MB0294.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:329::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6768.35; Tue, 12 Sep 2023 12:33:50 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::5e01:aea5:d3a8:cafa]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::5e01:aea5:d3a8:cafa%3]) with mapi id 15.20.6768.029; Tue, 12 Sep 2023 12:33:50 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 12 Sep 2023 14:34:19 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [gI/uKU6kD643spoII1pfLNAV0Dzrqd27] X-ClientProxiedBy: ZR2P278CA0051.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:53::6) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20230912123419.2065863-4-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|AM8P250MB0294:EE_ X-MS-Office365-Filtering-Correlation-Id: 7ecc8140-65bd-4b36-8ff9-08dbb38c842d X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 9OKQgRJqE2zs+DXNTKvJ96X0yI3bolFCTMGjAqwnaprM79y7TkrJXXCGzWdEkiARtHXMhIGVZTuXtnkLKDrnO9xnJRIfk3eT+N+zAOFO2ulCHrvA5N4P/acSuDfBoGkRQgjtuHPnVA+nzaaTmhHLFt9l/DHTv13vcm/C1oI8tsjw7Mi9V/noF2Rv3xR5G17oK6xXl+v/GugNsO60NohDinYjQauVNLYuQOsUXXagOJND6CFX4G3wLkPxHTPG027ZLzJ5AcF8wU570pRYBLqyOFx5X1YM9NkMbjkwMLrxeyp7VCt7oEgdezoEHMBdIUsAppdIlCk2sSfFQxxZmMS+KJVT2856WOmFddqBDIp6k0pL47UrG+nWPATj+oHCgXmBm1afklW1AtCdSMqvnqyUj7aGd5HOCMOtUkU1ZulHrD57fAUCIdxs/1MQagiWtWFxUGeVOe86/Pnr2M0SGOMjLIICmIQ6X4Sn96/vilitsQKcnZ+TVSr7+UsYjCHChIYqsw0uKcU6qZFLj33AqejpD+7Q4g6p1hxAPTlyka5aphhVa6HuKQrO0X4W9b87BoVdsqtLl1H7mVqKLaDgCTwqTtibjUGSspCtGSXatW2sehC7cx4DtfZGvgWNIQvAeiC0 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?sCKVGM9KUEUGPMPkWs8hBE8vUwWXZtuzryCBEB2XeFUeKwZkXWgAQ+0AY1L1?= =?us-ascii?Q?PT7MymLnuNKC8Tb557g35u9EvsNnIVz5zBy2/5cL9QY5e99HDaSqU3ZtWE5G?= =?us-ascii?Q?cuCJZwe8162kGor3Y7h7O+MWV3HJq0rtk6Du4XsYdPNAnWe+hvxzTk4KfdDg?= =?us-ascii?Q?DtgQGAUr7L/VAXYCMHZg+/20uIb2jEude0ZBSe0i4c75ZojxMNZwAU1Fx7vM?= =?us-ascii?Q?Aitz7U6W4FYIVsM8u1c7/hGy4kLemzvIapa1h3VKfF668bgJOXvz12AQEaxR?= =?us-ascii?Q?n26Qezvr32qvbxxCOZJedVgY3WTldZXP/5smQFDeI0ZdchOokDPWPVKmsgxE?= =?us-ascii?Q?PkwCE59Gcc+CsBsvrTJa27i6mUrKxx2YyaTNHc7RXGsR11zrFwx4hjhjJY5g?= =?us-ascii?Q?+5pSfCvOYEnOzd4YF7+UKTx7pekhDg9+2BirIbwqjp6rRIvyCG5oCq+T4SY0?= =?us-ascii?Q?rUSqDlAaj1KUREA71mpb31DPlU39oesYBHgAtCdM4SN7Pj/KUXOB/6Q9Y0Vn?= =?us-ascii?Q?jj48y7yk+DZEIj964vk/qMRwA47EIjR1LsCqaUViyDnpHtecKmJSAp9Ki5NX?= =?us-ascii?Q?cl6Mt9sFj+9pMNGjags1AQ3XHij13oJJBaDzN3nVC1KBxl+b6W7V8E7mrj3J?= =?us-ascii?Q?fiqiGh/uSh6cvGDRDmrg0rl0U4h8gaPTngPS7n9dn/+GCaWuiA2pELd/Aozz?= =?us-ascii?Q?hyRutp94TCe5N1Tgqf5KLuKY6L0ROgwCdqwudaea/wjbYxU4kzK4BAJ6d449?= =?us-ascii?Q?jpPfELeVzdwtHfnNQ4Aew1nIl9dS/WnKefaBa25tGW5n/t3PZcBprgFrqqvu?= =?us-ascii?Q?zFWHnOMjyOKyYaVH00LNGUeOFwpuebvc4a4Dkf4Tvf4HUVWYxRGn9HTA/WUt?= =?us-ascii?Q?iTQSRvZgxYsZFf55blmwZRvgqcz8BUsnjIQQJgX2QllFvo5nCb+aKWHd7IuH?= =?us-ascii?Q?hLIkCHveh0EpQN6NwptdS/4x3/rIKXcLTks+RpW+MZaO1ftmujHU7H+acuZw?= =?us-ascii?Q?YuUrPsDa3aNrykL4NX5MCwlgdk6mPJaqpfnBGR8GH0smkX7fQDvqiJYwTSZM?= =?us-ascii?Q?caE6ze+kAtUqFS/XPteuwOH3GmvebIq1MTr0OyIQMKQ8Uvu8pKpEPgg7uiVM?= =?us-ascii?Q?XDtouLbSwuRJMXbh8zEZJ12Gy2Qy1aKAvdarQ25YPYn8ZUJLjONePOWs3e4H?= =?us-ascii?Q?zIH39ZjEmwI9yH8dgDXeGxYg+U6dIgcklA1mxn9aZHAu8BQ3By+PS4kl+fe8?= =?us-ascii?Q?NlN7uw/l00aJl2OJQuG7?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7ecc8140-65bd-4b36-8ff9-08dbb38c842d X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Sep 2023 12:33:49.9786 (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: AM8P250MB0294 Subject: [FFmpeg-devel] [PATCH 5/5] avformat/wtvdec: Avoid unnecessary allocations 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: Signed-off-by: Andreas Rheinhardt --- libavformat/wtvdec.c | 47 ++++++++++++++++++-------------------------- 1 file changed, 19 insertions(+), 28 deletions(-) diff --git a/libavformat/wtvdec.c b/libavformat/wtvdec.c index 9fe00590c8..e70470f79b 100644 --- a/libavformat/wtvdec.c +++ b/libavformat/wtvdec.c @@ -460,71 +460,62 @@ done: static void get_tag(AVFormatContext *s, AVIOContext *pb, const char *key, int type, int length) { - int buf_size; - char *buf; + char buf[LEN_PRETTY_GUID + 1], *bufp = buf; + unsigned dict_flags = 0; if (!strcmp(key, "WM/MediaThumbType")) { avio_skip(pb, length); return; } - buf_size = FFMIN(FFMAX(length + length / 2U, LEN_PRETTY_GUID) + 1, INT_MAX); - buf = av_malloc(buf_size); - if (!buf) - return; - if (type == 0 && length == 4) { - snprintf(buf, buf_size, "%u", avio_rl32(pb)); + snprintf(buf, sizeof(buf), "%u", avio_rl32(pb)); } else if (type == 1) { - avio_get_str16le(pb, length, buf, buf_size); - if (!strlen(buf)) { - av_free(buf); + int buflen = FFMIN(length + length / 2U + 1, INT_MAX); + bufp = av_malloc(buflen); + if (!bufp) + return; + avio_get_str16le(pb, length, bufp, buflen); + if (!*bufp) { + av_free(bufp); return; } + dict_flags = AV_DICT_DONT_STRDUP_VAL; } else if (type == 3 && length == 4) { strcpy(buf, avio_rl32(pb) ? "true" : "false"); } else if (type == 4 && length == 8) { int64_t num = avio_rl64(pb); if (!strcmp(key, "WM/EncodingTime") || !strcmp(key, "WM/MediaOriginalBroadcastDateTime")) { - if (filetime_to_iso8601(buf, buf_size, num) < 0) { - av_free(buf); + if (filetime_to_iso8601(buf, sizeof(buf), num) < 0) return; - } } else if (!strcmp(key, "WM/WMRVEncodeTime") || !strcmp(key, "WM/WMRVEndTime")) { - if (crazytime_to_iso8601(buf, buf_size, num) < 0) { - av_free(buf); + if (crazytime_to_iso8601(buf, sizeof(buf), num) < 0) return; - } } else if (!strcmp(key, "WM/WMRVExpirationDate")) { - if (oledate_to_iso8601(buf, buf_size, num) < 0 ) { - av_free(buf); + if (oledate_to_iso8601(buf, sizeof(buf), num) < 0) return; - } } else if (!strcmp(key, "WM/WMRVBitrate")) - snprintf(buf, buf_size, "%f", av_int2double(num)); + snprintf(buf, sizeof(buf), "%f", av_int2double(num)); else - snprintf(buf, buf_size, "%"PRIi64, num); + snprintf(buf, sizeof(buf), "%"PRIi64, num); } else if (type == 5 && length == 2) { - snprintf(buf, buf_size, "%u", avio_rl16(pb)); + snprintf(buf, sizeof(buf), "%u", avio_rl16(pb)); } else if (type == 6 && length == 16) { ff_asf_guid guid; avio_read(pb, guid, 16); - snprintf(buf, buf_size, PRI_PRETTY_GUID, ARG_PRETTY_GUID(guid)); + snprintf(buf, sizeof(buf), PRI_PRETTY_GUID, ARG_PRETTY_GUID(guid)); } else if (type == 2 && !strcmp(key, "WM/Picture")) { get_attachment(s, pb, length); - av_freep(&buf); return; } else { - av_freep(&buf); av_log(s, AV_LOG_WARNING, "unsupported metadata entry; key:%s, type:%d, length:0x%x\n", key, type, length); avio_skip(pb, length); return; } - av_dict_set(&s->metadata, key, buf, 0); - av_freep(&buf); + av_dict_set(&s->metadata, key, bufp, dict_flags); } /** -- 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".