@@ -89,6 +89,7 @@ const {
89
89
Dirent,
90
90
getDirents,
91
91
getOptions,
92
+ getValidatedFd,
92
93
getValidatedPath,
93
94
getValidMode,
94
95
handleErrorFromBinding,
@@ -453,7 +454,7 @@ function close(fd, callback = defaultCloseCallback) {
453
454
}
454
455
455
456
function closeSync ( fd ) {
456
- validateInt32 ( fd , 'fd' , 0 ) ;
457
+ fd = getValidatedFd ( fd ) ;
457
458
458
459
const ctx = { } ;
459
460
binding . close ( fd , undefined , ctx ) ;
@@ -503,7 +504,7 @@ function openSync(path, flags, mode) {
503
504
// OR
504
505
// fs.read(fd, {}, callback)
505
506
function read ( fd , buffer , offset , length , position , callback ) {
506
- validateInt32 ( fd , 'fd' , 0 ) ;
507
+ fd = getValidatedFd ( fd ) ;
507
508
508
509
if ( arguments . length <= 3 ) {
509
510
// Assume fs.read(fd, options, callback)
@@ -576,7 +577,7 @@ ObjectDefineProperty(read, internalUtil.customPromisifyArgs,
576
577
// OR
577
578
// fs.readSync(fd, buffer, {}) or fs.readSync(fd, buffer)
578
579
function readSync ( fd , buffer , offset , length , position ) {
579
- validateInt32 ( fd , 'fd' , 0 ) ;
580
+ fd = getValidatedFd ( fd ) ;
580
581
581
582
if ( arguments . length <= 3 ) {
582
583
// Assume fs.read(fd, buffer, options)
@@ -623,7 +624,7 @@ function readv(fd, buffers, position, callback) {
623
624
callback ( err , read || 0 , buffers ) ;
624
625
}
625
626
626
- validateInt32 ( fd , 'fd' , /* min */ 0 ) ;
627
+ fd = getValidatedFd ( fd ) ;
627
628
validateBufferArray ( buffers ) ;
628
629
callback = maybeCallback ( callback || position ) ;
629
630
@@ -640,7 +641,7 @@ ObjectDefineProperty(readv, internalUtil.customPromisifyArgs,
640
641
{ value : [ 'bytesRead' , 'buffers' ] , enumerable : false } ) ;
641
642
642
643
function readvSync ( fd , buffers , position ) {
643
- validateInt32 ( fd , 'fd' , 0 ) ;
644
+ fd = getValidatedFd ( fd ) ;
644
645
validateBufferArray ( buffers ) ;
645
646
646
647
const ctx = { } ;
@@ -663,7 +664,7 @@ function write(fd, buffer, offset, length, position, callback) {
663
664
callback ( err , written || 0 , buffer ) ;
664
665
}
665
666
666
- validateInt32 ( fd , 'fd' , 0 ) ;
667
+ fd = getValidatedFd ( fd ) ;
667
668
668
669
if ( isArrayBufferView ( buffer ) ) {
669
670
callback = maybeCallback ( callback || position || length || offset ) ;
@@ -709,7 +710,7 @@ ObjectDefineProperty(write, internalUtil.customPromisifyArgs,
709
710
// OR
710
711
// fs.writeSync(fd, string[, position[, encoding]]);
711
712
function writeSync ( fd , buffer , offset , length , position ) {
712
- validateInt32 ( fd , 'fd' , 0 ) ;
713
+ fd = getValidatedFd ( fd ) ;
713
714
const ctx = { } ;
714
715
let result ;
715
716
if ( isArrayBufferView ( buffer ) ) {
@@ -744,7 +745,7 @@ function writev(fd, buffers, position, callback) {
744
745
callback ( err , written || 0 , buffers ) ;
745
746
}
746
747
747
- validateInt32 ( fd , 'fd' , 0 ) ;
748
+ fd = getValidatedFd ( fd ) ;
748
749
validateBufferArray ( buffers ) ;
749
750
callback = maybeCallback ( callback || position ) ;
750
751
@@ -763,7 +764,7 @@ ObjectDefineProperty(writev, internalUtil.customPromisifyArgs, {
763
764
} ) ;
764
765
765
766
function writevSync ( fd , buffers , position ) {
766
- validateInt32 ( fd , 'fd' , 0 ) ;
767
+ fd = getValidatedFd ( fd ) ;
767
768
validateBufferArray ( buffers ) ;
768
769
769
770
const ctx = { } ;
@@ -849,7 +850,7 @@ function ftruncate(fd, len = 0, callback) {
849
850
callback = len ;
850
851
len = 0 ;
851
852
}
852
- validateInt32 ( fd , 'fd' , 0 ) ;
853
+ fd = getValidatedFd ( fd ) ;
853
854
validateInteger ( len , 'len' ) ;
854
855
len = MathMax ( 0 , len ) ;
855
856
callback = makeCallback ( callback ) ;
@@ -860,7 +861,7 @@ function ftruncate(fd, len = 0, callback) {
860
861
}
861
862
862
863
function ftruncateSync ( fd , len = 0 ) {
863
- validateInt32 ( fd , 'fd' , 0 ) ;
864
+ fd = getValidatedFd ( fd ) ;
864
865
validateInteger ( len , 'len' ) ;
865
866
len = MathMax ( 0 , len ) ;
866
867
const ctx = { } ;
@@ -942,28 +943,28 @@ function rmSync(path, options) {
942
943
}
943
944
944
945
function fdatasync ( fd , callback ) {
945
- validateInt32 ( fd , 'fd' , 0 ) ;
946
+ fd = getValidatedFd ( fd ) ;
946
947
const req = new FSReqCallback ( ) ;
947
948
req . oncomplete = makeCallback ( callback ) ;
948
949
binding . fdatasync ( fd , req ) ;
949
950
}
950
951
951
952
function fdatasyncSync ( fd ) {
952
- validateInt32 ( fd , 'fd' , 0 ) ;
953
+ fd = getValidatedFd ( fd ) ;
953
954
const ctx = { } ;
954
955
binding . fdatasync ( fd , undefined , ctx ) ;
955
956
handleErrorFromBinding ( ctx ) ;
956
957
}
957
958
958
959
function fsync ( fd , callback ) {
959
- validateInt32 ( fd , 'fd' , 0 ) ;
960
+ fd = getValidatedFd ( fd ) ;
960
961
const req = new FSReqCallback ( ) ;
961
962
req . oncomplete = makeCallback ( callback ) ;
962
963
binding . fsync ( fd , req ) ;
963
964
}
964
965
965
966
function fsyncSync ( fd ) {
966
- validateInt32 ( fd , 'fd' , 0 ) ;
967
+ fd = getValidatedFd ( fd ) ;
967
968
const ctx = { } ;
968
969
binding . fsync ( fd , undefined , ctx ) ;
969
970
handleErrorFromBinding ( ctx ) ;
@@ -1054,7 +1055,7 @@ function fstat(fd, options = { bigint: false }, callback) {
1054
1055
callback = options ;
1055
1056
options = { } ;
1056
1057
}
1057
- validateInt32 ( fd , 'fd' , 0 ) ;
1058
+ fd = getValidatedFd ( fd ) ;
1058
1059
callback = makeStatsCallback ( callback ) ;
1059
1060
1060
1061
const req = new FSReqCallback ( options . bigint ) ;
@@ -1102,7 +1103,7 @@ function hasNoEntryError(ctx) {
1102
1103
}
1103
1104
1104
1105
function fstatSync ( fd , options = { bigint : false , throwIfNoEntry : true } ) {
1105
- validateInt32 ( fd , 'fd' , 0 ) ;
1106
+ fd = getValidatedFd ( fd ) ;
1106
1107
const ctx = { fd } ;
1107
1108
const stats = binding . fstat ( fd , options . bigint , undefined , ctx ) ;
1108
1109
handleErrorFromBinding ( ctx ) ;
@@ -1255,7 +1256,7 @@ function unlinkSync(path) {
1255
1256
}
1256
1257
1257
1258
function fchmod ( fd , mode , callback ) {
1258
- validateInt32 ( fd , 'fd' , 0 ) ;
1259
+ fd = getValidatedFd ( fd ) ;
1259
1260
mode = parseFileMode ( mode , 'mode' ) ;
1260
1261
callback = makeCallback ( callback ) ;
1261
1262
@@ -1265,7 +1266,7 @@ function fchmod(fd, mode, callback) {
1265
1266
}
1266
1267
1267
1268
function fchmodSync ( fd , mode ) {
1268
- validateInt32 ( fd , 'fd' , 0 ) ;
1269
+ fd = getValidatedFd ( fd ) ;
1269
1270
mode = parseFileMode ( mode , 'mode' ) ;
1270
1271
const ctx = { } ;
1271
1272
binding . fchmod ( fd , mode , undefined , ctx ) ;
@@ -1343,7 +1344,7 @@ function lchownSync(path, uid, gid) {
1343
1344
}
1344
1345
1345
1346
function fchown ( fd , uid , gid , callback ) {
1346
- validateInt32 ( fd , 'fd' , 0 ) ;
1347
+ fd = getValidatedFd ( fd ) ;
1347
1348
validateInteger ( uid , 'uid' , - 1 , kMaxUserId ) ;
1348
1349
validateInteger ( gid , 'gid' , - 1 , kMaxUserId ) ;
1349
1350
callback = makeCallback ( callback ) ;
@@ -1354,7 +1355,7 @@ function fchown(fd, uid, gid, callback) {
1354
1355
}
1355
1356
1356
1357
function fchownSync ( fd , uid , gid ) {
1357
- validateInt32 ( fd , 'fd' , 0 ) ;
1358
+ fd = getValidatedFd ( fd ) ;
1358
1359
validateInteger ( uid , 'uid' , - 1 , kMaxUserId ) ;
1359
1360
validateInteger ( gid , 'gid' , - 1 , kMaxUserId ) ;
1360
1361
@@ -1405,7 +1406,7 @@ function utimesSync(path, atime, mtime) {
1405
1406
}
1406
1407
1407
1408
function futimes ( fd , atime , mtime , callback ) {
1408
- validateInt32 ( fd , 'fd' , 0 ) ;
1409
+ fd = getValidatedFd ( fd ) ;
1409
1410
atime = toUnixTimestamp ( atime , 'atime' ) ;
1410
1411
mtime = toUnixTimestamp ( mtime , 'mtime' ) ;
1411
1412
callback = makeCallback ( callback ) ;
@@ -1416,7 +1417,7 @@ function futimes(fd, atime, mtime, callback) {
1416
1417
}
1417
1418
1418
1419
function futimesSync ( fd , atime , mtime ) {
1419
- validateInt32 ( fd , 'fd' , 0 ) ;
1420
+ fd = getValidatedFd ( fd ) ;
1420
1421
atime = toUnixTimestamp ( atime , 'atime' ) ;
1421
1422
mtime = toUnixTimestamp ( mtime , 'mtime' ) ;
1422
1423
const ctx = { } ;
0 commit comments