src: fix NODE_OPTIONS parsing bug
I, uhm, might have messed up by using a `substr(start, end)` signature when `std::string` actually uses `substr(start, len)`. Fix that. Fixes: https://github.com/nodejs/node/issues/22526 Refs: https://github.com/nodejs/node/pull/22392 PR-URL: https://github.com/nodejs/node/pull/22529 Reviewed-By: Gus Caplan <me@gus.host> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Refael Ackermann <refack@gmail.com> Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
This commit is contained in:
parent
e9876fd4f1
commit
1c05b16c9e
@ -2922,7 +2922,8 @@ void Init(std::vector<std::string>* argv,
|
||||
index = node_options.find(' ', index + 1);
|
||||
if (index - prev_index == 1) continue;
|
||||
|
||||
const std::string option = node_options.substr(prev_index + 1, index);
|
||||
const std::string option = node_options.substr(
|
||||
prev_index + 1, index - prev_index - 1);
|
||||
if (!option.empty())
|
||||
env_argv.emplace_back(std::move(option));
|
||||
} while (index != std::string::npos);
|
||||
|
@ -14,7 +14,9 @@ const tmpdir = require('../common/tmpdir');
|
||||
tmpdir.refresh();
|
||||
process.chdir(tmpdir.path);
|
||||
|
||||
expect(`-r ${require.resolve('../fixtures/printA.js')}`, 'A\nB\n');
|
||||
const printA = require.resolve('../fixtures/printA.js');
|
||||
expect(`-r ${printA}`, 'A\nB\n');
|
||||
expect(`-r ${printA} -r ${printA}`, 'A\nB\n');
|
||||
expect('--no-deprecation', 'B\n');
|
||||
expect('--no-warnings', 'B\n');
|
||||
expect('--trace-warnings', 'B\n');
|
||||
@ -29,6 +31,9 @@ expect('--v8-pool-size=10', 'B\n');
|
||||
expect('--trace-event-categories node', 'B\n');
|
||||
// eslint-disable-next-line no-template-curly-in-string
|
||||
expect('--trace-event-file-pattern {pid}-${rotation}.trace_events', 'B\n');
|
||||
// eslint-disable-next-line no-template-curly-in-string
|
||||
expect('--trace-event-file-pattern {pid}-${rotation}.trace_events ' +
|
||||
'--trace-event-categories node.async_hooks', 'B\n');
|
||||
|
||||
if (!common.isWindows) {
|
||||
expect('--perf-basic-prof', 'B\n');
|
||||
|
Loading…
x
Reference in New Issue
Block a user