diff --git a/crates/gpui_windows/src/platform.rs b/crates/gpui_windows/src/platform.rs index d4d1f4192e7..2b7ced865a2 100644 --- a/crates/gpui_windows/src/platform.rs +++ b/crates/gpui_windows/src/platform.rs @@ -800,13 +800,13 @@ impl Platform for WindowsPlatform { match NonNull::new(credentials) { Some(credentials) => { let username = unsafe { credentials.as_ref().UserName.to_string() }; - let password: Result> = unsafe { + let password: Result> = { let size = credentials.as_ref().CredentialBlobSize as usize; match NonNull::new(credentials.as_ref().CredentialBlob) { - Some(credential_blob) => { - Ok(std::slice::from_raw_parts(credential_blob.as_ptr(), size) - .to_vec()) + Some(credential_blob) => Ok(unsafe { + std::slice::from_raw_parts(credential_blob.as_ptr(), size) } + .to_vec()), None if size == 0 => Ok(Vec::new()), None => Err(anyhow!( "Windows credential blob was null with nonzero size"