Skip to content

Commit a18cedf

Browse files
authored
Merge pull request #44471 from vseanreesermsft/internal-merge-6.0-2022-10-11-1011
Merging internal commits for release/6.0
2 parents 1133531 + 8002a5d commit a18cedf

File tree

17 files changed

+644
-394
lines changed

17 files changed

+644
-394
lines changed

NuGet.config

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,10 @@
44
<clear />
55
<!--Begin: Package sources managed by Dependency Flow automation. Do not edit the sources below.-->
66
<!-- Begin: Package sources from dotnet-runtime -->
7+
<add key="darc-int-dotnet-runtime-5a400c2" value="https://pkgs.dev.azure.com/dnceng/internal/_packaging/darc-int-dotnet-runtime-5a400c21/nuget/v3/index.json" />
78
<!-- End: Package sources from dotnet-runtime -->
89
<!-- Begin: Package sources from dotnet-efcore -->
10+
<add key="darc-int-dotnet-efcore-f7333f1" value="https://pkgs.dev.azure.com/dnceng/internal/_packaging/darc-int-dotnet-efcore-f7333f1a/nuget/v3/index.json" />
911
<!-- End: Package sources from dotnet-efcore -->
1012
<!--End: Package sources managed by Dependency Flow automation. Do not edit the sources above.-->
1113
<add key="dotnet-eng" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json" />
@@ -25,8 +27,10 @@
2527
<clear />
2628
<!--Begin: Package sources managed by Dependency Flow automation. Do not edit the sources below.-->
2729
<!-- Begin: Package sources from dotnet-efcore -->
30+
<add key="darc-int-dotnet-efcore-f7333f1" value="true" />
2831
<!-- End: Package sources from dotnet-efcore -->
2932
<!-- Begin: Package sources from dotnet-runtime -->
33+
<add key="darc-int-dotnet-runtime-5a400c2" value="true" />
3034
<!-- End: Package sources from dotnet-runtime -->
3135
<!--End: Package sources managed by Dependency Flow automation. Do not edit the sources above.-->
3236
</disabledPackageSources>

eng/Baseline.Designer.props

Lines changed: 231 additions & 231 deletions
Large diffs are not rendered by default.

eng/Baseline.xml

Lines changed: 107 additions & 107 deletions
Large diffs are not rendered by default.

eng/Version.Details.xml

