From adf1ed01463a66043ab8e912742f0f1765b45bfd Mon Sep 17 00:00:00 2001 From: Vse Mozhet Byt Date: Wed, 8 Feb 2017 16:02:33 +0200 Subject: [PATCH] dgram: fix possibly deoptimizing use of arguments This commit adds a guard against an out of bounds access of arguments, and replaces another use of arguments with a named function parameter. Refs: https://github.com/nodejs/node/issues/10323 PR-URL: https://github.com/nodejs/node/pull/11242 Reviewed-By: Colin Ihrig Reviewed-By: James M Snell --- lib/dgram.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/dgram.js b/lib/dgram.js index 49349009733..bba98896786 100644 --- a/lib/dgram.js +++ b/lib/dgram.js @@ -131,7 +131,7 @@ function replaceHandle(self, newHandle) { self._handle = newHandle; } -Socket.prototype.bind = function(port_ /*, address, callback*/) { +Socket.prototype.bind = function(port_, address_ /*, callback*/) { let port = port_; this._healthCheck(); @@ -141,7 +141,7 @@ Socket.prototype.bind = function(port_ /*, address, callback*/) { this._bindState = BIND_STATE_BINDING; - if (typeof arguments[arguments.length - 1] === 'function') + if (arguments.length && typeof arguments[arguments.length - 1] === 'function') this.once('listening', arguments[arguments.length - 1]); if (port instanceof UDP) { @@ -158,7 +158,7 @@ Socket.prototype.bind = function(port_ /*, address, callback*/) { exclusive = !!port.exclusive; port = port.port; } else { - address = typeof arguments[1] === 'function' ? '' : arguments[1]; + address = typeof address_ === 'function' ? '' : address_; exclusive = false; }