Use quotemeta to protect shell escapes (refs #2221, #2325)
authorTim Pierce <twp@curoverse.com>
Thu, 3 Apr 2014 18:22:10 +0000 (14:22 -0400)
committerTim Pierce <twp@curoverse.com>
Thu, 3 Apr 2014 18:22:10 +0000 (14:22 -0400)
sdk/cli/bin/crunch-job

index 40b0033757c8aeb03960ff397d9f311bca21314b..e81628cc2b3d7087ea8c50b1d546f298064c9ba9 100755 (executable)
@@ -758,7 +758,7 @@ if ($job_has_uuid) {
 if ($Job->{'output'})
 {
   eval {
-    my $manifest_text = `arv keep get $Job->{'output'}`;
+    my $manifest_text = `arv keep get \Q$Job->{'output'}\E`;
     $arv->{'collections'}->{'create'}->execute('collection' => {
       'uuid' => $Job->{'output'},
       'manifest_text' => $manifest_text,
@@ -1223,7 +1223,8 @@ sub save_meta
   return if $justcheckpoint;  # checkpointing is not relevant post-Warehouse.pm
 
   $local_logfile->flush;
-  my $cmd = "arv keep put --filename $keep_logfile ". $local_logfile->filename;
+  my $cmd = "arv keep put --filename \Q$keep_logfile\E "
+      . quotemeta($local_logfile->filename);
   my $loglocator = `$cmd`;
   die "system $cmd failed: $?" if $?;