mirror of https://github.com/ipxe/ipxe.git
The executed image may call DisconnectController() to remove our network device. This will leave the net device unregistered but not yet freed (since our installed PXE base code protocol retains a reference to the net device). Unregistration will cause the network upper-layer driver removal functions to be called, which will free the SNP device structure. When the image returns from StartImage(), the snpdev pointer may therefore no longer be valid. The SNP device structure is not reference counted, and so we cannot simply take out a reference to ensure that it remains valid across the call to StartImage(). However, the code path following the call to StartImage() doesn't actually require the SNP device pointer, only the EFI device handle. Store the device handle in a local variable and ensure that snpdev is invalidated before the call to StartImage() so that future code cannot accidentally reintroduce this issue. Signed-off-by: Michael Brown <mcb30@ipxe.org> |
||
---|---|---|
.github/workflows | ||
contrib | ||
src | ||
COPYING | ||
COPYING.GPLv2 | ||
COPYING.UBDL | ||
README |
README
iPXE README File Quick start guide: cd src make For any more detailed instructions, see http://ipxe.org