From f261e3feec27da5dcbb07db6abdaf0662d5f0db5 Mon Sep 17 00:00:00 2001 From: galister <22305755+galister@users.noreply.github.com> Date: Fri, 14 Jun 2024 11:46:06 +0900 Subject: [PATCH] Fix panic when WM_NAME or NET_WM_NAME has invalid UTF-8 --- src/xstate/mod.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/xstate/mod.rs b/src/xstate/mod.rs index 9c820ae..f0cab60 100644 --- a/src/xstate/mod.rs +++ b/src/xstate/mod.rs @@ -519,7 +519,8 @@ impl XState { let cookie = self.get_property_cookie(window, x::ATOM_WM_NAME, x::ATOM_STRING, 256); let resolver = |reply: x::GetPropertyReply| { let data: &[u8] = reply.value(); - WmName::WmName(String::from_utf8(data.to_vec()).unwrap()) + let name = String::from_utf8_lossy(data).to_string(); + WmName::WmName(name) }; PropertyCookieWrapper { @@ -537,7 +538,8 @@ impl XState { self.get_property_cookie(window, self.atoms.net_wm_name, self.atoms.utf8_string, 256); let resolver = |reply: x::GetPropertyReply| { let data: &[u8] = reply.value(); - WmName::NetWmName(String::from_utf8(data.to_vec()).unwrap()) + let name = String::from_utf8_lossy(data).to_string(); + WmName::NetWmName(name) }; PropertyCookieWrapper {