Skip to content

Commit 7d053e5

Browse files
committed
Avoid runtime bounds checks on backtrace counts
1 parent 0041b5d commit 7d053e5

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

Sources/Testing/SourceAttribution/Backtrace.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,12 +67,12 @@ public struct Backtrace: Sendable {
6767
if #available(_backtraceAsyncAPI, *) {
6868
initializedCount = backtrace_async(addresses.baseAddress!, addresses.count, nil)
6969
} else {
70-
initializedCount = .init(backtrace(addresses.baseAddress!, .init(addresses.count)))
70+
initializedCount = .init(clamping: backtrace(addresses.baseAddress!, .init(clamping: addresses.count)))
7171
}
7272
#elseif os(Linux)
73-
initializedCount = .init(backtrace(addresses.baseAddress!, .init(addresses.count)))
73+
initializedCount = .init(clamping: backtrace(addresses.baseAddress!, .init(clamping: addresses.count)))
7474
#elseif os(Windows)
75-
initializedCount = Int(RtlCaptureStackBackTrace(0, ULONG(addresses.count), addresses.baseAddress!, nil))
75+
initializedCount = Int(clamping: RtlCaptureStackBackTrace(0, ULONG(clamping: addresses.count), addresses.baseAddress!, nil))
7676
#elseif os(WASI)
7777
// SEE: https://github.com/WebAssembly/WASI/issues/159
7878
// SEE: https://github.com/swiftlang/swift/pull/31693

0 commit comments

Comments
 (0)