From aef67cfe39a58f48f5788f9f9dcf8d7f153b8bab 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 43efe4665b15df..69bcf5de10343c 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; }