Don't escape percent

This commit is contained in:
JoannaaKL
2023-10-31 13:48:35 +00:00
committed by GitHub
parent ae6eddbea9
commit 2b7faad20d
3 changed files with 10 additions and 4 deletions

View File

@@ -16,11 +16,17 @@ namespace GitHub.Runner.Common
new StringEscapingUtil.EscapeMapping(token: "%", replacement: "%25"), 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[] private static readonly StringEscapingUtil.EscapeMapping[] _escapeDataMappings = new[]
{ {
new StringEscapingUtil.EscapeMapping(token: "\r", replacement: "%0D"), new StringEscapingUtil.EscapeMapping(token: "\r", replacement: "%0D"),
new StringEscapingUtil.EscapeMapping(token: "\n", replacement: "%0A"), 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[] 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; return true;
} }
catch catch

View File

@@ -139,7 +139,7 @@ namespace GitHub.Runner.Common.Tests.Worker
message = "::do-something k1=;=%252C=%250D=%250A=]=%253A,::;-%250D-%250A-]-:-,"; message = "::do-something k1=;=%252C=%250D=%250A=]=%253A,::;-%250D-%250A-]-:-,";
test = new ActionCommand("do-something") test = new ActionCommand("do-something")
{ {
Data = ";-%0D-%0A-]-:-,", Data = ";-%250D-%250A-]-:-,",
}; };
test.Properties.Add("k1", ";=%2C=%0D=%0A=]=%3A"); test.Properties.Add("k1", ";=%2C=%0D=%0A=]=%3A");
Assert.True(ActionCommand.TryParseV2(message, commands, out verify)); Assert.True(ActionCommand.TryParseV2(message, commands, out verify));

View File

@@ -454,7 +454,7 @@ namespace GitHub.Runner.Common.Tests.Worker
_commandManager.TryProcessCommand(_ec.Object, $"::add-mask::%252F%2F", null); _commandManager.TryProcessCommand(_ec.Object, $"::add-mask::%252F%2F", null);
// Assert // Assert
Assert.Equal("***", hc.SecretMasker.MaskSecrets("%2F%2F")); Assert.Equal("***", hc.SecretMasker.MaskSecrets("%252F%2F"));
} }
} }