diff --git a/CHANGELOG.md b/CHANGELOG.md index d11caa1b..4f91a08d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -57,6 +57,8 @@ * Sixel images being erased when printing text next to them. * Crash when last rendered cursor cell had scrolled off screen and `\E[J3` was executed. +* Assert (debug builds) when an `\e]4` OSC escape was not followed by + a `;`. ### Security diff --git a/osc.c b/osc.c index d28fd057..42f775b4 100644 --- a/osc.c +++ b/osc.c @@ -431,6 +431,9 @@ osc_dispatch(struct terminal *term) /* Set color */ string--; + if (*string != ';') + break; + assert(*string == ';'); for (const char *s_idx = strtok(string, ";"), *s_color = strtok(NULL, ";");