From 2b7faad20d034e9d2a4e078d25f22e3a9b796f32 Mon Sep 17 00:00:00 2001 From: JoannaaKL Date: Tue, 31 Oct 2023 13:48:35 +0000 Subject: [PATCH] Don't escape percent --- src/Runner.Common/ActionCommand.cs | 10 ++++++++-- src/Test/L0/Worker/ActionCommandL0.cs | 2 +- src/Test/L0/Worker/ActionCommandManagerL0.cs | 2 +- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/Runner.Common/ActionCommand.cs b/src/Runner.Common/ActionCommand.cs index eee2c0701..f05060696 100644 --- a/src/Runner.Common/ActionCommand.cs +++ b/src/Runner.Common/ActionCommand.cs @@ -16,11 +16,17 @@ namespace GitHub.Runner.Common new StringEscapingUtil.EscapeMapping(token: "%", replacement: "%25"), }; + private static readonly StringEscapingUtil.EscapeMapping[] _commandDataEscapeMappings = new[] + { + new StringEscapingUtil.EscapeMapping(token: "\r", replacement: "%0D"), + new StringEscapingUtil.EscapeMapping(token: "\n", replacement: "%0A"), + }; + private static readonly StringEscapingUtil.EscapeMapping[] _escapeDataMappings = new[] { new StringEscapingUtil.EscapeMapping(token: "\r", replacement: "%0D"), new StringEscapingUtil.EscapeMapping(token: "\n", replacement: "%0A"), - new StringEscapingUtil.EscapeMapping(token: "%", replacement: "%25"), + // new StringEscapingUtil.EscapeMapping(token: "%", replacement: "%25"), }; private static readonly StringEscapingUtil.EscapeMapping[] _escapePropertyMappings = new[] @@ -109,7 +115,7 @@ namespace GitHub.Runner.Common } } - command.Data = StringEscapingUtil.UnescapeString(message.Substring(endIndex + _commandKey.Length), _escapeDataMappings); + command.Data = StringEscapingUtil.UnescapeString(message.Substring(endIndex + _commandKey.Length), _commandDataEscapeMappings); return true; } catch diff --git a/src/Test/L0/Worker/ActionCommandL0.cs b/src/Test/L0/Worker/ActionCommandL0.cs index 314c437fa..eddb1b69a 100644 --- a/src/Test/L0/Worker/ActionCommandL0.cs +++ b/src/Test/L0/Worker/ActionCommandL0.cs @@ -139,7 +139,7 @@ namespace GitHub.Runner.Common.Tests.Worker message = "::do-something k1=;=%252C=%250D=%250A=]=%253A,::;-%250D-%250A-]-:-,"; test = new ActionCommand("do-something") { - Data = ";-%0D-%0A-]-:-,", + Data = ";-%250D-%250A-]-:-,", }; test.Properties.Add("k1", ";=%2C=%0D=%0A=]=%3A"); Assert.True(ActionCommand.TryParseV2(message, commands, out verify)); diff --git a/src/Test/L0/Worker/ActionCommandManagerL0.cs b/src/Test/L0/Worker/ActionCommandManagerL0.cs index 525828ae1..1363526c8 100644 --- a/src/Test/L0/Worker/ActionCommandManagerL0.cs +++ b/src/Test/L0/Worker/ActionCommandManagerL0.cs @@ -454,7 +454,7 @@ namespace GitHub.Runner.Common.Tests.Worker _commandManager.TryProcessCommand(_ec.Object, $"::add-mask::%252F%2F", null); // Assert - Assert.Equal("***", hc.SecretMasker.MaskSecrets("%2F%2F")); + Assert.Equal("***", hc.SecretMasker.MaskSecrets("%252F%2F")); } }