cleanup: use memcpy with fixed-size structures

Use std::memcpy with fixed-size structures.

Change-Id: I569be29fc7d1dc058b67936d030afbbbbad4bd0c
Signed-off-by: Patrick Venture <venture@google.com>
diff --git a/cpld.cpp b/cpld.cpp
index 8748e78..3a65674 100644
--- a/cpld.cpp
+++ b/cpld.cpp
@@ -50,7 +50,9 @@
 ipmi_ret_t CpldVersion(const uint8_t* reqBuf, uint8_t* replyBuf,
                        size_t* dataLen)
 {
-    if ((*dataLen) < sizeof(struct CpldRequest))
+    struct CpldRequest request;
+
+    if ((*dataLen) < sizeof(request))
     {
         std::fprintf(stderr, "Invalid command length: %u\n",
                      static_cast<uint32_t>(*dataLen));
@@ -64,13 +66,10 @@
     // since I would expect int(uint8(0xff)) to be -1.  So, just cast it
     // unsigned. we're casting to an int width to avoid it thinking it's a
     // letter, because it does that.
-
-    const auto request =
-        reinterpret_cast<const struct CpldRequest*>(&reqBuf[0]);
+    std::memcpy(&request, &reqBuf[0], sizeof(request));
 
     std::ostringstream opath;
-    opath << "/run/cpld" << static_cast<unsigned int>(request->id)
-          << ".version";
+    opath << "/run/cpld" << static_cast<unsigned int>(request.id) << ".version";
     // Check for file
 
     std::error_code ec;
@@ -118,8 +117,8 @@
     reply.point = static_cast<uint8_t>(point);
     reply.subpoint = static_cast<uint8_t>(subpoint);
 
-    std::memcpy(&replyBuf[0], &reply, sizeof(struct CpldReply));
-    (*dataLen) = sizeof(struct CpldReply);
+    std::memcpy(&replyBuf[0], &reply, sizeof(reply));
+    (*dataLen) = sizeof(reply);
 
     return IPMI_CC_OK;
 }
diff --git a/psu.cpp b/psu.cpp
index 46e097a..1e46adc 100644
--- a/psu.cpp
+++ b/psu.cpp
@@ -47,14 +47,15 @@
 ipmi_ret_t PsuHardReset(const uint8_t* reqBuf, uint8_t* replyBuf,
                         size_t* dataLen)
 {
-    if ((*dataLen) < sizeof(struct PsuResetRequest))
+    struct PsuResetRequest request;
+
+    if ((*dataLen) < sizeof(request))
     {
         std::fprintf(stderr, "Invalid command length: %u\n",
                      static_cast<uint32_t>(*dataLen));
         return IPMI_CC_INVALID;
     }
 
-    struct PsuResetRequest request;
     std::memcpy(&request, &reqBuf[0], sizeof(struct PsuResetRequest));
 
     std::ofstream ofs;