commit 2208c29f1a731d65d5da76ede258c5ffbd5f9aa4
parent cca98ab52cc17281ed8eaffaf2258ddfff14ec3d
Author: Marc Stibane <marc@taler.net>
Date: Mon, 29 Jun 2026 10:07:31 +0200
clamp init and append
Diffstat:
1 file changed, 13 insertions(+), 8 deletions(-)
diff --git a/TalerWallet1/Helper/Data+fromUInt8Array.swift b/TalerWallet1/Helper/Data+fromUInt8Array.swift
@@ -23,15 +23,20 @@ extension Data {
return self.map { String(format: format, $0) }.joined()
}
- mutating func append(data: Data, offset: Int, size: Int) {
- let start = data.startIndex + offset
- let end = start + size
- self.append(data[start..<end])
+ static func clampedData(_ data: Data, offset: UInt, size: UInt) -> Data {
+ let endIndex = UInt(data.endIndex)
+ let start = UInt(data.startIndex) + offset
+ let start2 = Swift.min(start, endIndex-1)
+ let end = start2 + size
+ let end2 = Swift.min(end, endIndex)
+ return data[start2..<end2]
}
- init(fromData data: Data, offset: Int, size: Int) {
- let start = data.startIndex + offset
- let end = start + size
- self.init(data[start..<end])
+ mutating func append(data: Data, offset: UInt, size: UInt) {
+ self.append(Data.clampedData(data, offset: offset, size: size))
+ }
+
+ init(fromData data: Data, offset: UInt, size: UInt) {
+ self.init(Data.clampedData(data, offset: offset, size: size))
}
}