mirror of
https://github.com/nodejs/node.git
synced 2024-11-21 10:59:27 +00:00
5116a6a9b4
Use a fixed random seed to ensure that the generated sources are identical across runs. The final node binary still reseeds itself on start-up so there should be no security implications caused by predictable random numbers (e.g., `Math.random()`, ASLR, the hash seed, etc.) Fixes: https://github.com/nodejs/node/issues/29108 PR-URL: https://github.com/nodejs/node/pull/29142 Reviewed-By: Gus Caplan <me@gus.host> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net>
18 lines
649 B
JavaScript
18 lines
649 B
JavaScript
'use strict';
|
|
|
|
require('../common');
|
|
const assert = require('assert');
|
|
const { spawnSync } = require('child_process');
|
|
|
|
const results = new Set();
|
|
for (let i = 0; i < 10; i++) {
|
|
const result = spawnSync(process.execPath, ['-p', 'Math.random()']);
|
|
assert.strictEqual(result.status, 0);
|
|
results.add(result.stdout.toString());
|
|
}
|
|
// It's theoretically possible if _very_ unlikely to see some duplicates.
|
|
// Therefore, don't expect that the size of the set is exactly 10 but do
|
|
// assume it's > 1 because if you get 10 duplicates in a row you should
|
|
// go out real quick and buy some lottery tickets, you lucky devil you!
|
|
assert(results.size > 1);
|