1
0
mirror of https://github.com/bitwarden/browser synced 2026-02-21 20:04:02 +00:00

Reduce unsafe scope

This commit is contained in:
Isaiah Inuwa
2026-02-19 07:48:06 -06:00
parent f8a9b5781c
commit b8564facab

View File

@@ -39,10 +39,10 @@ pub(super) fn get_operation_signing_public_key(
clsid: &GUID,
) -> Result<SigningKey, WinWebAuthnError> {
let mut len = 0;
let mut data = MaybeUninit::uninit();
unsafe {
let mut uninit = MaybeUninit::uninit();
let data = unsafe {
// SAFETY: We check the OS error code before using the written pointer.
webauthn_plugin_get_operation_signing_public_key(clsid, &mut len, data.as_mut_ptr())?
webauthn_plugin_get_operation_signing_public_key(clsid, &mut len, uninit.as_mut_ptr())?
.ok()
.map_err(|err| {
WinWebAuthnError::with_cause(
@@ -51,16 +51,18 @@ pub(super) fn get_operation_signing_public_key(
err,
)
})?;
match NonNull::new(data.assume_init()) {
Some(data) => Ok(SigningKey {
cbPublicKey: len,
pbPublicKey: data,
}),
None => Err(WinWebAuthnError::new(
ErrorKind::WindowsInternal,
"Windows returned null pointer when requesting operation signing public key",
)),
}
uninit.assume_init()
};
match NonNull::new(data) {
Some(data) => Ok(SigningKey {
cbPublicKey: len,
pbPublicKey: data,
}),
None => Err(WinWebAuthnError::new(
ErrorKind::WindowsInternal,
"Windows returned null pointer when requesting operation signing public key",
)),
}
}