Skip to content

Commit 18f4cc1

Browse files
Zsolt Borbélyyichoi
authored andcommitted
Fix convertMode() in fs.js (#935)
Parse mode-string as an octal number. IoT.js-DCO-1.0-Signed-off-by: Zsolt Borbély [email protected]
1 parent f3e8d9b commit 18f4cc1

File tree

2 files changed

+20
-1
lines changed

2 files changed

+20
-1
lines changed

src/js/fs.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -451,7 +451,7 @@ function convertMode(mode, def) {
451451
if (util.isNumber(mode)) {
452452
return mode;
453453
} else if (util.isString(mode)) {
454-
return parseInt(mode);
454+
return parseInt(mode, 8);
455455
} else if (def) {
456456
return convertMode(def);
457457
}

test/run_pass/test_fs_mkdir_rmdir.js

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,25 @@ function unlink(path) {
5757
fs.rmdir(root2, function(){
5858
assert.equal(fs.existsSync(root2), false);
5959
});
60+
61+
// Try to create a folder in a read-only directory.
62+
fs.mkdir(root, '0444', function(err) {
63+
assert.equal(fs.existsSync(root), true);
64+
65+
var dirname = root + "/permission_test";
66+
try {
67+
fs.mkdirSync(dirname);
68+
assert.assert(false);
69+
} catch (e) {
70+
assert.equal(e instanceof Error, true);
71+
assert.equal(e instanceof assert.AssertionError, false);
72+
}
73+
74+
assert.equal(fs.existsSync(dirname), false);
75+
fs.rmdir(root, function() {
76+
assert.equal(fs.existsSync(root), false);
77+
});
78+
});
6079
});
6180
});
6281
}

0 commit comments

Comments
 (0)