mirror of
https://github.com/tsolomko/SWCompression.git
synced 2026-06-23 14:56:41 +00:00
Fix incorrect posixPermissions in tar in some cases
Sometimes "mode" fields also includes unix type which we haven't accounted for.
This commit is contained in:
@@ -168,13 +168,14 @@ public class TarEntry: ContainerEntry {
|
||||
var attributesDict = [FileAttributeKey: Any]()
|
||||
|
||||
let blockStartIndex = pointerData.index
|
||||
|
||||
// File name
|
||||
fileName = try pointerData.nullEndedAsciiString(cutoff: 100)
|
||||
|
||||
// File mode
|
||||
guard let octalPosixPermissions = Int(try pointerData.nullSpaceEndedAsciiString(cutoff: 8))
|
||||
else { throw TarError.fieldIsNotNumber }
|
||||
let posixPermissions = octalPosixPermissions.octalToDecimal()
|
||||
let posixPermissions = octalPosixPermissions.octalToDecimal() & 0xFFF
|
||||
attributesDict[FileAttributeKey.posixPermissions] = posixPermissions
|
||||
mode = posixPermissions
|
||||
|
||||
|
||||
Reference in New Issue
Block a user