apply refactor for recursive copy-file with symlinks: GHSA-vjrp-43mm-j7vw

This commit is contained in:
Timothy Carambat 2026-05-10 13:11:33 -07:00
parent ce900cb517
commit 21ce030871

View File

@ -3,9 +3,15 @@ const path = require("path");
const filesystem = require("./lib.js"); const filesystem = require("./lib.js");
async function copyRecursive(source, destination) { async function copyRecursive(source, destination) {
const stats = await fs.stat(source); const lstat = await fs.lstat(source);
if (stats.isDirectory()) { if (lstat.isSymbolicLink()) {
throw new Error(
`Cannot copy symbolic link: ${source}. Symlinks are not allowed during copy operations.`
);
}
if (lstat.isDirectory()) {
await fs.mkdir(destination, { recursive: true }); await fs.mkdir(destination, { recursive: true });
const entries = await fs.readdir(source); const entries = await fs.readdir(source);
for (const entry of entries) { for (const entry of entries) {