mirror of
https://github.com/rfivet/uemacs.git
synced 2024-12-22 00:56:26 -05:00
Fix potential buffer overflow and align failure message display method on exit.
This commit is contained in:
parent
66649313ae
commit
f8eb3531a4
29
tcap.c
29
tcap.c
@ -126,22 +126,21 @@ static void tcapopen(void)
|
|||||||
char *t, *p;
|
char *t, *p;
|
||||||
char tcbuf[1024];
|
char tcbuf[1024];
|
||||||
char *tv_stype;
|
char *tv_stype;
|
||||||
char err_str[72];
|
|
||||||
int int_col, int_row;
|
int int_col, int_row;
|
||||||
|
|
||||||
#if PKCODE && USE_BROKEN_OPTIMIZATION
|
#if PKCODE && USE_BROKEN_OPTIMIZATION
|
||||||
if (!term_init_ok) {
|
if (!term_init_ok) {
|
||||||
#endif
|
#endif
|
||||||
if ((tv_stype = getenv("TERM")) == NULL) {
|
if ((tv_stype = getenv("TERM")) == NULL) {
|
||||||
puts("Environment variable TERM not defined!");
|
fputs( "Environment variable TERM not defined!\n", stderr) ;
|
||||||
exit(1);
|
exit( EXIT_FAILURE) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((tgetent(tcbuf, tv_stype)) != 1) {
|
if ((tgetent(tcbuf, tv_stype)) != 1) {
|
||||||
sprintf(err_str, "Unknown terminal type %s!",
|
fputs( "Unknown terminal type ", stderr) ;
|
||||||
tv_stype);
|
fputs( tv_stype, stderr) ;
|
||||||
puts(err_str);
|
fputs( "!\n", stderr) ;
|
||||||
exit(1);
|
exit( EXIT_FAILURE) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Get screen size from system, or else from termcap. */
|
/* Get screen size from system, or else from termcap. */
|
||||||
@ -151,14 +150,14 @@ static void tcapopen(void)
|
|||||||
|
|
||||||
if ((term.t_nrow <= 0)
|
if ((term.t_nrow <= 0)
|
||||||
&& (term.t_nrow = (short) tgetnum("li") - 1) == -1) {
|
&& (term.t_nrow = (short) tgetnum("li") - 1) == -1) {
|
||||||
puts("termcap entry incomplete (lines)");
|
fputs( "termcap entry incomplete (lines)\n", stderr) ;
|
||||||
exit(1);
|
exit( EXIT_FAILURE) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((term.t_ncol <= 0)
|
if ((term.t_ncol <= 0)
|
||||||
&& (term.t_ncol = (short) tgetnum("co")) == -1) {
|
&& (term.t_ncol = (short) tgetnum("co")) == -1) {
|
||||||
puts("Termcap entry incomplete (columns)");
|
fputs( "Termcap entry incomplete (columns)\n", stderr) ;
|
||||||
exit(1);
|
exit( EXIT_FAILURE) ;
|
||||||
}
|
}
|
||||||
#ifdef SIGWINCH
|
#ifdef SIGWINCH
|
||||||
/* At initialization we use maximum size even if current OS window is smaller */
|
/* At initialization we use maximum size even if current OS window is smaller */
|
||||||
@ -199,8 +198,8 @@ static void tcapopen(void)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (CL == NULL || CM == NULL || UP == NULL) {
|
if (CL == NULL || CM == NULL || UP == NULL) {
|
||||||
puts("Incomplete termcap entry\n");
|
fputs( "Incomplete termcap entry\n", stderr) ;
|
||||||
exit(1);
|
exit( EXIT_FAILURE) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (CE == NULL) /* will we be able to use clear to EOL? */
|
if (CE == NULL) /* will we be able to use clear to EOL? */
|
||||||
@ -224,8 +223,8 @@ static void tcapopen(void)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (p >= &tcapbuf[TCAPSLEN]) {
|
if (p >= &tcapbuf[TCAPSLEN]) {
|
||||||
puts("Terminal description too big!\n");
|
fputs( "Terminal description too big!\n", stderr) ;
|
||||||
exit(1);
|
exit( EXIT_FAILURE) ;
|
||||||
}
|
}
|
||||||
#if PKCODE && USE_BROKEN_OPTIMIZATION
|
#if PKCODE && USE_BROKEN_OPTIMIZATION
|
||||||
term_init_ok = 1;
|
term_init_ok = 1;
|
||||||
|
Loading…
Reference in New Issue
Block a user