dcs: XTGETTCAP: handle empty request

If the XTGETTCAP request is empty (no capabilities in it), reply with
an empty error reply.

Closes #1694
This commit is contained in:
Daniel Eklöf 2024-04-20 08:19:58 +02:00
parent 128c5c3efa
commit 4d4ef5eed5
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
2 changed files with 9 additions and 0 deletions

View file

@ -62,6 +62,9 @@
* Crash when zooming in or out, with `dpi-aware=yes`, and the
monitor's DPI is 0 (this is true for, for example, nested Wayland
sessions, or in virtualized environments).
* No error response for empty `XTGETTCAP` request ([#1694][1694]).
[1694]: https://codeberg.org/dnkl/foot/issues/1694
### Security

6
dcs.c
View file

@ -200,6 +200,12 @@ xtgettcap_unhook(struct terminal *term)
const char *const end = (const char *)&term->vt.dcs.data[left];
const char *p = (const char *)term->vt.dcs.data;
if (p == NULL) {
/* Request is empty; send an error reply, without any capabilities */
term_to_slave(term, "\033P0+r\033\\", 7);
return;
}
while (true) {
const char *sep = memchr(p, ';', left);
size_t cap_len;