From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-lj1-f179.google.com (mail-lj1-f179.google.com [209.85.208.179]) by mx.groups.io with SMTP id smtpd.web10.98482.1674811795893637453 for ; Fri, 27 Jan 2023 01:29:56 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20210112 header.b=jnNmq5+p; spf=pass (domain: gmail.com, ip: 209.85.208.179, mailfrom: savvamtr@gmail.com) Received: by mail-lj1-f179.google.com with SMTP id j15so3962629ljg.8 for ; Fri, 27 Jan 2023 01:29:55 -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=87s/OE7oGhrVK+Ih1+W2I1IIDcJTwpEmydhdsOxbC/E=; b=jnNmq5+pzZ/8pQKcynbUxqAU4g+7Z1GfjCDZYO06Nf3DgNVZcY55b+wws3/MKM8uav K+sUl1rHwUmDV2PranDvXxmHBSBoNBAvx9vE28NecwmB8gUUfem4U/DRzc2v8N8S+FPU CD7vL1DHiXUHot2goFkDXUFnZBJmDBBckOiXfXJ9VsCdzdTW+vRxQfIBxeXZahrQMWr7 JZ/hccCnEs+YOUbLg/Tn9XlktZc/7pzy8akzpfrbS1aouul65ZXpFkvKrQRvBfmPmvz3 Ba+XwlXznb/IKtCLlJH92tIUhLLlmeaggMpcOdXQ1cOYNhisYJ49HqHPPiCqNZ5PNf4E 8Prw== 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=87s/OE7oGhrVK+Ih1+W2I1IIDcJTwpEmydhdsOxbC/E=; b=3Xa+JUrVm3TczomEWkz2wMG0d4Q0Vu5rpMyi3DbzSnjgbNqH5+rL95K/LZTmFimtsZ FDoAq32YSQjf9kZoUR3yUOFcarhkNnlFYGUPljc4qGXtpM3EhYCI5ZNt51CTlpXIb6cb FqX8qu9TJI/2GLoGcYCMpxU+e4PoDGF2BcKf0isQQ3Xiy8Vt54hHnu+MYJbJWwMfAaK8 Fy4LIqOpWpvRgQWREyhvg5Pvn3y1lre6M7vvTx+pZADEW9nTbABALihTpM/Src5cf1fc Jg6/RpiogsY/8FcLFzQhUYClYRJT77exaSURMmTIOXIAHMANMpECm9S3rNV0jiqOGou6 47eg== X-Gm-Message-State: AFqh2kqCuRkkblTTT2rELB2WPGeBQTOl4Nebb8haD2NOS4qghNtkJv1X l86jx1fnDB4QqM4PhZs/lOwwnkTPvMnTnpYU X-Google-Smtp-Source: AMrXdXtCznDUgCro4sy6yWhfSTLi3Ao7AAmXw3qmIzqG0CGuqaF2feVVFv0jxB+kh4rGMSeovVFgTw== X-Received: by 2002:a2e:a9a4:0:b0:28b:74b5:590e with SMTP id x36-20020a2ea9a4000000b0028b74b5590emr12974607ljq.50.1674811793727; Fri, 27 Jan 2023 01:29:53 -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.52 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Fri, 27 Jan 2023 01:29:53 -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 07/11] Ext4Pkg: Check that source file is directory in Ext4OpenInternal Date: Fri, 27 Jan 2023 15:29:41 +0600 Message-Id: <20230127092945.94389-8-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 This check already present in the while loop below, but absent for cases when input file is nameless, so to handle assertion in Ext4ReadFile we need to add it at the top of function Cc: Marvin H=C3=A4user Cc: Pedro Falcato Cc: Vitaly Cheptsov Fixes: d9ceedca6c8f ("Ext4Pkg: Add Ext4Dxe driver.") Signed-off-by: Savva Mitrofanov --- Features/Ext4Pkg/Ext4Dxe/File.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/Features/Ext4Pkg/Ext4Dxe/File.c b/Features/Ext4Pkg/Ext4Dxe/Fil= e.c index 8dfe324255f4..9dde4a5d1a2d 100644 --- a/Features/Ext4Pkg/Ext4Dxe/File.c +++ b/Features/Ext4Pkg/Ext4Dxe/File.c @@ -207,6 +207,11 @@ Ext4OpenInternal ( Level =3D 0;=0D =0D DEBUG ((DEBUG_FS, "[ext4] Ext4OpenInternal %s\n", FileName));=0D +=0D + if (!Ext4FileIsDir (Current)) {=0D + return EFI_INVALID_PARAMETER;=0D + }=0D +=0D // If the path starts with a backslash, we treat the root directory as t= he base directory=0D if (FileName[0] =3D=3D L'\\') {=0D FileName++;=0D @@ -219,6 +224,10 @@ Ext4OpenInternal ( return EFI_ACCESS_DENIED;=0D }=0D =0D + if (!Ext4FileIsDir (Current)) {=0D + return EFI_INVALID_PARAMETER;=0D + }=0D +=0D // Discard leading path separators=0D while (FileName[0] =3D=3D L'\\') {=0D FileName++;=0D @@ -242,10 +251,6 @@ Ext4OpenInternal ( =0D DEBUG ((DEBUG_FS, "[ext4] Opening %s\n", PathSegment));=0D =0D - if (!Ext4FileIsDir (Current)) {=0D - return EFI_INVALID_PARAMETER;=0D - }=0D -=0D if (!Ext4IsLastPathSegment (FileName)) {=0D if (!Ext4DirCanLookup (Current)) {=0D return EFI_ACCESS_DENIED;=0D --=20 2.39.0