summaryrefslogtreecommitdiff
path: root/lib/dgram.js
diff options
context:
space:
mode:
authorClaudio Rodriguez <cjrodr@yahoo.com>2016-08-08 10:32:50 +0100
committerClaudio Rodriguez <cjrodr@yahoo.com>2016-09-08 22:21:31 +0100
commite9b6fbbf170d4ef0031d3194d4c0148269037030 (patch)
tree9278ec7243607b242a0ae99c1efa8eada60e1dba /lib/dgram.js
parenta634554fca562e82d326967b809325f8ee5d3acd (diff)
downloadandroid-node-v8-e9b6fbbf170d4ef0031d3194d4c0148269037030.tar.gz
android-node-v8-e9b6fbbf170d4ef0031d3194d4c0148269037030.tar.bz2
android-node-v8-e9b6fbbf170d4ef0031d3194d4c0148269037030.zip
dgram: prefer strict equality, type validation
- Enforces strict comparisons in dgram - bindState should always be strictly equal to one of the defined constant states, and newHandle type is a string. - Check that the argument `type` in createSocket is not null when it is of type 'object', before using its `type` property. - Adds a test to check dgram.createSocket is properly validating its `type` argument. PR-URL: https://github.com/nodejs/node/pull/8011 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Yorkie Liu <yorkiefixer@gmail.com> Reviewed-By: Jackson Tian <shvyo1987@gmail.com>
Diffstat (limited to 'lib/dgram.js')
-rw-r--r--lib/dgram.js12
1 files changed, 6 insertions, 6 deletions
diff --git a/lib/dgram.js b/lib/dgram.js
index 9037666d17..3a54c3c7f1 100644
--- a/lib/dgram.js
+++ b/lib/dgram.js
@@ -39,13 +39,13 @@ function lookup6(address, callback) {
function newHandle(type) {
- if (type == 'udp4') {
+ if (type === 'udp4') {
const handle = new UDP();
handle.lookup = lookup4;
return handle;
}
- if (type == 'udp6') {
+ if (type === 'udp6') {
const handle = new UDP();
handle.lookup = lookup6;
handle.bind = handle.bind6;
@@ -78,7 +78,7 @@ exports._createSocketHandle = function(address, port, addressType, fd, flags) {
function Socket(type, listener) {
EventEmitter.call(this);
- if (typeof type === 'object') {
+ if (type !== null && typeof type === 'object') {
var options = type;
type = options.type;
}
@@ -137,7 +137,7 @@ Socket.prototype.bind = function(port_ /*, address, callback*/) {
self._healthCheck();
- if (this._bindState != BIND_STATE_UNBOUND)
+ if (this._bindState !== BIND_STATE_UNBOUND)
throw new Error('Socket is already bound');
this._bindState = BIND_STATE_BINDING;
@@ -346,7 +346,7 @@ Socket.prototype.send = function(buffer,
self._healthCheck();
- if (self._bindState == BIND_STATE_UNBOUND)
+ if (self._bindState === BIND_STATE_UNBOUND)
self.bind({port: 0, exclusive: true}, null);
if (list.length === 0)
@@ -354,7 +354,7 @@ Socket.prototype.send = function(buffer,
// If the socket hasn't been bound yet, push the outbound packet onto the
// send queue and send after binding is complete.
- if (self._bindState != BIND_STATE_BOUND) {
+ if (self._bindState !== BIND_STATE_BOUND) {
enqueue(self, self.send.bind(self, list, port, address, callback));
return;
}