Lines changed: 35 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -9,37 +9,37 @@
99
-->
1010
<Dependencies>
1111
<ProductDependencies>
12-
<Dependency Name="dotnet-ef" Version="6.0.9">
12+
<Dependency Name="dotnet-ef" Version="6.0.10">
1313
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-efcore</Uri>
14-
<Sha>33e3c950af2eb996c0b3c48e30eb4471138da675</Sha>
14+
<Sha>f7333f1afa250ed33d3db52f0b531910b23a55b2</Sha>
1515
</Dependency>
16-
<Dependency Name="Microsoft.EntityFrameworkCore.InMemory" Version="6.0.9">
16+
<Dependency Name="Microsoft.EntityFrameworkCore.InMemory" Version="6.0.10">
1717
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-efcore</Uri>
18-
<Sha>33e3c950af2eb996c0b3c48e30eb4471138da675</Sha>
18+
<Sha>f7333f1afa250ed33d3db52f0b531910b23a55b2</Sha>
1919
</Dependency>
20-
<Dependency Name="Microsoft.EntityFrameworkCore.Relational" Version="6.0.9">
20+
<Dependency Name="Microsoft.EntityFrameworkCore.Relational" Version="6.0.10">
2121
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-efcore</Uri>
22-
<Sha>33e3c950af2eb996c0b3c48e30eb4471138da675</Sha>
22+
<Sha>f7333f1afa250ed33d3db52f0b531910b23a55b2</Sha>
2323
</Dependency>
24-
<Dependency Name="Microsoft.EntityFrameworkCore.Sqlite" Version="6.0.9">
24+
<Dependency Name="Microsoft.EntityFrameworkCore.Sqlite" Version="6.0.10">
2525
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-efcore</Uri>
26-
<Sha>33e3c950af2eb996c0b3c48e30eb4471138da675</Sha>
26+
<Sha>f7333f1afa250ed33d3db52f0b531910b23a55b2</Sha>
2727
</Dependency>
28-
<Dependency Name="Microsoft.EntityFrameworkCore.SqlServer" Version="6.0.9">
28+
<Dependency Name="Microsoft.EntityFrameworkCore.SqlServer" Version="6.0.10">
2929
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-efcore</Uri>
30-
<Sha>33e3c950af2eb996c0b3c48e30eb4471138da675</Sha>
30+
<Sha>f7333f1afa250ed33d3db52f0b531910b23a55b2</Sha>
3131
</Dependency>
32-
<Dependency Name="Microsoft.EntityFrameworkCore.Tools" Version="6.0.9">
32+
<Dependency Name="Microsoft.EntityFrameworkCore.Tools" Version="6.0.10">
3333
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-efcore</Uri>
34-
<Sha>33e3c950af2eb996c0b3c48e30eb4471138da675</Sha>
34+
<Sha>f7333f1afa250ed33d3db52f0b531910b23a55b2</Sha>
3535
</Dependency>
36-
<Dependency Name="Microsoft.EntityFrameworkCore" Version="6.0.9">
36+
<Dependency Name="Microsoft.EntityFrameworkCore" Version="6.0.10">
3737
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-efcore</Uri>
38-
<Sha>33e3c950af2eb996c0b3c48e30eb4471138da675</Sha>
38+
<Sha>f7333f1afa250ed33d3db52f0b531910b23a55b2</Sha>
3939
</Dependency>
40-
<Dependency Name="Microsoft.EntityFrameworkCore.Design" Version="6.0.9">
40+
<Dependency Name="Microsoft.EntityFrameworkCore.Design" Version="6.0.10">
4141
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-efcore</Uri>
42-
<Sha>33e3c950af2eb996c0b3c48e30eb4471138da675</Sha>
42+
<Sha>f7333f1afa250ed33d3db52f0b531910b23a55b2</Sha>
4343
</Dependency>
4444
<Dependency Name="Microsoft.Extensions.Caching.Abstractions" Version="6.0.0">
4545
<Uri>https://github.com/dotnet/runtime</Uri>
@@ -93,9 +93,9 @@
9393
<Uri>https://github.com/dotnet/runtime</Uri>
9494
<Sha>4822e3c3aa77eb82b2fb33c9321f923cf11ddde6</Sha>
9595
</Dependency>
96-
<Dependency Name="Microsoft.Extensions.DependencyInjection" Version="6.0.0">
97-
<Uri>https://github.com/dotnet/runtime</Uri>
98-
<Sha>4822e3c3aa77eb82b2fb33c9321f923cf11ddde6</Sha>
96+
<Dependency Name="Microsoft.Extensions.DependencyInjection" Version="6.0.1">
97+
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-runtime</Uri>
98+
<Sha>5a400c212afdf8e675c9a1d38442e6d2f19f7b74</Sha>
9999
</Dependency>
100100
<Dependency Name="Microsoft.Extensions.FileProviders.Abstractions" Version="6.0.0">
101101
<Uri>https://github.com/dotnet/runtime</Uri>
@@ -177,9 +177,9 @@
177177
<Uri>https://github.com/dotnet/runtime</Uri>
178178
<Sha>4822e3c3aa77eb82b2fb33c9321f923cf11ddde6</Sha>
179179
</Dependency>
180-
<Dependency Name="Microsoft.Internal.Runtime.AspNetCore.Transport" Version="6.0.9-servicing.22419.5">
180+
<Dependency Name="Microsoft.Internal.Runtime.AspNetCore.Transport" Version="6.0.10-servicing.22476.5">
181181
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-runtime</Uri>
182-
<Sha>163a63591cf9e9b682063cf3995948c2b885a042</Sha>
182+
<Sha>5a400c212afdf8e675c9a1d38442e6d2f19f7b74</Sha>
183183
</Dependency>
184184
<Dependency Name="System.Diagnostics.DiagnosticSource" Version="6.0.0">
185185
<Uri>https://github.com/dotnet/runtime</Uri>
@@ -245,40 +245,40 @@
245245
<Uri>https://github.com/dotnet/runtime</Uri>
246246
<Sha>4822e3c3aa77eb82b2fb33c9321f923cf11ddde6</Sha>
247247
</Dependency>
248-
<Dependency Name="Microsoft.NETCore.App.Ref" Version="6.0.9">
248+
<Dependency Name="Microsoft.NETCore.App.Ref" Version="6.0.10">
249249
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-runtime</Uri>
250-
<Sha>163a63591cf9e9b682063cf3995948c2b885a042</Sha>
250+
<Sha>5a400c212afdf8e675c9a1d38442e6d2f19f7b74</Sha>
251251
</Dependency>
252-
<Dependency Name="Microsoft.NET.Runtime.MonoAOTCompiler.Task" Version="6.0.9">
252+
<Dependency Name="Microsoft.NET.Runtime.MonoAOTCompiler.Task" Version="6.0.10">
253253
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-runtime</Uri>
254-
<Sha>163a63591cf9e9b682063cf3995948c2b885a042</Sha>
254+
<Sha>5a400c212afdf8e675c9a1d38442e6d2f19f7b74</Sha>
255255
</Dependency>
256-
<Dependency Name="Microsoft.NET.Runtime.WebAssembly.Sdk" Version="6.0.9">
256+
<Dependency Name="Microsoft.NET.Runtime.WebAssembly.Sdk" Version="6.0.10">
257257
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-runtime</Uri>
258-
<Sha>163a63591cf9e9b682063cf3995948c2b885a042</Sha>
258+
<Sha>5a400c212afdf8e675c9a1d38442e6d2f19f7b74</Sha>
259259
</Dependency>
260260
<!--
261261
Win-x64 is used here because we have picked an arbitrary runtime identifier to flow the version of the latest NETCore.App runtime.
262262
All Runtime.$rid packages should have the same version.
263263
-->
264-
<Dependency Name="Microsoft.NETCore.App.Runtime.win-x64" Version="6.0.9">
264+
<Dependency Name="Microsoft.NETCore.App.Runtime.win-x64" Version="6.0.10">
265265
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-runtime</Uri>
266-
<Sha>163a63591cf9e9b682063cf3995948c2b885a042</Sha>
266+
<Sha>5a400c212afdf8e675c9a1d38442e6d2f19f7b74</Sha>
267267
</Dependency>
268-
<Dependency Name="Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.browser-wasm" Version="6.0.9">
268+
<Dependency Name="Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.browser-wasm" Version="6.0.10">
269269
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-runtime</Uri>
270-
<Sha>163a63591cf9e9b682063cf3995948c2b885a042</Sha>
270+
<Sha>5a400c212afdf8e675c9a1d38442e6d2f19f7b74</Sha>
271271
</Dependency>
272-
<Dependency Name="Microsoft.NETCore.BrowserDebugHost.Transport" Version="6.0.9-servicing.22419.5">
272+
<Dependency Name="Microsoft.NETCore.BrowserDebugHost.Transport" Version="6.0.10-servicing.22476.5">
273273
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-runtime</Uri>
274-
<Sha>163a63591cf9e9b682063cf3995948c2b885a042</Sha>
274+
<Sha>5a400c212afdf8e675c9a1d38442e6d2f19f7b74</Sha>
275275
</Dependency>
276276
</ProductDependencies>
277277
<ToolsetDependencies>
278278
<!-- Listed explicitly to workaround https://github.com/dotnet/cli/issues/10528 -->
279-
<Dependency Name="Microsoft.NETCore.Platforms" Version="6.0.5">
279+
<Dependency Name="Microsoft.NETCore.Platforms" Version="6.0.6">
280280
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-runtime</Uri>
281-
<Sha>f316191dbb5782d76ceb457018dcd80ff8ce8692</Sha>
281+
<Sha>5a400c212afdf8e675c9a1d38442e6d2f19f7b74</Sha>
282282
</Dependency>
283283
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="6.0.0-beta.22463.7">
284284
<Uri>https://github.com/dotnet/arcade</Uri>

