mirror of https://github.com/acidanthera/audk.git
BaseTools/DevicePath: Add a checking step
Add a checking step in DevicePathUtilities.c to verify DevicePath. https://bugzilla.tianocore.org/show_bug.cgi?id=1372 v2: Remove ASSERT() and the redundant checking step. Update related description. Cc: Bob Feng <bob.c.feng@intel.com> Cc: Liming Gao <liming.gao@intel.com> Cc: Yonghong Zhu <yonghong.zhu@intel.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Shenglei Zhang <shenglei.zhang@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
This commit is contained in:
parent
fd02394228
commit
ca67441558
|
@ -36,12 +36,13 @@ CONST EFI_DEVICE_PATH_PROTOCOL mUefiDevicePathLibEndDevicePath = {
|
|||
|
||||
/**
|
||||
Determine whether a given device path is valid.
|
||||
If DevicePath is NULL, then ASSERT().
|
||||
|
||||
@param DevicePath A pointer to a device path data structure.
|
||||
@param MaxSize The maximum size of the device path data structure.
|
||||
|
||||
@retval TRUE DevicePath is valid.
|
||||
@retval FALSE DevicePath is NULL.
|
||||
@retval FALSE Maxsize is less than sizeof(EFI_DEVICE_PATH_PROTOCOL).
|
||||
@retval FALSE The length of any node node in the DevicePath is less
|
||||
than sizeof (EFI_DEVICE_PATH_PROTOCOL).
|
||||
@retval FALSE If MaxSize is not zero, the size of the DevicePath
|
||||
|
@ -59,17 +60,15 @@ IsDevicePathValid (
|
|||
UINTN Size;
|
||||
UINTN NodeLength;
|
||||
|
||||
ASSERT (DevicePath != NULL);
|
||||
//
|
||||
// Validate the input whether exists and its size big enough to touch the first node
|
||||
//
|
||||
if (DevicePath == NULL || (MaxSize > 0 && MaxSize < END_DEVICE_PATH_LENGTH)) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (MaxSize == 0) {
|
||||
MaxSize = MAX_UINT32;
|
||||
}
|
||||
|
||||
//
|
||||
// Validate the input size big enough to touch the first node.
|
||||
//
|
||||
if (MaxSize < sizeof (EFI_DEVICE_PATH_PROTOCOL)) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
for (Count = 0, Size = 0; !IsDevicePathEnd (DevicePath); DevicePath = NextDevicePathNode (DevicePath)) {
|
||||
|
|
Loading…
Reference in New Issue