Properly handle read errors
authorFelix Geisendörfer <felix@debuggable.com>
Fri, 5 Mar 2010 18:53:59 +0000 (19:53 +0100)
committerFelix Geisendörfer <felix@debuggable.com>
Fri, 5 Mar 2010 18:53:59 +0000 (19:53 +0100)
Also set readable to false if the initial fs.open call failed.

lib/fs.js

index 165ece81550dbcae0493dc7d53f599b53fffd263..56c739389b48dcf11dd4b5b55790d0e959791a67 100644 (file)
--- a/lib/fs.js
+++ b/lib/fs.js
@@ -409,6 +409,12 @@ var FileReadStream = exports.FileReadStream = function(path, options) {
     }
 
     fs.read(self.fd, self.bufferSize, undefined, self.encoding, function(err, data, bytesRead) {
+      if (err) {
+        self.emit('error', err);
+        self.readable = false;
+        return;
+      }
+
       if (bytesRead === 0) {
         self.emit('end');
         self.forceClose();
@@ -434,6 +440,7 @@ var FileReadStream = exports.FileReadStream = function(path, options) {
   fs.open(this.path, this.flags, this.mode, function(err, fd) {
     if (err) {
       self.emit('error', err);
+      self.readable = false;
       return;
     }