eng/Versions.props

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
<AspNetCoreMajorVersion>6</AspNetCoreMajorVersion>
1010
<AspNetCoreMinorVersion>0</AspNetCoreMinorVersion>
1111
<AspNetCorePatchVersion>11</AspNetCorePatchVersion>
12-
<ValidateBaseline>false</ValidateBaseline>
12+
<ValidateBaseline>true</ValidateBaseline>
1313
<!--
1414
When StabilizePackageVersion is set to 'true', this branch will produce stable outputs for 'Shipping' packages
1515
-->
@@ -63,12 +63,12 @@
6363
<PropertyGroup Label="Automated">
6464
<!-- Packages from dotnet/runtime -->
6565
<MicrosoftExtensionsDependencyModelVersion>6.0.0</MicrosoftExtensionsDependencyModelVersion>
66-
<MicrosoftNETCoreAppRefVersion>6.0.9</MicrosoftNETCoreAppRefVersion>
67-
<MicrosoftNETCoreAppRuntimewinx64Version>6.0.9</MicrosoftNETCoreAppRuntimewinx64Version>
68-
<MicrosoftNETRuntimeMonoAOTCompilerTaskVersion>6.0.9</MicrosoftNETRuntimeMonoAOTCompilerTaskVersion>
69-
<MicrosoftNETRuntimeWebAssemblySdkVersion>6.0.9</MicrosoftNETRuntimeWebAssemblySdkVersion>
70-
<MicrosoftNETCoreAppRuntimeAOTwinx64CrossbrowserwasmVersion>6.0.9</MicrosoftNETCoreAppRuntimeAOTwinx64CrossbrowserwasmVersion>
71-
<MicrosoftNETCoreBrowserDebugHostTransportVersion>6.0.9-servicing.22419.5</MicrosoftNETCoreBrowserDebugHostTransportVersion>
66+
<MicrosoftNETCoreAppRefVersion>6.0.10</MicrosoftNETCoreAppRefVersion>
67+
<MicrosoftNETCoreAppRuntimewinx64Version>6.0.10</MicrosoftNETCoreAppRuntimewinx64Version>
68+
<MicrosoftNETRuntimeMonoAOTCompilerTaskVersion>6.0.10</MicrosoftNETRuntimeMonoAOTCompilerTaskVersion>
69+
<MicrosoftNETRuntimeWebAssemblySdkVersion>6.0.10</MicrosoftNETRuntimeWebAssemblySdkVersion>
70+
<MicrosoftNETCoreAppRuntimeAOTwinx64CrossbrowserwasmVersion>6.0.10</MicrosoftNETCoreAppRuntimeAOTwinx64CrossbrowserwasmVersion>
71+
<MicrosoftNETCoreBrowserDebugHostTransportVersion>6.0.10-servicing.22476.5</MicrosoftNETCoreBrowserDebugHostTransportVersion>
7272
<MicrosoftExtensionsCachingAbstractionsVersion>6.0.0</MicrosoftExtensionsCachingAbstractionsVersion>
7373
<MicrosoftExtensionsCachingMemoryVersion>6.0.1</MicrosoftExtensionsCachingMemoryVersion>
7474
<MicrosoftExtensionsConfigurationAbstractionsVersion>6.0.0</MicrosoftExtensionsConfigurationAbstractionsVersion>
@@ -82,7 +82,7 @@
8282
<MicrosoftExtensionsConfigurationUserSecretsVersion>6.0.1</MicrosoftExtensionsConfigurationUserSecretsVersion>
8383
<MicrosoftExtensionsConfigurationXmlVersion>6.0.0</MicrosoftExtensionsConfigurationXmlVersion>
8484
<MicrosoftExtensionsDependencyInjectionAbstractionsVersion>6.0.0</MicrosoftExtensionsDependencyInjectionAbstractionsVersion>
85-
<MicrosoftExtensionsDependencyInjectionVersion>6.0.0</MicrosoftExtensionsDependencyInjectionVersion>
85+
<MicrosoftExtensionsDependencyInjectionVersion>6.0.1</MicrosoftExtensionsDependencyInjectionVersion>
8686
<MicrosoftExtensionsFileProvidersAbstractionsVersion>6.0.0</MicrosoftExtensionsFileProvidersAbstractionsVersion>
8787
<MicrosoftExtensionsFileProvidersCompositeVersion>6.0.0</MicrosoftExtensionsFileProvidersCompositeVersion>
8888
<MicrosoftExtensionsFileProvidersPhysicalVersion>6.0.0</MicrosoftExtensionsFileProvidersPhysicalVersion>
@@ -103,7 +103,7 @@
103103
<MicrosoftExtensionsOptionsDataAnnotationsVersion>6.0.0</MicrosoftExtensionsOptionsDataAnnotationsVersion>
104104
<MicrosoftExtensionsOptionsVersion>6.0.0</MicrosoftExtensionsOptionsVersion>
105105
<MicrosoftExtensionsPrimitivesVersion>6.0.0</MicrosoftExtensionsPrimitivesVersion>
106-
<MicrosoftInternalRuntimeAspNetCoreTransportVersion>6.0.9-servicing.22419.5</MicrosoftInternalRuntimeAspNetCoreTransportVersion>
106+
<MicrosoftInternalRuntimeAspNetCoreTransportVersion>6.0.10-servicing.22476.5</MicrosoftInternalRuntimeAspNetCoreTransportVersion>
107107
<SystemDiagnosticsDiagnosticSourceVersion>6.0.0</SystemDiagnosticsDiagnosticSourceVersion>
108108
<SystemDiagnosticsEventLogVersion>6.0.0</SystemDiagnosticsEventLogVersion>
109109
<SystemDirectoryServicesProtocolsVersion>6.0.1</SystemDirectoryServicesProtocolsVersion>
@@ -120,16 +120,16 @@
120120
<SystemTextJsonVersion>6.0.6</SystemTextJsonVersion>
121121
<SystemThreadingChannelsVersion>6.0.0</SystemThreadingChannelsVersion>
122122
<!-- Only listed explicitly to workaround https://github.com/dotnet/cli/issues/10528 -->
123-
<MicrosoftNETCorePlatformsVersion>6.0.5</MicrosoftNETCorePlatformsVersion>
123+
<MicrosoftNETCorePlatformsVersion>6.0.6</MicrosoftNETCorePlatformsVersion>
124124
<!-- Packages from dotnet/efcore -->
125-
<dotnetefVersion>6.0.9</dotnetefVersion>
126-
<MicrosoftEntityFrameworkCoreInMemoryVersion>6.0.9</MicrosoftEntityFrameworkCoreInMemoryVersion>
127-
<MicrosoftEntityFrameworkCoreRelationalVersion>6.0.9</MicrosoftEntityFrameworkCoreRelationalVersion>
128-
<MicrosoftEntityFrameworkCoreSqliteVersion>6.0.9</MicrosoftEntityFrameworkCoreSqliteVersion>
129-
<MicrosoftEntityFrameworkCoreSqlServerVersion>6.0.9</MicrosoftEntityFrameworkCoreSqlServerVersion>
130-
<MicrosoftEntityFrameworkCoreToolsVersion>6.0.9</MicrosoftEntityFrameworkCoreToolsVersion>
131-
<MicrosoftEntityFrameworkCoreVersion>6.0.9</MicrosoftEntityFrameworkCoreVersion>
132-
<MicrosoftEntityFrameworkCoreDesignVersion>6.0.9</MicrosoftEntityFrameworkCoreDesignVersion>
125+
<dotnetefVersion>6.0.10</dotnetefVersion>
126+
<MicrosoftEntityFrameworkCoreInMemoryVersion>6.0.10</MicrosoftEntityFrameworkCoreInMemoryVersion>
127+
<MicrosoftEntityFrameworkCoreRelationalVersion>6.0.10</MicrosoftEntityFrameworkCoreRelationalVersion>
128+
<MicrosoftEntityFrameworkCoreSqliteVersion>6.0.10</MicrosoftEntityFrameworkCoreSqliteVersion>
129+
<MicrosoftEntityFrameworkCoreSqlServerVersion>6.0.10</MicrosoftEntityFrameworkCoreSqlServerVersion>
130+
<MicrosoftEntityFrameworkCoreToolsVersion>6.0.10</MicrosoftEntityFrameworkCoreToolsVersion>
131+
<MicrosoftEntityFrameworkCoreVersion>6.0.10</MicrosoftEntityFrameworkCoreVersion>
132+
<MicrosoftEntityFrameworkCoreDesignVersion>6.0.10</MicrosoftEntityFrameworkCoreDesignVersion>
133133
<!-- Packages from dotnet/arcade -->
134134
<MicrosoftDotNetBuildTasksInstallersVersion>6.0.0-beta.22463.7</MicrosoftDotNetBuildTasksInstallersVersion>
135135
<MicrosoftDotNetBuildTasksTemplatingVersion>6.0.0-beta.22463.7</MicrosoftDotNetBuildTasksTemplatingVersion>

