GeezerVison is showing github.com — dgram: check udp buffer size to avoid fd leak · nodejs/node@7ddbf94
File tree
Expand file treeCollapse file tree
Open diff view settings
Expand file treeCollapse file tree
Open diff view settings
Collapse file
Copy file name to clipboardExpand all lines: lib/dgram.js +7Lines changed: 7 additions & 0 deletions | Original file line number | Diff line number | Diff line change |
|---|
@@ -59,6 +59,7 @@ const { |
59 | 59 | validateString, |
60 | 60 | validateNumber, |
61 | 61 | validatePort, |
| 62 | + validateUint32, |
62 | 63 | } = require('internal/validators'); |
63 | 64 | const { Buffer } = require('buffer'); |
64 | 65 | const { deprecate, guessHandleType, promisify, SymbolAsyncDispose, SymbolDispose } = require('internal/util'); |
@@ -108,6 +109,12 @@ function Socket(type, listener) { |
108 | 109 | options = type; |
109 | 110 | type = options.type; |
110 | 111 | lookup = options.lookup; |
| 112 | + if (options.recvBufferSize) { |
| 113 | + validateUint32(options.recvBufferSize, 'options.recvBufferSize'); |
| 114 | + } |
| 115 | + if (options.sendBufferSize) { |
| 116 | + validateUint32(options.sendBufferSize, 'options.sendBufferSize'); |
| 117 | + } |
111 | 118 | recvBufferSize = options.recvBufferSize; |
112 | 119 | sendBufferSize = options.sendBufferSize; |
113 | 120 | } |
|
Collapse file
Copy file name to clipboardExpand all lines: test/parallel/test-dgram-createSocket-type.js +13Lines changed: 13 additions & 0 deletions | Original file line number | Diff line number | Diff line change |
|---|
@@ -59,3 +59,16 @@ validTypes.forEach((validType) => { |
59 | 59 | socket.close(); |
60 | 60 | })); |
61 | 61 | } |
| 62 | + |
| 63 | +{ |
| 64 | + [ |
| 65 | + { type: 'udp4', recvBufferSize: 'invalid' }, |
| 66 | + { type: 'udp4', sendBufferSize: 'invalid' }, |
| 67 | + ].forEach((options) => { |
| 68 | + assert.throws(() => { |
| 69 | + dgram.createSocket(options); |
| 70 | + }, { |
| 71 | + code: 'ERR_INVALID_ARG_TYPE', |
| 72 | + }); |
| 73 | + }); |
| 74 | +} |