From 11b6c0de4114fa499bcffbda91d8cea9d3bdea03 Mon Sep 17 00:00:00 2001 From: Gireesh Punathil Date: Mon, 12 Mar 2018 14:02:40 +0530 Subject: [PATCH] child_process: define EACCES as a runtime error Access permission on the target child is currently thrown as an exception. Bring this under the runtime error definition, much like ENOENT and friends. PR-URL: https://github.com/nodejs/node/pull/19294 Fixes: https://github.com/nodejs/help/issues/990 Reviewed-By: James M Snell Reviewed-By: Prince John Wesley Reviewed-By: Colin Ihrig Reviewed-By: Ruben Bridgewater --- lib/internal/child_process.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/internal/child_process.js b/lib/internal/child_process.js index 3c8a314bf04..20ad9754ca7 100644 --- a/lib/internal/child_process.js +++ b/lib/internal/child_process.js @@ -33,6 +33,7 @@ const { isUint8Array } = require('internal/util/types'); const spawn_sync = process.binding('spawn_sync'); const { + UV_EACCES, UV_EAGAIN, UV_EINVAL, UV_EMFILE, @@ -315,7 +316,8 @@ ChildProcess.prototype.spawn = function(options) { var err = this._handle.spawn(options); // Run-time errors should emit an error, not throw an exception. - if (err === UV_EAGAIN || + if (err === UV_EACCES || + err === UV_EAGAIN || err === UV_EMFILE || err === UV_ENFILE || err === UV_ENOENT) {