From patchwork Wed Sep 14 00:58:06 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 37910 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:3b1c:b0:96:9ee8:5cfd with SMTP id c28csp1031237pzh; Tue, 13 Sep 2022 17:58:24 -0700 (PDT) X-Google-Smtp-Source: AA6agR7GDdFjXaDEoJwCxddwqRCv1YtKiuIq5t7fB/EQbAwYOEv/tbbWeFOB+KSpFd/XupH3lVfb X-Received: by 2002:a05:6402:27ca:b0:451:7b58:1b01 with SMTP id c10-20020a05640227ca00b004517b581b01mr13230752ede.61.1663117104247; Tue, 13 Sep 2022 17:58:24 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id s1-20020aa7c541000000b0044e9ca6880bsi9750075edr.364.2022.09.13.17.58.23; Tue, 13 Sep 2022 17:58:24 -0700 (PDT) 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=vDnGmTOU; 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 E469C68BA4A; Wed, 14 Sep 2022 03:58:19 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR03-DBA-obe.outbound.protection.outlook.com (mail-dbaeur03olkn2018.outbound.protection.outlook.com [40.92.58.18]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7229F68BA4A for ; Wed, 14 Sep 2022 03:58:13 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hLcYElwYzwCRSEA7jRERFdhJXGrc1+Lm9piw0WH4KxVZW20aOt7XYoMKUvPMV8duG5yRzmYLgg4fb9LIg0L8lvBXRQUXOQlug9lA80PwQWR5xmKoh0MYq4bceLGO90JOCM8FS7IQeiJaGlkGgAub7HHUxLmXllleUQqB18VtPGlral45X9vbOIv7tDth/aabQYZWDDeFB0Lm0IIwl3O9cDodIIuawT+DQoOzOVxykzw1Nsk9ETSr2NY5qmK8d53LWA6PQr66R+LGQ+cdhuPZENUO8SkUjgJ9cRmZbYXbtnSGq6cwFKNB26biXZ02BWmSJZ7ntlQ9Oc2M5Fa69BzoxQ== 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=0TPh8W/8pdQ8rYDb7ci4uI1u+DGh2tKUNclxbeNgbq8=; b=eRhVAhfOGn+doivM1Gp9YehZyb4JfNN+bKGbujnIicLhxXcVpaX902PfNSKO6+DqnvZW0DR17XxVCt/tXvG26RUVjkOrCCCHr9I1EvWsBU7JCgIQt1x0Lh6QVQOPyWfF4jyNg/DDtuIYwjbjZj3n16tbM3meLZ3DdMt29MpTcabOVcvyuhjayI/ggIDRm+8NW1Bp3YTmRzA1jPU5v2lUeOsYSGxhLyLCOA+iKOinfnQ/ogOgYvYL78DeS2DTGJXe37lWvMbm4j9HnLak7zI6i24w8Mpj7YTq2mciMflIq8Acqmy6pAPImIC4mpagOi0jJ0DFDF1DAmyiy63VAEHl4Q== 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=0TPh8W/8pdQ8rYDb7ci4uI1u+DGh2tKUNclxbeNgbq8=; b=vDnGmTOUt+GUFBsr6Bb9O76C0p1rbfz453WH+iYIk5bBvF//KsqaecbaAsuWBrn0M8z4eVMMzazho/9DI7KEneLylovf7lJ8PZDyRDCzOU9eo6g/kCx3pIwOad9/Y3UP6sAZ4TsCaKOHodNDasEJWn1SdS+omrKIh0eeRZoznzsdmW5OyGK2xwWg4IFczw6hVRM4uANWg8Ml9jcJq7yETIPe/VE2vh3yZtJgCdDk5kkG5UjNZMjRHSTzwjWRrEbUUl9GRVNQxbtwHasGl+1KPc5ThuOi3EQ0ENmd6R/hVqKHUthiCHVXkd5xEkiNeH6DVeNMy+qUPvNXtM8i0ORc5A== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by PR3P250MB0372.EURP250.PROD.OUTLOOK.COM (2603:10a6:102:17f::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5612.22; Wed, 14 Sep 2022 00:58:10 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::51a4:ed23:ea45:dfeb]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::51a4:ed23:ea45:dfeb%8]) with mapi id 15.20.5612.022; Wed, 14 Sep 2022 00:58:10 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Wed, 14 Sep 2022 02:58:06 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 X-TMN: [Um6he4goXUAiZFkZ2wt/Qqvg5+IZQCPkfvxUp7w6/lU=] X-ClientProxiedBy: ZR0P278CA0083.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:22::16) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20220914005806.1096282-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|PR3P250MB0372:EE_ X-MS-Office365-Filtering-Correlation-Id: 8a895bbf-9977-449f-abc5-08da95ec31bf X-MS-Exchange-SLBlob-MailProps: EgT5Wr3QDKy7YnLMs5CsijfqDOdxbMJoxghXs2Xl4wlp5OMBZ4ECEnfhWWvnb1+oSuY06PAETJEqi8xy1uZM76EGgckjDWptjDMpZRecdWrQy7CRa9Qi1O/3toRs7GePbOARrjEbbSxmXJ4/rA3J/Teofdj5beOVdchWGXxTqkTYQ7Qt7L9WvCwRgz2vmH8Q9YFSDrqaEESeSgRQZ8DTzyYHVm2X0CnAJFatWpGFhzXL6pE7cJe/MFs1fGjrCmRYNUdjk/LdtluKTECvFSgkp70/3Od5R9hhnb46rWdQqmyhtpFKay3j5EdIy8r6xJz9q5yOHdH96rTUlX2t+xxsWRIewZtM44A+PYems20TZnHv9vWxsyg2ZkX7+WqJbzJ4d83Gamom7KdMWoGEW64MYFgwhVxQiUHSBa33ldM16owrPbQ+Gdi5ZQ6a+0mrwlDB8sFCnQwVyr0ks9GcLAHcRn8xY27k40oyXNg9R+P71al/JeD9bKdenL7rM2gUZnh31CaA3z+pITxlI0X6XT4ElgnE/nIoepJ/BfTn5/Zqltm5UMsVm9THobxkAvBqKTBC3bcaTkgJIVbYD+AZEPqak5UezUOA138ZQGZDapleO9Pjyt9jG0EwUrWYWy5ANSbYwfAIBNKNBY51auTDmk33xSut5k8XEIaOfVq6UeTNwy0vuoU5jLQMerABOgyio2aNiQkESDQrf/7Aa4z5Tr3rRNosNkOoSR/VJhQ5cHAyLw8= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: VLmfqTnyg/N+/L3cBq0TfmoA3U2SeA13kEdK31OFtaWrXZUvsDFjetaOehOyconh3G5Cp7e3Ocyi1UG5ZEemJ+r2uRi/3URjFeXGOzhgEp+tnd1VVqzhcZOYj0pucneQrSBrURrQohwlH/nDHlOsOX2sQN/bPdgoyo9sbLab7kRhTIVwnU0pMyJVZ62gQVk9YpB1QhUeyQ7bpmUPYczDodj0z6IrCaBrZ79PfMZOLdoW/8ikUea66AZdg2fCZJFVUxDWbdx1DEZb5BQe35lQ851p2XFBYda24ODWqxDusriEbhl6cwkNwcBE2iRCAM77NoPC8gOm2cXaxTrNJn/tpKF8zGIrRK8RQk/Ah7++YLrvOYY6aq1+/s21vT4wcNjdqSM1U+UhJoqqNn+/9tihwLDOTyJsOCrWX1ULvPu9pUkT8LHu9U9UWifQlxlV2q4GsW4lvC2PDwSSiOXhQZ2ReGYud8of8X3dZK1zC2agQ74xrYJhYQraBTmTbuZliSjo0D1TpU1JnHDtar14wEe1FM7GtPTkzX6IPmnmEIBqfDhXl4k13imysZyMe9DaJJm55fSt/NyUlZz5y4Hz0SNmxTkyGfX721r9shqgfG6JiDABFrvQLr03u1X/ZSYD8jj3BFy+evnOw3Y5Pob7kcjNAA== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: rA2nSIzrUv9iYuuVzo/UKkF1drQ9ECRNdN7YpQ7X3bv9xgUun3Bb+yhsGf6kjNDSAlM2cZpTThB/Zp126wH3+WcdiuBdhMJg3CmNvjqx9UAUCpmpMTOQ+Rut9u4HkiBddSVeRz2XTV6X5vHJK2LWsEHTbHVtRLGmMmR50O0U7P76NWOk7aszRWX8btMiEe5Nid4Y6bcsrVe4DPVHTjXdSBhCq6hPUkQw9gGZO3pTxdkI5+0ij7qSCtrjY7l++/t0+qkNs5WUWQ8aEstxaoOewmfxzULM1sAkFKFs5nxahdcKdIgtuxt1y3Qh9uDOmUh5C7AfIRT6qLvFUmhQl3VO1R1Tiveh66FuKcxVxaUrB1IUh1AKq8VllgZE75/95nr3OcpiSIOjzojeb8iH5SlQk8lw4mc5qzB4E2cJ9tm1Z6CAYDvQ7jtBG5n5EcG1a30+BnmFBK1cD1Pvn4foTFjhSNzbYmPpVYU1q1m6fNrMqXeO7n4tHU3OADew6LnPuvQCy8IAfzGPQHoyObsZCmRGE6Y9EiXrJAF+f+MNWRsGWT4J8X94rdWWfLvgGQyP5HZpLVOLVUTrymJPDGFTGFZ3Mc1a+E1sS7t9f+FfBrXd8zoMRd7FDsLwSaFTtqjcxwlB/OBrbUoz3gH2FmWgN7f9KK2QUrwkVbL9dRNT3747jL75RQSweIVGVYK8KClZwD+HMXIMlK9j56I2NSqh5Z1q74r2pm4Dmr7Xj5U6VZOEQlZaSH9b3vHk16SenGcb0oeRwq/vu77ikDsWs9S75ptoYqOca66GHOq/KnnvFYwlbgO7CZyPkKDkwiQ3Q3cPmujB43Y2vTkPWTiEfrWmypyFwlxS3RqGGj20gJnIfQSMQBt3cdXIekVbY1hOgcXa5cpp+pnO/KZHVzHtowBqEFGMLVagFLVKZLqWlbgKXgdJ8DrxiPWxA2817iz+vLH68G/u0pDCnAXYH+CJAx3Czpwbn20Vw0GRQhjSWFzJYNQX45xc67SIxfYcE0N502eLde/wKP4+LIGQQj7L/jIdRHvWRXO+eKIS/XV6FtR05ll5EWqe3/Hnmrtophx2DKOtAxtbu7vp+yeleBGJ4oJH4mugHCHV4RuN6hS6Lazunjc1DSoJNspUbu/O6K/0kwWYO/cXhPxEaTG0362XvkEMh2bNADOGxPHf/p+tLVJ2fcZw9fdSfvTgSqE9t4ZqdFQWljqSa6hN9iq6R7X45xPghBbQBd+6EYNT1OgP4zD3kWcHGFkclgQqqzuwLL15U2b6gg9BJCNeoVkGp1kkp8lAZVYar9kNF3UcTOalaLJEr0VB0aMictwffv4sfuGe8hEqmwZB X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8a895bbf-9977-449f-abc5-08da95ec31bf X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Sep 2022 00:58:10.7999 (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: PR3P250MB0372 Subject: [FFmpeg-devel] [PATCH] avformat/dump: Avoid unnecessary implicit calculation of strlen 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: jJI2iUPRuqVp av_strlcpy() returns the length of the src string to enable the caller to check for truncation. It is currently used in the following way in dump_metadata(): Every metadata value is searched for \b, \n, \v, \f, \r and then the data up to the first of these characters found is copied to a small temporary buffer via av_strlcpy() (but of course not more than fits into said buffer) and then printed; all characters up to the character found earlier are then treated as consumed. But this is bad performance-wise if the while string is big and contains many of these characters, because av_strlcpy() will unnecessarily calculate the length of the whole remaining string. (dump_metadata() actually ignored the return value of av_strlcpy().) Fix this by just not copying the data in a temporary buffer at all. Instead just use the %.*s to bound the number of characters output. Signed-off-by: Andreas Rheinhardt --- libavformat/dump.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/libavformat/dump.c b/libavformat/dump.c index e3f0056c20..cafcef36c6 100644 --- a/libavformat/dump.c +++ b/libavformat/dump.c @@ -145,10 +145,8 @@ static void dump_metadata(void *ctx, const AVDictionary *m, const char *indent) av_log(ctx, AV_LOG_INFO, "%s %-16s: ", indent, tag->key); while (*p) { - char tmp[256]; size_t len = strcspn(p, "\x8\xa\xb\xc\xd"); - av_strlcpy(tmp, p, FFMIN(sizeof(tmp), len+1)); - av_log(ctx, AV_LOG_INFO, "%s", tmp); + av_log(ctx, AV_LOG_INFO, "%.*s", (int)(FFMIN(255, len)), p); p += len; if (*p == 0xd) av_log(ctx, AV_LOG_INFO, " "); if (*p == 0xa) av_log(ctx, AV_LOG_INFO, "\n%s %-16s: ", indent, "");