platform: Fix the error of calling le16toh/le32toh method
Signed-off-by: George Liu <liuxiwei@inspur.com>
Change-Id: I83d24df233c2f69d412a3aa7530fb533d96c65d7
diff --git a/libpldm/platform.c b/libpldm/platform.c
index 2ec8931..4c74b9b 100644
--- a/libpldm/platform.c
+++ b/libpldm/platform.c
@@ -307,7 +307,8 @@
}
memcpy(effecter_value, request->effecter_value, 2);
- *effecter_value = le16toh(*effecter_value);
+ uint16_t *val = (uint16_t *)(effecter_value);
+ *val = le16toh(*val);
}
if (*effecter_data_size == PLDM_EFFECTER_DATA_SIZE_UINT32 ||
@@ -319,6 +320,8 @@
}
memcpy(effecter_value, request->effecter_value, 4);
+ uint32_t *val = (uint32_t *)(effecter_value);
+ *val = le32toh(*val);
}
return PLDM_SUCCESS;
diff --git a/libpldm/tests/libpldm_platform_test.cpp b/libpldm/tests/libpldm_platform_test.cpp
index aa45c35..9e790c2 100644
--- a/libpldm/tests/libpldm_platform_test.cpp
+++ b/libpldm/tests/libpldm_platform_test.cpp
@@ -410,7 +410,7 @@
req, requestMsg.size() - hdrSize, &reteffecter_id,
&reteffecter_data_size, reteffecter_value);
- uint32_t value = le32toh(*(reinterpret_cast<uint32_t*>(reteffecter_value)));
+ uint32_t value = *(reinterpret_cast<uint32_t*>(reteffecter_value));
EXPECT_EQ(rc, PLDM_SUCCESS);
EXPECT_EQ(reteffecter_id, effecter_id);
EXPECT_EQ(reteffecter_data_size, effecter_data_size);