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 A8B834888D for <ffmpegdev@gitmailbox.com>; Mon, 28 Apr 2025 20:05:40 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 661FF68A112; Mon, 28 Apr 2025 23:05:36 +0300 (EEST) Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10olkn2061.outbound.protection.outlook.com [40.92.41.61]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 41C46687BE5 for <ffmpeg-devel@ffmpeg.org>; Mon, 28 Apr 2025 23:05:30 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=PUd9fdHkMVuJg9WbzWtORL+4pFNhely/WGH6oqTFTGYXljGWtya0mXvTZesnw9Mu764tdJb90Vs3ctkRfYzmq+YSRPgI5n4MI7/uD6Q1vaZgJq7nUBfzbnuvNR0t4d8gFRDVVjh3khItFpHs+XVGT6melgwJvUyZ4tTUJ64x37JaUJOa/siG2rSknMyn4rA0ib2EiRalbV2lB88TkrP94YgXTak2FAOT57kmGBkpinZP9CHJmvFqlxpIOWuPY/5bVPviJ5nmGLa4d2dEtJoAGHvFv/j2DdM+aA1IuBsQutt7GO/8Ljb4msCVBTJzBUICn1gXJhrZvGNr2Fo3DFY+6g== 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=aER/atgivp71fnch2se5dilASJZCruN3adAxSwIkuoc=; b=u/j5wkJzMzx9IHJyk+fp5m1Fa7cI1/YJxjb1tIAZWTEhUy0BOR99oYpKtharD0Quj3dfGLKVXtYcRY55CiFjF9RkqIQ5x2TVyPg0WPPR20IX6xsG6jtbSlcjRGl959fSoTIvsxSKfNd7nxREnw2A9ac+75tdL1Q+D5UoxMBF58HgW7jp5ysp3DAUGWOshCOHcx5gTSfQ6+SOq3vOvYR7Z9HH5FuWSlB6S/aPGUPMrDnpO2hWgcoPkEbsKucwNUVUYoCc3X8s/eGG4T+s8Af37IwdL7FxqQ8RO3/AieBwU9qX61RY5bpQ/up6a99iofH1HZgPOfD7yb3lKDeeNy4YPw== 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=aER/atgivp71fnch2se5dilASJZCruN3adAxSwIkuoc=; b=omq5UiRickRHFQByaTXvJdgVVk5/yJV4O0RUpkRuXBmB3inU/77tcHAv5HNgYmuCRv2CKzBOdzz48wz2M/VhEz/hXFwr005Rqp1XrStGvjPqg15M9hNI3vz1A0uxBakt/AWyv1cZMD4v1svI+UhkDM+yj5/E0ha9yJHO1DyY98KbSrPnm4X9nsiEYPLJ4c5HbPXHeq5vWUWjBOQ+jJpjh9dyfDkQsA874n08Cy/9QLNQBQ5dher9BgJmHZnY11ZnLef8f7PBVzgKWQxUcOORlh06C70yhuYMHzTb87LasIHSjwgg+dTkvrRI4l5jPbQrwE+Cuc+4X2oy5TFjCF8G6g== Received: from DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM (2603:10b6:8:b::20) by MW4P223MB0611.NAMP223.PROD.OUTLOOK.COM (2603:10b6:303:20f::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.33; Mon, 28 Apr 2025 20:05:25 +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:05:25 +0000 From: "softworkz ." <softworkz-at-hotmail.com@ffmpeg.org> To: Stefano Sabatini <stefasab@gmail.com>, FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org> Thread-Topic: [FFmpeg-devel] [PATCH v7 02/13] fftools/textformat: Apply quality improvements Thread-Index: AQHbtjoq2KOHw7h1Gk27sCt5/M4Hl7O5gs0AgAABiCA= Date: Mon, 28 Apr 2025 20:05:25 +0000 Message-ID: <DM8P223MB03654FE01A37E77E0968DEC7BA812@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> In-Reply-To: <aA/dbPipiEq0ZPw1@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_|MW4P223MB0611:EE_ x-ms-office365-filtering-correlation-id: 497b4c46-1144-4bb7-de87-08dd86900411 x-microsoft-antispam: BCL:0; ARA:14566002|15080799006|7092599003|8062599003|461199028|19110799003|8060799006|3412199025|440099028|102099032|12091999003|41001999003; x-microsoft-antispam-message-info: =?us-ascii?Q?k1V+cY4W5QFgxWzKbbtzJL4LFu3ur5wdRhqCW7cb4z8eu3JG1a/qiyTanIou?= =?us-ascii?Q?EmkqRmQTwu0amQ6me3JCHMOpUNMgI35rltjTzVAxWP2qL2jll48lezaNtGp5?= =?us-ascii?Q?DrKK6yUh097QFM9Hvf35kiZ83WuNT0GQ+nemy2fHW5sWYUf7lXX/LLziH8NZ?= =?us-ascii?Q?pCs00yyCGUh0f5yUdOLe+7lvniwefmXpKZhdmTSNuifiiCnSHjnlIgKs0a+Y?= =?us-ascii?Q?RrOzvY8ZEFW2Rz0WFSgF49JzrYsL52bVGazPqjyToXK9iCTUenCuU564K1Ln?= =?us-ascii?Q?kmO3u3j4AC+wdrGrcO7hAHp0Uf63rjO8tKPD+ZzwivrC9I09YW8vRAKD1+ud?= =?us-ascii?Q?XgLk06CeIqqP3th7+QvMBuHF3QtVt3xjfCYbqSJ5OOWTRcg39gQQNDpKld9j?= =?us-ascii?Q?MLoTCurX/qk0tViydjAoYzb7la7/2h6i0UYvYURDCq5keu5TUR7jHKA8tAdC?= =?us-ascii?Q?B30JpqkqaT+bzDcRx4+4yv8R7tqEXoeOOQ65xniUKZoHTLCmU7ThYzKwpaPU?= =?us-ascii?Q?vyGHOlfUNduqIdbIL2MdvjBwQzq2agkZWrwdFR66f8vDZ7vtkuSCFVcpDS6J?= =?us-ascii?Q?McLLLc74Y/rAQ0AC3xYfsnpS1IASiBtbEAtgVfzZyfKur1KodDOuwrz3Li1S?= =?us-ascii?Q?63ZJt3HH0egs0NIR6oqkkKo7I7YV27Mw50uzBftLUlDbwcCC+yLZSY9fk7C1?= =?us-ascii?Q?HrxEMq2I67EH0isxPe7RHQEMNdgJPZRkIW69KecDAIYfdN8cXGePGFD/38tX?= =?us-ascii?Q?leMFYT68u7AQEEPjxfo+gLWr+Ti97mH5fG4ea1kdX+kyDuXvikUnbIRngO8e?= =?us-ascii?Q?olSjV3cMy0hUZAQHFQC+paa/sFA+qsPPKQHHdpSonJEPEwSGQc0o4nTyZ6OC?= =?us-ascii?Q?LjcTuA0BwDq98l40rEE9zdpMkQaPhZcMw53bmCmxWBbWzpeEBxq0hlMC3Lpi?= =?us-ascii?Q?yVqfPBfYgEa5MwuG8kqaK8kvl/P9gTZwaJcygqafdTjjcRHhGSxlflAmsMLh?= =?us-ascii?Q?9VYU2HiYLR1O0LJWLjgTg9P3JZQe+WipbC37zTKej1+sy9UASTuJPmxpcsrZ?= =?us-ascii?Q?lmrkCV9NqzdFNqvbN1QdcIcmm7k4tFkwFAGQRKd0RtSfFHZTvw6YacfsliIz?= =?us-ascii?Q?CdEpu7ilceB5Frcl4NrsuMu+sRyMjO8PBweueTIcfTtCeXsXJMsuA8Y=3D?= x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?JyBeh2elqNYSIVh4QQYXIGpQH+UpajbBnTkUhvv4FuLOf+Xx97ZJN2yiCEY7?= =?us-ascii?Q?mcj01KUbxAz7hvaubONu/lbfqq8I9FainajBE20RLNCGI9N+F+z9eZUubDqI?= =?us-ascii?Q?ncn7a3V+F3tx+75KXk3ZW6qIVYMcKRgYTMpHjrnCEeDt1I8c1pgaLSWk40+k?= =?us-ascii?Q?LE8WU3iLbm2rwBB97iOri6fTdjo2FA8KnTSNuCgsU3qvpnZZt/N8GQMkMVc4?= =?us-ascii?Q?ZEM/HEfFfCBDvmv8NhYO3yY3aseW0gIVazU3O+FJ/DlzQZxQz3/OW/QIbpB+?= =?us-ascii?Q?abqaEXg1+c4kv+uY+iVHRDmuTuVnOFd1+FwMEC0a0jr+CYnOG/97Qm6nBBFA?= =?us-ascii?Q?hwcZbzUnfp1THk5uxgnMxSxe1Xy2bkjjiVa8sD+8prsWEM5DLK5e8ZgBqR0M?= =?us-ascii?Q?X61hUJ+7lyTEo4Tlei063NC+fKnNM9+tJxJQlTi3i6J+ET9JJ0kPCM7UDovX?= =?us-ascii?Q?/9PUzgEg/qQDGsnTQGGoRbOHy5z0ZSCltD+s1gxKVZNpjN4XmJwCcu1DDFAq?= =?us-ascii?Q?yEpdJLoAsLA66j6qX+hn13ZG9AA2fCRFChDYIqeCfjKI/2nrQQD154B6tkJ1?= =?us-ascii?Q?FWs2tRh7fv0UNdIY10LIsrcm15hVCiJIxn9wsuB5f0LchJsjmNVMtbanObT4?= =?us-ascii?Q?Gci/0RiANv1pWDE1UwTfzKFukKGj9cFK/FDGAsVq7HWdzfZolw+ZNQGdOE0t?= =?us-ascii?Q?vmZsFfrC35+xK1uC+NWidufzkYbX+Sw4qNKrFWCtFZqF5SzKX678gPqrdNqg?= =?us-ascii?Q?0TASShdzcdc95AvxaeqHYySwXWhfd9MTjVSogVkSPY/mJBQc2/w5DWtcFGVr?= =?us-ascii?Q?2N28BPwU/VYWjOPaprLkJzNImI7gvr/69PdK0qMoKpMWHWvBJAMOoXlorfMD?= =?us-ascii?Q?WnzE/8lXbLml1Lg8YtOSRe6OzNrvWuQt1C1kytFc+jTbL7GCSVZeeuBW/jmN?= =?us-ascii?Q?40Y6MjNEX64+F7egQ9Y3mhMTdVrWYquEFKyEeL8uuWivwjUORF8uhVfNa9lS?= =?us-ascii?Q?fQSgJHbxteaDsWvMuIGu5tLyIg42/eNl5xBYP6q9IElPF2XqblpVjirB65o8?= =?us-ascii?Q?qSinJjQmZrsMa2vGQVJGPj1U1xM625tWBgm50X2lcOY+Mk84HdwtYHc8jC8q?= =?us-ascii?Q?Et5uV6YkxXN2UAHJHJfymKmcsMp1hABy/2PO2KqeGa16I2uS7k/7NXCCkys6?= =?us-ascii?Q?DbpGxKrrogBzciwBfS+QHSMFBkBba1r/90/gmTCvRZkq1stqPjCn6nsBImM?= =?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: 497b4c46-1144-4bb7-de87-08dd86900411 X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Apr 2025 20:05:25.7901 (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: MW4P223MB0611 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> 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/DM8P223MB03654FE01A37E77E0968DEC7BA812@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 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. > > > + goto fail; > > } > > } > > } > > @@ -255,6 +258,9 @@ static const char unit_bit_per_second_str[] = "bit/s"; > > > > > void avtext_print_section_header(AVTextFormatContext *tctx, const void > *data, int section_id) > > { > > + if (section_id < 0 || section_id >= tctx->nb_sections) > > + return; > > Given this is a check on the input data, we should probably make it > fail with a log message, meaning we should also check the return value > from the callee. > > Given this is not a public API I'm not against the assert though. Let's discuss this in the other thread (Shaping...). Did you see my recent reply? Thanks sw _______________________________________________ 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".