diff --git a/lib/fs.cc b/lib/fs.cc index 11be3e5..d5f0b98 100644 --- a/lib/fs.cc +++ b/lib/fs.cc @@ -701,7 +701,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()); - memcpy(this, &v[offset], sizeof(btrfs_ioctl_search_header)); + *static_cast(this) = *reinterpret_cast(&v[offset]); offset += sizeof(btrfs_ioctl_search_header); THROW_CHECK2(invalid_argument, offset + len, v.size(), offset + len <= v.size()); m_data = vector(&v[offset], &v[offset + len]);