net: allow socket end before connect
authorBen Taber <ben.taber@gmail.com>
Tue, 25 Dec 2012 01:35:52 +0000 (18:35 -0700)
committerBen Noordhuis <info@bnoordhuis.nl>
Tue, 25 Dec 2012 21:18:56 +0000 (22:18 +0100)
Fix a bug where calling .end() on a socket without calling .connect() first
throws a TypeError:

  TypeError: Cannot read property 'shutdown' of undefined
      at Socket.onSocketFinish (net.js:194:20)
      at Socket.EventEmitter.emit (events.js:91:17)
      at Socket.Writable.end (_stream_writable.js:281:10)
      at Socket.end (net.js:352:31)

Fixes #4463.

lib/net.js

index 10c76ff..e0bbef6 100644 (file)
@@ -191,7 +191,7 @@ function onSocketFinish() {
   debug('oSF: not ended, call shutdown()');
 
   // otherwise, just shutdown, or destroy() if not possible
-  if (!this._handle.shutdown)
+  if (!this._handle || !this._handle.shutdown)
     return this.destroy();
 
   var shutdownReq = this._handle.shutdown();