From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mout01.posteo.de (mout01.posteo.de [185.67.36.65]) by mx.groups.io with SMTP id smtpd.web11.99003.1674813875640509106 for ; Fri, 27 Jan 2023 02:04:35 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@posteo.de header.s=2017 header.b=oMjW4Y+0; spf=pass (domain: posteo.de, ip: 185.67.36.65, mailfrom: mhaeuser@posteo.de) Received: from submission (posteo.de [185.67.36.169]) by mout01.posteo.de (Postfix) with ESMTPS id BE524240666 for ; Fri, 27 Jan 2023 11:04:33 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.de; s=2017; t=1674813873; bh=SGWSauMP9QIAOFMeOCj6Pfj8VMYCpblzvf+XkT/hr1Y=; h=Subject:From:Date:Cc:To:From; b=oMjW4Y+0D4IcWUzSNv4THmciazdSkdfKhAGeva63gHT4Yv8O5Mr7/dBgBzlbD2D9/ 3v+8bSjyFINfkKMyE6/Clw3MOQnTrSNLxKxpBw1YFrOhkq5BjD3n/zdt+HFGJu8i3i ndA8R7F+qu1xfiRqWxyFXCkvPL7pXGyyWVqvKgqWY35sTJ7mVtp6MTPxbdgIQ9n/iV OuPi80AUN0r0Ei/bCQwCdDgWRW/s4YzG2pnY8SWBOgP8o7JRjme5eXkIo98RrJUtNb HPr88rUuCIMyHLkPmHjfxrok+KII7G9tS2y7ftNMU2JolEBJK9XgisxaDAcgwuW2OB uRZ0zrNJIPxxw== Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4P3Cq46zn0z9rxH; Fri, 27 Jan 2023 11:04:32 +0100 (CET) Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3731.400.51.1.1\)) Subject: Re: [edk2-platforms][PATCH v3 11/11] Ext4Pkg: Filter out directory entry names containing \0 as invalid From: =?UTF-8?B?TWFydmluIEjDpHVzZXI=?= In-Reply-To: <20230127092945.94389-12-savvamtr@gmail.com> Date: Fri, 27 Jan 2023 10:04:28 +0000 Cc: edk2-devel-groups-io , Pedro Falcato , Vitaly Cheptsov Message-Id: References: <20230127092945.94389-1-savvamtr@gmail.com> <20230127092945.94389-12-savvamtr@gmail.com> To: Savva Mitrofanov Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On 27. Jan 2023, at 10:29, Savva Mitrofanov wrote: >=20 > The directory entry name conventions forbid having null-terminator > symbols in its body and can lead to undefined behavior conditions > and crashes >=20 > Cc: Marvin H=C3=A4user > Cc: Pedro Falcato > Cc: Vitaly Cheptsov > Fixes: 89b2bb0db263 ("Ext4Pkg: Fix and clarify handling regarding = non-utf8 dir entries") > Signed-off-by: Savva Mitrofanov > --- > Features/Ext4Pkg/Ext4Dxe/Directory.c | 9 ++++++++- > 1 file changed, 8 insertions(+), 1 deletion(-) >=20 > diff --git a/Features/Ext4Pkg/Ext4Dxe/Directory.c = b/Features/Ext4Pkg/Ext4Dxe/Directory.c > index 0753a20b5377..465749c9b51d 100644 > --- a/Features/Ext4Pkg/Ext4Dxe/Directory.c > +++ b/Features/Ext4Pkg/Ext4Dxe/Directory.c > @@ -28,9 +28,16 @@ Ext4GetUcs2DirentName ( > { > CHAR8 Utf8NameBuf[EXT4_NAME_MAX + 1]; > UINT16 *Str; > + UINTN Index; I *really* do not like UINTN in code that does not deal with buffer = addresses and sizes. I'd change it to UINT8, but I'll leave it up to = Pedro. > EFI_STATUS Status; >=20 > - CopyMem (Utf8NameBuf, Entry->name, Entry->name_len); > + for (Index =3D 0; Index < Entry->name_len; ++Index) { > + if (Entry->name[Index] =3D=3D '\0') { > + return EFI_INVALID_PARAMETER; > + } > + > + Utf8NameBuf[Index] =3D Entry->name[Index]; > + } >=20 > Utf8NameBuf[Entry->name_len] =3D '\0'; >=20 > --=20 > 2.39.0 >=20