diff options
| author | Miguel Ojeda <ojeda@kernel.org> | 2026-07-11 20:02:31 +0200 |
|---|---|---|
| committer | Danilo Krummrich <dakr@kernel.org> | 2026-07-17 15:44:44 +0200 |
| commit | 3fadfb9362cf1b7d0a775f406f011d78800d6054 (patch) | |
| tree | d760346ac3185e91b5dd8798df6c5eaf9ec7c2cf /rust/kernel/firmware.rs | |
| parent | 2b74f1f2024486c7a81915528b6aa7f8f5daa021 (diff) | |
| download | linux-next-3fadfb9362cf1b7d0a775f406f011d78800d6054.tar.gz linux-next-3fadfb9362cf1b7d0a775f406f011d78800d6054.zip | |
rust: firmware: avoid UB in example by passing parameter
The `Firmware` example crafts an `ARef<Device>` using a null pointer,
which breaks the safety requirements of `Device::get_device()`.
Instead, pass an `ARef` via a parameter, which is simpler, avoids UB
and removes an `unsafe` block.
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
Reviewed-by: Alexandre Courbot <acourbot@nvidia.com>
Reviewed-by: Gary Guo <gary@garyguo.net>
Link: https://patch.msgid.link/20260711180231.229525-1-ojeda@kernel.org
[ Also drop the second superfluous empty line. - Danilo ]
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
Diffstat (limited to 'rust/kernel/firmware.rs')
| -rw-r--r-- | rust/kernel/firmware.rs | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/rust/kernel/firmware.rs b/rust/kernel/firmware.rs index 71168d8004e2..1e3dd2e3422d 100644 --- a/rust/kernel/firmware.rs +++ b/rust/kernel/firmware.rs @@ -51,12 +51,8 @@ impl FwFunc { /// # Examples /// /// ```no_run -/// # use kernel::{device::Device, firmware::Firmware}; -/// -/// # fn no_run() -> Result<(), Error> { -/// # // SAFETY: *NOT* safe, just for the example to get an `ARef<Device>` instance -/// # let dev = unsafe { Device::get_device(core::ptr::null_mut()) }; -/// +/// # use kernel::{device::Device, firmware::Firmware, sync::aref::ARef}; +/// # fn no_run(dev: ARef<Device>) -> Result<(), Error> { /// let fw = Firmware::request(c"path/to/firmware.bin", &dev)?; /// let blob = fw.data(); /// |
