report: improve signal name validation · nodejs/node@44a3acb (original) (raw)
2 files changed
lines changed
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,10 +1,9 @@ | ||
1 | 1 | 'use strict'; |
2 | -const { convertToValidSignal } = require('internal/util'); | |
3 | 2 | const { |
4 | 3 | ERR_INVALID_ARG_TYPE, |
5 | 4 | ERR_SYNTHETIC |
6 | 5 | } = require('internal/errors').codes; |
7 | -const { validateString } = require('internal/validators'); | |
6 | +const { validateSignalName, validateString } = require('internal/validators'); | |
8 | 7 | const nr = internalBinding('report'); |
9 | 8 | const report = { |
10 | 9 | writeReport(file, err) { |
@@ -47,8 +46,7 @@ const report = { | ||
47 | 46 | return nr.getSignal(); |
48 | 47 | }, |
49 | 48 | set signal(sig) { |
50 | -validateString(sig, 'signal'); | |
51 | -convertToValidSignal(sig); // Validate that the signal is recognized. | |
49 | +validateSignalName(sig, 'signal'); | |
52 | 50 | removeSignalHandler(); |
53 | 51 | addSignalHandler(sig); |
54 | 52 | nr.setSignal(sig); |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -68,7 +68,16 @@ if (!common.isWindows) { | ||
68 | 68 | }, { code: 'ERR_INVALID_ARG_TYPE' }); |
69 | 69 | common.expectsError(() => { |
70 | 70 | process.report.signal = 'foo'; |
71 | -}, { code: 'ERR_UNKNOWN_SIGNAL' }); | |
71 | +}, { | |
72 | +code: 'ERR_UNKNOWN_SIGNAL', | |
73 | +message: 'Unknown signal: foo' | |
74 | +}); | |
75 | +common.expectsError(() => { | |
76 | +process.report.signal = 'sigusr1'; | |
77 | +}, { | |
78 | +code: 'ERR_UNKNOWN_SIGNAL', | |
79 | +message: 'Unknown signal: sigusr1 (signals must use all capital letters)' | |
80 | +}); | |
72 | 81 | assert.strictEqual(process.report.signal, 'SIGUSR2'); |
73 | 82 | process.report.signal = 'SIGUSR1'; |
74 | 83 | assert.strictEqual(process.report.signal, 'SIGUSR1'); |