From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-lf1-f43.google.com (mail-lf1-f43.google.com [209.85.167.43]) by mx.groups.io with SMTP id smtpd.web10.98483.1674811796503971478 for ; Fri, 27 Jan 2023 01:29:58 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20210112 header.b=o6MXRtXS; spf=pass (domain: gmail.com, ip: 209.85.167.43, mailfrom: savvamtr@gmail.com) Received: by mail-lf1-f43.google.com with SMTP id br9so7244308lfb.4 for ; Fri, 27 Jan 2023 01:29:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=N6+FPPBXF0ozL94L9I5gbXC1f3+nnMaqp7Xixk8JxzE=; b=o6MXRtXSHCDEwAsxsZy1cCHq23L6w4Hg9oqAb176A4160mFE53VjHxp6TN4XTjA9f8 cAjbPCFvxxHZE6dvsDl23wiYkFuYZK9egvFa7SVENIwsctxzK+hZojMDPSp8wCUsdxWp kp/6ybvvhEOUIrJcRmzVnn8ga7+ChbRIMEM+MzvSx0Wox14WQiCdOMxnpun2oLa4VCe4 Rj4DqitGmZMJbPF3mjSHt3cDe1cnVSnobUMmSxsSZB+L0edZtD1r5wAwaCu1gm1jkDnJ nibyDvd9poMoXUPSOYaaNW4LKj1Nx7Zwos24pNkMM7ej08wwzGbbFqqWwThsRkkHXcGR HPIw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=N6+FPPBXF0ozL94L9I5gbXC1f3+nnMaqp7Xixk8JxzE=; b=wHAoafj6Kli5BEfSgQ5/iMRMRodDm8yYNKYqz/7jkTptJswlw934clAlvcsm8F19lT DOYf53dyNMp6oS4HsbIiQtERzdbXGbuuWvCLUhFyKYh/AaDM4hbaT9VguwWzN5zym2i1 RoZ0ckLoDkKVYgLhGhuvbch3f//ZiNSf7W/wtqszHIWfp5oFEHvVUS0+QPksRFc3iGPq xv3K/T/4fF40/lAtKwMpzuZdsZ9S6q/nP5utpbNaWooYy3UcLIgjmKH4IJwCn3XL+I1f 0/XfvX0saeRD1DRj3Qi5nTzqRWq8waV4T5wco7UAFVf8ftqpZhkRCUdPzr7jmHxDk5rg 3duQ== X-Gm-Message-State: AO0yUKVxG2vH2kHJ3cj62+6V3BIenXnOEmVrpAcIf+G4vajh6Oh/VYoK nMz661W2ti4qTcugI7yBRL65NLYrK62/IBb1 X-Google-Smtp-Source: AK7set+4JKaWx5iKroDE4ssUnMBoTiyWI3RzlAUuIskP2LUKekFcuTRmAZl1lD7mlL6d3pBkm7NZpg== X-Received: by 2002:a05:6512:3986:b0:4d8:57dc:fcdd with SMTP id j6-20020a056512398600b004d857dcfcddmr114281lfu.56.1674811797391; Fri, 27 Jan 2023 01:29:57 -0800 (PST) Return-Path: Received: from localhost.localdomain ([176.62.67.29]) by smtp.gmail.com with ESMTPSA id t11-20020a056512068b00b004cc8196a308sm229071lfe.98.2023.01.27.01.29.56 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Fri, 27 Jan 2023 01:29:57 -0800 (PST) From: "Savva Mitrofanov" To: devel@edk2.groups.io Cc: =?UTF-8?q?Marvin=20H=C3=A4user?= , Pedro Falcato , Vitaly Cheptsov Subject: [edk2-platforms][PATCH v3 11/11] Ext4Pkg: Filter out directory entry names containing \0 as invalid Date: Fri, 27 Jan 2023 15:29:45 +0600 Message-Id: <20230127092945.94389-12-savvamtr@gmail.com> X-Mailer: git-send-email 2.39.0 In-Reply-To: <20230127092945.94389-1-savvamtr@gmail.com> References: <20230127092945.94389-1-savvamtr@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable 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=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(-) diff --git a/Features/Ext4Pkg/Ext4Dxe/Directory.c b/Features/Ext4Pkg/Ext4Dx= e/Directory.c index 0753a20b5377..465749c9b51d 100644 --- a/Features/Ext4Pkg/Ext4Dxe/Directory.c +++ b/Features/Ext4Pkg/Ext4Dxe/Directory.c @@ -28,9 +28,16 @@ Ext4GetUcs2DirentName ( {=0D CHAR8 Utf8NameBuf[EXT4_NAME_MAX + 1];=0D UINT16 *Str;=0D + UINTN Index;=0D EFI_STATUS Status;=0D =0D - CopyMem (Utf8NameBuf, Entry->name, Entry->name_len);=0D + for (Index =3D 0; Index < Entry->name_len; ++Index) {=0D + if (Entry->name[Index] =3D=3D '\0') {=0D + return EFI_INVALID_PARAMETER;=0D + }=0D +=0D + Utf8NameBuf[Index] =3D Entry->name[Index];=0D + }=0D =0D Utf8NameBuf[Entry->name_len] =3D '\0';=0D =0D --=20 2.39.0