diff --git a/src/sbbs3/js_com.c b/src/sbbs3/js_com.c index ea3959bafc9f6b3f82f6bc164affec55c1a81346..4980ad1e345e3bdc663d081154abfce6bb95d04d 100644 --- a/src/sbbs3/js_com.c +++ b/src/sbbs3/js_com.c @@ -182,6 +182,9 @@ js_send(JSContext *cx, uintN argc, jsval *arglist) return(JS_FALSE); } + if(!js_argc(cx, argc, 1)) + return JS_FALSE; + JS_SET_RVAL(cx, arglist, JSVAL_FALSE); JSVALUE_TO_STRING(cx, argv[0], cp, &len); @@ -218,6 +221,9 @@ js_sendfile(JSContext *cx, uintN argc, jsval *arglist) return(JS_FALSE); } + if(!js_argc(cx, argc, 1)) + return JS_FALSE; + JS_SET_RVAL(cx, arglist, JSVAL_FALSE); JSVALUE_TO_STRING(cx, argv[0], fname, NULL); @@ -278,14 +284,14 @@ js_sendbin(JSContext *cx, uintN argc, jsval *arglist) return(JS_FALSE); } - if(argc && argv[0]!=JSVAL_VOID) { - if(!JS_ValueToInt32(cx,argv[0],&val)) - return JS_FALSE; - } - if(argc>1 && argv[1]!=JSVAL_VOID) { - if(!JS_ValueToInt32(cx,argv[1],(int32*)&size)) - return JS_FALSE; - } + if(!js_argc(cx, argc, 1)) + return JS_FALSE; + + if(!JS_ValueToInt32(cx,argv[0],&val)) + return JS_FALSE; + + if(!JS_ValueToInt32(cx,argv[1],(int32*)&size)) + return JS_FALSE; rc=JS_SUSPENDREQUEST(cx); switch(size) { @@ -342,12 +348,12 @@ js_recv(JSContext *cx, uintN argc, jsval *arglist) return(JS_FALSE); } - if(argc && argv[0]!=JSVAL_VOID) { + if(argc) { if(!JS_ValueToInt32(cx,argv[0],&len)) return JS_FALSE; } - if(argc>1 && argv[1]!=JSVAL_VOID) { + if(argc>1) { if(!JS_ValueToInt32(cx,argv[1],&timeout)) return JS_FALSE; } @@ -399,7 +405,7 @@ js_recvline(JSContext *cx, uintN argc, jsval *arglist) return(JS_FALSE); } - if(argc && argv[0]!=JSVAL_VOID) { + if(argc) { if(!JS_ValueToInt32(cx,argv[0],&len)) return JS_FALSE; } @@ -409,7 +415,7 @@ js_recvline(JSContext *cx, uintN argc, jsval *arglist) return(JS_FALSE); } - if(argc>1 && argv[1]!=JSVAL_VOID) { + if(argc>1) { if(!JS_ValueToInt32(cx,argv[1],&timeout)) return JS_FALSE; } @@ -458,12 +464,12 @@ js_recvbin(JSContext *cx, uintN argc, jsval *arglist) return(JS_FALSE); } - if(argc && argv[0]!=JSVAL_VOID) { + if(argc) { if(!JS_ValueToInt32(cx,argv[0],(int32*)&size)) return JS_FALSE; } - if(argc>1 && argv[1]!=JSVAL_VOID) { + if(argc>1) { if(!JS_ValueToInt32(cx,argv[1],&timeout)); return JS_FALSE; } diff --git a/src/sbbs3/js_conio.c b/src/sbbs3/js_conio.c index 405a0892781d4f5f93b18c018c88b2bcd2d25b18..08419d9095be8fffa4e1130a9e6dbf507d927f36 100644 --- a/src/sbbs3/js_conio.c +++ b/src/sbbs3/js_conio.c @@ -510,7 +510,7 @@ js_conio_gotoxy(JSContext *cx, uintN argc, jsval *arglist) int32 x,y; jsrefcount rc; - if(argc==2 && JSVAL_IS_NUMBER(argv[0]) && JS_ValueToInt32(cx,argv[0],&x) + if(argc >= 2 && JSVAL_IS_NUMBER(argv[0]) && JS_ValueToInt32(cx,argv[0],&x) && JSVAL_IS_NUMBER(argv[1]) && JS_ValueToInt32(cx,argv[1],&y)) { rc=JS_SUSPENDREQUEST(cx); gotoxy(x,y); @@ -518,6 +518,7 @@ js_conio_gotoxy(JSContext *cx, uintN argc, jsval *arglist) JS_RESUMEREQUEST(cx, rc); return(JS_TRUE); } + JS_ReportError(cx, "Insufficient Arguments"); return(JS_FALSE); }