diff --git a/src/sbbs3/umonitor/chat.c b/src/sbbs3/umonitor/chat.c index 3af08b8df0f15d46add7eb266103c7f75b282141..5a761553b164a3ca4caa2928847016800bd871cd 100644 --- a/src/sbbs3/umonitor/chat.c +++ b/src/sbbs3/umonitor/chat.c @@ -138,14 +138,12 @@ int chat(scfg_t *cfg, int nodenum, node_t *node, box_t *boxch, void(*timecallbac char *buf; gettextinfo(&ti); - if((buf=(char *)malloc(ti.screenwidth*ti.screenheight*2))==NULL) { + if((buf=(char *)alloca(ti.screenwidth*ti.screenheight*2))==NULL) { return(-1); } - if(getnodedat(cfg,nodenum,node,NULL)) { - free(buf); + if(getnodedat(cfg,nodenum,node,NULL)) return(-1); - } username(cfg,node->useron,usrname); @@ -154,29 +152,24 @@ int chat(scfg_t *cfg, int nodenum, node_t *node, box_t *boxch, void(*timecallbac sprintf(outpath,"%slchat.dab",cfg->node_path[nodenum-1]); if((out=sopen(outpath,O_RDWR|O_CREAT|O_BINARY,O_DENYNONE - ,S_IREAD|S_IWRITE))==-1) { - free(buf); + ,S_IREAD|S_IWRITE))==-1) return(-1); - } sprintf(inpath,"%schat.dab",cfg->node_path[nodenum-1]); if((in=sopen(inpath,O_RDWR|O_CREAT|O_BINARY,O_DENYNONE ,S_IREAD|S_IWRITE))==-1) { close(out); - free(buf); return(-1); } - if((p=(char *)malloc(PCHAT_LEN))==NULL) { + if((p=(char *)alloca(PCHAT_LEN))==NULL) { close(in); close(out); - free(buf); return(-1); } memset(p,0,PCHAT_LEN); write(in,p,PCHAT_LEN); write(out,p,PCHAT_LEN); - free(p); lseek(in,0,SEEK_SET); lseek(out,0,SEEK_SET); @@ -276,7 +269,6 @@ int chat(scfg_t *cfg, int nodenum, node_t *node, box_t *boxch, void(*timecallbac close(out); togglechat(cfg,nodenum,node,FALSE); puttext(1,1,ti.screenwidth,ti.screenheight,buf); - free(buf); window(ti.winleft,ti.wintop,ti.winright,ti.wintop); gotoxy(ti.curx,ti.cury); textattr(ti.attribute); diff --git a/src/sbbs3/umonitor/spyon.c b/src/sbbs3/umonitor/spyon.c index e46a3987235a5bfe62b0943eb7430cf50ef30743..6e147a061bb614b5bbd15be3265ed864530f851a 100644 --- a/src/sbbs3/umonitor/spyon.c +++ b/src/sbbs3/umonitor/spyon.c @@ -83,7 +83,7 @@ int spyon(char *sockname) { i=1; gettextinfo(&ti); - scrn=(char *)malloc(ti.screenwidth*ti.screenheight*2); + scrn=(char *)alloca(ti.screenwidth*ti.screenheight*2); gettext(1,1,ti.screenwidth,ti.screenheight,scrn); textcolor(YELLOW); textbackground(BLUE); diff --git a/src/sbbs3/umonitor/umonitor.c b/src/sbbs3/umonitor/umonitor.c index b89023c69f880f770ab7488c25c55c2b30a789bf..9ed4889e22accc06dd5abfef3adbea8b2996fac6 100644 --- a/src/sbbs3/umonitor/umonitor.c +++ b/src/sbbs3/umonitor/umonitor.c @@ -102,16 +102,6 @@ void allocfail(uint size) bail(1); } -void freeopt(char** opt) -{ - int i; - - for(i=0;i<(MAX_OPTS+1);i++) - free(opt[i]); - - free(opt); -} - void node_toggles(scfg_t *cfg,int nodenum) { int nodefile; char** opt; @@ -119,10 +109,10 @@ void node_toggles(scfg_t *cfg,int nodenum) { node_t node; int save=0; - if((opt=(char **)malloc(sizeof(char *)*(MAX_OPTS+1)))==NULL) + if((opt=(char **)alloca(sizeof(char *)*(MAX_OPTS+1)))==NULL) allocfail(sizeof(char *)*(MAX_OPTS+1)); for(i=0;i<(MAX_OPTS+1);i++) - if((opt[i]=(char *)malloc(MAX_OPLN))==NULL) + if((opt[i]=(char *)alloca(MAX_OPLN))==NULL) allocfail(MAX_OPLN); i=0; @@ -186,7 +176,6 @@ void node_toggles(scfg_t *cfg,int nodenum) { } putnodedat(cfg,nodenum,&node,nodefile); } - freeopt(opt); } int dospy(int nodenum, bbs_startup_t *bbs_startup) { @@ -425,12 +414,11 @@ int view_log(char *filename, char *title) if(fexist(filename)) { if((buffile=sopen(filename,O_RDONLY,SH_DENYWR))>=0) { j=filelength(buffile); - if((buf=(char *)malloc(j+1))!=NULL) { + if((buf=(char *)alloca(j+1))!=NULL) { read(buffile,buf,j); close(buffile); *(buf+j)=0; uifc.showbuf(WIN_MID,0,0,76,uifc.scrn_len-2,title,buf,NULL,NULL); - free(buf); return(0); } close(buffile); @@ -459,10 +447,10 @@ int view_logs(scfg_t *cfg) localtime_r(&now,&tm); now -= 60*60*24; localtime_r(&now,&tm_yest); - if((opt=(char **)malloc(sizeof(char *)*(MAX_OPTS+1)))==NULL) + if((opt=(char **)alloca(sizeof(char *)*(MAX_OPTS+1)))==NULL) allocfail(sizeof(char *)*(MAX_OPTS+1)); for(i=0;i<(MAX_OPTS+1);i++) - if((opt[i]=(char *)malloc(MAX_OPLN))==NULL) + if((opt[i]=(char *)alloca(MAX_OPLN))==NULL) allocfail(MAX_OPLN); i=0; @@ -492,7 +480,6 @@ int view_logs(scfg_t *cfg) while(1) { switch(uifc.list(WIN_MID|WIN_SAV,0,0,0,&i,0,"View Logs",opt)) { case -1: - freeopt(opt); return(0); case 0: sprintf(str,"%slogs/%2.2d%2.2d%2.2d.lol",cfg->logs_dir,tm.tm_mon+1,tm.tm_mday @@ -545,11 +532,10 @@ int do_cmd(char *cmd) char *p; gettextinfo(&ti); - p=malloc(ti.screenheight*ti.screenwidth*2); + p=alloca(ti.screenheight*ti.screenwidth*2); gettext(1,1,ti.screenwidth,ti.screenheight,p); i=system(cmd); puttext(1,1,ti.screenwidth,ti.screenheight,p); - free(p); return(i); } @@ -564,10 +550,10 @@ int qwk_callouts(scfg_t *cfg) return(1); } - if((opt=(char **)malloc(sizeof(char *)*(MAX_OPTS+1)))==NULL) + if((opt=(char **)alloca(sizeof(char *)*(MAX_OPTS+1)))==NULL) allocfail(sizeof(char *)*(MAX_OPTS+1)); for(i=0;i<(MAX_OPTS+1);i++) - if((opt[i]=(char *)malloc(MAX_OPLN))==NULL) + if((opt[i]=(char *)alloca(MAX_OPLN))==NULL) allocfail(MAX_OPLN); @@ -587,7 +573,6 @@ int qwk_callouts(scfg_t *cfg) opt[i][0]=0; switch(uifc.list(WIN_MID|WIN_SAV,0,0,0,&j,0,"QWK Callouts",opt)) { case -1: - freeopt(opt); return(0); break; default: @@ -604,10 +589,10 @@ int run_events(scfg_t *cfg) int i,j; char str[1024]; - if((opt=(char **)malloc(sizeof(char *)*(MAX_OPTS+1)))==NULL) + if((opt=(char **)alloca(sizeof(char *)*(MAX_OPTS+1)))==NULL) allocfail(sizeof(char *)*(MAX_OPTS+1)); for(i=0;i<(MAX_OPTS+1);i++) - if((opt[i]=(char *)malloc(MAX_OPLN))==NULL) + if((opt[i]=(char *)alloca(MAX_OPLN))==NULL) allocfail(MAX_OPLN); if(cfg->total_events<1) { @@ -630,7 +615,6 @@ int run_events(scfg_t *cfg) opt[i][0]=0; switch(uifc.list(WIN_MID|WIN_SAV,0,0,0,&j,0,"Run Events",opt)) { case -1: - freeopt(opt); return(0); break; default: @@ -647,10 +631,10 @@ int recycle_servers(scfg_t *cfg) char **opt; int i=0; - if((opt=(char **)malloc(sizeof(char *)*(MAX_OPTS+1)))==NULL) + if((opt=(char **)alloca(sizeof(char *)*(MAX_OPTS+1)))==NULL) allocfail(sizeof(char *)*(MAX_OPTS+1)); for(i=0;i<(MAX_OPTS+1);i++) - if((opt[i]=(char *)malloc(MAX_OPLN))==NULL) + if((opt[i]=(char *)alloca(MAX_OPLN))==NULL) allocfail(MAX_OPLN); i=0; @@ -671,7 +655,6 @@ int recycle_servers(scfg_t *cfg) while(1) { switch(uifc.list(WIN_MID|WIN_SAV,0,0,0,&i,0,"Recycle Servers",opt)) { case -1: - freeopt(opt); return(0); break; case 0: @@ -720,10 +703,10 @@ int edit_cfg(scfg_t *cfg) char cmd[1024]; char editcmd[1024]; - if((opt=(char **)malloc(sizeof(char *)*(MAX_OPTS+1)))==NULL) + if((opt=(char **)alloca(sizeof(char *)*(MAX_OPTS+1)))==NULL) allocfail(sizeof(char *)*(MAX_OPTS+1)); for(i=0;i<(MAX_OPTS+1);i++) - if((opt[i]=(char *)malloc(MAX_OPLN))==NULL) + if((opt[i]=(char *)alloca(MAX_OPLN))==NULL) allocfail(MAX_OPLN); i=0; @@ -750,7 +733,6 @@ int edit_cfg(scfg_t *cfg) while(1) { switch(uifc.list(WIN_MID|WIN_SAV,0,0,0,&i,0,"System Options",opt)) { case -1: - freeopt(opt); return(0); break; default: @@ -769,10 +751,10 @@ int edit_can(scfg_t *cfg) char cmd[1024]; char editcmd[1024]; - if((opt=(char **)malloc(sizeof(char *)*(MAX_OPTS+1)))==NULL) + if((opt=(char **)alloca(sizeof(char *)*(MAX_OPTS+1)))==NULL) allocfail(sizeof(char *)*(MAX_OPTS+1)); for(i=0;i<(MAX_OPTS+1);i++) - if((opt[i]=(char *)malloc(MAX_OPLN))==NULL) + if((opt[i]=(char *)alloca(MAX_OPLN))==NULL) allocfail(MAX_OPLN); i=0; @@ -791,7 +773,6 @@ int edit_can(scfg_t *cfg) while(1) { switch(uifc.list(WIN_MID|WIN_SAV,0,0,0,&i,0,"System Options",opt)) { case -1: - freeopt(opt); return(0); break; default: @@ -969,16 +950,16 @@ int main(int argc, char** argv) { exit(1); } - if((opt=(char **)malloc(sizeof(char *)*(MAX_OPTS+1)))==NULL) + if((opt=(char **)alloca(sizeof(char *)*(MAX_OPTS+1)))==NULL) allocfail(sizeof(char *)*(MAX_OPTS+1)); for(i=0;i<(MAX_OPTS+1);i++) - if((opt[i]=(char *)malloc(MAX_OPLN))==NULL) + if((opt[i]=(char *)alloca(MAX_OPLN))==NULL) allocfail(MAX_OPLN); - if((mopt=(char **)malloc(sizeof(char *)*MAX_OPTS))==NULL) + if((mopt=(char **)alloca(sizeof(char *)*MAX_OPTS))==NULL) allocfail(sizeof(char *)*MAX_OPTS); for(i=0;i<MAX_OPTS;i++) - if((mopt[i]=(char *)malloc(MAX_OPLN))==NULL) + if((mopt[i]=(char *)alloca(MAX_OPLN))==NULL) allocfail(MAX_OPLN); sprintf(title,"Synchronet UNIX Monitor %s-%s",revision,PLATFORM_DESC);