aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/vt/vt_buf.c
diff options
context:
space:
mode:
authorEd Maste <emaste@FreeBSD.org>2014-05-29 21:10:33 +0000
committerEd Maste <emaste@FreeBSD.org>2014-05-29 21:10:33 +0000
commit7cd5ec40cf02276c14dca2ef0b35e7e890fd8144 (patch)
tree868a27df5b52b0cd857da6d764fd6006af0da2cf /sys/dev/vt/vt_buf.c
parent2f308a343f533308059f6a78d1e2908129eb2f16 (diff)
downloadsrc-7cd5ec40cf02276c14dca2ef0b35e7e890fd8144.tar.gz
src-7cd5ec40cf02276c14dca2ef0b35e7e890fd8144.zip
Update size in vt_grow if we don't have to reallocate
vt_grow may be called with a new size that's larger than previous but does not require reallocation - for example, when the number of columns is the same and new number of rows is less than the history size. Prior to this change we would fail to update vb_scr_size, and then hit a KASSERT when trying to write to the newly visible rows. Sponsored by: The FreeBSD Foundation
Notes
Notes: svn path=/head/; revision=266861
Diffstat (limited to 'sys/dev/vt/vt_buf.c')
-rw-r--r--sys/dev/vt/vt_buf.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/dev/vt/vt_buf.c b/sys/dev/vt/vt_buf.c
index 7adce9892e0c..d8602f806323 100644
--- a/sys/dev/vt/vt_buf.c
+++ b/sys/dev/vt/vt_buf.c
@@ -496,6 +496,9 @@ vtbuf_grow(struct vt_buf *vb, const term_pos_t *p, int history_size)
/* Deallocate old buffer. */
free(old, M_VTBUF);
free(oldrows, M_VTBUF);
+ } else {
+ /* Just update the size. */
+ vb->vb_scr_size = *p;
}
}