global.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
{
22
"sdk": {
3-
"version": "6.0.109"
3+
"version": "6.0.110"
44
},
55
"tools": {
6-
"dotnet": "6.0.109",
6+
"dotnet": "6.0.110",
77
"runtimes": {
88
"dotnet/x64": [
99
"2.1.30",
@@ -13,7 +13,7 @@
1313
"$(MicrosoftNETCoreBrowserDebugHostTransportVersion)"
1414
],
1515
"aspnetcore/x64": [
16-
"3.1.28"
16+
"3.1.30"
1717
]
1818
},
1919
"Git": "2.22.0",

src/DataProtection/DataProtection/src/Repositories/FileSystemXmlRepository.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
using System.Collections.Generic;
66
using System.IO;
77
using System.Linq;
8+
using System.Runtime.InteropServices;
89
using System.Xml.Linq;
910
using Microsoft.AspNetCore.DataProtection.Internal;
1011
using Microsoft.Extensions.Logging;
@@ -131,9 +132,17 @@ private void StoreElementCore(XElement element, string filename)
131132
// crashes mid-write, we won't end up with a corrupt .xml file.
132133

133134
Directory.Create(); // won't throw if the directory already exists
135+
134136
var tempFilename = Path.Combine(Directory.FullName, Guid.NewGuid().ToString() + ".tmp");
135137
var finalFilename = Path.Combine(Directory.FullName, filename + ".xml");
136138

139+
// Create a temp file with the correct Unix file mode before moving it to the expected finalFilename.
140+
if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
141+
{
142+
var tempTempFilename = Path.GetTempFileName();
143+
File.Move(tempTempFilename, tempFilename);
144+
}
145+
137146
try
138147
{
139148
using (var tempFileStream = File.OpenWrite(tempFilename))

src/DataProtection/DataProtection/test/Repositories/FileSystemXmlRepositoryTests.cs

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
// The .NET Foundation licenses this file to you under the MIT license.
33

44
using System;
5+
using System.Diagnostics;
56
using System.IO;
67
using System.Linq;
78
using System.Runtime.InteropServices;
@@ -158,6 +159,39 @@ public void Logs_DockerEphemeralFolders()
158159
});
159160
}
160161

