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');