diff --git a/Sources/ContainerizationOS/BinaryInteger+Extensions.swift b/Sources/ContainerizationOS/BinaryInteger+Extensions.swift index 04163831..f7e4dd54 100644 --- a/Sources/ContainerizationOS/BinaryInteger+Extensions.swift +++ b/Sources/ContainerizationOS/BinaryInteger+Extensions.swift @@ -16,7 +16,7 @@ extension BinaryInteger { private func toUnsignedMemoryAmount(_ amount: UInt64) -> UInt64 { - guard self > 0 else { + guard self >= 0 else { fatalError("encountered negative number during conversion to memory amount") } let val = UInt64(self) diff --git a/Sources/ContainerizationOS/File.swift b/Sources/ContainerizationOS/File.swift index ee226254..fee818c2 100644 --- a/Sources/ContainerizationOS/File.swift +++ b/Sources/ContainerizationOS/File.swift @@ -42,7 +42,7 @@ public struct File: Sendable { /// - path: The path to the file as a string. public static func info(_ path: String) throws -> FileInfo { var st = stat() - guard stat(path, &st) == 0 else { + guard lstat(path, &st) == 0 else { throw Error.errno(errno) } return FileInfo(path, stat: st) diff --git a/Sources/ContainerizationOS/Path.swift b/Sources/ContainerizationOS/Path.swift index 5fe2690d..2b586bd0 100644 --- a/Sources/ContainerizationOS/Path.swift +++ b/Sources/ContainerizationOS/Path.swift @@ -33,6 +33,11 @@ public struct Path { } private static func lookup(_ name: String, path: String) -> URL? { + // Return nil for empty names + if name.isEmpty { + return nil + } + if name.contains("/") { if findExec(name) { return URL(fileURLWithPath: name)