The directory entry name conventions forbid having null-terminator symbols in its body and can lead to undefined behavior conditions and crashes
Cc: Marvin Häuser <mhaeu...@posteo.de> Cc: Pedro Falcato <pedro.falc...@gmail.com> Cc: Vitaly Cheptsov <vit9...@protonmail.com> Fixes: 89b2bb0db263 ("Ext4Pkg: Fix and clarify handling regarding non-utf8 dir entries") Signed-off-by: Savva Mitrofanov <savva...@gmail.com> --- Features/Ext4Pkg/Ext4Dxe/Directory.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) 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; EFI_STATUS Status; - CopyMem (Utf8NameBuf, Entry->name, Entry->name_len); + for (Index = 0; Index < Entry->name_len; ++Index) { + if (Entry->name[Index] == '\0') { + return EFI_INVALID_PARAMETER; + } + + Utf8NameBuf[Index] = Entry->name[Index]; + } Utf8NameBuf[Entry->name_len] = '\0'; -- 2.39.0 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#99147): https://edk2.groups.io/g/devel/message/99147 Mute This Topic: https://groups.io/mt/96562701/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-