diff --git a/src/control/mod.rs b/src/control/mod.rs index d9ae1c4..56dc388 100644 --- a/src/control/mod.rs +++ b/src/control/mod.rs @@ -534,10 +534,9 @@ pub trait Device: super::Device { } /// Create a property blob value from a given data blob - fn create_property_blob(&self, data: &T) -> io::Result> { - let data = unsafe { - std::slice::from_raw_parts_mut(data as *const _ as *mut u8, mem::size_of::()) - }; + fn create_property_blob(&self, data: &T) -> io::Result> { + let size = mem::size_of_val(data); + let data = unsafe { std::slice::from_raw_parts_mut(data as *const _ as *mut u8, size) }; let blob = ffi::mode::create_property_blob(self.as_fd(), data)?; Ok(property::Value::Blob(blob.blob_id.into()))