api: Translate -EBADMSG as PLDM_ERROR_INVALID_DATA

For some historical reason it was previously mapped to
PLDM_ERROR_INVALID_LENGTH. -EBADMSG typically means the provided
information is inconsistent in some way rather than improperly bounded,
so fix that now.

Change-Id: Ie0fe2c6f9742387f951d5abe81f12f9f7b7aff24
Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au>
diff --git a/CHANGELOG.md b/CHANGELOG.md
index daf383f..01f67e7 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -40,6 +40,19 @@
 
   The change removes redundant APIs in the process.
 
+- Returned error values for the following stable APIs have changed their
+  semantics:
+
+  - `decode_event_message_buffer_size_resp()`
+  - `decode_get_numeric_effecter_value_resp()`
+  - `decode_get_sensor_reading_resp()`
+  - `decode_get_state_sensor_readings_resp()`
+  - `decode_numeric_sensor_data()`
+  - `decode_sensor_op_data()`
+
+  No new error values will be returned, but existing error values may be
+  returned under new conditions.
+
 ### Deprecated
 
 ### Removed
diff --git a/src/api.h b/src/api.h
index f99f3ed..643fbff 100644
--- a/src/api.h
+++ b/src/api.h
@@ -27,12 +27,12 @@
 	assert(err < 0);
 	switch (err) {
 	case -EINVAL:
+	case -EBADMSG:
 		rc = PLDM_ERROR_INVALID_DATA;
 		break;
 	case -ENOMSG:
 		rc = PLDM_ERROR_INVALID_PLDM_TYPE;
 		break;
-	case -EBADMSG:
 	case -EOVERFLOW:
 		rc = PLDM_ERROR_INVALID_LENGTH;
 		break;
diff --git a/tests/dsp/platform.cpp b/tests/dsp/platform.cpp
index d2f7eba..387e70a 100644
--- a/tests/dsp/platform.cpp
+++ b/tests/dsp/platform.cpp
@@ -1095,7 +1095,7 @@
         response, responseMsg.size() - hdrSize, &retcompletion_code,
         &retcomp_sensorCnt, retstateField.data());
 
-    EXPECT_EQ(rc, PLDM_ERROR_INVALID_LENGTH);
+    EXPECT_EQ(rc, PLDM_ERROR_INVALID_DATA);
 }
 
 TEST(GetStateSensorReadings, testGoodEncodeRequest)
@@ -1272,7 +1272,7 @@
 
     rc = decode_event_message_buffer_size_resp(
         response, responseMsg.size(), &retCompletionCode, &retMaxBufferSize);
-    EXPECT_EQ(rc, PLDM_ERROR_INVALID_LENGTH);
+    EXPECT_EQ(rc, PLDM_ERROR_INVALID_DATA);
 }
 
 TEST(PlatformEventMessageSupported, testGoodEncodeRequest)
@@ -2759,7 +2759,7 @@
     rc = decode_sensor_op_data(reinterpret_cast<uint8_t*>(sensorData.data()),
                                sensorDataLength + 1, &presentOpState,
                                &previousOpState);
-    EXPECT_EQ(rc, PLDM_ERROR_INVALID_LENGTH);
+    EXPECT_EQ(rc, PLDM_ERROR_INVALID_DATA);
 
     // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast)
     rc = decode_sensor_op_data(reinterpret_cast<uint8_t*>(sensorData.data()),
@@ -2898,7 +2898,7 @@
         // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast)
         reinterpret_cast<uint8_t*>(sensorData.data()), sensorDataLength - 1,
         &eventState, &previousEventState, &sensorDataSize, &presentReading);
-    EXPECT_EQ(rc, PLDM_ERROR_INVALID_LENGTH);
+    EXPECT_EQ(rc, PLDM_ERROR_INVALID_DATA);
 
     struct pldm_sensor_event_numeric_sensor_state* numericSensorData =
         (struct pldm_sensor_event_numeric_sensor_state*)sensorData.data();
@@ -2907,14 +2907,14 @@
         // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast)
         reinterpret_cast<uint8_t*>(sensorData.data()), sensorDataLength,
         &eventState, &previousEventState, &sensorDataSize, &presentReading);
-    EXPECT_EQ(rc, PLDM_ERROR_INVALID_LENGTH);
+    EXPECT_EQ(rc, PLDM_ERROR_INVALID_DATA);
 
     numericSensorData->sensor_data_size = PLDM_SENSOR_DATA_SIZE_UINT16;
     rc = decode_numeric_sensor_data(
         // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast)
         reinterpret_cast<uint8_t*>(sensorData.data()), sensorDataLength,
         &eventState, &previousEventState, &sensorDataSize, &presentReading);
-    EXPECT_EQ(rc, PLDM_ERROR_INVALID_LENGTH);
+    EXPECT_EQ(rc, PLDM_ERROR_INVALID_DATA);
 }
 
 TEST(GetNumericEffecterValue, testGoodEncodeRequest)
@@ -3176,7 +3176,7 @@
         &reteffecter_dataSize, &reteffecter_operState, retpendingValue,
         retpresentValue);
 
-    EXPECT_EQ(rc, PLDM_ERROR_INVALID_LENGTH);
+    EXPECT_EQ(rc, PLDM_ERROR_INVALID_DATA);
 }
 
 TEST(PldmPDRRepositoryChgEventEvent, testGoodDecodeRequest)
@@ -3582,7 +3582,7 @@
         // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast)
         &retevent_state, reinterpret_cast<uint8_t*>(&retpresentReading));
 
-    EXPECT_EQ(rc, PLDM_ERROR_INVALID_LENGTH);
+    EXPECT_EQ(rc, PLDM_ERROR_INVALID_DATA);
 }
 
 TEST(SetEventReceiver, testGoodEncodeRequest)