From 7a1c371a27e5a410ac1d60c4ea3b16808fa1f31a Mon Sep 17 00:00:00 2001 From: Rafael Rivera Date: Sat, 10 Feb 2024 17:10:34 -0800 Subject: [PATCH 1/2] Quick return if FormatMessage fails --- crates/libs/core/src/hresult.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/crates/libs/core/src/hresult.rs b/crates/libs/core/src/hresult.rs index 8c87b678000..759d0e8cb98 100644 --- a/crates/libs/core/src/hresult.rs +++ b/crates/libs/core/src/hresult.rs @@ -86,8 +86,11 @@ impl HRESULT { unsafe { let size = crate::imp::FormatMessageW(crate::imp::FORMAT_MESSAGE_ALLOCATE_BUFFER | crate::imp::FORMAT_MESSAGE_FROM_SYSTEM | crate::imp::FORMAT_MESSAGE_IGNORE_INSERTS, std::ptr::null(), self.0 as u32, 0, &mut message.0 as *mut _ as *mut _, 0, std::ptr::null()); - - HSTRING::from_wide(crate::imp::wide_trim_end(std::slice::from_raw_parts(message.0 as *const u16, size as usize))).unwrap_or_default() + if !message.0.is_null() && size > 0 { + HSTRING::from_wide(crate::imp::wide_trim_end(std::slice::from_raw_parts(message.0 as *const u16, size as usize))).unwrap_or_default() + } else { + HSTRING::default() + } } } From 01ec5f6d81380cb41777d0f543948e720dfb7d79 Mon Sep 17 00:00:00 2001 From: Rafael Rivera Date: Mon, 12 Feb 2024 08:40:00 -0800 Subject: [PATCH 2/2] align buffer --- crates/libs/core/src/event.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/crates/libs/core/src/event.rs b/crates/libs/core/src/event.rs index c63a252d425..2251edd4fd7 100644 --- a/crates/libs/core/src/event.rs +++ b/crates/libs/core/src/event.rs @@ -198,6 +198,7 @@ impl Drop for Array { /// A reference-counted buffer. #[repr(C)] +#[repr(align(8))] struct Buffer(crate::imp::RefCount, std::marker::PhantomData); impl Buffer {