From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-lf1-f53.google.com (mail-lf1-f53.google.com [209.85.167.53]) by mx.groups.io with SMTP id smtpd.web11.5559.1670602275517869580 for ; Fri, 09 Dec 2022 08:11:27 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20210112 header.b=cty5Uvjm; spf=pass (domain: gmail.com, ip: 209.85.167.53, mailfrom: savvamtr@gmail.com) Received: by mail-lf1-f53.google.com with SMTP id c1so7768099lfi.7 for ; Fri, 09 Dec 2022 08:11:26 -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=Ms0bqOBY/6yQzuXDoQaVCzxwru9UIS9KHzRnT0i8ntM=; b=cty5UvjmWCWTanDWEIjGRum6BU4Y7qM/4DdcvV5D5RxSz9RGfxCiwlOtl9EvhGE33m HzYFgb671AM4e/EIk1Jcl4vM8jzbLI9qktYlJsdoV+myZ0F0zB2SxfYCzyBarKcreB6S DqDVywsloU54pPm2mQ8OgBMCC3pqvmhq024LaZ3qcuWrCB/rk/rcH2x7+17PRP/0ruf3 mBNAhSWvsOq2xIze70K+ZQjPwrfvKbcYu9M/mLvbUiscPMcjC+kG7xGIWoTwXbb14GUG aim8lTQfUxshFGWDKxu2I1a780bHwPZZnF1pwHaIq8/DsQd8Oc7MxdOH2MD6cWOfVuIZ qyGA== 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=Ms0bqOBY/6yQzuXDoQaVCzxwru9UIS9KHzRnT0i8ntM=; b=q2x16eX1LFqYnJXWeX7xelImlZk+516h19eK/QCF7pX9XMWpmVJAEUyXC26XrhlwdP N/9GK0MIXjCNqJqMJmBzGVWcJKxO7XHc01MxyYBt8z1zkVZgxhSX+wAlyCn957OvXV2m xUAHaJ4IsDfiKvGtczZoBk2v4FvkrnkkWniMiWFJi6v+a7BOsWGlVj3VnMcpcLDv6Own NDucs1wZrFliI/BgsoeYprf4nfb885XxR2gSG6942M1NQpFQSc3pANrG0xJ7SaOKxPmf hFE4YodshsH4czJ8CKiVMaRbvI7IZFyUV6M/wL6yA7pFQHC2eptphcs/nZG8X6ySdYhX QyaA== X-Gm-Message-State: ANoB5pk+U3fUbgQ4dNs9d+dBhMduXd0iHuLp4nlI3k2OxxT1bCE2Ga8Z Wv4V2nE4adNsYfWENyTRLiqGX6jiIFxZO3qJ X-Google-Smtp-Source: AA0mqf4QtRsT3lxb5l6bO+3cGvnhnaU7k+K1dI5uXejFUILUmkRBRVmG7jPNQi1n+wT/InkX/LvQlQ== X-Received: by 2002:ac2:569e:0:b0:4b5:29fe:86c with SMTP id 30-20020ac2569e000000b004b529fe086cmr1338975lfr.17.1670602286113; Fri, 09 Dec 2022 08:11:26 -0800 (PST) Return-Path: Received: from localhost.localdomain ([109.194.121.139]) by smtp.gmail.com with ESMTPSA id v5-20020a05651203a500b00492c663bba2sm318430lfp.124.2022.12.09.08.11.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 09 Dec 2022 08:11:25 -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 v1 11/12] Ext4Pkg: Check VolumeName allocation correctness in Ext4GetVolumeName Date: Fri, 9 Dec 2022 22:11:03 +0600 Message-Id: <20221209161104.70220-12-savvamtr@gmail.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221209161104.70220-1-savvamtr@gmail.com> References: <20221209161104.70220-1-savvamtr@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Missing check in some cases leads to failed StrCpyS call in Ext4GetVolumeLabelInfo. Also correct condition that checks Inode pointer for being NULL in Ext4AllocateInode Cc: Marvin H=C3=A4user Cc: Pedro Falcato Cc: Vitaly Cheptsov Signed-off-by: Savva Mitrofanov --- Features/Ext4Pkg/Ext4Dxe/File.c | 10 ++++++++-- Features/Ext4Pkg/Ext4Dxe/Inode.c | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/Features/Ext4Pkg/Ext4Dxe/File.c b/Features/Ext4Pkg/Ext4Dxe/Fil= e.c index 2d76e1818021..7939fcd3acef 100644 --- a/Features/Ext4Pkg/Ext4Dxe/File.c +++ b/Features/Ext4Pkg/Ext4Dxe/File.c @@ -726,7 +726,11 @@ Ext4GetVolumeName ( =0D VolNameLength =3D StrLen (VolumeName);=0D } else {=0D - VolumeName =3D AllocateZeroPool (sizeof (CHAR16));=0D + VolumeName =3D AllocateZeroPool (sizeof (CHAR16));=0D + if (VolumeName =3D=3D NULL) {=0D + return EFI_OUT_OF_RESOURCES;=0D + }=0D +=0D VolNameLength =3D 0;=0D }=0D =0D @@ -793,7 +797,9 @@ Ext4GetFilesystemInfo ( Info->VolumeSize =3D MultU64x32 (TotalBlocks, Part->BlockSize);=0D Info->FreeSpace =3D MultU64x32 (FreeBlocks, Part->BlockSize);=0D =0D - StrCpyS (Info->VolumeLabel, VolNameLength + 1, VolumeName);=0D + Status =3D StrCpyS (Info->VolumeLabel, VolNameLength + 1, VolumeName);=0D +=0D + ASSERT_EFI_ERROR (Status);=0D =0D FreePool (VolumeName);=0D =0D diff --git a/Features/Ext4Pkg/Ext4Dxe/Inode.c b/Features/Ext4Pkg/Ext4Dxe/In= ode.c index 5ccb4d2bfc42..2977238d687c 100644 --- a/Features/Ext4Pkg/Ext4Dxe/Inode.c +++ b/Features/Ext4Pkg/Ext4Dxe/Inode.c @@ -230,7 +230,7 @@ Ext4AllocateInode ( =0D Inode =3D AllocateZeroPool (InodeSize);=0D =0D - if (!Inode) {=0D + if (Inode =3D=3D NULL) {=0D return NULL;=0D }=0D =0D --=20 2.38.1