Skip to content

Commit 9843f03

Browse files
Rust wrapper: avoid creating a MaybeUninit<RNG>
Fix F-1067
1 parent a8fa845 commit 9843f03

1 file changed

Lines changed: 8 additions & 6 deletions

File tree

wrapper/rust/wolfssl-wolfcrypt/src/random.rs

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ impl RNG {
9696
return Err(rc);
9797
}
9898
}
99-
let mut rng: MaybeUninit<RNG> = MaybeUninit::uninit();
99+
let mut wc_rng: MaybeUninit<sys::WC_RNG> = MaybeUninit::uninit();
100100
let heap = match heap {
101101
Some(heap) => heap,
102102
None => core::ptr::null_mut(),
@@ -106,10 +106,11 @@ impl RNG {
106106
None => sys::INVALID_DEVID,
107107
};
108108
let rc = unsafe {
109-
sys::wc_InitRng_ex(&mut (*rng.as_mut_ptr()).wc_rng, heap, dev_id)
109+
sys::wc_InitRng_ex(wc_rng.as_mut_ptr(), heap, dev_id)
110110
};
111111
if rc == 0 {
112-
let rng = unsafe { rng.assume_init() };
112+
let wc_rng = unsafe { wc_rng.assume_init() };
113+
let rng = RNG {wc_rng};
113114
Ok(rng)
114115
} else {
115116
Err(rc)
@@ -157,7 +158,7 @@ impl RNG {
157158
}
158159
let ptr = nonce.as_mut_ptr() as *mut u8;
159160
let size: u32 = size_of_val(nonce) as u32;
160-
let mut rng: MaybeUninit<RNG> = MaybeUninit::uninit();
161+
let mut wc_rng: MaybeUninit<sys::WC_RNG> = MaybeUninit::uninit();
161162
let heap = match heap {
162163
Some(heap) => heap,
163164
None => core::ptr::null_mut(),
@@ -167,10 +168,11 @@ impl RNG {
167168
None => sys::INVALID_DEVID,
168169
};
169170
let rc = unsafe {
170-
sys::wc_InitRngNonce_ex(&mut (*rng.as_mut_ptr()).wc_rng, ptr, size, heap, dev_id)
171+
sys::wc_InitRngNonce_ex(wc_rng.as_mut_ptr(), ptr, size, heap, dev_id)
171172
};
172173
if rc == 0 {
173-
let rng = unsafe { rng.assume_init() };
174+
let wc_rng = unsafe { wc_rng.assume_init() };
175+
let rng = RNG {wc_rng};
174176
Ok(rng)
175177
} else {
176178
Err(rc)

0 commit comments

Comments
 (0)