commit a90b2e5154cc7fd317fe32ddc80873c3dd85c116
parent c90d5f93be8d2414022e8fa512871d163352d1ee
Author: Marc Stibane <marc@taler.net>
Date: Fri, 14 Aug 2026 08:20:55 +0200
AI: copy the body before `req_create()
Diffstat:
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/TalerWallet1/Quickjs/QuickDataTask.swift b/TalerWallet1/Quickjs/QuickDataTask.swift
@@ -32,9 +32,8 @@ func request_create(userdata: Optional<UnsafeMutableRawPointer>,
var request = URLRequest(url: url)
request.httpMethod = method
request.timeoutInterval = TimeInterval(timeoutMs) / 1000.0
- if let reqBody { // caller will deallocate the req_body after dataTask finish or cancel
- let body = Data(bytesNoCopy: reqBody, count: Int(bodyLen), deallocator: .none)
- request.httpBody = body
+ if let reqBody, bodyLen > 0 { // qtart frees req_body as soon as request_create returns,
+ request.httpBody = Data(bytes: reqBody, count: Int(bodyLen)) // thus we must copy it
}
if var ptr = requestHeaders {
while let cString = ptr.pointee {