build: disable V8 untrusted code mitigations

Refs: https://github.com/v8/v8/wiki/Untrusted-code-mitigations

PR-URL: https://github.com/nodejs/node/pull/19222
Reviewed-By: Fedor Indutny <fedor.indutny@gmail.com>
Reviewed-By: Yang Guo <yangguo@chromium.org>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Benedikt Meurer <benedikt.meurer@gmail.com>
Reviewed-By: Gus Caplan <me@gus.host>
Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com>
This commit is contained in:
Michaël Zasso 2018-03-08 10:24:43 +01:00
parent cac4da05ad
commit c6ae8a2810
No known key found for this signature in database
GPG Key ID: 770F7A9A5AE15600
2 changed files with 22 additions and 0 deletions

View File

@ -35,6 +35,10 @@
# Don't bake anything extra into the snapshot.
'v8_use_external_startup_data%': 0,
# Disable V8 untrusted code mitigations.
# See https://github.com/v8/v8/wiki/Untrusted-code-mitigations
'v8_untrusted_code_mitigations': 'false',
# Some STL containers (e.g. std::vector) do not preserve ABI compatibility
# between debug and non-debug mode.
'disable_glibcxx_debug': 1,

View File

@ -0,0 +1,18 @@
'use strict';
require('../common');
const assert = require('assert');
const { execFileSync } = require('child_process');
// This test checks that untrusted code mitigations in V8 are disabled
// by default.
const v8Options = execFileSync(process.execPath, ['--v8-options']).toString();
const untrustedFlag = v8Options.indexOf('--untrusted-code-mitigations');
assert.notStrictEqual(untrustedFlag, -1);
const nextFlag = v8Options.indexOf('--', untrustedFlag + 2);
const slice = v8Options.substring(untrustedFlag, nextFlag);
assert(slice.match(/type: bool default: false/));