fix: ensure child_process.fork() doesn't modify main process env (#19845)

This commit is contained in:
Shelley Vohr
2019-08-23 12:01:46 -07:00
committed by Samuel Attard
parent ce502b19ba
commit 5e33a5e778
2 changed files with 8 additions and 9 deletions

View File

@@ -6,11 +6,11 @@ Subject: Inherit ELECTRON_CRASHPAD_PIPE_NAME in child process
This is required for crashReporter to work correctly in node process.
diff --git a/lib/child_process.js b/lib/child_process.js
index 8934a90f8d5c0557689eba80512802a38a8072ec..a60985173b5b1b7937cd32e69f5cce2128b5af66 100644
index e489b75262928c5c3ff53676fc49e7005df43376..6d2b0a5448957325e7df330e0b26c96c4100a429 100644
--- a/lib/child_process.js
+++ b/lib/child_process.js
@@ -108,6 +108,10 @@ function fork(modulePath /* , args, options */) {
@@ -107,6 +107,10 @@ function fork(modulePath /* , args, options */) {
options.env = Object.create(options.env || process.env)
options.env.ELECTRON_RUN_AS_NODE = 1;
+ if (process.platform === 'win32') {

View File

@@ -7,17 +7,16 @@ Subject: refactor: alter child_process.fork to use execute script with
When forking a child script, we setup a special environment to make the Electron binary run like the upstream node. On Mac, we use the helper app as node binary.
diff --git a/lib/child_process.js b/lib/child_process.js
index 66be7611dc958721aa67603396ac9dcc0b9737b0..8934a90f8d5c0557689eba80512802a38a8072ec 100644
index 66be7611dc958721aa67603396ac9dcc0b9737b0..e489b75262928c5c3ff53676fc49e7005df43376 100644
--- a/lib/child_process.js
+++ b/lib/child_process.js
@@ -102,6 +102,16 @@ function fork(modulePath /* , args, options */) {
@@ -102,6 +102,15 @@ function fork(modulePath /* , args, options */) {
throw new ERR_CHILD_PROCESS_IPC_REQUIRED('options.stdio');
}
+ if (!options.env) {
+ options.env = Object.create(process.env);
+ }
+
+ // When forking a child script, we setup a special environment to make
+ // the electron binary run like upstream Node.js
+ options.env = Object.create(options.env || process.env)
+ options.env.ELECTRON_RUN_AS_NODE = 1;
+
+ if (!options.execPath && process.type && process.platform == 'darwin') {