diff --git a/libpldm/platform.c b/libpldm/platform.c
index 399f2ff..43025ae 100644
--- a/libpldm/platform.c
+++ b/libpldm/platform.c
@@ -395,8 +395,10 @@
 			return PLDM_ERROR_INVALID_LENGTH;
 		}
 
-		memcpy(request->effecter_value, effecter_value, 2);
-		*request->effecter_value = htole16(*request->effecter_value);
+		uint16_t val = *(uint16_t *)(effecter_value);
+		val = htole16(val);
+		memcpy(request->effecter_value, &val, sizeof(uint16_t));
+
 	} else if (effecter_data_size == PLDM_EFFECTER_DATA_SIZE_UINT32 ||
 		   effecter_data_size == PLDM_EFFECTER_DATA_SIZE_SINT32) {
 		if (payload_length !=
@@ -404,8 +406,9 @@
 			return PLDM_ERROR_INVALID_LENGTH;
 		}
 
-		memcpy(request->effecter_value, effecter_value, 4);
-		*request->effecter_value = htole32(*request->effecter_value);
+		uint32_t val = *(uint32_t *)(effecter_value);
+		val = htole32(val);
+		memcpy(request->effecter_value, &val, sizeof(uint32_t));
 	}
 
 	request->effecter_id = htole16(effecter_id);
diff --git a/libpldm/tests/libpldm_platform_test.cpp b/libpldm/tests/libpldm_platform_test.cpp
index 5e21e48..54daa33 100644
--- a/libpldm/tests/libpldm_platform_test.cpp
+++ b/libpldm/tests/libpldm_platform_test.cpp
@@ -452,17 +452,17 @@
 TEST(SetNumericEffecterValue, testGoodEncodeRequest)
 {
     uint16_t effecter_id = 0;
-    uint8_t effecter_data_size = PLDM_EFFECTER_DATA_SIZE_UINT8;
-    uint8_t effecter_value = 1;
+    uint8_t effecter_data_size = PLDM_EFFECTER_DATA_SIZE_UINT16;
+    uint16_t effecter_value = 65534;
 
     std::vector<uint8_t> requestMsg(
-        hdrSize + PLDM_SET_NUMERIC_EFFECTER_VALUE_MIN_REQ_BYTES);
+        hdrSize + PLDM_SET_NUMERIC_EFFECTER_VALUE_MIN_REQ_BYTES + 1);
     auto request = reinterpret_cast<pldm_msg*>(requestMsg.data());
 
     auto rc = encode_set_numeric_effecter_value_req(
         0, effecter_id, effecter_data_size,
         reinterpret_cast<uint8_t*>(&effecter_value), request,
-        PLDM_SET_NUMERIC_EFFECTER_VALUE_MIN_REQ_BYTES);
+        PLDM_SET_NUMERIC_EFFECTER_VALUE_MIN_REQ_BYTES + 1);
     EXPECT_EQ(rc, PLDM_SUCCESS);
 
     struct pldm_set_numeric_effecter_value_req* req =
@@ -470,8 +470,9 @@
             request->payload);
     EXPECT_EQ(effecter_id, req->effecter_id);
     EXPECT_EQ(effecter_data_size, req->effecter_data_size);
-    EXPECT_EQ(effecter_value,
-              *(reinterpret_cast<uint8_t*>(&req->effecter_value[0])));
+    uint16_t* val = (uint16_t*)req->effecter_value;
+    *val = le16toh(*val);
+    EXPECT_EQ(effecter_value, *val);
 }
 
 TEST(SetNumericEffecterValue, testBadEncodeRequest)
