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".