diff --git a/src/sbbs3/js_global.c b/src/sbbs3/js_global.c index 6cfcc05e8dc8911ea2fb8824aa51e02a9fbb98e2..9c1f49908e976e7d06f0332c885e255840efb510 100644 --- a/src/sbbs3/js_global.c +++ b/src/sbbs3/js_global.c @@ -589,6 +589,7 @@ js_lfexpand(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) if((inbuf=js_ValueToStringBytes(cx, argv[0], NULL))==NULL) return(JS_FALSE); + /* TODO: This could probobly be too big for alloca() */ if((outbuf=(char*)malloc((strlen(inbuf)*2)+1))==NULL) return(JS_FALSE); @@ -740,6 +741,7 @@ js_word_wrap(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) return(JS_FALSE); outbuf_size=strlen(inbuf)*3+1; + /* TODO: This could probobly be too big for alloca() */ if((outbuf=(char*)malloc(outbuf_size))==NULL) return(JS_FALSE); outp=outbuf; @@ -753,11 +755,11 @@ js_word_wrap(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) if(argc>3 && JSVAL_IS_BOOLEAN(argv[3])) handle_quotes=JSVAL_TO_BOOLEAN(argv[3]); - if((linebuf=(char*)malloc((len*2)+2))==NULL) /* room for ^A codes ToDo: This isn't actually "enough" room */ + if((linebuf=(char*)alloca((len*2)+2))==NULL) /* room for ^A codes ToDo: This isn't actually "enough" room */ return(JS_FALSE); if(handle_quotes) { - if((prefix=(char *)malloc((len*2)+2))==NULL) /* room for ^A codes ToDo: This isn't actually "enough" room */ + if((prefix=(char *)alloca((len*2)+2))==NULL) /* room for ^A codes ToDo: This isn't actually "enough" room */ return(JS_FALSE); prefix[0]=0; } @@ -964,8 +966,6 @@ js_word_wrap(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) js_str = JS_NewStringCopyZ(cx, outbuf); free(outbuf); - if(prefix) - free(prefix); if(js_str==NULL) return(JS_FALSE); @@ -996,6 +996,7 @@ js_quote_msg(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) if(argc>2) prefix=js_ValueToStringBytes(cx, argv[2], NULL); + /* TODO: This could probobly be too big for alloca() */ if((outbuf=(char*)malloc((strlen(inbuf)*strlen(prefix))+1))==NULL) return(JS_FALSE); @@ -1003,7 +1004,7 @@ js_quote_msg(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) if(len<=0) return(JS_FALSE); - if((linebuf=(char*)malloc(len*2+2))==NULL) /* (Hopefully) Room for ^A codes. ToDo */ + if((linebuf=(char*)alloca(len*2+2))==NULL) /* (Hopefully) Room for ^A codes. ToDo */ return(JS_FALSE); outbuf[0]=0; @@ -1323,6 +1324,7 @@ js_html_encode(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rva ansi=ctrl_a; } + /* TODO: This could probobly be too big for alloca() */ if((tmpbuf=(char*)malloc((strlen(inbuf)*10)+1))==NULL) return(JS_FALSE); @@ -1400,6 +1402,7 @@ js_html_encode(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rva obsize=(strlen(tmpbuf)+(esccount+1)*MAX_COLOR_STRING)+1; if(obsize<2048) obsize=2048; + /* TODO: This could probobly be too big for alloca() */ if((outbuf=(uchar*)malloc(obsize))==NULL) { free(tmpbuf); @@ -1901,6 +1904,7 @@ js_html_decode(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rva if((inbuf=js_ValueToStringBytes(cx, argv[0], NULL))==NULL) return(JS_FALSE); + /* TODO: This could probobly be too big for alloca() */ if((outbuf=(char*)malloc(strlen(inbuf)+1))==NULL) return(JS_FALSE); @@ -2002,6 +2006,8 @@ js_b64_encode(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval return(JS_FALSE); len=(inbuf_len*10)+1; + + /* TODO: This could probobly be too big for alloca() */ if((outbuf=(char*)malloc(len))==NULL) return(JS_FALSE); @@ -2039,6 +2045,8 @@ js_b64_decode(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval return(JS_FALSE); len=strlen(inbuf)+1; + + /* TODO: This could probobly be too big for alloca() */ if((outbuf=(char*)malloc(len))==NULL) return(JS_FALSE); @@ -2648,7 +2656,7 @@ js_socket_select(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *r if((rarray = JS_NewArrayObject(cx, 0, NULL))==NULL) return(JS_FALSE); - if((index=(SOCKET *)malloc(sizeof(SOCKET)*limit))==NULL) + if((index=(SOCKET *)alloca(sizeof(SOCKET)*limit))==NULL) return(JS_FALSE); FD_ZERO(&socket_set); @@ -2679,7 +2687,6 @@ js_socket_select(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *r break; } } - free(index); *rval = OBJECT_TO_JSVAL(rarray);