diff --git a/src/sbbs3/js_file.c b/src/sbbs3/js_file.c index bf71ec89f5784e0ab1e9507f845f769db5d20a88..3863d1e19a5b02ad2fad5bfabd4d03edd47801df 100644 --- a/src/sbbs3/js_file.c +++ b/src/sbbs3/js_file.c @@ -238,7 +238,7 @@ js_read(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) if(len<0) len=512; - if((buf=malloc(len+1))==NULL) + if((buf=alloca(len+1))==NULL) return(JS_TRUE); len = fread(buf,1,len,p->fp); @@ -257,7 +257,7 @@ js_read(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) if(p->uuencoded || p->b64encoded || p->yencoded) { uulen=len*2; - if((uubuf=malloc(uulen))==NULL) + if((uubuf=alloca(uulen))==NULL) return(JS_TRUE); if(p->uuencoded) uulen=uuencode(uubuf,uulen,buf,len); @@ -266,17 +266,12 @@ js_read(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) else uulen=b64_encode(uubuf,uulen,buf,len); if(uulen>=0) { - free(buf); buf=uubuf; len=uulen; - } else - free(uubuf); } str = JS_NewStringCopyN(cx, buf, len); - free(buf); - if(str==NULL) return(JS_FALSE); @@ -311,7 +306,7 @@ js_readln(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) return(JS_FALSE); } - if((buf=malloc(len))==NULL) + if((buf=alloca(len))==NULL) return(JS_TRUE); if(fgets(buf,len,p->fp)!=NULL) { @@ -329,8 +324,6 @@ js_readln(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) *rval = STRING_TO_JSVAL(js_str); /* _CrtDbgBreak from _heap_alloc_dbg */ } - free(buf); - return(JS_TRUE); } @@ -934,17 +927,15 @@ js_write(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) len = JS_GetStringLength(str); if((p->uuencoded || p->b64encoded || p->yencoded) - && len && (uubuf=malloc(len))!=NULL) { + && len && (uubuf=alloca(len))!=NULL) { if(p->uuencoded) len=uudecode(uubuf,len,cp,len); else if(p->yencoded) len=ydecode(uubuf,len,cp,len); else len=b64_decode(uubuf,len,cp,len); - if(len<0) { - free(uubuf); + if(len<0) return(JS_TRUE); - } cp=uubuf; } @@ -962,22 +953,18 @@ js_write(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) if(fwrite(cp,1,len,p->fp)==(size_t)len) { if(tlen>len) { len=tlen-len; - if((cp=malloc(len))==NULL) { - dbprintf(TRUE, p, "malloc failure of %u bytes", len); + if((cp=alloca(len))==NULL) { + dbprintf(TRUE, p, "alloca failure of %u bytes", len); return(JS_TRUE); } memset(cp,p->etx,len); fwrite(cp,1,len,p->fp); - free(cp); } dbprintf(FALSE, p, "wrote %u bytes",tlen); *rval = JSVAL_TRUE; } else dbprintf(TRUE, p, "write of %u bytes failed",len); - if(uubuf!=NULL) - free(uubuf); - return(JS_TRUE); }