Karunakar, Every Pool allocation has a header and a tail data structure that is outside of the user visible data. Both these structures have signatures. The ASSERT you are seeing is a bad signature in the header so that looks like a buffer underflow. It could also be a use after free bug.
Head: POOL_HEAD Buffer: User Data Tail: POOL_TAIL Given the checks only happen on Free it is possible it could be a buffer overflow on a buffer that has not yet been freed that runs into this buffer. If you have a debugger dumping the memory before and after the buffer can some times be useful. The pattern might give you some clues. Thanks, Andrew Fish > On May 23, 2017, at 10:16 PM, Karunakar P <karunak...@amiindia.co.in> wrote: > > Hello All, > > The ASSERT happens in the following function > > /** > Internal function to free a pool entry. > Caller must have the memory lock held > > @param Buffer The allocated pool entry to free > @param PoolType Pointer to pool type > > @retval EFI_INVALID_PARAMETER Buffer not valid > @retval EFI_SUCCESS Buffer successfully freed. > > **/ > EFI_STATUS > CoreFreePoolI ( > IN VOID *Buffer, > OUT EFI_MEMORY_TYPE *PoolType OPTIONAL > ) > { > . > . > ASSERT(Buffer != NULL); > // > // Get the head & tail of the pool entry > // > Head = CR (Buffer, POOL_HEAD, Data, POOL_HEAD_SIGNATURE); // ASSERT > happens here > ASSERT(Head != NULL); > . > . > } > > We are using NetworkPkg: SHA- ef810bc807188224a752ffbcf5e7f4b651291cee > > I think here I'm unable attach the files. > You can find the attached screenshots in the following Bug571 > https://bugzilla.tianocore.org/show_bug.cgi?id=571 > > Thanks, > Karunakar > > > -----Original Message----- > From: Ye, Ting [mailto:ting...@intel.com] > Sent: Wednesday, May 24, 2017 10:29 AM > To: Karunakar P; edk2-devel@lists.01.org > Subject: RE: Pressing ESC from "PXE windows Boot manager" causes ASSERT > > Hi Karunakar, > > Sorry I did not find your attached files. Would you please send them again? > Besides that, do you mind telling us which code base are you using for PXE > boot? Are you using some revision of EDKII main trunk or UDK release? > > Thanks, > Ting > > -----Original Message----- > From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of > Karunakar P > Sent: Wednesday, May 24, 2017 12:20 PM > To: edk2-devel@lists.01.org > Subject: [edk2] Pressing ESC from "PXE windows Boot manager" causes ASSERT > > Hi All, > > We have facing an issue with PXE boot. > [Issue] > When ESC is pressed from Windows Boot manager during PXE boot (IPv4 or IPv6) > system Hangs with following ASSERT > > ASSERT [DxeCore] \MdeModulePkg\Core\Dxe\Mem\Pool.c : CR has Bad Signature > > [Reproduction Steps] > 1. Perform UEFI PXEv4 or UEFI PXEv6 boot 2. It will start PXE boot over > IPv4/6 and Downloads NBP file successfully. > Attached the Screenshot for the same(ScreenShot1.jpg) > > It will Displays the info like "Press ENTER for network boot service" > Attached Screensho(ScreenShot2.jpg) > > 3. Press ENTER and then press ESC immediately to see the Windows Boot Manager > Menu > It will list the available Operating Systems > Attached the screenshot(ScreenShot3.png) > > 4. Press ESC to come back to Setup or next Boot option > > [Result] > System hangs with ASSERT > > [Expected Result] > On pressing ESC from Windows Boot Manager, it should come back to setup/Next > boot option in boot order > > Note: > We have PXE server configured in Windows Server 2012 R2. > > Please look into it. > > > Thanks, > karunakar > _______________________________________________ > 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 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel