From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pj1-f52.google.com (mail-pj1-f52.google.com [209.85.216.52]) by mx.groups.io with SMTP id smtpd.web08.14335.1667438050253583385 for ; Wed, 02 Nov 2022 18:14:10 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20210112 header.b=mOJS0xOC; spf=pass (domain: gmail.com, ip: 209.85.216.52, mailfrom: pedro.falcato@gmail.com) Received: by mail-pj1-f52.google.com with SMTP id k5so205870pjo.5 for ; Wed, 02 Nov 2022 18:14:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=hIOnd/POP7DGM13ZFwxS8ZXe7+2yHlSFsp7V5YqhNcY=; b=mOJS0xOCgdWC7faGklbeUzYU4urDbZ3Njb8kA7Ubke14YiECcH1tOzEsb6N0BJap7c ssm8C07l/ifNybKdfVnwj0a0cwWcf/AfqO6nL+KkXABtuGpw0AHdetkqjAF9upnHi3C+ A4OtYXMvpZsB5yE1gnCoL6BBJZ8HkUWWrlW93AciZcEcE0xYzFK/t8ePSkGngRXGsMtY y2FOhbT56aKhWrYtIYytUeYc+652Rb4zciHuxWfZupNaeSOkBDQPCo/G57DcDQX2h7Ft Xz/IJQLaLQoItYsVRK/DPoaly6cvWPoDJJJHa6uVsYIsejDoaLhPQxQGSEDBugyoPqTG jjcg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=hIOnd/POP7DGM13ZFwxS8ZXe7+2yHlSFsp7V5YqhNcY=; b=7bR55DzmteF/V6Zgl7eiWNAJxhqiuus1e6Qeggj4Lj4XESD+MRVaTOEjneknQ3erdC 1u2RRAimwBNqbdtLiV7Yj/G+LzeuFgIX8yupVXp69Ixp1Pu7FG9POz8wJKuiAbNNxAG7 P2F6ox8IGYDmzxx792GvaNvy/RHHe4A5vFyu8CwSVGQXy8sWsBRR2i5YbgTEIZ2chtm7 7nBxOIkukksP2nlf/wNEPmcmHKoc6PRJ3VqfoCqT3dfj8ENNNkuPUjBTqi3hSTNSzzmp xrvIJ0JlMOO7+dHaCLzMgffLBYPy6PlVTkZOYEdjzEUoknMm5zQLiWm5gI5av6OjuU9g P9Gg== X-Gm-Message-State: ACrzQf0Bmz/uuUOEeMYv72WOZX95b2kDU59+DcbeiouKyVPWsAV5ucxR oEjcZQ1nXSc9O3Qi0PSzjx0hCzOA6uIbsrPYZMw= X-Google-Smtp-Source: AMsMyM6LBM3xmRt2RdenaJuVwkX+TezIKBF6mI7btxmtQuMUk650tASNEQp82eqV5/2oul9IMUSR+UiVGPmE/aU0Bgg= X-Received: by 2002:a17:90b:4d08:b0:20a:6861:352c with SMTP id mw8-20020a17090b4d0800b0020a6861352cmr28398219pjb.225.1667438049422; Wed, 02 Nov 2022 18:14:09 -0700 (PDT) MIME-Version: 1.0 References: <20221024224324.26540-1-pedro.falcato@gmail.com> <00df01d8ef1f$b98bef50$2ca3cdf0$@byosoft.com.cn> In-Reply-To: <00df01d8ef1f$b98bef50$2ca3cdf0$@byosoft.com.cn> From: "Pedro Falcato" Date: Thu, 3 Nov 2022 01:13:57 +0000 Message-ID: Subject: Re: [PATCH v2 1/1] MdePkg/BaseLib: Fix out-of-bounds reads in SafeString To: gaoliming Cc: "Kinney, Michael D" , "Yao, Jiewen" , devel@edk2.groups.io, Vitaly Cheptsov , =?UTF-8?Q?Marvin_H=C3=A4user?= , "Liu, Zhiguang" Content-Type: multipart/alternative; boundary="0000000000009ef53705ec86ac2e" --0000000000009ef53705ec86ac2e Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi Liming, I've just sent out the v3. Thanks, Pedro On Thu, Nov 3, 2022 at 1:01 AM gaoliming wrote: > Pedro: > > Marvin gave one suggestion for the code change ( > https://edk2.groups.io/g/devel/message/95635). Can you response it? > > > > Thanks > > Liming > > *=E5=8F=91=E4=BB=B6=E4=BA=BA:* Pedro Falcato > *=E5=8F=91=E9=80=81=E6=97=B6=E9=97=B4:* 2022=E5=B9=B411=E6=9C=883=E6=97= =A5 7:42 > *=E6=94=B6=E4=BB=B6=E4=BA=BA:* Kinney, Michael D > *=E6=8A=84=E9=80=81:* Yao, Jiewen ; devel@edk2.grou= ps.io; Vitaly > Cheptsov ; Marvin H=C3=A4user ; > Gao, Liming ; Liu, Zhiguang < > zhiguang.liu@intel.com> > *=E4=B8=BB=E9=A2=98:* Re: [PATCH v2 1/1] MdePkg/BaseLib: Fix out-of-bound= s reads in > SafeString > > > > Can someone push this? Is there a blocker here? > > > > On Wed, Oct 26, 2022 at 4:54 PM Kinney, Michael D < > michael.d.kinney@intel.com> wrote: > > Acked-by: Michael D Kinney > > > > -----Original Message----- > > From: Yao, Jiewen > > Sent: Wednesday, October 26, 2022 6:35 AM > > To: Kinney, Michael D ; Pedro Falcato < > pedro.falcato@gmail.com>; devel@edk2.groups.io > > Cc: Vitaly Cheptsov ; Marvin H=C3=A4user < > mhaeuser@posteo.de>; Gao, Liming ; Liu, > > Zhiguang > > Subject: RE: [PATCH v2 1/1] MdePkg/BaseLib: Fix out-of-bounds reads in > SafeString > > > > That is good catch. > > > > Reviewed-by: Jiewen Yao > > > > > > > -----Original Message----- > > > From: Kinney, Michael D > > > Sent: Wednesday, October 26, 2022 12:23 AM > > > To: Pedro Falcato ; devel@edk2.groups.io > > > Cc: Vitaly Cheptsov ; Marvin H=C3=A4user > > > ; Gao, Liming ; Liu, > > > Zhiguang ; Yao, Jiewen > > > Subject: RE: [PATCH v2 1/1] MdePkg/BaseLib: Fix out-of-bounds reads i= n > > > SafeString > > > > > > Adding Jiewen Yao. > > > > > > Mike > > > > > > > -----Original Message----- > > > > From: Pedro Falcato > > > > Sent: Monday, October 24, 2022 3:43 PM > > > > To: devel@edk2.groups.io > > > > Cc: Pedro Falcato ; Vitaly Cheptsov > > > ; Marvin H=C3=A4user ; > > > > Kinney, Michael D ; Gao, Liming > > > ; Liu, Zhiguang > > > > Subject: [PATCH v2 1/1] MdePkg/BaseLib: Fix out-of-bounds reads in > > > SafeString > > > > > > > > OpenCore folks established an ASAN-equipped project to fuzz Ext4Dxe= , > > > > which was able to catch these (mostly harmless) issues. > > > > > > > > Signed-off-by: Pedro Falcato > > > > Cc: Vitaly Cheptsov > > > > Cc: Marvin H=C3=A4user > > > > Cc: Michael D Kinney > > > > Cc: Liming Gao > > > > Cc: Zhiguang Liu > > > > --- > > > > MdePkg/Library/BaseLib/SafeString.c | 24 ++++++++++++++++++++---- > > > > 1 file changed, 20 insertions(+), 4 deletions(-) > > > > > > > > diff --git a/MdePkg/Library/BaseLib/SafeString.c > > > b/MdePkg/Library/BaseLib/SafeString.c > > > > index f338a32a3a41..77a2585ad56d 100644 > > > > --- a/MdePkg/Library/BaseLib/SafeString.c > > > > +++ b/MdePkg/Library/BaseLib/SafeString.c > > > > @@ -863,6 +863,9 @@ StrHexToUintnS ( > > > > OUT UINTN *Data > > > > ) > > > > { > > > > + BOOLEAN FoundLeadingZero; > > > > + > > > > + FoundLeadingZero =3D FALSE; > > > > ASSERT (((UINTN)String & BIT0) =3D=3D 0); > > > > > > > > // > > > > @@ -893,11 +896,12 @@ StrHexToUintnS ( > > > > // Ignore leading Zeros after the spaces > > > > // > > > > while (*String =3D=3D L'0') { > > > > + FoundLeadingZero =3D TRUE; > > > > String++; > > > > } > > > > > > > > if (CharToUpper (*String) =3D=3D L'X') { > > > > - if (*(String - 1) !=3D L'0') { > > > > + if (!FoundLeadingZero) { > > > > *Data =3D 0; > > > > return RETURN_SUCCESS; > > > > } > > > > @@ -992,6 +996,9 @@ StrHexToUint64S ( > > > > OUT UINT64 *Data > > > > ) > > > > { > > > > + BOOLEAN FoundLeadingZero; > > > > + > > > > + FoundLeadingZero =3D FALSE; > > > > ASSERT (((UINTN)String & BIT0) =3D=3D 0); > > > > > > > > // > > > > @@ -1022,11 +1029,12 @@ StrHexToUint64S ( > > > > // Ignore leading Zeros after the spaces > > > > // > > > > while (*String =3D=3D L'0') { > > > > + FoundLeadingZero =3D TRUE; > > > > String++; > > > > } > > > > > > > > if (CharToUpper (*String) =3D=3D L'X') { > > > > - if (*(String - 1) !=3D L'0') { > > > > + if (!FoundLeadingZero) { > > > > *Data =3D 0; > > > > return RETURN_SUCCESS; > > > > } > > > > @@ -2393,6 +2401,9 @@ AsciiStrHexToUintnS ( > > > > OUT UINTN *Data > > > > ) > > > > { > > > > + BOOLEAN FoundLeadingZero; > > > > + > > > > + FoundLeadingZero =3D FALSE; > > > > // > > > > // 1. Neither String nor Data shall be a null pointer. > > > > // > > > > @@ -2421,11 +2432,12 @@ AsciiStrHexToUintnS ( > > > > // Ignore leading Zeros after the spaces > > > > // > > > > while (*String =3D=3D '0') { > > > > + FoundLeadingZero =3D TRUE; > > > > String++; > > > > } > > > > > > > > if (AsciiCharToUpper (*String) =3D=3D 'X') { > > > > - if (*(String - 1) !=3D '0') { > > > > + if (!FoundLeadingZero) { > > > > *Data =3D 0; > > > > return RETURN_SUCCESS; > > > > } > > > > @@ -2517,6 +2529,9 @@ AsciiStrHexToUint64S ( > > > > OUT UINT64 *Data > > > > ) > > > > { > > > > + BOOLEAN FoundLeadingZero; > > > > + > > > > + FoundLeadingZero =3D FALSE; > > > > // > > > > // 1. Neither String nor Data shall be a null pointer. > > > > // > > > > @@ -2545,11 +2560,12 @@ AsciiStrHexToUint64S ( > > > > // Ignore leading Zeros after the spaces > > > > // > > > > while (*String =3D=3D '0') { > > > > + FoundLeadingZero =3D TRUE; > > > > String++; > > > > } > > > > > > > > if (AsciiCharToUpper (*String) =3D=3D 'X') { > > > > - if (*(String - 1) !=3D '0') { > > > > + if (!FoundLeadingZero) { > > > > *Data =3D 0; > > > > return RETURN_SUCCESS; > > > > } > > > > -- > > > > 2.38.1 > > > > -- > > Pedro Falcato > --=20 Pedro Falcato --0000000000009ef53705ec86ac2e Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Liming,

