From fa07c78c0ce6724249441c31ff2c2c3e7840d52a Mon Sep 17 00:00:00 2001 From: eric sciple Date: Wed, 26 Jan 2022 13:15:05 -0600 Subject: [PATCH] . --- src/Runner.Common/HostContext.cs | 1 + src/Sdk/DTLogging/Logging/ValueEncoders.cs | 14 ++++++++++++++ 2 files changed, 15 insertions(+) diff --git a/src/Runner.Common/HostContext.cs b/src/Runner.Common/HostContext.cs index 643c61c81..1834a57fa 100644 --- a/src/Runner.Common/HostContext.cs +++ b/src/Runner.Common/HostContext.cs @@ -84,6 +84,7 @@ namespace GitHub.Runner.Common this.SecretMasker.AddValueEncoder(ValueEncoders.Base64StringEscape); this.SecretMasker.AddValueEncoder(ValueEncoders.Base64StringEscapeShift1); this.SecretMasker.AddValueEncoder(ValueEncoders.Base64StringEscapeShift2); + this.SecretMasker.AddValueEncoder(ValueEncoders.BashComparand); this.SecretMasker.AddValueEncoder(ValueEncoders.CommandLineArgumentEscape); this.SecretMasker.AddValueEncoder(ValueEncoders.ExpressionStringEscape); this.SecretMasker.AddValueEncoder(ValueEncoders.JsonStringEscape); diff --git a/src/Sdk/DTLogging/Logging/ValueEncoders.cs b/src/Sdk/DTLogging/Logging/ValueEncoders.cs index c3c065bc2..3ef804a6d 100644 --- a/src/Sdk/DTLogging/Logging/ValueEncoders.cs +++ b/src/Sdk/DTLogging/Logging/ValueEncoders.cs @@ -38,6 +38,20 @@ namespace GitHub.DistributedTask.Logging return Base64StringEscapeShift(value, 2); } + public static String BashComparand(String value) + { + var result = new StringBuilder(); + foreach (var c in value) + { + if (!char.IsLowSurrogate(c)) + { + result.Append('\\'); + } + result.Append(c); + } + return result.ToString(); + } + // Used when we pass environment variables to docker to escape " with \" public static String CommandLineArgumentEscape(String value) {