Increment the lines counter when skipping a line to avoid an infinite

loop, and fix a check to avoid a potential out-of-bounds access. Problem
reported by Yuxiang Qin and tracked down by Karl Beldan; GitHub issue
1352.

Also a man page fix request by jmc@.
pull/1372/head
nicm 2018-06-03 10:17:30 +00:00
parent d1f5142dab
commit ba31d3a88c
2 changed files with 4 additions and 2 deletions

3
grid.c
View File

@ -1011,7 +1011,7 @@ grid_reflow_join(struct grid *target, struct grid *gd, u_int sx, u_int yy,
* If this is now the last line, there is nothing more to be
* done.
*/
if (yy + lines == gd->hsize + gd->sy)
if (yy + 1 + lines == gd->hsize + gd->sy)
break;
line = yy + 1 + lines;
@ -1021,6 +1021,7 @@ grid_reflow_join(struct grid *target, struct grid *gd, u_int sx, u_int yy,
if (gd->linedata[line].cellused == 0) {
if (!wrapped)
break;
lines++;
continue;
}

3
tmux.1
View File

@ -3585,7 +3585,8 @@ and
.Ql #} ,
unless they are part of a
.Ql #{...}
replacement. For example:
replacement.
For example:
.Bd -literal -offset indent
#{?pane_in_mode,#[fg=white#,bg=red],#[fg=red#,bg=white]}#W .
.Ed