Skip to content

Commit e7e6529

Browse files
committed
Swift: Add tests.
1 parent 49add7d commit e7e6529

File tree

1 file changed

+48
-0
lines changed
  • swift/ql/test/library-tests/dataflow/taint/libraries

1 file changed

+48
-0
lines changed

swift/ql/test/library-tests/dataflow/taint/libraries/data.swift

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -293,4 +293,52 @@ func taintThroughData() {
293293
let pointerTainted44 = UnsafeMutableRawBufferPointer.allocate(byteCount: 0, alignment: 0)
294294
dataTainted44.copyBytes(to: pointerTainted44)
295295
sink(arg: pointerTainted44) // $ tainted=292
296+
297+
let dataTainted45 = source() as! Data
298+
let result45 = dataTainted45.withContiguousStorageIfAvailable({
299+
buffer in
300+
301+
sink(arg: buffer) // $ tainted=297
302+
sink(arg: buffer[0]) // $ tainted=297
303+
304+
return source() as! Int
305+
})
306+
sink(arg: result45!) // $ tainted=304
307+
308+
var data46 = Data(0)
309+
let result46 = data46.withContiguousMutableStorageIfAvailable({
310+
buffer in
311+
312+
buffer[0] = source() as! UInt8
313+
sink(arg: buffer)
314+
sink(arg: buffer[0]) // $ MISSING: tainted=312
315+
316+
return source() as! Int
317+
})
318+
sink(arg: result46!) // $ tainted=316
319+
sink(arg: data46) // $ MISSING: tainted=312
320+
321+
let dataTainted47 = source() as! Data
322+
let result47 = dataTainted47.withUnsafeBytes({
323+
buffer in
324+
325+
sink(arg: buffer) // $ tainted=321
326+
sink(arg: buffer[0]) // $ tainted=321
327+
328+
return source() as! Int
329+
})
330+
sink(arg: result47) // $ tainted=328
331+
332+
var data48 = Data(0)
333+
let result48 = data48.withUnsafeMutableBytes({
334+
buffer in
335+
336+
buffer[0] = source() as! UInt8
337+
sink(arg: buffer)
338+
sink(arg: buffer[0]) // $ MISSING: tainted=336
339+
340+
return source() as! Int
341+
})
342+
sink(arg: result48) // $ tainted=340
343+
sink(arg: data48) // $ MISSING: tainted=336
296344
}

0 commit comments

Comments
 (0)