From 05b2488fdea910a5633882303feb3a708770303a Mon Sep 17 00:00:00 2001 From: "Paul \"Hampy\" Hampson" Date: Thu, 20 Jan 2022 19:12:00 +1100 Subject: [PATCH] Quote "docker exec" env-vars on Windows Based on c97bf2305ccf8c8dc1fcc91e329bf81a41c14638 from #220, to address JENKINS-64751 and JENKINS-65933. --- .../docker/workflow/WithContainerStep.java | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/jenkinsci/plugins/docker/workflow/WithContainerStep.java b/src/main/java/org/jenkinsci/plugins/docker/workflow/WithContainerStep.java index ebbfd68a3..b95049879 100644 --- a/src/main/java/org/jenkinsci/plugins/docker/workflow/WithContainerStep.java +++ b/src/main/java/org/jenkinsci/plugins/docker/workflow/WithContainerStep.java @@ -37,6 +37,7 @@ import hudson.model.Node; import hudson.model.Run; import hudson.model.TaskListener; +import hudson.os.WindowsUtil; import hudson.slaves.WorkspaceList; import hudson.util.VersionNumber; import java.util.ArrayList; @@ -299,7 +300,11 @@ private static class Decorator extends LauncherDecorator implements Serializable for (String e : envReduced) { prefix.add("--env"); masksPrefixList.add(false); - prefix.add(e); + if (super.isUnix()) { + prefix.add(e); + } else { + prefix.add(WindowsUtil.quoteArgument(e)); + } masksPrefixList.add(true); } prefix.add(container); @@ -309,7 +314,13 @@ private static class Decorator extends LauncherDecorator implements Serializable masksPrefixList.add(false); prefix.add("env"); masksPrefixList.add(false); - prefix.addAll(envReduced); + if (super.isUnix()) { + prefix.addAll(envReduced); + } else { + prefix.addAll(envReduced.stream() + .map(v -> WindowsUtil.quoteArgument(v)) + .collect(Collectors.toList())); + } masksPrefixList.addAll(envReduced.stream() .map(v -> true) .collect(Collectors.toList()));