diff --git a/test/ipmi_commit_unittest.cpp b/test/ipmi_commit_unittest.cpp
index 37ec769..d4b9c58 100644
--- a/test/ipmi_commit_unittest.cpp
+++ b/test/ipmi_commit_unittest.cpp
@@ -100,7 +100,7 @@
     req->crc = 0;
     req->sessionId = 0x54;
     req->commitDataLen = sizeof(expectedBlob);
-    std::memcpy(req->commitData, &expectedBlob[0], sizeof(expectedBlob));
+    std::memcpy(req + 1, &expectedBlob[0], sizeof(expectedBlob));
 
     dataLen = sizeof(struct BmcBlobCommitTx) + sizeof(expectedBlob);
 
diff --git a/test/ipmi_delete_unittest.cpp b/test/ipmi_delete_unittest.cpp
index afd3968..777e417 100644
--- a/test/ipmi_delete_unittest.cpp
+++ b/test/ipmi_delete_unittest.cpp
@@ -32,7 +32,7 @@
     req->cmd = static_cast<std::uint8_t>(BlobOEMCommands::bmcBlobDelete);
     req->crc = 0;
     // length() doesn't include the nul-terminator.
-    std::memcpy(req->blobId, blobId.c_str(), blobId.length());
+    std::memcpy(req + 1, blobId.c_str(), blobId.length());
 
     dataLen = sizeof(struct BmcBlobDeleteTx) + blobId.length();
 
@@ -55,7 +55,7 @@
     req->crc = 0;
     // length() doesn't include the nul-terminator, request buff is initialized
     // to 0s
-    std::memcpy(req->blobId, blobId.c_str(), blobId.length());
+    std::memcpy(req + 1, blobId.c_str(), blobId.length());
 
     dataLen = sizeof(struct BmcBlobDeleteTx) + blobId.length() + 1;
 
@@ -80,7 +80,7 @@
     req->crc = 0;
     // length() doesn't include the nul-terminator, request buff is initialized
     // to 0s
-    std::memcpy(req->blobId, blobId.c_str(), blobId.length());
+    std::memcpy(req + 1, blobId.c_str(), blobId.length());
 
     dataLen = sizeof(struct BmcBlobDeleteTx) + blobId.length() + 1;
 
diff --git a/test/ipmi_enumerate_unittest.cpp b/test/ipmi_enumerate_unittest.cpp
index 1474384..edea82b 100644
--- a/test/ipmi_enumerate_unittest.cpp
+++ b/test/ipmi_enumerate_unittest.cpp
@@ -61,6 +61,6 @@
     EXPECT_EQ(blobId.length() + 1 + sizeof(uint16_t), dataLen);
 
     rep = reinterpret_cast<struct BmcBlobEnumerateRx*>(reply);
-    EXPECT_EQ(0, std::memcmp(rep->blobId, blobId.c_str(), blobId.length() + 1));
+    EXPECT_EQ(0, std::memcmp(rep + 1, blobId.c_str(), blobId.length() + 1));
 }
 } // namespace blobs
diff --git a/test/ipmi_open_unittest.cpp b/test/ipmi_open_unittest.cpp
index 8232340..5b18631 100644
--- a/test/ipmi_open_unittest.cpp
+++ b/test/ipmi_open_unittest.cpp
@@ -35,7 +35,7 @@
     req->crc = 0;
     req->flags = 0;
     // length() doesn't include the nul-terminator.
-    std::memcpy(req->blobId, blobId.c_str(), blobId.length());
+    std::memcpy(req + 1, blobId.c_str(), blobId.length());
 
     dataLen = sizeof(struct BmcBlobOpenTx) + blobId.length();
 
@@ -59,7 +59,7 @@
     req->flags = 0;
     // length() doesn't include the nul-terminator, request buff is initialized
     // to 0s
-    std::memcpy(req->blobId, blobId.c_str(), blobId.length());
+    std::memcpy(req + 1, blobId.c_str(), blobId.length());
 
     dataLen = sizeof(struct BmcBlobOpenTx) + blobId.length() + 1;
 
@@ -87,7 +87,7 @@
     req->flags = 0;
     // length() doesn't include the nul-terminator, request buff is initialized
     // to 0s
-    std::memcpy(req->blobId, blobId.c_str(), blobId.length());
+    std::memcpy(req + 1, blobId.c_str(), blobId.length());
 
     dataLen = sizeof(struct BmcBlobOpenTx) + blobId.length() + 1;
     uint16_t returnedSession = 0x54;
diff --git a/test/ipmi_stat_unittest.cpp b/test/ipmi_stat_unittest.cpp
index 083a980..6d4d7b2 100644
--- a/test/ipmi_stat_unittest.cpp
+++ b/test/ipmi_stat_unittest.cpp
@@ -35,7 +35,7 @@
     req->cmd = static_cast<std::uint8_t>(BlobOEMCommands::bmcBlobStat);
     req->crc = 0;
     // length() doesn't include the nul-terminator.
