diff --git a/lib/fs.js b/lib/fs.js index cdcc13d3297..e8e82503500 100644 --- a/lib/fs.js +++ b/lib/fs.js @@ -229,7 +229,12 @@ fs.readFile = function(path, options, callback_) { fd = fd_; fs.fstat(fd, function(er, st) { - if (er) return callback(er); + if (er) { + return fs.close(fd, function() { + callback(er); + }); + } + size = st.size; if (size === 0) { // the kernel lies about many files.