diff --git a/CHANGELOG.md b/CHANGELOG.md index a7cb54b2..7a69d1c4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -102,10 +102,13 @@ event reporting ([#2316][2316]). * Keypad escapes in the legacy keyboard protocol ignoring the shift modifier ([#2324][2324]). +* Crash when querying the kitty notification protocol (OSC-99, with + `p=?`) ([#2335][2335]). [2307]: https://codeberg.org/dnkl/foot/issues/2307 [2316]: https://codeberg.org/dnkl/foot/issues/2316 [2324]: https://codeberg.org/dnkl/foot/issues/2324 +[2335]: https://codeberg.org/dnkl/foot/issues/2335 ### Security diff --git a/osc.c b/osc.c index 82793fb5..95af5bff 100644 --- a/osc.c +++ b/osc.c @@ -761,13 +761,12 @@ kitty_notification(struct terminal *term, char *string) const char *terminator = term->vt.osc.bel ? "\a" : "\033\\"; - char reply[128]; + char reply[512]; size_t n = xsnprintf( reply, sizeof(reply), "\033]99;i=%s:p=?;p=%s:a=%s:o=%s:u=%s:c=1:w=1:s=system,silent,error,warn,warning,info,question%s", reply_id, p_caps, a_caps, when_caps, u_caps, terminator); - xassert(n < sizeof(reply)); term_to_slave(term, reply, n); goto out; }