platform-mc: Fix missing returns from sensor creation Currently when an error occurs during numeric sensor addition, the code calls addNextSensorFromPDRs() to schedule the next item but doesn't return from the function. This may lead to undesired behavior: the function invokes addNextSensorFromPDRs() for the second time, incrementing the iterator again, so some sensors may be skipped. Add the missing returns to terminate execution after advancing the iterator. Change-Id: I0a2ebbf58ea14e01b766b3dca0dd73a9351c7f4b Signed-off-by: Konstantin Aladyshev <aladyshev22@gmail.com>
diff --git a/platform-mc/terminus.cpp b/platform-mc/terminus.cpp index b536b0c..5b33349 100644 --- a/platform-mc/terminus.cpp +++ b/platform-mc/terminus.cpp
@@ -472,6 +472,7 @@ "Terminus ID {TID}: Skip adding Numeric Sensor - invalid pointer to PDR.", "TID", tid); addNextSensorFromPDRs(); + return; } auto sensorId = pdr->sensor_id; @@ -483,6 +484,7 @@ "Terminus ID {TID}: Failed to get name for Numeric Sensor {SID}", "TID", tid, "SID", sensorId); addNextSensorFromPDRs(); + return; } std::string sensorName = sensorNames.front(); @@ -578,6 +580,7 @@ "Terminus ID {TID}: Skip adding Compact Numeric Sensor - invalid pointer to PDR.", "TID", tid); addNextSensorFromPDRs(); + return; } auto sensorId = pdr->sensor_id; @@ -589,6 +592,7 @@ "Terminus ID {TID}: Failed to get name for Compact Numeric Sensor {SID}", "TID", tid, "SID", sensorId); addNextSensorFromPDRs(); + return; } std::string sensorName = sensorNames.front();