mirror of
https://github.com/wez/wezterm.git
synced 2024-12-24 13:52:55 +03:00
window: x11: avoid potential crash when pasting non-utf8 text
This might "break" eg: pasting from apps that just use ATOM_STRING and that happen to have utf-8 compatible text. Ideally the get_text_property interface would expose the actual text encoding in the returned data and allow the application to "do stuff" with it. refs: https://github.com/meh/rust-xcb-util/issues/21
This commit is contained in:
parent
a79fc87586
commit
c9f1f0e12c
@ -574,16 +574,21 @@ impl XWindowInner {
|
||||
let conn = self.conn();
|
||||
|
||||
log::trace!(
|
||||
"SELECTION_NOTIFY received selection={} (prim={} clip={}) target={} property={}",
|
||||
"SELECTION_NOTIFY received selection={} (prim={} clip={}) target={} property={} utf8={}",
|
||||
selection.selection(),
|
||||
xcb::ATOM_PRIMARY,
|
||||
conn.atom_clipboard,
|
||||
selection.target(),
|
||||
selection.property()
|
||||
selection.property(),
|
||||
self.conn().atom_utf8_string,
|
||||
);
|
||||
|
||||
if let Some(clipboard) = self.selection_atom_to_clipboard(selection.selection()) {
|
||||
if selection.property() != xcb::NONE {
|
||||
if selection.property() != xcb::NONE
|
||||
// Restrict to strictly UTF-8 to avoid crashing; see
|
||||
// <https://github.com/meh/rust-xcb-util/issues/21>
|
||||
&& selection.target() == self.conn().atom_utf8_string
|
||||
{
|
||||
match xcb_util::icccm::get_text_property(
|
||||
&conn,
|
||||
selection.requestor(),
|
||||
|
Loading…
Reference in New Issue
Block a user