diff options
author | nicm <nicm> | 2018-06-03 10:17:30 +0000 |
---|---|---|
committer | nicm <nicm> | 2018-06-03 10:17:30 +0000 |
commit | ba31d3a88c8c76ec3c76d9a91373fa24e64797cd (patch) | |
tree | 16feaa8cc1487d35fb50ab8212971c049ebe1f1c /grid.c | |
parent | d1f5142daba11baf77f7ec1753b5a660585e96f9 (diff) | |
download | rtmux-ba31d3a88c8c76ec3c76d9a91373fa24e64797cd.tar.gz rtmux-ba31d3a88c8c76ec3c76d9a91373fa24e64797cd.tar.bz2 rtmux-ba31d3a88c8c76ec3c76d9a91373fa24e64797cd.zip |
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@.
Diffstat (limited to 'grid.c')
-rw-r--r-- | grid.c | 3 |
1 files changed, 2 insertions, 1 deletions
@@ -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; } |