mirror of
https://github.com/norandom/OpenUltraSAST.git
synced 2026-10-18 12:39:28 +00:00
44 lines
1.4 KiB
JavaScript
44 lines
1.4 KiB
JavaScript
// Provenance: nfriedly/node-bestzip (fixed).
|
|||
|
|
// repo: nfriedly/node-bestzip
|
||
|
|
// commit: 45d4a901478c6a8f396c8b959dd6cf8fd3f955b6
|
||
|
|
// parent: fcea252e52b6078eff6caf5531bd32c53fccb59f
|
||
|
|
// commit_url: https://github.com/nfriedly/node-bestzip/commit/45d4a901478c6a8f396c8b959dd6cf8fd3f955b6
|
||
|
|
// cve: CVE-2020-7730
|
||
|
|
// license: MIT
|
||
|
|
// function: nativeZip
|
||
|
|
// relpath: lib/bestzip.js
|
||
|
|
// provenance: human
|
||
|
|
// mechanism: source_reaches_sink
|
||
|
|
// upstream_start: 66
|
||
|
|
|
||
|
|
const nativeZip = options =>
|
||
|
|
new Promise((resolve, reject) => {
|
||
|
|
const cwd = options.cwd || process.cwd();
|
||
|
|
const command = "zip";
|
||
|
|
expandSources(cwd, options.source, (err, sources) => {
|
||
|
|
const args = ["--quiet", "--recurse-paths", options.destination].concat(
|
||
|
|
sources
|
||
|
|
);
|
||
|
|
const zipProcess = cp.spawn(command, args, {
|
||
|
|
stdio: "inherit",
|
||
|
|
cwd
|
||
|
|
});
|
||
|
|
zipProcess.on("error", reject);
|
||
|
|
zipProcess.on("close", exitCode => {
|
||
|
|
if (exitCode === 0) {
|
||
|
|
resolve();
|
||
|
|
} else {
|
||
|
|
// exit code 12 means "nothing to do" right?
|
||
|
|
//console.log('rejecting', zipProcess)
|
||
|
|
reject(
|
||
|
|
new Error(
|
||
|
|
`Unexpected exit code from native zip: ${exitCode}\n executed command '${command} ${args.join(
|
||
|
|
" "
|
||
|
|
)}'\n executed in directory '${cwd}'`
|
||
|
|
)
|
||
|
|
);
|
||
|
|
}
|
||
|
|
});
|
||
|
|
});
|
||
|
|
});
|