Closed
Description
Previous ID | SR-6849 |
Radar | rdar://problem/36905620 |
Original Reporter | @Lukasa |
Type | Bug |
Status | Closed |
Resolution | Done |
Environment
Ubuntu 16.04
Swift version 4.1-dev (LLVM 5b54bd1e96, Clang 03ed64977b, Swift 88a7a55e83)
Target: x86_64-unknown-linux-gnu
Additional Detail from JIRA
Votes | 1 |
Component/s | Foundation |
Labels | Bug |
Assignee | @phausler |
Priority | Medium |
md5: 565e16afee84c6e52512f27cc992472d
Issue Description:
The following program fails under ASAN on Linux when using the Swift nightly from January 25:
import Foundation
for _ in 0..<10 {
let data = Data(base64Encoded: "UE9TVCAvIEhUVFAvMS4wDQpDb250ZW50LUxlbmd0aDoNCg0K")!
}
The output is:
=================================================================
==7043==ERROR: LeakSanitizer: detected memory leaks
Direct leak of 360 byte(s) in 10 object(s) allocated from:
#​0 0x556f77e99d63 (/home/cbenfield/test+0x9dd63)
#​1 0x7ff2c57bbbb2 (/usr/local/swift/swift-4.1-DEVELOPMENT-SNAPSHOT-2018-01-25-a-ubuntu16.04/usr/lib/swift/linux/libFoundation.so+0x22fbb2)
SUMMARY: AddressSanitizer: 360 byte(s) leaked in 10 allocation(s).
If we want a more helpful stack we can disable ASAN and run under Valgrind:
==7078== 360 bytes in 10 blocks are definitely lost in loss record 15 of 19
==7078== at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==7078== by 0x553CBB2: _CFDataInit (in /usr/local/swift/swift-4.1-DEVELOPMENT-SNAPSHOT-2018-01-25-a-ubuntu16.04/usr/lib/swift/linux/libFoundation.so)
==7078== by 0x56EB42A: function signature specialization <Arg[0] = Exploded> of Foundation.NSData.init(base64Encoded: Swift.String, options: Foundation.NSData.Base64DecodingOptions) -> Foundation.NSData? (in /usr/local/swift/swift-4.1-DEVELOPMENT-SNAPSHOT-2018-01-25-a-ubuntu16.04/usr/lib/swift/linux/libFoundation.so)
==7078== by 0x56E2437: merged Foundation.NSData.__allocating_init(base64Encoded: Swift.String, options: Foundation.NSData.Base64DecodingOptions) -> Foundation.NSData? (in /usr/local/swift/swift-4.1-DEVELOPMENT-SNAPSHOT-2018-01-25-a-ubuntu16.04/usr/lib/swift/linux/libFoundation.so)
==7078== by 0x56E239F: Foundation.NSData.__allocating_init(base64Encoded: Swift.String, options: Foundation.NSData.Base64DecodingOptions) -> Foundation.NSData? (in /usr/local/swift/swift-4.1-DEVELOPMENT-SNAPSHOT-2018-01-25-a-ubuntu16.04/usr/lib/swift/linux/libFoundation.so)
==7078== by 0x59A6972: Foundation.Data.init(base64Encoded: Swift.String, options: Foundation.NSData.Base64DecodingOptions) -> Foundation.Data? (in /usr/local/swift/swift-4.1-DEVELOPMENT-SNAPSHOT-2018-01-25-a-ubuntu16.04/usr/lib/swift/linux/libFoundation.so)
==7078== by 0x1090A2: main (in /home/cbenfield/test)
==7078==
==7078== LEAK SUMMARY:
==7078== definitely lost: 360 bytes in 10 blocks
This just seems like it's a straightforward leak of CFData
.