1a27ecdad4
NodeJS implements `child_process.exec` by simply passing the whole command to `child_process.execFile`. See: - https://github.com/nodejs/node/blob/master/lib/child_process.js#L90 - https://github.com/nodejs/node/blob/master/lib/child_process.js#L99 Electron patches `child_process.execFile` to add support for `asar` archives by injecting logic that extracts the required files from the `asar` to a temporary location before delegating the work to the original `child_process.execFile`. In order to decide whether to inject the custom `asar` extracting logic, Electron makes use of a helper function called `splitPath()`. See: - https://github.com/electron/electron/blob/master/lib/common/asar.js#L37 If the first argument of the returned array equals `true`, means that the path is considered to be an `asar` archive, and thus the extraction logic takes place. The problem is that if the command passed to `child_process.execFile` *contains* a path to an asar archive, padded with other commands/arguments, `splitPath()` will consider it to be an `asar` archive, and will try to extract it, throwing a rightfully `Invalid package` error. Fixes: https://github.com/electron/electron/issues/5571 Signed-off-by: Juan Cruz Viotti <jviottidc@gmail.com> |
||
---|---|---|
.. | ||
fixtures | ||
static | ||
api-app-spec.js | ||
api-auto-updater-spec.js | ||
api-browser-window-spec.js | ||
api-clipboard-spec.js | ||
api-crash-reporter-spec.js | ||
api-debugger-spec.js | ||
api-deprecations-spec.js | ||
api-desktop-capturer-spec.js | ||
api-ipc-spec.js | ||
api-menu-spec.js | ||
api-native-image-spec.js | ||
api-protocol-spec.js | ||
api-screen-spec.js | ||
api-session-spec.js | ||
api-web-frame-spec.js | ||
api-web-request-spec.js | ||
asar-spec.js | ||
chromium-spec.js | ||
modules-spec.js | ||
node-spec.js | ||
package.json | ||
webview-spec.js |