diff --git a/osu.Game.Tests/Skins/IO/ImportSkinTest.cs b/osu.Game.Tests/Skins/IO/ImportSkinTest.cs
index 62e7a80435..66e286cf4f 100644
--- a/osu.Game.Tests/Skins/IO/ImportSkinTest.cs
+++ b/osu.Game.Tests/Skins/IO/ImportSkinTest.cs
@@ -294,6 +294,39 @@ namespace osu.Game.Tests.Skins.IO
#endregion
+ ///
+ /// Note that this test passing / failing is platform / OS-specific (if it is to fail, it'll fail on windows).
+ ///
+ [Test]
+ public async Task TestExternallyMountingImportWithInvalidFilename()
+ {
+ using (HeadlessGameHost host = new CleanRunHeadlessGameHost())
+ {
+ try
+ {
+ var osu = LoadOsuIntoHost(host);
+
+ var zipStream = new MemoryStream();
+ using var zip = ZipArchive.Create();
+ zip.AddEntry("test?.png", new MemoryStream(new byte[] { 0xDE, 0xAD, 0xBE, 0xEF }));
+ zip.SaveTo(zipStream);
+
+ var import = await loadSkinIntoOsu(osu, new ImportTask(zipStream, "test skin.osk"));
+
+ var skinManager = osu.Dependencies.Get();
+ var externalEdit = await skinManager.BeginExternalEditing(import.PerformRead(s => s.Detach())); // should not fail
+
+ Task finishTask = Task.CompletedTask;
+ host.UpdateThread.Scheduler.Add(() => finishTask = externalEdit.Finish());
+ await finishTask;
+ }
+ finally
+ {
+ host.Exit();
+ }
+ }
+ }
+
private void assertCorrectMetadata(Live import1, string name, string creator, decimal version, OsuGameBase osu)
{
import1.PerformRead(i =>