From 15bbddcaeb4b15a7fdd15aadfc7aa37bc5051447 Mon Sep 17 00:00:00 2001 From: Dmitry Kovba Date: Mon, 30 Mar 2026 13:03:37 -0700 Subject: [PATCH] Fix the `xattr` sort comparator (#605) - Closes #603. - Fixes the `xattr` sort comparator. For example, when `$0.index > $1.index` and `$0.name.count < $1.name.count`. --- Sources/ContainerizationEXT4/EXT4+Xattrs.swift | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/Sources/ContainerizationEXT4/EXT4+Xattrs.swift b/Sources/ContainerizationEXT4/EXT4+Xattrs.swift index c0a2abcf..6038ecd1 100644 --- a/Sources/ContainerizationEXT4/EXT4+Xattrs.swift +++ b/Sources/ContainerizationEXT4/EXT4+Xattrs.swift @@ -177,10 +177,13 @@ extension EXT4 { } var attributes = self.blockAttributes attributes.sort(by: { - if ($0.index < $1.index) || ($0.name.count < $1.name.count) || ($0.name < $1.name) { - return true + if $0.index != $1.index { + return $0.index < $1.index } - return false + if $0.name.count != $1.name.count { + return $0.name.count < $1.name.count + } + return $0.name < $1.name }) try Self.write(buffer: &buffer, attrs: attributes, start: UInt16(idx), delta: UInt16(idx), inline: false) }