]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/commit
MFC r286798 and r286827:
authored <ed@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Mon, 14 Sep 2015 09:12:28 +0000 (09:12 +0000)
committered <ed@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Mon, 14 Sep 2015 09:12:28 +0000 (09:12 +0000)
commitf66eef88cead17746a9e6fd084a8dbaeb8702818
tree79e595b2854d93d7666b536e800f444653237bc8
parent3868e156513343be5c4c923ca5a4550744618777
MFC r286798 and r286827:

  Stop parsing digits if the value already exceeds UINT_MAX / 100.

  There is no need for us to support parsing values that are larger than
  the maximum terminal window size. In this case that would be the maximum
  of unsigned short.

  The problem with parsing larger values is that they can cause integer
  overflows when adjusting the cursor position, leading to all sorts of
  failing assertions.

MFC r286981 and r287098:

  Don't truncate cursor arithmetic to 16 bits.

  When updating the row number when the cursor position escape sequence is
  issued, we should make sure to store the intermediate result in a 32-bit
  integer. If we fail to do this, the cursor may be set above the origin
  region, which is bad.

  This could cause libteken to crash when INVARIANTS is enabled, due to
  the strict set of assertions that libteken has.

PR: 202326, 202540, 202612
Submitted by: kwcu csie org

git-svn-id: svn://svn.freebsd.org/base/stable/10@287776 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
sys/teken/teken.c
sys/teken/teken_subr.h