diff --git a/src/sbbs3/js_global.c b/src/sbbs3/js_global.c index 7bee5ac2e23b4002c79cf604cc49978c925268c5..3a35b4a3e3240d69e89fc9f95841db4074877abf 100644 --- a/src/sbbs3/js_global.c +++ b/src/sbbs3/js_global.c @@ -2797,7 +2797,7 @@ js_kill(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { int32 pid=0; int32 sig=0; - int ds; + int ds=0; /* assumes success by default */ jsrefcount rc; if(JSVAL_IS_VOID(argv[0])) @@ -2811,7 +2811,8 @@ js_kill(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) JS_ValueToInt32(cx,argv[1],&pid); rc=JS_SUSPENDREQUEST(cx); - ds=kill(sig, pid); + if (kill(sig, pid) == -1) /* failure */ + ds = errno; JS_RESUMEREQUEST(cx, rc); JS_NewNumberValue(cx,ds,rval); @@ -3328,8 +3329,9 @@ static jsSyncMethodSpec js_global_functions[] = { }, {"kill", js_kill, 2, JSTYPE_NUMBER, JSDOCSTR("processid, signal") - ,JSDOCSTR("send a signal to a process, returns a value that should be " - "parsed via signal.js. Useful for checking procees ID validity.") + ,JSDOCSTR("send a signal to a system process, returns 0 on success, and " + "a non-zero errno value upon failure that is likely platform dependent." + " Useful for checking process ID validity (i.e., by sending signal 0.)") ,311 }, {"socket_select", js_socket_select, 0, JSTYPE_ARRAY, JSDOCSTR("[array of socket objects or descriptors] [,timeout=<tt>0</tt>] [,write=<tt>false</tt>]")