diff --git a/swift/ql/test/library-tests/dataflow/taint/try.swift b/swift/ql/test/library-tests/dataflow/taint/try.swift new file mode 100644 index 00000000000..caa851dc0b0 --- /dev/null +++ b/swift/ql/test/library-tests/dataflow/taint/try.swift @@ -0,0 +1,19 @@ +func clean() throws -> String { return ""; } +func source() throws -> String { return ""; } +func sink(arg: String) {} + +func taintThroughTry() { + do + { + sink(arg: try clean()) + sink(arg: try source()) // tainted [NOT DETECTED] + } catch { + // ... + } + + sink(arg: try! clean()) + sink(arg: try! source()) // tainted [NOT DETECTED] + + sink(arg: (try? clean())!) + sink(arg: (try? source())!) // tainted [NOT DETECTED] +}