-    std::memcpy(req->blobId, blobId.c_str(), blobId.length());
+    std::memcpy(req + 1, blobId.c_str(), blobId.length());
 
     dataLen = sizeof(struct BmcBlobStatTx) + blobId.length();
 
@@ -58,7 +58,7 @@
     req->crc = 0;
     // length() doesn't include the nul-terminator, request buff is initialized
     // to 0s
-    std::memcpy(req->blobId, blobId.c_str(), blobId.length());
+    std::memcpy(req + 1, blobId.c_str(), blobId.length());
 
     dataLen = sizeof(struct BmcBlobStatTx) + blobId.length() + 1;
 
@@ -85,7 +85,7 @@
     req->crc = 0;
     // length() doesn't include the nul-terminator, request buff is initialized
     // to 0s
-    std::memcpy(req->blobId, blobId.c_str(), blobId.length());
+    std::memcpy(req + 1, blobId.c_str(), blobId.length());
 
     dataLen = sizeof(struct BmcBlobStatTx) + blobId.length() + 1;
 
@@ -127,7 +127,7 @@
     req->crc = 0;
     // length() doesn't include the nul-terminator, request buff is initialized
     // to 0s
-    std::memcpy(req->blobId, blobId.c_str(), blobId.length());
+    std::memcpy(req + 1, blobId.c_str(), blobId.length());
 
     dataLen = sizeof(struct BmcBlobStatTx) + blobId.length() + 1;
 
diff --git a/test/ipmi_write_unittest.cpp b/test/ipmi_write_unittest.cpp
index b249ccc..229ebd3 100644
--- a/test/ipmi_write_unittest.cpp
+++ b/test/ipmi_write_unittest.cpp
@@ -31,7 +31,7 @@
     req->offset = 0x100;
 
     uint8_t expectedBytes[2] = {0x66, 0x67};
-    std::memcpy(req->data, &expectedBytes[0], sizeof(expectedBytes));
+    std::memcpy(req + 1, &expectedBytes[0], sizeof(expectedBytes));
 
     dataLen = sizeof(struct BmcBlobWriteTx) + sizeof(expectedBytes);
 
@@ -60,7 +60,7 @@
     req->offset = 0x100;
 
     uint8_t expectedBytes[2] = {0x66, 0x67};
-    std::memcpy(req->data, &expectedBytes[0], sizeof(expectedBytes));
+    std::memcpy(req + 1, &expectedBytes[0], sizeof(expectedBytes));
 
     dataLen = sizeof(struct BmcBlobWriteTx) + sizeof(expectedBytes);
 
diff --git a/test/ipmi_writemeta_unittest.cpp b/test/ipmi_writemeta_unittest.cpp
index d137880..dd9e742 100644
--- a/test/ipmi_writemeta_unittest.cpp
+++ b/test/ipmi_writemeta_unittest.cpp
@@ -30,7 +30,7 @@
     req->offset = 0x100;
 
     uint8_t expectedBytes[2] = {0x66, 0x67};
-    std::memcpy(req->data, &expectedBytes[0], sizeof(expectedBytes));
+    std::memcpy(req + 1, &expectedBytes[0], sizeof(expectedBytes));
 
     dataLen = sizeof(struct BmcBlobWriteMetaTx) + sizeof(expectedBytes);
 
@@ -59,7 +59,7 @@
     req->offset = 0x100;
 
     uint8_t expectedBytes[2] = {0x66, 0x67};
-    std::memcpy(req->data, &expectedBytes[0], sizeof(expectedBytes));
+    std::memcpy(req + 1, &expectedBytes[0], sizeof(expectedBytes));
 
     dataLen = sizeof(struct BmcBlobWriteMetaTx) + sizeof(expectedBytes);
 
diff --git a/test/process_unittest.cpp b/test/process_unittest.cpp
index 8c133e5..47359cc 100644
--- a/test/process_unittest.cpp
+++ b/test/process_unittest.cpp
@@ -132,7 +132,7 @@
     req->offset = 0x100;
 
     uint8_t expectedBytes[2] = {0x66, 0x67};
-    std::memcpy(req->data, &expectedBytes[0], sizeof(expectedBytes));
+    std::memcpy(req + 1, &expectedBytes[0], sizeof(expectedBytes));
 
     dataLen = sizeof(struct BmcBlobWriteTx) + sizeof(expectedBytes);
 
@@ -161,7 +161,7 @@
     req->offset = 0x100;
 
     uint8_t expectedBytes[2] = {0x66, 0x67};
-    std::memcpy(req->data, &expectedBytes[0], sizeof(expectedBytes));
+    std::memcpy(req + 1, &expectedBytes[0], sizeof(expectedBytes));
 
     dataLen = sizeof(struct BmcBlobWriteTx) + sizeof(expectedBytes);
 