162+
[ConditionalFact]
163+
[OSSkipCondition(OperatingSystems.Windows, SkipReason = "UnixFileMode is not supported on Windows.")]
164+
public void StoreElement_CreatesFileWithUserOnlyUnixFileMode()
165+
{
166+
WithUniqueTempDirectory(dirInfo =>
167+
{
168+
// Arrange
169+
var element = XElement.Parse("<element1 />");
170+
var repository = new FileSystemXmlRepository(dirInfo, NullLoggerFactory.Instance);
171+
172+
// Act
173+
repository.StoreElement(element, "friendly-name");
174+
175+
// Assert
176+
var fileInfo = Assert.Single(dirInfo.GetFiles());
177+
178+
//Assert.Equal(UnixFileMode.UserRead | UnixFileMode.UserWrite, fileInfo.UnixFileMode);
179+
var processStartInfo = new ProcessStartInfo
180+
{
181+
FileName = "ls",
182+
Arguments = $"-l {fileInfo.FullName}",
183+
RedirectStandardOutput = true,
184+
UseShellExecute = false
185+
};
186+
var process = Process.Start(processStartInfo);
187+
188+
Assert.NotNull(process);
189+
var output = process!.StandardOutput.ReadToEnd();
190+
process.WaitForExit();
191+
Assert.StartsWith("-rw-------", output);
192+
});
193+
}
194+
161195
/// <summary>
162196
/// Runs a test and cleans up the temp directory afterward.
163197
/// </summary>

src/Http/WebUtilities/src/FileBufferingReadStream.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
using System.Diagnostics;
77
using System.Diagnostics.CodeAnalysis;
88
using System.IO;
9+
using System.Runtime.InteropServices;
910
using System.Threading;
1011
using System.Threading.Tasks;
1112
using Microsoft.AspNetCore.Internal;
@@ -258,6 +259,14 @@ private Stream CreateTempFile()
258259
}
259260

260261
_tempFileName = Path.Combine(_tempFileDirectory, "ASPNETCORE_" + Guid.NewGuid().ToString() + ".tmp");
262+
263+
// Create a temp file with the correct Unix file mode before moving it to the assigned _tempFileName in the _tempFileDirectory.
264+
if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
265+
{
266+
var tempTempFileName = Path.GetTempFileName();
267+
File.Move(tempTempFileName, _tempFileName);
268+
}
269+
261270
return new FileStream(_tempFileName, FileMode.Create, FileAccess.ReadWrite, FileShare.Delete, 1024 * 16,
262271
FileOptions.Asynchronous | FileOptions.DeleteOnClose | FileOptions.SequentialScan);
263272
}

0 commit comments

Comments
 (0)