From: "Gao, Liming" <liming.gao@intel.com>
To: "Chen, Chen A" <chen.a.chen@intel.com>,
"edk2-devel@lists.01.org" <edk2-devel@lists.01.org>
Cc: "Wu, Hao A" <hao.a.wu@intel.com>
Subject: Re: [PATCH] MdeModulePkg/CapsuleApp: Fix potential NULL pointer dereference issue
Date: Sat, 2 Feb 2019 05:21:27 +0000 [thread overview]
Message-ID: <4A89E2EF3DFEDB4C8BFDE51014F606A14E3D5016@SHSMSX104.ccr.corp.intel.com> (raw)
In-Reply-To: <20190201020649.15672-1-chen.a.chen@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
> -----Original Message-----
> From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Chen A Chen
> Sent: Friday, February 1, 2019 10:07 AM
> To: edk2-devel@lists.01.org
> Cc: Wu, Hao A <hao.a.wu@intel.com>
> Subject: [edk2] [PATCH] MdeModulePkg/CapsuleApp: Fix potential NULL pointer dereference issue
>
> To avoid potential NULL pointer dereference issue. Initialize them at
> the beginning of the function.
>
> Cc: Jian J Wang <jian.j.wang@intel.com>
> Cc: Hao Wu <hao.a.wu@intel.com>
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Chen A Chen <chen.a.chen@intel.com>
> ---
> MdeModulePkg/Application/CapsuleApp/CapsuleApp.c | 5 +++--
> MdeModulePkg/Application/CapsuleApp/CapsuleDump.c | 17 +++++++++++------
> MdeModulePkg/Application/CapsuleApp/CapsuleOnDisk.c | 17 +++++++++++++++--
> 3 files changed, 29 insertions(+), 10 deletions(-)
>
> diff --git a/MdeModulePkg/Application/CapsuleApp/CapsuleApp.c b/MdeModulePkg/Application/CapsuleApp/CapsuleApp.c
> index 896acd3304..198a63555d 100644
> --- a/MdeModulePkg/Application/CapsuleApp/CapsuleApp.c
> +++ b/MdeModulePkg/Application/CapsuleApp/CapsuleApp.c
> @@ -916,8 +916,9 @@ UefiMain (
> EFI_GUID ImageTypeId;
> UINTN ImageIndex;
>
> - MapFsStr = NULL;
> - CapsuleNum = 0;
> + BlockDescriptors = NULL;
> + MapFsStr = NULL;
> + CapsuleNum = 0;
>
> Status = GetArg();
> if (EFI_ERROR(Status)) {
> diff --git a/MdeModulePkg/Application/CapsuleApp/CapsuleDump.c b/MdeModulePkg/Application/CapsuleApp/CapsuleDump.c
> index 5bf617c5f6..7bef5a1378 100644
> --- a/MdeModulePkg/Application/CapsuleApp/CapsuleDump.c
> +++ b/MdeModulePkg/Application/CapsuleApp/CapsuleDump.c
> @@ -795,11 +795,13 @@ DumpCapsuleFromDisk (
> UINTN FileCount;
> BOOLEAN NoFile;
>
> - DirHandle = NULL;
> - FileHandle = NULL;
> - Index = 0;
> - FileCount = 0;
> - NoFile = FALSE;
> + DirHandle = NULL;
> + FileHandle = NULL;
> + Index = 0;
> + FileInfoBuffer = NULL;
> + FileInfo = NULL;
> + FileCount = 0;
> + NoFile = FALSE;
>
> Status = Fs->OpenVolume (Fs, &Root);
> if (EFI_ERROR (Status)) {
> @@ -970,7 +972,10 @@ DumpProvisionedCapsule (
>
> ShellProtocol = GetShellProtocol ();
>
> - Index = 0;
> + Index = 0;
> + CapsuleDataPtr64 = NULL;
> + BootNext = NULL;
> + ShellProtocol = NULL;
>
> //
> // Dump capsule provisioned on Memory
> diff --git a/MdeModulePkg/Application/CapsuleApp/CapsuleOnDisk.c b/MdeModulePkg/Application/CapsuleApp/CapsuleOnDisk.c
> index 393b7ae7db..4faa863bca 100644
> --- a/MdeModulePkg/Application/CapsuleApp/CapsuleOnDisk.c
> +++ b/MdeModulePkg/Application/CapsuleApp/CapsuleOnDisk.c
> @@ -151,9 +151,14 @@ DumpAllEfiSysPartition (
> UINTN NumberEfiSystemPartitions;
> EFI_SHELL_PROTOCOL *ShellProtocol;
>
> - ShellProtocol = GetShellProtocol ();
> NumberEfiSystemPartitions = 0;
>
> + ShellProtocol = GetShellProtocol ();
> + if (ShellProtocol == NULL) {
> + Print (L"Get Shell Protocol Fail\n");;
> + return ;
> + }
> +
> Print (L"EFI System Partition list:\n");
>
> gBS->LocateHandleBuffer (
> @@ -421,7 +426,13 @@ GetUpdateFileSystem (
> EFI_BOOT_MANAGER_LOAD_OPTION NewOption;
>
> MappedDevicePath = NULL;
> + BootOptionBuffer = NULL;
> +
> ShellProtocol = GetShellProtocol ();
> + if (ShellProtocol == NULL) {
> + Print (L"Get Shell Protocol Fail\n");;
> + return EFI_NOT_FOUND;
> + }
>
> //
> // 1. If Fs is not assigned and there are capsule provisioned before,
> @@ -468,7 +479,9 @@ GetUpdateFileSystem (
> // 2. Get EFI system partition form boot options.
> //
> BootOptionBuffer = EfiBootManagerGetLoadOptions (&BootOptionCount, LoadOptionTypeBoot);
> - if (BootOptionCount == 0 && Map == NULL) {
> + if ( (BootOptionBuffer == NULL) ||
> + (BootOptionCount == 0 && Map == NULL)
> + ) {
> return EFI_NOT_FOUND;
> }
>
> --
> 2.16.2.windows.1
>
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.01.org
> https://lists.01.org/mailman/listinfo/edk2-devel
next prev parent reply other threads:[~2019-02-02 5:21 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-02-01 2:06 [PATCH] MdeModulePkg/CapsuleApp: Fix potential NULL pointer dereference issue Chen A Chen
2019-02-02 5:21 ` Gao, Liming [this message]
-- strict thread matches above, loose matches on Subject: below --
2019-02-11 6:11 Chen A Chen
2019-02-11 13:02 ` Wu, Hao A
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4A89E2EF3DFEDB4C8BFDE51014F606A14E3D5016@SHSMSX104.ccr.corp.intel.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox