Add binding.close to fs.readFile
authorisaacs <i@izs.me>
Fri, 7 May 2010 19:50:36 +0000 (12:50 -0700)
committerRyan Dahl <ry@tinyclouds.org>
Fri, 7 May 2010 20:17:57 +0000 (13:17 -0700)
lib/fs.js

index 610d053..dbfec12 100644 (file)
--- a/lib/fs.js
+++ b/lib/fs.js
@@ -53,12 +53,17 @@ fs.readFile = function (path, encoding_, callback) {
       function doRead() {
         // position is offset or null so we can read files on unseekable mediums
         binding.read(fd, buffer, offset, size - offset, offset || null, function (err, amount) {
-          if (err) { callback(err); return; }
+          if (err) {
+            callback(err);
+            binding.close(fd);
+            return;
+          }
           if (amount + offset < size) {
             offset += amount;
             doRead();
             return;
           }
+          binding.close(fd);
           if (encoding) {
             try {
               callback(null, buffer.toString(encoding));