Fix a potential crash due to unbound array access
It was reported that, there is an inaccurate check in host_pdr_handler
code that could lead to an unbound access of an array resulting in pldm
crash. This commit aims at fixing it.
Resolves openbmc/pldm/#36
Change-Id: I1bba25f5b1cad55a30ce956f83b8c15b93149219
Signed-off-by: Manojkiran Eda <manojkiran.eda@gmail.com>
diff --git a/host-bmc/host_pdr_handler.cpp b/host-bmc/host_pdr_handler.cpp
index 72f2478..ea55262 100644
--- a/host-bmc/host_pdr_handler.cpp
+++ b/host-bmc/host_pdr_handler.cpp
@@ -880,7 +880,8 @@
}
}
- if (sensorOffset > compositeSensorStates.size())
+ if ((compositeSensorStates.size() > 1) &&
+ (sensorOffset > (compositeSensorStates.size() - 1)))
{
error("Error Invalid data, Invalid sensor offset");
return;