term: fix crash when an OSC-8 URI wraps around the scrollback

Long OSC-8 URIs, that are split up over multiple rows, are handled by
emitting one URI range on each row the URL touches.

This was done by initializing a row index variable, and then
incrementing it each loop iteration.

This caused an out-of-bounds array access when the row index reached
the maximum number of scrollback lines.

The fix is simple: make sure the row index variable wraps around,
instead of incrementing without any bounds.

Closes #552
This commit is contained in:
Daniel Eklöf 2021-05-26 13:59:32 +02:00
parent e7fbded48f
commit a012c2fb3e
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
2 changed files with 10 additions and 2 deletions

View file

@ -133,6 +133,8 @@
* Regression where `<mod>+shift+tab` always produced `\E[Z` instead of
the correct `\E[27;<mod>;9~` sequence
(https://codeberg.org/dnkl/foot/issues/547).
* Crash when a line wrapping OSC-8 URI crossed the scrollback wrap
around (https://codeberg.org/dnkl/foot/issues/552).
### Security