mirror of
https://codeberg.org/dnkl/foot.git
synced 2026-02-16 22:05:21 -05:00
term: ignore attempts to set a title that contains an invalid UTF-8 sequence
Setting the title ultimately leads to a call to
xdg_toplevel::set_title(). It is a protocol violation to try to set a
title that contains an invalid UTF-8 sequence:
The string must be encoded in UTF-8.
Closes #1552
This commit is contained in:
parent
756da87346
commit
316136f428
2 changed files with 10 additions and 0 deletions
|
|
@ -102,10 +102,13 @@
|
|||
set in `[environment]`.
|
||||
* Environment variables normally set by foot lost with `footclient
|
||||
-E,--client-environment` ([#1568][1568]).
|
||||
* XDG toplevel protocol violation, by trying to set a title that
|
||||
contains an invalid UTF-8 sequence ([#1552][1552]).
|
||||
|
||||
[1531]: https://codeberg.org/dnkl/foot/issues/1531
|
||||
[1573]: https://codeberg.org/dnkl/foot/issues/1573
|
||||
[1568]: https://codeberg.org/dnkl/foot/issues/1568
|
||||
[1552]: https://codeberg.org/dnkl/foot/issues/1552
|
||||
|
||||
|
||||
### Security
|
||||
|
|
|
|||
|
|
@ -3249,6 +3249,13 @@ term_set_window_title(struct terminal *term, const char *title)
|
|||
if (term->window_title != NULL && streq(term->window_title, title))
|
||||
return;
|
||||
|
||||
if (mbsntoc32(NULL, title, strlen(title), 0) == (char32_t)-1) {
|
||||
/* It's an xdg_toplevel::set_title() protocol violation to set
|
||||
a title with an invalid UTF-8 sequence */
|
||||
LOG_WARN("%s: title is not valid UTF-8, ignoring", title);
|
||||
return;
|
||||
}
|
||||
|
||||
free(term->window_title);
|
||||
term->window_title = xstrdup(title);
|
||||
render_refresh_title(term);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue