> On Feb 23, 2018, at 5:23 AM, marcandre.lur...@redhat.com wrote: > > From: Marc-André Lureau <marcandre.lur...@redhat.com> > > Without this hack, GetNextHob() loops infinitely with the next patch. > I don't understand the reason. > > The loop is triggered by the GetFirstGuidHob (&gTpmErrorHobGuid) call. > > CC: Laszlo Ersek <ler...@redhat.com> > CC: Stefan Berger <stef...@linux.vnet.ibm.com> > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Marc-André Lureau <marcandre.lur...@redhat.com> > --- > MdePkg/Library/PeiHobLib/HobLib.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/MdePkg/Library/PeiHobLib/HobLib.c > b/MdePkg/Library/PeiHobLib/HobLib.c > index 5c0eeb992f..ed3c5fbd6d 100644 > --- a/MdePkg/Library/PeiHobLib/HobLib.c > +++ b/MdePkg/Library/PeiHobLib/HobLib.c > @@ -89,6 +89,10 @@ GetNextHob ( > if (Hob.Header->HobType == Type) { > return Hob.Raw; > } > + if (GET_HOB_LENGTH (HobStart) == 0) {
As Laszlo points out this error condition is likely memory corruption. Thus it would be better to check for all know illegal values? if (GET_HOB_LENGTH(HobStart) < sizeof (EFI_HOB_GENERIC_HEADER) Thanks, Andrew Fish > + DEBUG ((DEBUG_INFO, "FIXME: GetNextHob length == 0")); > + return NULL; > + } > Hob.Raw = GET_NEXT_HOB (Hob); > } > return NULL; > -- > 2.16.1.73.g5832b7e9f2 > > _______________________________________________ > edk2-devel mailing list > edk2-de...@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel