Skip to content

Commit 4abe00d

Browse files
committed
fs: remove duplicate fd validation in sync functions
1 parent e1fc3dc commit 4abe00d

2 files changed

Lines changed: 20 additions & 17 deletions

File tree

lib/fs.js

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -598,7 +598,6 @@ function openAsBlob(path, options = kEmptyObject) {
598598
*/
599599
function read(fd, buffer, offsetOrOptions, length, position, callback) {
600600
fd = getValidatedFd(fd);
601-
602601
let offset = offsetOrOptions;
603602
let params = null;
604603
if (arguments.length <= 4) {
@@ -690,8 +689,6 @@ ObjectDefineProperty(read, kCustomPromisifyArgsSymbol,
690689
* @returns {number}
691690
*/
692691
function readSync(fd, buffer, offsetOrOptions, length, position) {
693-
fd = getValidatedFd(fd);
694-
695692
validateBuffer(buffer);
696693

697694
let offset = offsetOrOptions;
@@ -780,7 +777,6 @@ ObjectDefineProperty(readv, kCustomPromisifyArgsSymbol,
780777
* @returns {number}
781778
*/
782779
function readvSync(fd, buffers, position) {
783-
fd = getValidatedFd(fd);
784780
validateBufferArray(buffers);
785781

786782
if (typeof position !== 'number')
@@ -810,7 +806,6 @@ function write(fd, buffer, offsetOrOptions, length, position, callback) {
810806
}
811807

812808
fd = getValidatedFd(fd);
813-
814809
let offset = offsetOrOptions;
815810
if (isArrayBufferView(buffer)) {
816811
callback ||= position || length || offset;
@@ -881,7 +876,6 @@ ObjectDefineProperty(write, kCustomPromisifyArgsSymbol,
881876
* @returns {number}
882877
*/
883878
function writeSync(fd, buffer, offsetOrOptions, length, position) {
884-
fd = getValidatedFd(fd);
885879
const ctx = {};
886880
let result;
887881

@@ -971,7 +965,6 @@ ObjectDefineProperty(writev, kCustomPromisifyArgsSymbol, {
971965
* @returns {number}
972966
*/
973967
function writevSync(fd, buffers, position) {
974-
fd = getValidatedFd(fd);
975968
validateBufferArray(buffers);
976969

977970
if (buffers.length === 0) {

src/node_file.cc

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2314,8 +2314,10 @@ static void WriteBuffer(const FunctionCallbackInfo<Value>& args) {
23142314
const int argc = args.Length();
23152315
CHECK_GE(argc, 4);
23162316

2317-
CHECK(args[0]->IsInt32());
2318-
const int fd = args[0].As<Int32>()->Value();
2317+
int fd;
2318+
if (!GetValidatedFd(env, args[0]).To(&fd)) {
2319+
return;
2320+
}
23192321

23202322
CHECK(Buffer::HasInstance(args[1]));
23212323
Local<Object> buffer_obj = args[1].As<Object>();
@@ -2381,8 +2383,10 @@ static void WriteBuffers(const FunctionCallbackInfo<Value>& args) {
23812383
const int argc = args.Length();
23822384
CHECK_GE(argc, 3);
23832385

2384-
CHECK(args[0]->IsInt32());
2385-
const int fd = args[0].As<Int32>()->Value();
2386+
int fd;
2387+
if (!GetValidatedFd(env, args[0]).To(&fd)) {
2388+
return;
2389+
}
23862390

23872391
CHECK(args[1]->IsArray());
23882392
Local<Array> chunks = args[1].As<Array>();
@@ -2441,8 +2445,10 @@ static void WriteString(const FunctionCallbackInfo<Value>& args) {
24412445

24422446
const int argc = args.Length();
24432447
CHECK_GE(argc, 4);
2444-
CHECK(args[0]->IsInt32());
2445-
const int fd = args[0].As<Int32>()->Value();
2448+
int fd;
2449+
if (!GetValidatedFd(env, args[0]).To(&fd)) {
2450+
return;
2451+
}
24462452

24472453
const int64_t pos = GetOffset(args[2]);
24482454

@@ -2634,8 +2640,10 @@ static void Read(const FunctionCallbackInfo<Value>& args) {
26342640
const int argc = args.Length();
26352641
CHECK_GE(argc, 5);
26362642

2637-
CHECK(args[0]->IsInt32());
2638-
const int fd = args[0].As<Int32>()->Value();
2643+
int fd;
2644+
if (!GetValidatedFd(env, args[0]).To(&fd)) {
2645+
return;
2646+
}
26392647

26402648
CHECK(Buffer::HasInstance(args[1]));
26412649
Local<Object> buffer_obj = args[1].As<Object>();
@@ -2765,8 +2773,10 @@ static void ReadBuffers(const FunctionCallbackInfo<Value>& args) {
27652773
const int argc = args.Length();
27662774
CHECK_GE(argc, 3);
27672775

2768-
CHECK(args[0]->IsInt32());
2769-
const int fd = args[0].As<Int32>()->Value();
2776+
int fd;
2777+
if (!GetValidatedFd(env, args[0]).To(&fd)) {
2778+
return;
2779+
}
27702780

27712781
CHECK(args[1]->IsArray());
27722782
Local<Array> buffers = args[1].As<Array>();

0 commit comments

Comments
 (0)