Hi Neo, Thank you very much for the patch.
Some minor comments 1) Besides the skip check in this patch, could you help to add additional check for RelocDir->Size before calling PeCoffLoaderImageAddress to calculate the RelocBase and RelocBaseEnd? Since when RelocDir->Size==0, we can just return, don't need to do the calculation. 2) Please use the PatchCheck.py in edk2\BaseTools\Scripts to check the patch format before committing the patch. Can refer following link for more info: https://github.com/tianocore/tianocore.github.io/wiki/Commit-Message-Format Thanks, Dandan > -----Original Message----- > From: Hsueh, Hong-chihX > Sent: Tuesday, January 29, 2019 2:41 AM > To: edk2-devel@lists.01.org > Cc: Kinney, Michael D <michael.d.kin...@intel.com>; Gao, Liming > <liming....@intel.com>; Bi, Dandan <dandan...@intel.com>; Laszlo Ersek > <ler...@redhat.com> > Subject: [PATCH] MdePkg/BasePeCoffLib: skip runtime relocation if > relocation info is invalid. > > Skip runtime relocation for PE images that provide invalid relocation > infomation > (ex: RelocDir->Size = 0) to fix a hang observed while booting Windows. > > Contributed-under: TianoCore Contribution Agreement 1.1 > > Signed-off-by: Neo Hsueh <hong-chihx.hs...@intel.com> > Cc: Michael D Kinney <michael.d.kin...@intel.com> > Cc: Liming Gao <liming....@intel.com> > Cc: Dandan Bi <dandan...@intel.com> > Cc: Laszlo Ersek <ler...@redhat.com> > --- > MdePkg/Library/BasePeCoffLib/BasePeCoff.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/MdePkg/Library/BasePeCoffLib/BasePeCoff.c > b/MdePkg/Library/BasePeCoffLib/BasePeCoff.c > index 1bd079ad6a..f01c691dea 100644 > --- a/MdePkg/Library/BasePeCoffLib/BasePeCoff.c > +++ b/MdePkg/Library/BasePeCoffLib/BasePeCoff.c > @@ -1746,6 +1746,12 @@ PeCoffLoaderRelocateImageForRuntime ( > > RelocDir->VirtualAddress + RelocDir- > >Size - 1, > 0 > > ); > + if (RelocBase == NULL || RelocBaseEnd == NULL || RelocBaseEnd < > RelocBase) { > + // > + // relocation block is not valid, just return > + // > + return; > + } > } else { > // > // Cannot find relocations, cannot continue to relocate the image, ASSERT > for this invalid image. > -- > 2.16.2.windows.1 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel