mirror of
https://github.com/denoland/deno.git
synced 2024-12-22 15:24:46 -05:00
74fc66da11
`--allow-run` even with an allow list has essentially been `--allow-all`... this locks it down more. 1. Resolves allow list for `--allow-run=` on startup to an absolute path, then uses these paths when evaluating if a command can execute. Also, adds these paths to `--deny-write` 1. Resolves the environment (cwd and env vars) before evaluating permissions and before executing a command. Then uses this environment to evaluate the permissions and then evaluate the command.
14 lines
405 B
TypeScript
14 lines
405 B
TypeScript
const binaryName = Deno.build.os === "windows" ? "binary.exe" : "binary";
|
|
Deno.copyFileSync(Deno.execPath(), binaryName);
|
|
|
|
console.log("Running...");
|
|
const result = new Deno.Command(
|
|
Deno.execPath(),
|
|
{
|
|
args: ["run", "--allow-write", `--allow-run=./${binaryName}`, "sub.ts"],
|
|
stderr: "inherit",
|
|
stdout: "inherit",
|
|
},
|
|
).outputSync();
|
|
|
|
console.assert(result.code == 1, "Expected failure");
|