efi_loader: avoid crash in OpenProtocol()
authorHeinrich Schuchardt <xypron.glpk@gmx.de>
Thu, 30 May 2019 12:16:31 +0000 (14:16 +0200)
committerHeinrich Schuchardt <xypron.glpk@gmx.de>
Fri, 31 May 2019 21:27:12 +0000 (23:27 +0200)
commitdae7ce451c5eaaae98014a4062950cd646f78c2d
treebef9ee3104e539a4fc3c3f95fa9b6efa7dfa810d
parent399a39e34af00e7342406405dc0300da0557277b
efi_loader: avoid crash in OpenProtocol()

When trying to open a protocol exclusively attached drivers have to be
removed. This removes entries in the open protocol information linked list
over which we are looping. As additionally child controllers may have been
removed the only safe thing to do is to restart the loop over the linked
list when a driver is removed.

By observing the return code of DisconnectController() we can eliminate a
loop.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
lib/efi_loader/efi_boottime.c