I've just sen= t out the v3.

Thanks,
Pedro

On Thu, Nov 3, 2022 at 1:01 AM gaoliming <gaoliming@byosoft.com.cn> wrote:

Pedro:

=C2=A0Marvin gave one suggestion = for the code change (https://edk2.groups.io/g/devel/message/95635). Can= you response it?

= =C2=A0

Thanks

Liming

=E5=8F=91=E4=BB=B6=E4=BA=BA: Pedro Falcato <pedro.falcato@gmail.com>
<= b>=E5=8F=91= =E9=80=81=E6=97=B6=E9=97=B4: 2022<= /span>=E5=B9= =B411=E6=9C=883=E6= =97=A5 7:42
=E6=94=B6=E4=BB=B6=E4=BA=BA:
Kinney, Michael D <= michael.d.k= inney@intel.com>
=E6=8A=84=E9=80=81: Yao, Jiewen <jiewen.yao@intel.com>; devel@edk2.groups.io; Vi= taly Cheptsov <vit9696@protonmail.com>; Marvin H=C3=A4user <mhaeuser@posteo.de>; Gao, Lim= ing <gaoli= ming@byosoft.com.cn>; Liu, Zhiguang <zhiguang.liu@intel.com>
=E4=B8=BB=E9=A2=98: R= e: [PATCH v2 1/1] MdePkg/BaseLib: Fix out-of-bounds reads in SafeString<= /u>

=C2=A0

Can someone push this? Is there a blocker here?

=C2= =A0

= On Wed, Oct 26, 2022 at 4:54 PM Kinney, Michael D <michael.d.kinney@intel.com&g= t; wrote:

Acked-by: Michael D Kinney <michael.d.kinney@i= ntel.com>


> -----Original Message-----
> From: Y= ao, Jiewen <ji= ewen.yao@intel.com>
> Sent: Wednesday, October 26, 2022 6:35 A= M
> To: Kinney, Michael D <michael.d.kinney@intel.com>; Pedro Falcato = <pedro.falc= ato@gmail.com>; devel@edk2.groups.io
> Cc: Vitaly Cheptsov <vit9696@protonmail.com&= gt;; Marvin H=C3=A4user <mhaeuser@posteo.de>; Gao, Liming <gaoliming@byosoft.com.cn>; L= iu,
> Zhiguang <zhiguang.liu@intel.com>
> Subject: RE: [PATCH v2 1= /1] MdePkg/BaseLib: Fix out-of-bounds reads in SafeString
>
> = That is good catch.
>
> Reviewed-by: Jiewen Yao <Jiewen.yao@Intel.com>= ;
>
>
> > -----Original Message-----
> > Fr= om: Kinney, Michael D <michael.d.kinney@intel.com>
> > Sent: Wednes= day, October 26, 2022 12:23 AM
> > To: Pedro Falcato <pedro.falcato@gmail.c= om>; devel= @edk2.groups.io
> > Cc: Vitaly Cheptsov <vit9696@protonmail.com>; M= arvin H=C3=A4user
> > <mhaeuser@posteo.de>; Gao, Liming <gaoliming@byosoft.com.cn= >; Liu,
> > Zhiguang <zhiguang.liu@intel.com>; Yao, Jiewen <jiewen.yao@intel.com>
> > Subject: RE: [PATCH v2 1/1] MdePkg/BaseLib: Fix out-of-= bounds reads in
> > SafeString
> >
> > Adding Ji= ewen Yao.
> >
> > Mike
> >
> > > ---= --Original Message-----
> > > From: Pedro Falcato <
pedro.falcato@gmail.c= om>
> > > Sent: Monday, October 24, 2022 3:43 PM
>= > > To: de= vel@edk2.groups.io
> > > Cc: Pedro Falcato <pedro.falcato@gmail.com>; Vitaly Cheptsov
> > <
vit9696@protonmail.com>; Marvin H=C3=A4user= <mhaeuser@poste= o.de>;
> > > Kinney, Michael D <michael.d.kinney@intel.com&g= t;; Gao, Liming
> > <gaoliming@byosoft.com.cn>; Liu, Zhiguang <zhiguang.liu@intel= .com>
> > > Subject: [PATCH v2 1/1] MdePkg/BaseLib: Fix = out-of-bounds reads in
> > SafeString
> > >
> &g= t; > OpenCore folks established an ASAN-equipped project to fuzz Ext4Dxe= ,
> > > which was able to catch these (mostly harmless) issues.=
> > >
> > > Signed-off-by: Pedro Falcato <pedro.falcato@gmail= .com>
> > > Cc: Vitaly Cheptsov <vit9696@protonmail.com>
&= gt; > > Cc: Marvin H=C3=A4user <mhaeuser@posteo.de>
> > > Cc: Mich= ael D Kinney <michael.d.kinney@intel.com>
> > > Cc: Liming Gao &= lt;gaoliming@= byosoft.com.cn>
> > > Cc: Zhiguang Liu <zhiguang.liu@intel.com&g= t;
> > > ---
> > >=C2=A0 MdePkg/Library/BaseLib/Saf= eString.c | 24 ++++++++++++++++++++----
> > >=C2=A0 1 file chan= ged, 20 insertions(+), 4 deletions(-)
> > >
> > > d= iff --git a/MdePkg/Library/BaseLib/SafeString.c
> > b/MdePkg/Libra= ry/BaseLib/SafeString.c
> > > index f338a32a3a41..77a2585ad56d = 100644
> > > --- a/MdePkg/Library/BaseLib/SafeString.c
> = > > +++ b/MdePkg/Library/BaseLib/SafeString.c
> > > @@ -8= 63,6 +863,9 @@ StrHexToUintnS (
> > >=C2=A0 =C2=A0 OUT=C2=A0 = =C2=A0 =C2=A0 =C2=A0UINTN=C2=A0 =C2=A0*Data
> > >=C2=A0 =C2=A0 = )
> > >=C2=A0 {
> > > +=C2=A0 BOOLEAN=C2=A0 FoundLe= adingZero;
> > > +
> > > +=C2=A0 FoundLeadingZero = =3D FALSE;
> > >=C2=A0 =C2=A0 ASSERT (((UINTN)String & BIT0= ) =3D=3D 0);
> > >
> > >=C2=A0 =C2=A0 //
> &g= t; > @@ -893,11 +896,12 @@ StrHexToUintnS (
> > >=C2=A0 =C2= =A0 // Ignore leading Zeros after the spaces
> > >=C2=A0 =C2=A0= //
> > >=C2=A0 =C2=A0 while (*String =3D=3D L'0') {> > > +=C2=A0 =C2=A0 FoundLeadingZero =3D TRUE;
> > >= =C2=A0 =C2=A0 =C2=A0 String++;
> > >=C2=A0 =C2=A0 }
> >= ; >
> > >=C2=A0 =C2=A0 if (CharToUpper (*String) =3D=3D L= 9;X') {
> > > -=C2=A0 =C2=A0 if (*(String - 1) !=3D L'0= ') {
> > > +=C2=A0 =C2=A0 if (!FoundLeadingZero) {
> = > >=C2=A0 =C2=A0 =C2=A0 =C2=A0 *Data =3D 0;
> > >=C2=A0 = =C2=A0 =C2=A0 =C2=A0 return RETURN_SUCCESS;
> > >=C2=A0 =C2=A0 = =C2=A0 }
> > > @@ -992,6 +996,9 @@ StrHexToUint64S (
> &g= t; >=C2=A0 =C2=A0 OUT=C2=A0 =C2=A0 =C2=A0 =C2=A0UINT64=C2=A0 *Data
&g= t; > >=C2=A0 =C2=A0 )
> > >=C2=A0 {
> > > += =C2=A0 BOOLEAN=C2=A0 FoundLeadingZero;
> > > +
> > >= ; +=C2=A0 FoundLeadingZero =3D FALSE;
> > >=C2=A0 =C2=A0 ASSERT= (((UINTN)String & BIT0) =3D=3D 0);
> > >
> > >= =C2=A0 =C2=A0 //
> > > @@ -1022,11 +1029,12 @@ StrHexToUint64S = (
> > >=C2=A0 =C2=A0 // Ignore leading Zeros after the spaces> > >=C2=A0 =C2=A0 //
> > >=C2=A0 =C2=A0 while (*Str= ing =3D=3D L'0') {
> > > +=C2=A0 =C2=A0 FoundLeadingZer= o =3D TRUE;
> > >=C2=A0 =C2=A0 =C2=A0 String++;
> > &g= t;=C2=A0 =C2=A0 }
> > >
> > >=C2=A0 =C2=A0 if (Char= ToUpper (*String) =3D=3D L'X') {
> > > -=C2=A0 =C2=A0 i= f (*(String - 1) !=3D L'0') {
> > > +=C2=A0 =C2=A0 if (= !FoundLeadingZero) {
> > >=C2=A0 =C2=A0 =C2=A0 =C2=A0 *Data =3D= 0;
> > >=C2=A0 =C2=A0 =C2=A0 =C2=A0 return RETURN_SUCCESS;
= > > >=C2=A0 =C2=A0 =C2=A0 }
> > > @@ -2393,6 +2401,9 @= @ AsciiStrHexToUintnS (
> > >=C2=A0 =C2=A0 OUT=C2=A0 =C2=A0 =C2= =A0 =C2=A0UINTN=C2=A0 *Data
> > >=C2=A0 =C2=A0 )
> > &= gt;=C2=A0 {
> > > +=C2=A0 BOOLEAN=C2=A0 FoundLeadingZero;
&g= t; > > +
> > > +=C2=A0 FoundLeadingZero =3D FALSE;
>= ; > >=C2=A0 =C2=A0 //
> > >=C2=A0 =C2=A0 // 1. Neither St= ring nor Data shall be a null pointer.
> > >=C2=A0 =C2=A0 //> > > @@ -2421,11 +2432,12 @@ AsciiStrHexToUintnS (
> > = >=C2=A0 =C2=A0 // Ignore leading Zeros after the spaces
> > >= ;=C2=A0 =C2=A0 //
> > >=C2=A0 =C2=A0 while (*String =3D=3D '= ;0') {
> > > +=C2=A0 =C2=A0 FoundLeadingZero =3D TRUE;
&= gt; > >=C2=A0 =C2=A0 =C2=A0 String++;
> > >=C2=A0 =C2=A0 = }
> > >
> > >=C2=A0 =C2=A0 if (AsciiCharToUpper (*S= tring) =3D=3D 'X') {
> > > -=C2=A0 =C2=A0 if (*(String = - 1) !=3D '0') {
> > > +=C2=A0 =C2=A0 if (!FoundLeading= Zero) {
> > >=C2=A0 =C2=A0 =C2=A0 =C2=A0 *Data =3D 0;
> &= gt; >=C2=A0 =C2=A0 =C2=A0 =C2=A0 return RETURN_SUCCESS;
> > >= ;=C2=A0 =C2=A0 =C2=A0 }
> > > @@ -2517,6 +2529,9 @@ AsciiStrHex= ToUint64S (
> > >=C2=A0 =C2=A0 OUT=C2=A0 =C2=A0 =C2=A0 =C2=A0UI= NT64=C2=A0 *Data
> > >=C2=A0 =C2=A0 )
> > >=C2=A0 {=
> > > +=C2=A0 BOOLEAN=C2=A0 FoundLeadingZero;
> > >= ; +
> > > +=C2=A0 FoundLeadingZero =3D FALSE;
> > >= =C2=A0 =C2=A0 //
> > >=C2=A0 =C2=A0 // 1. Neither String nor Da= ta shall be a null pointer.
> > >=C2=A0 =C2=A0 //
> > = > @@ -2545,11 +2560,12 @@ AsciiStrHexToUint64S (
> > >=C2=A0= =C2=A0 // Ignore leading Zeros after the spaces
> > >=C2=A0 = =C2=A0 //
> > >=C2=A0 =C2=A0 while (*String =3D=3D '0')= {
> > > +=C2=A0 =C2=A0 FoundLeadingZero =3D TRUE;
> >= >=C2=A0 =C2=A0 =C2=A0 String++;
> > >=C2=A0 =C2=A0 }
>= ; > >
> > >=C2=A0 =C2=A0 if (AsciiCharToUpper (*String) = =3D=3D 'X') {
> > > -=C2=A0 =C2=A0 if (*(String - 1) != =3D '0') {
> > > +=C2=A0 =C2=A0 if (!FoundLeadingZero) = {
> > >=C2=A0 =C2=A0 =C2=A0 =C2=A0 *Data =3D 0;
> > &g= t;=C2=A0 =C2=A0 =C2=A0 =C2=A0 return RETURN_SUCCESS;
> > >=C2= =A0 =C2=A0 =C2=A0 }
> > > --
> > > 2.38.1=



--

Pedro Falcato



-- =
Pedro Falca= to
--0000000000009ef53705ec86ac2e--