- metacube2_block_header *hdr = reinterpret_cast<metacube2_block_header *>(pending_data.data());
- assert(memcmp(hdr->sync, METACUBE2_SYNC, sizeof(hdr->sync)) == 0);
- uint32_t size = ntohl(hdr->size);
- uint16_t flags = ntohs(hdr->flags);
- uint16_t expected_csum = metacube2_compute_crc(hdr);
-
- if (expected_csum != ntohs(hdr->csum)) {
+ metacube2_block_header hdr;
+ memcpy(&hdr, pending_data.data(), sizeof(hdr));
+ assert(memcmp(hdr.sync, METACUBE2_SYNC, sizeof(hdr.sync)) == 0);
+ uint32_t size = ntohl(hdr.size);
+ uint16_t flags = ntohs(hdr.flags);
+ uint16_t expected_csum = metacube2_compute_crc(&hdr);
+
+ if (expected_csum != ntohs(hdr.csum)) {