aboutsummaryrefslogtreecommitdiffstats
path: root/src/termcap.c
diff options
context:
space:
mode:
authorJoakim Verona2011-06-23 01:28:30 +0200
committerJoakim Verona2011-06-23 01:28:30 +0200
commitc5082a753011dacef505e91f1fc30a84fa75a2eb (patch)
tree2c995eff276b6e9e68f54b4ebe76bf012231c86d /src/termcap.c
parent787c27e81f046cfa1c457ed405551f8ca0ddb0e8 (diff)
parent297dde5a97c0c5c8020db72213c7f84067f1ee21 (diff)
downloademacs-c5082a753011dacef505e91f1fc30a84fa75a2eb.tar.gz
emacs-c5082a753011dacef505e91f1fc30a84fa75a2eb.zip
merge upstream
Diffstat (limited to 'src/termcap.c')
-rw-r--r--src/termcap.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/termcap.c b/src/termcap.c
index 5b71ad229d7..e191f6b3af3 100644
--- a/src/termcap.c
+++ b/src/termcap.c
@@ -323,10 +323,10 @@ tputs (register const char *str, int nlines, int (*outfun) (int))
323struct termcap_buffer 323struct termcap_buffer
324 { 324 {
325 char *beg; 325 char *beg;
326 int size; 326 ptrdiff_t size;
327 char *ptr; 327 char *ptr;
328 int ateof; 328 int ateof;
329 int full; 329 ptrdiff_t full;
330 }; 330 };
331 331
332/* Forward declarations of static functions. */ 332/* Forward declarations of static functions. */
@@ -367,7 +367,7 @@ tgetent (char *bp, const char *name)
367 register char *bp1; 367 register char *bp1;
368 char *tc_search_point; 368 char *tc_search_point;
369 char *term; 369 char *term;
370 int malloc_size = 0; 370 ptrdiff_t malloc_size = 0;
371 register int c; 371 register int c;
372 char *tcenv = NULL; /* TERMCAP value, if it contains :tc=. */ 372 char *tcenv = NULL; /* TERMCAP value, if it contains :tc=. */
373 char *indirect = NULL; /* Terminal type in :tc= in TERMCAP value. */ 373 char *indirect = NULL; /* Terminal type in :tc= in TERMCAP value. */
@@ -637,6 +637,8 @@ gobble_line (int fd, register struct termcap_buffer *bufp, char *append_end)
637 { 637 {
638 if (bufp->full == bufp->size) 638 if (bufp->full == bufp->size)
639 { 639 {
640 if ((PTRDIFF_MAX - 1) / 2 < bufp->size)
641 memory_full (SIZE_MAX);
640 bufp->size *= 2; 642 bufp->size *= 2;
641 /* Add 1 to size to ensure room for terminating null. */ 643 /* Add 1 to size to ensure room for terminating null. */
642 tem = (char *) xrealloc (buf, bufp->size + 1); 644 tem = (char *) xrealloc (buf, bufp->size + 1);
@@ -715,4 +717,3 @@ tprint (cap)
715} 717}
716 718
717#endif /* TEST */ 719#endif /* TEST */
718