Swift: Generalize 'write' models.

This commit is contained in:
Geoffrey White
2023-10-11 18:43:36 +01:00
parent 09974b5176
commit 7916bd39b4
3 changed files with 20 additions and 2 deletions

View File

@@ -20,6 +20,7 @@ private import Numeric
private import PointerTypes
private import Sequence
private import Set
private import Stream
private import String
private import Url
private import UrlSession

View File

@@ -0,0 +1,19 @@
/**
* Provides models for `TextOutputStream` and related Swift classes.
*/
import swift
private import codeql.swift.dataflow.ExternalFlow
/**
* A model for members of `TextOutputStream` and similar classes that permit taint flow.
*/
private class StringSummaries extends SummaryModelCsv {
override predicate row(string row) {
row =
[
";TextOutputStream;true;write(_:);;;Argument[0];Argument[-1];taint",
";TextOutputStreamable;true;write(to:);;;Argument[-1];Argument[0];taint",
]
}
}

View File

@@ -111,8 +111,6 @@ private class StringSummaries extends SummaryModelCsv {
";String;true;init(validatingPlatformString:);;;Argument[0].CollectionElement;ReturnValue.OptionalSome;taint",
";String;true;localizedStringWithFormat(_:_:);;;Argument[0];ReturnValue;taint",
";String;true;localizedStringWithFormat(_:_:);;;Argument[1].CollectionElement;ReturnValue;taint",
";String;true;write(_:);;;Argument[0];Argument[-1];taint",
";String;true;write(to:);;;Argument[-1];Argument[0];taint",
";String;true;insert(contentsOf:at:);;;Argument[0];Argument[-1];taint",
";String;true;replaceSubrange(_:with:);;;Argument[1];Argument[-1];taint",
";String;true;max();;;Argument[-1];ReturnValue;taint",