Skip to content

Extract_HardLinkEntry_TargetInsideDirectory test from System.Formats.Tar.Tests fails on Android/iOS/tvOS #68360

@akoeplinger

Description

@akoeplinger

Newly added test from #67883 fails on runtime-extra-platfroms.
I haven't investigated whether it is expected, just filing this so I can disable the test with ActiveIssue.

Android fails with

System.UnauthorizedAccessException : Access to the path '/data/user/0/net.dot.System.Formats.Tar.Tests/cache/qtsmyi3v.nmj/link' is denied.
---- System.IO.IOException : Permission denied


Stack trace
   at Interop.ThrowExceptionForIoErrno(ErrorInfo errorInfo, String path, Boolean isDirectory, Func`2 errorRewriter)
   at Interop.CheckIo(Int64 result, String path, Boolean isDirectory, Func`2 errorRewriter)
   at Interop.CheckIo(Int32 result, String path, Boolean isDirectory, Func`2 errorRewriter)
   at System.Formats.Tar.TarEntry.ExtractAsHardLink(String targetFilePath, String hardLinkFilePath)
   at System.Formats.Tar.TarEntry.ExtractToFileInternal(String filePath, String linkTargetPath, Boolean overwrite)
   at System.Formats.Tar.TarEntry.ExtractRelativeToDirectory(String destinationDirectoryPath, Boolean overwrite)
   at System.Formats.Tar.TarFile.ExtractToDirectoryInternal(Stream source, String destinationDirectoryPath, Boolean overwriteFiles, Boolean leaveOpen)
   at System.Formats.Tar.TarFile.ExtractToDirectory(Stream source, String destinationDirectoryName, Boolean overwriteFiles)
   at System.Formats.Tar.Tests.TarFile_ExtractToDirectory_Stream_Tests.Extract_LinkEntry_TargetInsideDirectory_Internal(TarEntryType entryType) in /_/src/libraries/System.Formats.Tar/tests/TarFile/TarFile.ExtractToDirectory.Stream.Tests.cs:line 123
   at System.Formats.Tar.Tests.TarFile_ExtractToDirectory_Stream_Tests.Extract_HardLinkEntry_TargetInsideDirectory() in /_/src/libraries/System.Formats.Tar/tests/TarFile/TarFile.ExtractToDirectory.Stream.Tests.cs:line 101
   at System.Reflection.RuntimeMethodInfo.InvokeNonEmitUnsafe(Object obj, IntPtr* byrefParameters, Span`1 argsForTemporaryMonoSupport, BindingFlags invokeAttr)
----- Inner Stack Trace -----

iOS/tvOS Simulators fail with

System.IO.IOException : Extracting the Tar entry '/Users/helix-runner/Library/Developer/CoreSimulator/Devices/11416593-2690-443B-964F-E9F6694BA19A/dat' would have resulted in a link target outside the specified destination directory: '/Users/helix-runner/Library/Developer/CoreSimulator/Devices/11416593-2690-443B-964F-E9F6694BA19A/data/Containers/Data/Application/1BD07C3B-0285-4EAB-943A-2BBFDD9E63A5/tmp/f2gsvib5.4m4/'


Stack trace
   at System.Formats.Tar.TarEntry.<ExtractRelativeToDirectory>g__GetSanitizedFullPath|34_0(String destinationDirectoryFullPath, String path, String exceptionMessage)
   at System.Formats.Tar.TarEntry.ExtractRelativeToDirectory(String destinationDirectoryPath, Boolean overwrite)
   at System.Formats.Tar.TarFile.ExtractToDirectoryInternal(Stream source, String destinationDirectoryPath, Boolean overwriteFiles, Boolean leaveOpen)
   at System.Formats.Tar.TarFile.ExtractToDirectory(Stream source, String destinationDirectoryName, Boolean overwriteFiles)
   at System.Formats.Tar.Tests.TarFile_ExtractToDirectory_Stream_Tests.Extract_LinkEntry_TargetInsideDirectory_Internal(TarEntryType entryType)
   at System.Formats.Tar.Tests.TarFile_ExtractToDirectory_Stream_Tests.Extract_HardLinkEntry_TargetInsideDirectory()
   at System.Reflection.RuntimeMethodInfo.InvokeNonEmitUnsafe(Object obj, IntPtr* byrefParameters, Span`1 argsForTemporaryMonoSupport, BindingFlags invokeAttr)

FYI @carlossanlop

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions