diff --git a/lib/fs.cc b/lib/fs.cc index 53a3f94..48a9c36 100644 --- a/lib/fs.cc +++ b/lib/fs.cc @@ -748,7 +748,7 @@ namespace crucible { BtrfsIoctlSearchHeader::set_data(const vector &v, size_t offset) { THROW_CHECK2(invalid_argument, offset, v.size(), offset + sizeof(btrfs_ioctl_search_header) <= v.size()); - *static_cast(this) = *reinterpret_cast(&v[offset]); + memcpy(static_cast(this), &v[offset], sizeof(btrfs_ioctl_search_header)); offset += sizeof(btrfs_ioctl_search_header); THROW_CHECK2(invalid_argument, offset + len, v.size(), offset + len <= v.size()); m_data = Spanner(&v[offset], &v[offset + len]);