From 4b1f95c6c9ddf717731cdf7a54c85e9a0129daf6 Mon Sep 17 00:00:00 2001 From: "David Humphrey (:humph) david.humphrey@senecacollege.ca" Date: Mon, 18 Aug 2014 11:15:48 -0400 Subject: [PATCH] Fix descriptor leaks in writeFile and appendFile --- src/filesystem/implementation.js | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/filesystem/implementation.js b/src/filesystem/implementation.js index e050076..613aae1 100644 --- a/src/filesystem/implementation.js +++ b/src/filesystem/implementation.js @@ -1785,11 +1785,13 @@ function writeFile(fs, context, path, data, options, callback) { var ofd = new OpenFileDescription(path, fileNode.id, flags, 0); var fd = fs.allocDescriptor(ofd); - replace_data(context, ofd, data, 0, data.length, function(err2, nbytes) { - if(err2) { - return callback(err2); - } + replace_data(context, ofd, data, 0, data.length, function(err, nbytes) { fs.releaseDescriptor(fd); + ofd = null; + + if(err) { + return callback(err); + } callback(null); }); }); @@ -1821,11 +1823,13 @@ function appendFile(fs, context, path, data, options, callback) { var ofd = new OpenFileDescription(path, fileNode.id, flags, fileNode.size); var fd = fs.allocDescriptor(ofd); - write_data(context, ofd, data, 0, data.length, ofd.position, function(err2, nbytes) { - if(err2) { - return callback(err2); - } + write_data(context, ofd, data, 0, data.length, ofd.position, function(err, nbytes) { fs.releaseDescriptor(fd); + ofd = null; + + if(err) { + return callback(err); + } callback(null); }); });