osc: reject notifications with invalid UTF-8 strings

This commit is contained in:
Daniel Eklöf 2024-04-15 16:02:54 +02:00
parent e753bb953b
commit 23ada09d14
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
2 changed files with 17 additions and 0 deletions

View file

@ -54,6 +54,10 @@
## Unreleased
### Added
### Changed
* Notifications with invalid UTF-8 strings are now ignored.
### Deprecated
### Removed
### Fixed

13
osc.c
View file

@ -524,6 +524,19 @@ osc_notify(struct terminal *term, char *string)
const char *title = strtok_r(string, ";", &ctx);
const char *msg = strtok_r(NULL, "\x00", &ctx);
if (title == NULL)
return;
if (mbsntoc32(NULL, title, strlen(title), 0) == (char32_t)-1) {
LOG_WARN("%s: notification title is not valid UTF-8, ignoring", title);
return;
}
if (msg != NULL && mbsntoc32(NULL, msg, strlen(msg), 0) == (char32_t)-1) {
LOG_WARN("%s: notification message is not valid UTF-8, ignoring", msg);
return;
}
notify_notify(term, title, msg != NULL ? msg : "");
}