diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 15f1ed2cd8aca..0a6a9744d97f6 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -111,9 +111,9 @@ - + https://github.com/dotnet/arcade - 080141bf0f9f15408bb6eb8e301b23bddf81d054 + 0aaeafef60933f87b0b50350313bb2fd77defb5d @@ -121,69 +121,69 @@ 73f0850939d96131c28cf6ea6ee5aacb4da0083a - + https://github.com/dotnet/arcade - 080141bf0f9f15408bb6eb8e301b23bddf81d054 + 0aaeafef60933f87b0b50350313bb2fd77defb5d - + https://github.com/dotnet/arcade - 080141bf0f9f15408bb6eb8e301b23bddf81d054 + 0aaeafef60933f87b0b50350313bb2fd77defb5d - + https://github.com/dotnet/arcade - 080141bf0f9f15408bb6eb8e301b23bddf81d054 + 0aaeafef60933f87b0b50350313bb2fd77defb5d - + https://github.com/dotnet/arcade - 080141bf0f9f15408bb6eb8e301b23bddf81d054 + 0aaeafef60933f87b0b50350313bb2fd77defb5d - + https://github.com/dotnet/arcade - 080141bf0f9f15408bb6eb8e301b23bddf81d054 + 0aaeafef60933f87b0b50350313bb2fd77defb5d - + https://github.com/dotnet/arcade - 080141bf0f9f15408bb6eb8e301b23bddf81d054 + 0aaeafef60933f87b0b50350313bb2fd77defb5d - + https://github.com/dotnet/arcade - 080141bf0f9f15408bb6eb8e301b23bddf81d054 + 0aaeafef60933f87b0b50350313bb2fd77defb5d - + https://github.com/dotnet/arcade - 080141bf0f9f15408bb6eb8e301b23bddf81d054 + 0aaeafef60933f87b0b50350313bb2fd77defb5d - + https://github.com/dotnet/arcade - 080141bf0f9f15408bb6eb8e301b23bddf81d054 + 0aaeafef60933f87b0b50350313bb2fd77defb5d - + https://github.com/dotnet/arcade - 080141bf0f9f15408bb6eb8e301b23bddf81d054 + 0aaeafef60933f87b0b50350313bb2fd77defb5d - + https://github.com/dotnet/arcade - 080141bf0f9f15408bb6eb8e301b23bddf81d054 + 0aaeafef60933f87b0b50350313bb2fd77defb5d - + https://github.com/dotnet/arcade - 080141bf0f9f15408bb6eb8e301b23bddf81d054 + 0aaeafef60933f87b0b50350313bb2fd77defb5d - + https://github.com/dotnet/arcade - 080141bf0f9f15408bb6eb8e301b23bddf81d054 + 0aaeafef60933f87b0b50350313bb2fd77defb5d - + https://github.com/dotnet/arcade - 080141bf0f9f15408bb6eb8e301b23bddf81d054 + 0aaeafef60933f87b0b50350313bb2fd77defb5d - + https://github.com/dotnet/arcade - 080141bf0f9f15408bb6eb8e301b23bddf81d054 + 0aaeafef60933f87b0b50350313bb2fd77defb5d - + https://github.com/dotnet/arcade - 080141bf0f9f15408bb6eb8e301b23bddf81d054 + 0aaeafef60933f87b0b50350313bb2fd77defb5d https://github.com/dotnet/runtime-assets @@ -334,25 +334,25 @@ https://github.com/dotnet/xharness 480b9159eb7e69b182a87581d5a336e97e0b6dae - + https://github.com/dotnet/arcade - 080141bf0f9f15408bb6eb8e301b23bddf81d054 + 0aaeafef60933f87b0b50350313bb2fd77defb5d - + https://dev.azure.com/dnceng/internal/_git/dotnet-optimization - d80a861521d84459c9290c31127b2a0ce511f279 + 5914dbda1860830a56179692058d94c9f615deda - + https://dev.azure.com/dnceng/internal/_git/dotnet-optimization - d80a861521d84459c9290c31127b2a0ce511f279 + 5914dbda1860830a56179692058d94c9f615deda - + https://dev.azure.com/dnceng/internal/_git/dotnet-optimization - d80a861521d84459c9290c31127b2a0ce511f279 + 5914dbda1860830a56179692058d94c9f615deda - + https://dev.azure.com/dnceng/internal/_git/dotnet-optimization - d80a861521d84459c9290c31127b2a0ce511f279 + 5914dbda1860830a56179692058d94c9f615deda https://github.com/dotnet/hotreload-utils @@ -392,13 +392,13 @@ e9d13cbe7e8c1d52ce276a8655f52a87e1017c46 - + https://dev.azure.com/dnceng/internal/_git/dotnet-optimization - d80a861521d84459c9290c31127b2a0ce511f279 + 5914dbda1860830a56179692058d94c9f615deda - + https://dev.azure.com/dnceng/internal/_git/dotnet-optimization - d80a861521d84459c9290c31127b2a0ce511f279 + 5914dbda1860830a56179692058d94c9f615deda diff --git a/eng/Versions.props b/eng/Versions.props index ae58a20757bb6..ad201088988ef 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -7,7 +7,7 @@ 0 1 8.0.100 - 7.0.$([MSBuild]::Add($(PatchVersion),14)) + 7.0.$([MSBuild]::Add($(PatchVersion),13)) 6.0.$([MSBuild]::Add($([System.Version]::Parse('$(PackageVersionNet7)').Build),11)) servicing @@ -87,21 +87,21 @@ 8.0.100 - 8.0.0-beta.23556.5 - 8.0.0-beta.23556.5 - 8.0.0-beta.23556.5 - 8.0.0-beta.23556.5 - 8.0.0-beta.23556.5 - 2.5.1-beta.23556.5 - 8.0.0-beta.23556.5 - 8.0.0-beta.23556.5 - 8.0.0-beta.23556.5 - 8.0.0-beta.23556.5 - 8.0.0-beta.23556.5 - 8.0.0-beta.23556.5 - 8.0.0-beta.23556.5 - 8.0.0-beta.23556.5 - 8.0.0-beta.23556.5 + 8.0.0-beta.23564.4 + 8.0.0-beta.23564.4 + 8.0.0-beta.23564.4 + 8.0.0-beta.23564.4 + 8.0.0-beta.23564.4 + 2.5.1-beta.23564.4 + 8.0.0-beta.23564.4 + 8.0.0-beta.23564.4 + 8.0.0-beta.23564.4 + 8.0.0-beta.23564.4 + 8.0.0-beta.23564.4 + 8.0.0-beta.23564.4 + 8.0.0-beta.23564.4 + 8.0.0-beta.23564.4 + 8.0.0-beta.23564.4 6.0.0-preview.1.102 @@ -158,12 +158,12 @@ 8.0.0-beta.23558.5 8.0.0-beta.23558.5 - 1.0.0-prerelease.23525.5 - 1.0.0-prerelease.23525.5 - 1.0.0-prerelease.23525.5 - 1.0.0-prerelease.23525.5 - 1.0.0-prerelease.23525.5 - 1.0.0-prerelease.23525.5 + 1.0.0-prerelease.23565.3 + 1.0.0-prerelease.23565.3 + 1.0.0-prerelease.23565.3 + 1.0.0-prerelease.23565.3 + 1.0.0-prerelease.23565.3 + 1.0.0-prerelease.23565.3 16.11.29-beta1.23404.4 2.0.0-beta4.23307.1 diff --git a/eng/pipelines/common/xplat-setup.yml b/eng/pipelines/common/xplat-setup.yml index eb19570aeecac..bd00245788f55 100644 --- a/eng/pipelines/common/xplat-setup.yml +++ b/eng/pipelines/common/xplat-setup.yml @@ -173,7 +173,7 @@ jobs: # Public Windows Build Pool ${{ if and(or(eq(parameters.osGroup, 'windows'), eq(parameters.jobParameters.hostedOs, 'windows')), eq(variables['System.TeamProject'], 'public')) }}: name: $(DncEngPublicBuildPool) - demands: ImageOverride -equals windows.vs2022.amd64.open + demands: ImageOverride -equals windows.vs2022preview.amd64.open ${{ if eq(parameters.helixQueuesTemplate, '') }}: diff --git a/global.json b/global.json index 0ba22484d372e..517059ae7a385 100644 --- a/global.json +++ b/global.json @@ -1,16 +1,16 @@ { "sdk": { - "version": "8.0.100-rtm.23506.1", + "version": "8.0.100", "allowPrerelease": true, "rollForward": "major" }, "tools": { - "dotnet": "8.0.100-rtm.23506.1" + "dotnet": "8.0.100" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.23556.5", - "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.23556.5", - "Microsoft.DotNet.SharedFramework.Sdk": "8.0.0-beta.23556.5", + "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.23564.4", + "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.23564.4", + "Microsoft.DotNet.SharedFramework.Sdk": "8.0.0-beta.23564.4", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.Build.Traversal": "3.4.0", "Microsoft.NET.Sdk.IL": "8.0.0-rc.1.23406.6" diff --git a/src/libraries/System.Net.Requests/src/Resources/Strings.resx b/src/libraries/System.Net.Requests/src/Resources/Strings.resx index f8ac54eb739cd..05b94042590c8 100644 --- a/src/libraries/System.Net.Requests/src/Resources/Strings.resx +++ b/src/libraries/System.Net.Requests/src/Resources/Strings.resx @@ -195,6 +195,9 @@ The underlying connection was closed: An unexpected error occurred on a receive + + CRLF character pair is not allowed in FtpWebRequest inputs. + The remote name could not be resolved diff --git a/src/libraries/System.Net.Requests/src/System/Net/FtpControlStream.cs b/src/libraries/System.Net.Requests/src/System/Net/FtpControlStream.cs index 35eefb9c38cbb..ffba72c9315d2 100644 --- a/src/libraries/System.Net.Requests/src/System/Net/FtpControlStream.cs +++ b/src/libraries/System.Net.Requests/src/System/Net/FtpControlStream.cs @@ -1118,6 +1118,11 @@ private string GetPortCommandLine() /// private static string FormatFtpCommand(string command, string? parameter) { + if (parameter is not null && parameter.Contains("\r\n", StringComparison.Ordinal)) + { + throw new FormatException(SR.net_ftp_no_newlines); + } + return string.IsNullOrEmpty(parameter) ? command + "\r\n" : command + " " + parameter + "\r\n"; diff --git a/src/libraries/System.Net.Requests/src/System/Net/FtpWebRequest.cs b/src/libraries/System.Net.Requests/src/System/Net/FtpWebRequest.cs index 5a6009240fd92..b27873e9edb23 100644 --- a/src/libraries/System.Net.Requests/src/System/Net/FtpWebRequest.cs +++ b/src/libraries/System.Net.Requests/src/System/Net/FtpWebRequest.cs @@ -486,6 +486,9 @@ internal FtpWebRequest(Uri uri) if ((object)uri.Scheme != (object)Uri.UriSchemeFtp) throw new ArgumentOutOfRangeException(nameof(uri)); + if (uri.OriginalString.Contains("\r\n", StringComparison.Ordinal)) + throw new FormatException(SR.net_ftp_no_newlines); + _timerCallback = new TimerThread.Callback(TimerCallback); _syncObject = new object(); diff --git a/src/libraries/System.Net.Requests/tests/FtpWebRequestTest.cs b/src/libraries/System.Net.Requests/tests/FtpWebRequestTest.cs index d1f5e58b3492b..c2b7ad1252400 100644 --- a/src/libraries/System.Net.Requests/tests/FtpWebRequestTest.cs +++ b/src/libraries/System.Net.Requests/tests/FtpWebRequestTest.cs @@ -203,6 +203,27 @@ public void Ftp_RenameFileSubDir_Success(FtpExecutionMode mode) Assert.False(DirExists(mode, dir)); } + [Fact] + public void Ftp_Ignore_NewLine_Constructor_Throws_FormatException() + { + string uri = absoluteUri + Guid.NewGuid().ToString(); + + Assert.Throws(() => WebRequest.Create($"{uri}\r\n{WebRequestMethods.Ftp.AppendFile} {Guid.NewGuid().ToString()}")); + } + + [ConditionalFact(nameof(LocalServerAvailable))] + public void Ftp_Ignore_NewLine_GetRequestStream_And_GetResponse_Throws_FormatException_As_InnerException() + { + FtpWebRequest ftpWebRequest = (FtpWebRequest)WebRequest.Create(absoluteUri + Guid.NewGuid().ToString()); + ftpWebRequest.Method = "APPE"; + ftpWebRequest.Credentials = new NetworkCredential("test\r\ntest2", "test\r\ntest2"); + var requestException = Assert.Throws(() => ftpWebRequest.GetRequestStream()); + Assert.True(requestException.InnerException is FormatException); + + var responseException = Assert.Throws(() => ftpWebRequest.GetResponse()); + Assert.True(responseException.InnerException is FormatException); + } + private static async Task DoAsync(FtpWebRequest request, MemoryStream requestBody) { if (requestBody != null)