From 9b5cc3f242254506ebe8f733ed3381acacea522a Mon Sep 17 00:00:00 2001 From: 2colours <2colours@github.com> Date: Fri, 5 Jan 2024 17:43:42 +0100 Subject: [PATCH] Eliminating shell injections --- lib/Ddt/Distribution.rakumod | 4 ++-- lib/Ddt/Plugins/Hack.rakumod | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/Ddt/Distribution.rakumod b/lib/Ddt/Distribution.rakumod index f81a01a..4204ba4 100644 --- a/lib/Ddt/Distribution.rakumod +++ b/lib/Ddt/Distribution.rakumod @@ -202,8 +202,8 @@ method !make-content { method !init-vcs-repo { my $git-dir = $.main-dir.absolute; - qqx{cd $git-dir && git init}.slurp-rest; - qqx{cd $git-dir && git add .}.slurp-rest; + run(flat(, $git-dir), :out).out.slurp-rest; + run(flat(, $git-dir), :out).out.slurp-rest; } diff --git a/lib/Ddt/Plugins/Hack.rakumod b/lib/Ddt/Plugins/Hack.rakumod index e8b4031..50537cd 100644 --- a/lib/Ddt/Plugins/Hack.rakumod +++ b/lib/Ddt/Plugins/Hack.rakumod @@ -56,7 +56,7 @@ multi MAIN("hack", Str:D $identity, Str $dir?) is export { my $candi = @local.first; my IO::Path:D $local-mirror = local-mirror $uri; - say qqx{git clone $uri --reference-if-able $local-mirror.Str() $target}; + say run(flat(, $uri, <--reference-if-able>, ~$local-mirror, $target), :out).out; say "Checked out $uri to $target"; say "You can now do `cd $target`"; }