From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <ffmpeg-devel-bounces@ffmpeg.org> Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id C25BB4E143 for <ffmpegdev@gitmailbox.com>; Mon, 28 Apr 2025 20:40:52 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id E301768A0C3; Mon, 28 Apr 2025 23:40:47 +0300 (EEST) Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11olkn2108.outbound.protection.outlook.com [40.92.19.108]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 4F8A2680A42 for <ffmpeg-devel@ffmpeg.org>; Mon, 28 Apr 2025 23:40:41 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=sXF+ZWbMkA7hetdB9EbArwkSvEhgCYbM/cBXG+M3GhQSxPMpGoTO4F5FbEcJI8EDafMtPR9dSGYoH7Ib8CFQp1pUSGicy5AmlaR+Djk1LbIaR+0UpM/UIcIe76ygNGj//52guRojKq3a0MgR0JUgwLaqumrCy+xor33zqHyLYlflwotfMl2U8LJXu7Box2s1Qo2emwqG9AvCUlHSdwcMITGzfXFQ+0BLQ5Y5QT+Av2AnQ+POjH1LHKlOtkzyT1/tYrosFlvcF/mSmOSEGr7uSW+5lUcbT+FjYUEzydBV1s30qdSFYO3nUMMI0DCOjpcffGzSPOfw6fW+KGB7dRvtdg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=pHV6c6XylOQRmfzCeI+l2YuYQ8uj/Jv/DBfBS89VRxA=; b=bzurhu5Fc3SFLFkbsxzUV/LsBF/WgL4ArHHgoiVMqnFlxBqCOEDoCCWwKImR/AaZKfDceQGJ84f8QD0JaB912In4ZJqAs1SxXnvRw/DSGcFDXdIJA+gDOqgs1DD2bsvtp31y8g7wB9xRudkULTP6XsO5BSK4+B5MQqIUsVAjnDvxTQtrkHcTsgZLzAuiD7iLb4cSLG62aDvGTQtQnsz88rR1/kmO1UUhs5DJ+WQ4EFBr+HVF+cGWIqhnd9Afjddx8lDb2QZJXtkAnSDsCAn6/bGS4IheytC21WlxloB1ZLgFAdlMrOy2srMLkfmGO1iuU+3ktsS9Jqiy7raf94P81g== 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=hotmail.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=pHV6c6XylOQRmfzCeI+l2YuYQ8uj/Jv/DBfBS89VRxA=; b=kXR40mL+acB06Lo/2HDF6UoIbbrBmzFpBvypw2wzhhG+vb6ZDwMSMvXuGyYSwVSv7cukscKM4gigtDSMKd56XOSXsg1Xii3BGcTo1nGNz4SkssvODMh03+IRzxEpPv+GZz3BifcnDTj+AB+5eSGy6zLemqyktLvwDx05GKxhcJaQ2xrybj6P3EXLhvWZyFXcoqx6o9Xoazzjk2b0uwoVlrUY32unSEusHWkv1TCPbGgDziPUp5dTkvbRbnPMJiRcQz3sGoeEI0w3H8Lo0YV/sWXeHteDZv9Pw205zw8KChCAfsuaAqc/PKVcs9qZbtUGu2EZ4Cx3LmmoBnN4mQsWnw== Received: from DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM (2603:10b6:8:b::20) by SA1P223MB0605.NAMP223.PROD.OUTLOOK.COM (2603:10b6:806:258::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.29; Mon, 28 Apr 2025 20:40:38 +0000 Received: from DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM ([fe80::bf09:8e9:b07f:98a7]) by DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM ([fe80::bf09:8e9:b07f:98a7%4]) with mapi id 15.20.8678.028; Mon, 28 Apr 2025 20:40:38 +0000 From: "softworkz ." <softworkz-at-hotmail.com@ffmpeg.org> To: Stefano Sabatini <stefasab@gmail.com> Thread-Topic: [FFmpeg-devel] [PATCH v7 02/13] fftools/textformat: Apply quality improvements Thread-Index: AQHbtjoq2KOHw7h1Gk27sCt5/M4Hl7O5gs0AgAABiCCAAAY/AIAAAPRQ Date: Mon, 28 Apr 2025 20:40:37 +0000 Message-ID: <DM8P223MB036524D7359B4E45D4DCFBC0BA812@DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM> References: <pull.66.v6.ffstaging.FFmpeg.1745457192.ffmpegagent@gmail.com> <pull.66.v7.ffstaging.FFmpeg.1745623868.ffmpegagent@gmail.com> <1a4044ba238e9cdd13c8db56a344387748f64633.1745623868.git.ffmpegagent@gmail.com> <aA/dbPipiEq0ZPw1@mariano> <DM8P223MB03654FE01A37E77E0968DEC7BA812@DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM> <aA/j8udHPaUshX70@mariano> In-Reply-To: <aA/j8udHPaUshX70@mariano> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DM8P223MB0365:EE_|SA1P223MB0605:EE_ x-ms-office365-filtering-correlation-id: 14dc4194-b908-4a8f-d82b-08dd8694eee3 x-ms-exchange-slblob-mailprops: Cq7lScuPrnpFX5gNBgVui9nZ6J+Gucr/R6cc5C4qvww+i77yYuGc69obJF9r3BibaVuN1SpPcpUzrL1AoYWZy+EtsddDH01/1Hw0pgyK8GhlsNC+XEDIWzgxmhm3JFaHh3frQ+GOL9gnRg5BZkuUK61SiVhUTRFezEwGnrjSx89Q9WOmVV+CpSf+LFK8kTF2G3Q4NvkTosb4sbJuDVt6xeuM/K9XcNKSn2kdXqfXgsab1Gu6CY7nieQC9H9MQCHIxmYlATuz/Fj1Swn351GXiOrhyBDh7BoRXRvNxU7AIZ8jtZqSJQamC5Fd0qbjN8EbF/RparR/XAYUsCa45B6Jp4H+G6qYwOj0AdWeqqMWy8XCiKRHMop5eW6JB+dOk7lpX3v3597ZRCa874Lr2z7U1Q4o3uK2NvI4tkYB+Ah9zGDXMREOIGX1AT7fX3g1sS6uzwrC5WNZWiO6qq3i70LDRdZtEX9x3ufAEjH6FNsP9gM4bI7Q5DXpZlnSISm93USF7M2uyd5QIAJ+PPfJgoDXh6DajE8+u0JYMkUyJDJSE3Z12zvIdntWFYKEKNGWrJgcl/zaR2TqWlAhO5wgHZA+FHoXA3d6N8Yahn+xoqRBFbBZSaV+LYQQJRQvHoENI8YLtmHzqXn2wcQj4Y81R+nvO8K5lVI9wLdTbUWHkqroDfpoIoVSNzV0deBJeeb1vWOEDdlhHRwtHGNyfDu05RQ/SsCzwo9PuRkQPHOEJ/TaO/VGCXKdpygLxhS2Z5xAPi0O52S/12aDJbg= x-microsoft-antispam: BCL:0; ARA:14566002|7092599003|15080799006|8060799006|19110799003|8062599003|461199028|440099028|102099032|3412199025|12091999003|41001999003; x-microsoft-antispam-message-info: =?us-ascii?Q?LKK8YmhmN0TO2VqN4wpnoMvzrmnP31FEIVGh5o0D2Qb9DhdqENj2Cm0wShC8?= =?us-ascii?Q?wP6WuoYn1zpp578P7Fb6cXglijxzLJKUB6Z1GOCFuSemRKF5J7nefJI8mn+v?= =?us-ascii?Q?4SCQMjtgvE21ZGVSvEilP7mo6FjZ1OLRE19RtcjTl9Nb0viWEZ9CIHrGhB1m?= =?us-ascii?Q?fnLXnVuUeaikTAAnH/xX2BLSYzL71hdWgNykRVGhHiVhmhkYX3VOzXVLEI5k?= =?us-ascii?Q?++Kg/p9TDTstvNhJirSd7eQcejv8LL8mKvIfmzrvPq+8H25S6FxCYzUKcAav?= =?us-ascii?Q?+nynVwVcH+8tMgB/AzLNQ/QdrcuLdtwQLCGZ0lpeGGDOBaHsaP6+whoUeEKp?= =?us-ascii?Q?hsnFxSGAnSZ3H88Lrq2F8YvY2j9LzOxJ5zN1OGsEUB6/iEYUxfmBd1Zr/9NU?= =?us-ascii?Q?8zntjlu5ca4KyQXu4mn3tKEE/sXebTJVi/c/e6ZrKrV7aUGPLgntqOWGx5Mm?= =?us-ascii?Q?8VCGde9owT/eKbRe155iTbV17G57XEJVeDbjAog4+Jo8awmNKWyFRFBQaQnf?= =?us-ascii?Q?5uXAj3ByfsZ+19kzAArsiYLOs09DcrMvx0Ige6i9LHACJ1Q3yHMs7RMaY5gK?= =?us-ascii?Q?BB1ob7O5KDZJUkgvUfyfk8gUys3Mq/4xM/AcjzHByrzxDPy6wMXUV4vJO57j?= =?us-ascii?Q?x9FBeR+o8S7MDaCeERw6g/HiFibPKB4WVwKG9LgFuKDeLZf3I5KNWvnz41gn?= =?us-ascii?Q?4enfsMOgfVp9Mu0iZrdBBd4QkyIlqixonCnvjyvXl+5B1culVRKsnjFcocTk?= =?us-ascii?Q?bLmbbGbde/MlOx9MFpcLQjvlTPYptduE+RTdZQ6zIEsSNRg0VBbzOi+hSkct?= =?us-ascii?Q?il0nxA9x37mKn/aJmDd+AF5yrvSAsR6dCBAC5iNi7c5EMc9dDZ/PrhZajvA+?= =?us-ascii?Q?45kDPHrq0ZHR6WV0hT725K41r+oHZqtHVL57nmmFDv5IyNrlYWI5DuSomeM8?= =?us-ascii?Q?whw9veAob5QL0VeI4fLUtq3iEtnMzCHsk9tzMQo1aWpKKqgu/Ci8wK2/jBKk?= =?us-ascii?Q?rk1+MMX2ZnPLjUzrznmsKjpXq7G89vOiQjVMIKW+JI9BEHYZayt5rIoJo9gU?= =?us-ascii?Q?UHeJeIgDBfbPTHJitV97xb5CN+wDJ7NdJelprIHGu6A9j/rlRrqmUkH+ktfa?= =?us-ascii?Q?kwOSyOkfnjiZ9Y/gUZPUKSX9vhtttM76u6FNhc6yl74cL18yLLMBtu0=3D?= x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?DWw61ccR33G+HVr8Wz9hT2ZRC7Z7o8EAbkrXcFsMlx0n7SFcg0IH50wZRjsU?= =?us-ascii?Q?3s9CpZXHr2v3BzpIpfafMIyckqvEnQP5gcWb5z1eWun6lwVBm5wDnLuDb9ae?= =?us-ascii?Q?+EubuWeTrikpGxdYmHMP5a0rmD2n+I8uR9jWgtjBI2+5N7IoPcZJxKs5BHO7?= =?us-ascii?Q?yDlZau923ZBCnDmbAwof7gCI4k96gKVGBwTyJ5wWSAdYETpEF62uJtrD6W39?= =?us-ascii?Q?2cEEF+qW+dWSHE3nCTG9TlgmxVl5FXIiJ4/mM9ip70T+pnEtNMJ862ZWZDU6?= =?us-ascii?Q?oMEtVR0MSHQmOn/JFT6Y4PWhe1TEFpsNAuFH0EbnDa0bTjXuFwhVBAGEjJnj?= =?us-ascii?Q?V8d60GfBhzkI4Pj+oS93VgU+2i5QKOKUaRv7FKAOP8oktf/M/WX2FTBm79GY?= =?us-ascii?Q?/KzzU7M5BQz3wBTZFiH52+uWANBsnYuhS9l7eJOfmwjWBVpkf3HGoTfZ0Njv?= =?us-ascii?Q?/W85BPXbtVRsd17ZYPoCRWetRXVIUvBQfFcdp8wQ1WdDJN7stJ5fR/TDIUqb?= =?us-ascii?Q?zr5a981CUEzbKzwUHrteC1+MPCZC3WQ1PYJatpY96pQUPennRl/LOqL8GjWe?= =?us-ascii?Q?zHh0AGTHGwxoqxy3yQRxSBRNWIno6yN03QFxGlfa2XPkzdLbuOchG6quE0UG?= =?us-ascii?Q?zyHF0tLZbNJOLGuADdS2SkuFVZcfNujoedHGrxtCqDGn7vle9h3XWf6WFl3d?= =?us-ascii?Q?dWbzxL8NGEF3xDRP1LZwEfnoIFeZoLZ5bHK8rxorbVNvvQboT9qweGREEeWS?= =?us-ascii?Q?pBzCvqZklyG3PIRQ/RMLH842IxyH53HCyGNy6L+ym1W6DNhyO//Rdz+2pSpJ?= =?us-ascii?Q?YU1OFpMn7hPuUqep/6oUvekwSC6BfmumcPCQuhQQg0okEloBs6RbmhNUWKPT?= =?us-ascii?Q?kV8fjj2AzDnDcuPG3HjoaK9khifz7rGPpozCzJI90gO3jrD4wsMVBbysU87V?= =?us-ascii?Q?U5fUswxCL3BMSMHiUQvLoeWCLCq+kbRgXyBqZSBVOCLrNGsfLGRyIx/0w0L8?= =?us-ascii?Q?lYeLf4clL4EjlPKVf6H2/38PJSjhHe9hABCedyX2/PyU9kAjNKz4Cpn52fmc?= =?us-ascii?Q?RFyRCpwkUc3rBsnmJey09UnSDj6VdScCI5KCEClUpJPeHEHm/RHUQqSFgCF7?= =?us-ascii?Q?NaGa4ifJ9BtZvtK+ZJm/9kTMlVkUkto6aSdq8pWxNmsLbwtzAHgFAOUWjuOO?= =?us-ascii?Q?m2t4LR09UBKK8Ta9D9UKl3YoLTBDVm6nkkvamPE/qrNHX75B3i/hLjTPyOc?= =?us-ascii?Q?=3D?= MIME-Version: 1.0 X-OriginatorOrg: sct-15-20-7719-20-msonline-outlook-92255.templateTenant X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-Network-Message-Id: 14dc4194-b908-4a8f-d82b-08dd8694eee3 X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Apr 2025 20:40:37.7139 (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: SA1P223MB0605 Subject: Re: [FFmpeg-devel] [PATCH v7 02/13] fftools/textformat: Apply quality improvements X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches <ffmpeg-devel.ffmpeg.org> List-Unsubscribe: <https://ffmpeg.org/mailman/options/ffmpeg-devel>, <mailto:ffmpeg-devel-request@ffmpeg.org?subject=unsubscribe> List-Archive: <https://ffmpeg.org/pipermail/ffmpeg-devel> List-Post: <mailto:ffmpeg-devel@ffmpeg.org> List-Help: <mailto:ffmpeg-devel-request@ffmpeg.org?subject=help> List-Subscribe: <https://ffmpeg.org/mailman/listinfo/ffmpeg-devel>, <mailto:ffmpeg-devel-request@ffmpeg.org?subject=subscribe> Reply-To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org> Cc: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org> Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" <ffmpeg-devel-bounces@ffmpeg.org> Archived-At: <https://master.gitmailbox.com/ffmpegdev/DM8P223MB036524D7359B4E45D4DCFBC0BA812@DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM/> List-Archive: <https://master.gitmailbox.com/ffmpegdev/> List-Post: <mailto:ffmpegdev@gitmailbox.com> > -----Original Message----- > From: Stefano Sabatini <stefasab@gmail.com> > Sent: Montag, 28. April 2025 22:24 > To: softworkz . <softworkz@hotmail.com> > Cc: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org> > Subject: Re: [FFmpeg-devel] [PATCH v7 02/13] fftools/textformat: Apply quality > improvements > > On date Monday 2025-04-28 20:05:25 +0000, softworkz . wrote: > > > > > > > -----Original Message----- > > > From: Stefano Sabatini <stefasab@gmail.com> > > > Sent: Montag, 28. April 2025 21:56 > > > To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org> > > > Cc: softworkz <softworkz@hotmail.com> > > > Subject: Re: [FFmpeg-devel] [PATCH v7 02/13] fftools/textformat: Apply > quality > > > improvements > > > > > > On date Friday 2025-04-25 23:30:57 +0000, softworkz wrote: > > > > From: softworkz <softworkz@hotmail.com> > > > > > > > > Perform multiple improvements to increase code robustness. > > > > In particular: > > > > - favor unsigned counters for loops > > > > - add missing checks > > > > - avoid possible leaks > > > > - move variable declarations to inner scopes when feasible > > > > - provide explicit type-casting when needed > > > > > > > > Signed-off-by: softworkz <softworkz@hotmail.com> > > > > --- > > > > fftools/textformat/avtextformat.c | 85 ++++++++++++++++++++----------- > > > > fftools/textformat/avtextformat.h | 6 +-- > > > > fftools/textformat/tf_default.c | 8 ++- > > > > fftools/textformat/tf_ini.c | 2 +- > > > > fftools/textformat/tf_json.c | 17 ++++--- > > > > fftools/textformat/tf_xml.c | 3 -- > > > > fftools/textformat/tw_avio.c | 11 +++- > > > > 7 files changed, 83 insertions(+), 49 deletions(-) > > > > > > > > diff --git a/fftools/textformat/avtextformat.c > > > b/fftools/textformat/avtextformat.c > > > > index 74d179c516..1939a1f739 100644 > > > > --- a/fftools/textformat/avtextformat.c > > > > +++ b/fftools/textformat/avtextformat.c > > > > @@ -93,9 +93,8 @@ static const AVClass textcontext_class = { > > > > > > > > static void bprint_bytes(AVBPrint *bp, const uint8_t *ubuf, size_t > > > ubuf_size) > > > > { > > > > - int i; > > > > av_bprintf(bp, "0X"); > > > > - for (i = 0; i < ubuf_size; i++) > > > > + for (unsigned i = 0; i < ubuf_size; i++) > > > > av_bprintf(bp, "%02X", ubuf[i]); > > > > } > > > > > > > > @@ -137,6 +136,9 @@ int avtext_context_open(AVTextFormatContext **ptctx, > > > const AVTextFormatter *form > > > > AVTextFormatContext *tctx; > > > > int i, ret = 0; > > > > > > > > > > > + if (!ptctx || !formatter) > > > > + return AVERROR(EINVAL); > > > > > > assert0? > > > > OK. > > > > > > > > > > > + > > > > if (!(tctx = av_mallocz(sizeof(AVTextFormatContext)))) { > > > > ret = AVERROR(ENOMEM); > > > > goto fail; > > > > @@ -209,25 +211,26 @@ int avtext_context_open(AVTextFormatContext > **ptctx, > > > const AVTextFormatter *form > > > > av_log(NULL, AV_LOG_ERROR, " %s", n); > > > > av_log(NULL, AV_LOG_ERROR, "\n"); > > > > } > > > > - return ret; > > > > + goto fail; > > > > } > > > > > > > > /* validate replace string */ > > > > { > > > > - const uint8_t *p = tctx->string_validation_replacement; > > > > - const uint8_t *endp = p + strlen(p); > > > > + const uint8_t *p = (uint8_t *)tctx- > >string_validation_replacement; > > > > + const uint8_t *endp = p + strlen((const char *)p); > > > > while (*p) { > > > > const uint8_t *p0 = p; > > > > int32_t code; > > > > ret = av_utf8_decode(&code, &p, endp, tctx- > > > >string_validation_utf8_flags); > > > > if (ret < 0) { > > > > > > > AVBPrint bp; > > > > - av_bprint_init(&bp, 0, AV_BPRINT_SIZE_AUTOMATIC); > > > > + av_bprint_init(&bp, 0, AV_BPRINT_SIZE_UNLIMITED); > > > > bprint_bytes(&bp, p0, p - p0), > > > > av_log(tctx, AV_LOG_ERROR, > > > > "Invalid UTF8 sequence %s found in string > > > validation replace '%s'\n", > > > > bp.str, tctx- > >string_validation_replacement); > > > > - return ret; > > > > + av_bprint_finalize(&bp, NULL); > > > > > > > I see no advantage in this, since it's adding dynamic allocation and > > > the need to free which was previously not needed > > > > The dynamic allocation does not happen until the buffer content size > > does not fit anymore into the stack-alloced memory. > > Yes, but is this ever happening? Are we sure that it's not? Because unless we are 100% sure, we need to check the return value and when that check indicates an overflow of the buffer - what then? How to remedy? The check for the return value alone - even without any remediation - is more complicated code (more lines) than a single line with av_bprint_finalize(). That's my general rationale behind favoring _UNLIMITED. There are more cases where I have that, and where it's really relevant but for this one, I'll just remove the change, it's not worth the discussion. Thank you sww _______________________________________________ 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".