mirror of
https://codeberg.org/dnkl/foot.git
synced 2026-03-13 05:33:51 -04:00
commit
2f01ecbadb
2 changed files with 11 additions and 6 deletions
|
|
@ -81,6 +81,9 @@
|
||||||
resulting in PGO build failures.
|
resulting in PGO build failures.
|
||||||
* Wrong colors in the 256-color cube
|
* Wrong colors in the 256-color cube
|
||||||
(https://codeberg.org/dnkl/foot/issues/479).
|
(https://codeberg.org/dnkl/foot/issues/479).
|
||||||
|
* Memory leak triggered by “opening” an OSC-8 URI and then resetting
|
||||||
|
the terminal without closing the URI
|
||||||
|
(https://codeberg.org/dnkl/foot/issues/495).
|
||||||
|
|
||||||
|
|
||||||
### Security
|
### Security
|
||||||
|
|
|
||||||
14
terminal.c
14
terminal.c
|
|
@ -1649,13 +1649,13 @@ term_reset(struct terminal *term, bool hard)
|
||||||
term->scroll_region.start = 0;
|
term->scroll_region.start = 0;
|
||||||
term->scroll_region.end = term->rows;
|
term->scroll_region.end = term->rows;
|
||||||
|
|
||||||
free(term->vt.osc.data);
|
|
||||||
memset(&term->vt, 0, sizeof(term->vt));
|
|
||||||
term->vt.state = 0; /* GROUND */
|
|
||||||
|
|
||||||
term->vt.osc8.begin = (struct coord){-1, -1};
|
|
||||||
free(term->vt.osc8.uri);
|
free(term->vt.osc8.uri);
|
||||||
term->vt.osc8.uri = NULL;
|
free(term->vt.osc.data);
|
||||||
|
|
||||||
|
term->vt = (struct vt){
|
||||||
|
.state = 0, /* STATE_GROUND */
|
||||||
|
.osc8 = {.begin = (struct coord){-1, -1}},
|
||||||
|
};
|
||||||
|
|
||||||
if (term->grid == &term->alt) {
|
if (term->grid == &term->alt) {
|
||||||
term->grid = &term->normal;
|
term->grid = &term->normal;
|
||||||
|
|
@ -3070,6 +3070,8 @@ term_osc8_open(struct terminal *term, uint64_t id, const char *uri)
|
||||||
term_osc8_close(term);
|
term_osc8_close(term);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
xassert(term->vt.osc8.uri == NULL);
|
||||||
|
|
||||||
term->vt.osc8.begin = (struct coord){
|
term->vt.osc8.begin = (struct coord){
|
||||||
.col = term->grid->cursor.point.col,
|
.col = term->grid->cursor.point.col,
|
||||||
.row = grid_row_absolute(term->grid, term->grid->cursor.point.row),
|
.row = grid_row_absolute(term->grid, term->grid->cursor.point.row),
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue