diff --git a/CHANGELOG.md b/CHANGELOG.md index acea5f9c..f7bd40d8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -53,6 +53,8 @@ URLs. * Double free of URL while removing duplicated and/or overlapping URLs in URL mode (https://codeberg.org/dnkl/foot/issues/627). +* Crash when an unclosed OSC-8 URL ran into un-allocated scrollback + rows. ### Security diff --git a/url-mode.c b/url-mode.c index 94c05b3a..524b8d1b 100644 --- a/url-mode.c +++ b/url-mode.c @@ -654,6 +654,11 @@ tag_cells_for_url(struct terminal *term, const struct url *url, bool value) c = 0; row = term->grid->rows[r]; + if (row == NULL) { + /* Un-allocated scrollback. This most likely means a + * runaway OSC-8 URL. */ + break; + } row->dirty = true; } }