Commit 36dd044cfdb for nodejs

commit 36dd044cfdb20487951a83b75a3341af3025ca17
Author: greenhead <greenheadhq@gmail.com>
Date:   Tue Sep 22 18:26:05 2026 +0900

    fs: close file streams with fd 0

    Signed-off-by: greenhead <greenheadhq@gmail.com>
    PR-URL: https://github.com/nodejs/node/pull/66131
    Fixes: https://github.com/nodejs/node/issues/57905
    Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
    Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>

diff --git a/lib/internal/fs/streams.js b/lib/internal/fs/streams.js
index 4c53f7ea23e..c8c86b59640 100644
--- a/lib/internal/fs/streams.js
+++ b/lib/internal/fs/streams.js
@@ -122,7 +122,7 @@ const FileHandleOperations = (handle) => {
 };

 function close(stream, err, cb) {
-  if (!stream.fd) {
+  if (stream.fd == null) {
     cb(err);
   } else if (stream.flush) {
     stream[kFs].fsync(stream.fd, (flushErr) => {
diff --git a/test/parallel/test-fs-stream-fs-options.js b/test/parallel/test-fs-stream-fs-options.js
index 4e4d17391e0..85f34acc817 100644
--- a/test/parallel/test-fs-stream-fs-options.js
+++ b/test/parallel/test-fs-stream-fs-options.js
@@ -1,6 +1,6 @@
 'use strict';

-require('../common');
+const common = require('../common');
 const fixtures = require('../common/fixtures');
 const fs = require('fs');
 const assert = require('assert');
@@ -70,3 +70,17 @@ const originalFs = { fs };
     );
   });
 }
+
+for (const createStream of [fs.createReadStream, fs.createWriteStream]) {
+  const stream = createStream(null, {
+    fd: 0,
+    fs: {
+      ...fs,
+      close: common.mustCall((fd, callback) => {
+        assert.strictEqual(fd, 0);
+        callback(null);
+      }),
+    },
+  });
+  stream.destroy();
+}