diff --git a/src/sbbs3/ftpsrvr.c b/src/sbbs3/ftpsrvr.c index b77f09a1843ef3f411bf91f31acd67811c2d00e2..8254cfb716051e1948c2892adcd68f9e1cc96856 100644 --- a/src/sbbs3/ftpsrvr.c +++ b/src/sbbs3/ftpsrvr.c @@ -680,6 +680,7 @@ BOOL js_generate_index(JSContext* js_cx, JSObject* parent, strcat(spath,".js"); if(!fexist(spath)) { + JS_RESUMEREQUEST(js_cx, rc); lprintf(LOG_ERR,"%04d !HTML JavaScript (%s) doesn't exist",sock,spath); break; } diff --git a/src/sbbs3/js_bbs.cpp b/src/sbbs3/js_bbs.cpp index d2ca7d2bbeddac65d3aaf57e8ed023afeb6fbfc0..73a77223b9118998c89934d91516c184577e77f5 100644 --- a/src/sbbs3/js_bbs.cpp +++ b/src/sbbs3/js_bbs.cpp @@ -1755,6 +1755,7 @@ js_recvfile(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) char* p; char* cstr; jsrefcount rc; + /* Deuce: please explain the next 2 lines: */ rc=JS_SUSPENDREQUEST(cx); JS_RESUMEREQUEST(cx, rc); diff --git a/src/sbbs3/js_file.c b/src/sbbs3/js_file.c index c076602fad787127336b65194698294448602e22..6612bba5530e73753c8b39a437e28b41bdbe06ef 100644 --- a/src/sbbs3/js_file.c +++ b/src/sbbs3/js_file.c @@ -403,9 +403,9 @@ js_readln(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) JS_RESUMEREQUEST(cx, rc); if((js_str=JS_NewStringCopyZ(cx,buf))!=NULL) /* exception here Feb-12-2005 */ *rval = STRING_TO_JSVAL(js_str); /* _CrtDbgBreak from _heap_alloc_dbg */ - rc=JS_SUSPENDREQUEST(cx); + } else { + JS_RESUMEREQUEST(cx, rc); } - JS_RESUMEREQUEST(cx, rc); return(JS_TRUE); } @@ -1174,6 +1174,7 @@ js_write(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) if(tlen>len) { len=tlen-len; if((cp=malloc(len))==NULL) { + JS_RESUMEREQUEST(cx, rc); FREE_AND_NULL(uubuf); dbprintf(TRUE, p, "malloc failure of %u bytes", len); return(JS_TRUE); diff --git a/src/sbbs3/js_global.c b/src/sbbs3/js_global.c index 55d4c6fd0af71b0a1e9e88f059b2e8d6df3d3bda..70306b49425d95f60f990fc74c04aa2f34ddf33a 100644 --- a/src/sbbs3/js_global.c +++ b/src/sbbs3/js_global.c @@ -499,6 +499,7 @@ js_crc32(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) size_t len; uint32_t cs; jsrefcount rc; + /* Deuce: please explain the next 2 lines: */ rc=JS_SUSPENDREQUEST(cx); JS_RESUMEREQUEST(cx, rc); @@ -529,7 +530,7 @@ js_chksum(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) if((p=js_ValueToStringBytes(cx, argv[0], &len))==NULL) return(JS_FALSE); - rc=JS_SUSPENDREQUEST(cx); + rc=JS_SUSPENDREQUEST(cx); /* Deuce: Is this really necessary? */ while(len--) sum+=*(p++); JS_RESUMEREQUEST(cx, rc); @@ -2567,6 +2568,7 @@ js_cfgfname(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) char result[MAX_PATH+1]; char* cstr; jsrefcount rc; + /* Deuce: please explain next 2 lines: */ rc=JS_SUSPENDREQUEST(cx); JS_RESUMEREQUEST(cx, rc); diff --git a/src/sbbs3/js_socket.c b/src/sbbs3/js_socket.c index f6cbf167e09468336e7b7198174c4030c010a1de..6e596446bc6db86e265658b087195da08a53b18e 100644 --- a/src/sbbs3/js_socket.c +++ b/src/sbbs3/js_socket.c @@ -710,6 +710,8 @@ js_recvfrom(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) break; } + JS_RESUMEREQUEST(cx, rc); + if(rd!=len) { p->last_error=ERROR_VALUE; return(JS_TRUE); @@ -724,12 +726,11 @@ js_recvfrom(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) rc=JS_SUSPENDREQUEST(cx); len = recvfrom(p->sock,buf,len,0,(SOCKADDR*)&addr,&addrlen); + JS_RESUMEREQUEST(cx, rc); if(len<0) { p->last_error=ERROR_VALUE; - JS_RESUMEREQUEST(cx, rc); return(JS_TRUE); } - JS_RESUMEREQUEST(cx, rc); buf[len]=0; str = JS_NewStringCopyN(cx, buf, len); diff --git a/src/sbbs3/js_system.c b/src/sbbs3/js_system.c index 6409389538da9f49a161c7b61e4ad2636b1c044c..3c9715d75dd56997a5bd46636445b386654000b9 100644 --- a/src/sbbs3/js_system.c +++ b/src/sbbs3/js_system.c @@ -818,11 +818,10 @@ js_matchuserdata(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *r JS_ValueToInt32(cx,argv[0],&offset); rc=JS_SUSPENDREQUEST(cx); - if((len=user_rec_len(offset))<0) { - JS_RESUMEREQUEST(cx, rc); - return(JS_FALSE); - } + len=user_rec_len(offset); JS_RESUMEREQUEST(cx, rc); + if(len<0) + return(JS_FALSE); if((js_str=JS_ValueToString(cx, argv[1]))==NULL) { *rval = INT_TO_JSVAL(0); @@ -1183,11 +1182,10 @@ js_get_node_message(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval node_num=1; rc=JS_SUSPENDREQUEST(cx); - if((buf=getnmsg(cfg,node_num))==NULL) { - JS_RESUMEREQUEST(cx, rc); - return(JS_TRUE); - } + buf=getnmsg(cfg,node_num); JS_RESUMEREQUEST(cx, rc); + if(buf==NULL) + return(JS_TRUE); js_str=JS_NewStringCopyZ(cx, buf); free(buf); @@ -1247,11 +1245,10 @@ js_get_telegram(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rv usernumber=1; rc=JS_SUSPENDREQUEST(cx); - if((buf=getsmsg(cfg,usernumber))==NULL) { - JS_RESUMEREQUEST(cx, rc); - return(JS_TRUE); - } + buf=getsmsg(cfg,usernumber); JS_RESUMEREQUEST(cx, rc); + if(buf==NULL) + return(JS_TRUE); js_str=JS_NewStringCopyZ(cx, buf); free(buf); diff --git a/src/sbbs3/jsexec.c b/src/sbbs3/jsexec.c index f449336478bb8e08848325d02f1f6bf1d546f78d..ee3aee82e4e1d190f6e706a9f15981046f2c14e7 100644 --- a/src/sbbs3/jsexec.c +++ b/src/sbbs3/jsexec.c @@ -8,7 +8,7 @@ * @format.tab-size 4 (Plain Text/Source Code File Header) * * @format.use-tabs true (see http://www.synchro.net/ptsc_hdr.html) * * * - * Copyright 2007 Rob Swindell - http://www.synchro.net/copyright.html * + * Copyright 2008 Rob Swindell - http://www.synchro.net/copyright.html * * * * This program is free software; you can redistribute it and/or * * modify it under the terms of the GNU General Public License * @@ -473,8 +473,10 @@ js_prompt(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) instr[0]=0; rc=JS_SUSPENDREQUEST(cx); - if(!fgets(instr,sizeof(instr),stdin)) + if(!fgets(instr,sizeof(instr),stdin)) { + JS_RESUMEREQUEST(cx, rc); return(JS_TRUE); + } JS_RESUMEREQUEST(cx, rc); if((str=JS_NewStringCopyZ(cx, truncnl(instr)))==NULL)