Reviewed-by: Ruiyu Ni <ruiyu...@intel.com> Thanks/Ray
> -----Original Message----- > From: edk2-devel <edk2-devel-boun...@lists.01.org> On Behalf Of Marvin > Häuser > Sent: Sunday, May 6, 2018 4:22 AM > To: edk2-devel@lists.01.org > Cc: Kinney, Michael D <michael.d.kin...@intel.com>; Gao, Liming > <liming....@intel.com> > Subject: [edk2] [PATCH] MdePkg/UefiFileHandleLib: Fix potential NULL > dereference. > > Move the NULL-check in FileHandleGetInfo() to directly after the > allocation to prevent potential NULL dereferences. > > Contributed-under: TianoCore Contribution Agreement 1.1 > Signed-off-by: Marvin Haeuser <marvin.haeu...@outlook.com> > --- > MdePkg/Library/UefiFileHandleLib/UefiFileHandleLib.c | 30 +++++++++++--- > ------ > 1 file changed, 16 insertions(+), 14 deletions(-) > > diff --git a/MdePkg/Library/UefiFileHandleLib/UefiFileHandleLib.c > b/MdePkg/Library/UefiFileHandleLib/UefiFileHandleLib.c > index 57aad77bc135..bcf3a328b82d 100644 > --- a/MdePkg/Library/UefiFileHandleLib/UefiFileHandleLib.c > +++ b/MdePkg/Library/UefiFileHandleLib/UefiFileHandleLib.c > @@ -1,7 +1,7 @@ > /** @file > Provides interface to EFI_FILE_HANDLE functionality. > > - Copyright (c) 2006 - 2017, Intel Corporation. All rights reserved. <BR> > + Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved. <BR> > This program and the accompanying materials > are licensed and made available under the terms and conditions of the BSD > License > which accompanies this distribution. The full text of the license may be > found at > @@ -74,19 +74,21 @@ FileHandleGetInfo ( > // error is expected. getting size to allocate > // > FileInfo = AllocateZeroPool(FileInfoSize); > - // > - // now get the information > - // > - Status = FileHandle->GetInfo(FileHandle, > - &gEfiFileInfoGuid, > - &FileInfoSize, > - FileInfo); > - // > - // if we got an error free the memory and return NULL > - // > - if (EFI_ERROR(Status) && (FileInfo != NULL)) { > - FreePool(FileInfo); > - FileInfo = NULL; > + if (FileInfo != NULL) { > + // > + // now get the information > + // > + Status = FileHandle->GetInfo(FileHandle, > + &gEfiFileInfoGuid, > + &FileInfoSize, > + FileInfo); > + // > + // if we got an error free the memory and return NULL > + // > + if (EFI_ERROR(Status)) { > + FreePool(FileInfo); > + FileInfo = NULL; > + } > } > } > return (FileInfo); > -- > 2.17.0.windows.1 > > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel