From 5a13c4a0aaf95f0ce8f6fd9bdcc15fb2dfaad729 Mon Sep 17 00:00:00 2001 From: deuce <> Date: Mon, 16 Feb 2015 06:58:04 +0000 Subject: [PATCH] More alloca() replacements. --- src/conio/cterm.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/conio/cterm.c b/src/conio/cterm.c index f15d264e1a..31926f02cb 100644 --- a/src/conio/cterm.c +++ b/src/conio/cterm.c @@ -927,7 +927,7 @@ static void clear2bol(struct cterminal * cterm) int i,j,k; k=WHEREX(); - buf=(char *)alloca(k*2); + buf=(char *)malloc(k*2); j=0; for(i=0;i<k;i++) { if(cterm->emulation == CTERM_EMULATION_ATASCII) @@ -937,6 +937,7 @@ static void clear2bol(struct cterminal * cterm) buf[j++]=cterm->attr; } PUTTEXT(cterm->x,cterm->y+WHEREY()-1,cterm->x+WHEREX()-1,cterm->y+WHEREY()-1,buf); + free(buf); } void CIOLIBCALL cterm_clearscreen(struct cterminal *cterm, char attr) @@ -1492,13 +1493,14 @@ static void do_ansi(struct cterminal *cterm, char *retbuf, size_t retsize, int * i=1; if(i>cterm->width-WHEREX()) i=cterm->width-WHEREX(); - p2=alloca(i*2); + p2=malloc(i*2); j=0; for(k=0;k<i;k++) { p2[j++]=' '; p2[j++]=cterm->attr; } PUTTEXT(cterm->x+WHEREX()-1,cterm->y+WHEREY()-1,cterm->x+WHEREX()-1+i-1,cterm->y+WHEREY()-1,p2); + free(p2); break; case 'Z': i=strtoul(cterm->escbuf+1,NULL,10); -- GitLab