The Driver Binding Protocol Stop() function for the UndiRuntimeDxe is 
performing actions in the incorrect order.  The call to 
UninstallMultipleProtocolInterfaces() removes all the protocols from the child 
handle, which means ChildHandleBuffer[Index] is no longer valid.  After the 
call to UninstallMultipleProtocolInterfaces(), ChildHandleBuffer[Index] is used 
again in a call to CloseProtocol().  The handle is not valid, so 
CloseProtocol() returns an error and generates an ASSERT().



This patch changes the order to call CloseProtocol() before calling 
UninstallMultipleProtocolInterfaces().



Contributed-under: TianoCore Contribution Agreement 1.0

Signed-off-by: Michael Kinney 
<michael.d.kin...@intel.com<mailto:michael.d.kin...@intel.com>>



Attachment: Init.c.patch
Description: Init.c.patch

------------------------------------------------------------------------------
Don't let slow site performance ruin your business. Deploy New Relic APM
Deploy New Relic app performance management and know exactly
what is happening inside your Ruby, Python, PHP, Java, and .NET app
Try New Relic at no cost today and get our sweet Data Nerd shirt too!
http://p.sf.net/sfu/newrelic-dev2dev
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to