Add a checking step in DevicePathUtilities.c to verify DevicePath. Cc: Bob Feng <bob.c.f...@intel.com> Cc: Liming Gao <liming....@intel.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Shenglei Zhang <shenglei.zh...@intel.com> --- BaseTools/Source/C/DevicePath/DevicePathUtilities.c | 12 ++++++++++++ 1 file changed, 12 insertions(+)
diff --git a/BaseTools/Source/C/DevicePath/DevicePathUtilities.c b/BaseTools/Source/C/DevicePath/DevicePathUtilities.c index f8a41ff97d..e2efaeebf0 100644 --- a/BaseTools/Source/C/DevicePath/DevicePathUtilities.c +++ b/BaseTools/Source/C/DevicePath/DevicePathUtilities.c @@ -59,6 +59,18 @@ IsDevicePathValid ( UINTN Size; UINTN NodeLength; +/** + NULL device path is also invalid path. + + IsDevicePathValid() should return FALSE or TRUE, and not ASSERT(). + + This change needs to update IsDevicePathValid() API definition and implementation both. + +**/ + if (DevicePath == NULL || (MaxSize > 0 && MaxSize < END_DEVICE_PATH_LENGTH)) { + return FALSE; + } + ASSERT (DevicePath != NULL); if (MaxSize == 0) { -- 2.18.0.windows.1 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel