From 69cf01a138bcc353d45c923aef00dafaff5dc97c Mon Sep 17 00:00:00 2001 From: David Glasser Date: Mon, 18 Aug 2014 20:11:47 -0700 Subject: [PATCH] don't leak readstream --- tools/package-client.js | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/tools/package-client.js b/tools/package-client.js index e7f2a981ca..7bf9600807 100644 --- a/tools/package-client.js +++ b/tools/package-client.js @@ -359,18 +359,21 @@ var bundleSource = function (unipackage, includeSources, packageDir) { var uploadTarball = function (putUrl, tarball) { var size = fs.statSync(tarball).size; var rs = fs.createReadStream(tarball); - // Use getUrl instead of request, to throw on 4xx/5xx. - httpHelpers.getUrl({ - method: 'PUT', - url: putUrl, - headers: { - 'content-length': size, - 'content-type': 'application/octet-stream', - 'x-amz-acl': 'public-read' - }, - bodyStream: rs - }); - rs.close(); + try { + // Use getUrl instead of request, to throw on 4xx/5xx. + httpHelpers.getUrl({ + method: 'PUT', + url: putUrl, + headers: { + 'content-length': size, + 'content-type': 'application/octet-stream', + 'x-amz-acl': 'public-read' + }, + bodyStream: rs + }); + } finally { + rs.close(); + } }; exports.uploadTarball = uploadTarball;