diff --git a/src/sbbs3/js_bbs.cpp b/src/sbbs3/js_bbs.cpp index f3557c66ed02f5ad22e5b1f050146be1b1b45d16..0f6064515b7fdae0e415b9b3be430e0eaf792e8f 100644 --- a/src/sbbs3/js_bbs.cpp +++ b/src/sbbs3/js_bbs.cpp @@ -1476,7 +1476,7 @@ js_chkpass(JSContext *cx, uintN argc, jsval *arglist) if(!js_argc(cx, argc, 1)) return(JS_FALSE); - if(JSVAL_IS_BOOLEAN(argv[1])) + if(argc > 1 && JSVAL_IS_BOOLEAN(argv[1])) unique = JSVAL_TO_BOOLEAN(argv[1]); JSString* str=JS_ValueToString(cx,argv[0]); @@ -1752,7 +1752,7 @@ js_expand_atcodes(JSContext* cx, uintN argc, jsval* arglist) if (instr == NULL) return JS_FALSE; - if(JSVAL_IS_OBJECT(argv[1]) && !JSVAL_IS_NULL(argv[1])) { + if(argc > 1 && (JSVAL_IS_OBJECT(argv[1]) && !JSVAL_IS_NULL(argv[1]))) { JSObject* hdrobj; if((hdrobj = JSVAL_TO_OBJECT(argv[1])) == NULL) { free(instr); @@ -2288,13 +2288,15 @@ js_batch_remove(JSContext *cx, uintN argc, jsval *arglist) rc=JS_SUSPENDREQUEST(cx); int result = 0; - if(JSVAL_IS_STRING(argv[1])) { - char* cstr{}; - JSVALUE_TO_MSTRING(cx, argv[1], cstr, NULL); - result = batch_file_remove(&sbbs->cfg, sbbs->useron.number, xfer_type, cstr); - free(cstr); - } else if(JSVAL_IS_NUMBER(argv[1])) { - result = batch_file_remove_n(&sbbs->cfg, sbbs->useron.number, xfer_type, JSVAL_TO_INT(argv[1])); + if(argc > 1) { + if(JSVAL_IS_STRING(argv[1])) { + char* cstr{}; + JSVALUE_TO_MSTRING(cx, argv[1], cstr, NULL); + result = batch_file_remove(&sbbs->cfg, sbbs->useron.number, xfer_type, cstr); + free(cstr); + } else if(JSVAL_IS_NUMBER(argv[1])) { + result = batch_file_remove_n(&sbbs->cfg, sbbs->useron.number, xfer_type, JSVAL_TO_INT(argv[1])); + } } JS_RESUMEREQUEST(cx, rc); @@ -3065,7 +3067,7 @@ js_upload_file(JSContext *cx, uintN argc, jsval *arglist) return(JS_TRUE); } - if(JSVAL_IS_STRING(argv[1])) { + if(argc > 1 && JSVAL_IS_STRING(argv[1])) { JSString* js_str; if((js_str = JS_ValueToString(cx, argv[1]))==NULL) return JS_FALSE;