Ray,
I totally agree about the fact the ASSERT() will detect the corrupted Device 
Path when the ASSERT is enabled.
But today or with your patch a corrupted EFI Device Path might make hung a UEFI 
Firmware ...
Thanks,
Olivier
________________________________________
From: Ni, Ruiyu [[email protected]]
Sent: 18 July 2012 11:35
To: [email protected]
Cc: 'Tim Lewis'
Subject: Re: [edk2] MdePkg/UefiDevicePathLib: Potential lock in the     loop    
to      go      to the end of a EFI Device Path

Olivier,
The reason of the hang can easily be seen due to the ASSERT(). And I intended 
to only do the check in DEBUG mode because the PCD for count of device path 
node in a device path is hard to define.
The 3rd party UEFI OpROMs can create their own device path. Spec doesn't 
restrict the device path node count.

Thanks,
Ray

-----Original Message-----
From: Olivier Martin [mailto:[email protected]]
Sent: Thursday, July 12, 2012 5:41 PM
To: [email protected]
Cc: 'Tim Lewis'
Subject: Re: [edk2] MdePkg/UefiDevicePathLib: Potential lock in the loop to go 
to the end of a EFI Device Path

Sorry Ray, I missed your email.
The issue with your patch is you do not handle the error in your code. You only 
have 'ASSERT()'. It means if the DevicePath is corrupted your platform still 
hang (in this case due to the ASSERT()).
And if you have disabled ASSERT() macro in your DSC file it will still lock.

Olivier

-----Original Message-----
From: Ni, Ruiyu [mailto:[email protected]]
Sent: 05 July 2012 04:06
To: [email protected]
Cc: 'Tim Lewis'
Subject: Re: [edk2] MdePkg/UefiDevicePathLib: Potential lock in the loop to go 
to the end of a EFI Device Path

Olivier,
I read your patch and comes with a refined one. Could you please check whether 
it meets your needs?
The patch aligns to the current checking pattern in LinkedList.c and it only 
does the check in DEBUG mode as well.

Thanks,
Ray

-----Original Message-----
From: Olivier Martin [mailto:[email protected]]
Sent: Thursday, July 05, 2012 2:22 AM
To: [email protected]
Cc: 'Tim Lewis'
Subject: Re: [edk2] MdePkg/UefiDevicePathLib: Potential lock in the loop to go 
to the end of a EFI Device Path

Ray,
Please find the patch I submitted in a different thread of the EDK2 development 
mailing-list.
Regards,
Olivier


-----Original Message-----
From: Ni, Ruiyu [mailto:[email protected]]
Sent: 21 June 2012 02:32
To: [email protected]
Subject: Re: [edk2] MdePkg/UefiDevicePathLib: Potential lock in the loop to go 
to the end of a EFI Device Path

Olivier,
I agree with your concern. Do you have any suggestion?

Thanks,
Ray

-----Original Message-----
From: Olivier Martin [mailto:[email protected]]
Sent: Wednesday, June 20, 2012 10:03 PM
To: [email protected]
Subject: [edk2] MdePkg/UefiDevicePathLib: Potential lock in the loop to go to 
the end of a EFI Device Path

Hello,

The loop is this one:

Start = DevicePath;
while (!IsDevicePathEnd (DevicePath)) {
  DevicePath = NextDevicePathNode (DevicePath); }

This loop exists in different forms in these functions:
GetNextDevicePathInstance (), GetDevicePathSize (), IsDevicePathMultiInstance 
().

For some reasons, my EFI environment variables have been corrupted. And the 
Device Path attached to one of the variables did not make sense anymore.
One of the functions above was scanning for the end of the Device Path
(type: END_DEVICE_PATH_TYPE). Unfortunately, the corrupted EFI Device Path Node 
has the length '0'. So the function NextDevicePathNode() always returns the 
same Node (and locked the UEFI firmware).

How should we fix the manipulation of a corrupted Device Path Node ? Should we 
introduce a function to check the validity of Device Path (eg: by checking the 
length of a Device Path is valid against a maximum size) ? Or should we modify 
the loops above to avoid a lock ?

Regards,
Olivier




----------------------------------------------------------------------------
--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and threat 
landscape has changed and how IT managers can respond. Discussions will include 
endpoint security, mobile security and the latest in malware threats. 
http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-devel

----------------------------------------------------------------------------
--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and threat 
landscape has changed and how IT managers can respond. Discussions will include 
endpoint security, mobile security and the latest in malware threats. 
http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-devel




------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and threat 
landscape has changed and how IT managers can respond. Discussions will include 
endpoint security, mobile security and the latest in malware threats. 
http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-devel

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security, mobile security and the latest in malware
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-devel


-- IMPORTANT NOTICE: The contents of this email and any attachments are 
confidential and may also be privileged. If you are not the intended recipient, 
please notify the sender immediately and do not disclose the contents to any 
other person, use it for any purpose, or store or copy the information in any 
medium.  Thank you.


------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to