@@ -48,10 +48,14 @@ extensions:
4848 - ["java.lang", "AbstractStringBuilder", True, "toString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"]
4949 - ["java.lang", "Appendable", True, "append", "", "", "Argument[this]", "ReturnValue", "value", "manual"]
5050 - ["java.lang", "Appendable", True, "append", "", "", "Argument[0]", "Argument[this]", "taint", "manual"]
51+ - ["java.lang", "AssertionError", False, "AssertionError", "(Object)", "", "Argument[0]", "Argument[-1].SyntheticField[java.lang.Throwable.message]", "value", "manual"]
5152 - ["java.lang", "CharSequence", True, "charAt", "", "", "Argument[this]", "ReturnValue", "taint", "manual"]
5253 - ["java.lang", "CharSequence", True, "subSequence", "", "", "Argument[this]", "ReturnValue", "taint", "manual"]
5354 - ["java.lang", "CharSequence", True, "toString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"]
55+ - ["java.lang", "Class", False, "cast", "(Object)", "", "Argument[0]", "ReturnValue", "taint", "manual"]
5456 - ["java.lang", "Exception", False, "Exception", "(String)", "", "Argument[0]", "Argument[this].SyntheticField[java.lang.Throwable.message]", "value", "manual"]
57+ - ["java.lang", "Exception", False, "Exception", "(String,Throwable)", "", "Argument[0]", "Argument[-1].SyntheticField[java.lang.Throwable.message]", "value", "manual"]
58+ - ["java.lang", "Exception", False, "Exception", "(String,Throwable)", "", "Argument[1]", "Argument[-1].SyntheticField[java.lang.Throwable.cause]", "value", "manual"]
5559 - ["java.lang", "IllegalArgumentException", False, "IllegalArgumentException", "(String)", "", "Argument[0]", "Argument[this].SyntheticField[java.lang.Throwable.message]", "value", "manual"]
5660 - ["java.lang", "IllegalStateException", False, "IllegalStateException", "(String)", "", "Argument[0]", "Argument[this].SyntheticField[java.lang.Throwable.message]", "value", "manual"]
5761 - ["java.lang", "IndexOutOfBoundsException", False, "IndexOutOfBoundsException", "(String)", "", "Argument[0]", "Argument[this].SyntheticField[java.lang.Throwable.message]", "value", "manual"]
@@ -104,26 +108,39 @@ extensions:
104108 - ["java.lang", "String", False, "valueOf", "(char)", "", "Argument[0]", "ReturnValue", "taint", "manual"]
105109 - ["java.lang", "String", False, "valueOf", "(char[])", "", "Argument[0]", "ReturnValue", "taint", "manual"]
106110 - ["java.lang", "String", False, "valueOf", "(char[],int,int)", "", "Argument[0]", "ReturnValue", "taint", "manual"]
111+ # ! why do below have subtype=True for constructors?
107112 - ["java.lang", "StringBuffer", True, "StringBuffer", "(CharSequence)", "", "Argument[0]", "Argument[this]", "taint", "manual"]
108113 - ["java.lang", "StringBuffer", True, "StringBuffer", "(String)", "", "Argument[0]", "Argument[this]", "taint", "manual"]
109114 - ["java.lang", "StringBuilder", True, "StringBuilder", "", "", "Argument[0]", "Argument[this]", "taint", "manual"]
115+ - ["java.lang", "StringBuilder", False, "delete", "(int,int)", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
110116 - ["java.lang", "System", False, "arraycopy", "", "", "Argument[0]", "Argument[2]", "taint", "manual"]
117+ - ["java.lang", "System", False, "getenv", "(String)", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] # ! neutral instead?
118+ - ["java.lang", "System", False, "getenv", "(String)", "", "Argument[0]", "ReturnValue", "taint", "manual"] # ! really unsure about this...; neutral instead? -- or unmodelled
119+ - ["java.lang", "Thread", False, "Thread", "(Runnable)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] # ! neutral instead?
111120 - ["java.lang", "ThreadLocal", True, "get", "()", "", "Argument[-1].SyntheticField[java.lang.ThreadLocal.value]", "ReturnValue", "value", "manual"] # ! not sure if this model is correct, and if should be neutral model instead
112121 - ["java.lang", "Throwable", False, "Throwable", "(Throwable)", "", "Argument[0]", "Argument[this].SyntheticField[java.lang.Throwable.cause]", "value", "manual"]
113122 - ["java.lang", "Throwable", True, "getCause", "()", "", "Argument[this].SyntheticField[java.lang.Throwable.cause]", "ReturnValue", "value", "manual"]
114123 - ["java.lang", "Throwable", True, "getMessage", "()", "", "Argument[this].SyntheticField[java.lang.Throwable.message]", "ReturnValue", "value", "manual"]
124+ - ["java.lang", "Throwable", True, "getLocalizedMessage", "()", "", "Argument[-1].SyntheticField[java.lang.Throwable.message]", "ReturnValue", "value", "manual"] # ! should the field used be different?
115125 - ["java.lang", "Throwable", True, "toString", "()", "", "Argument[-1].SyntheticField[java.lang.Throwable.message]", "ReturnValue", "taint", "manual"] # ! little unsure about this one...
116126 - addsTo :
117127 pack : codeql/java-all
118128 extensible : neutralModel
119129 data :
120130 - ["java.lang", "AbstractStringBuilder", "length", "()", "manual"]
121131 - ["java.lang", "Boolean", "equals", "(Object)", "manual"]
132+ - ["java.lang", "Boolean", "valueOf", "(boolean)", "manual"]
133+ - ["java.lang", "Class", "forName", "(String)", "manual"]
122134 - ["java.lang", "Class", "getCanonicalName", "()", "manual"]
123135 - ["java.lang", "Class", "getClassLoader", "()", "manual"]
136+ - ["java.lang", "Class", "getMethod", "(String,Class[])", "manual"]
124137 - ["java.lang", "Class", "getName", "()", "manual"]
138+ - ["java.lang", "Class", "getResource", "(String)", "manual"]
139+ - ["java.lang", "Class", "getResourceAsStream", "(String)", "manual"]
125140 - ["java.lang", "Class", "getSimpleName", "()", "manual"]
126141 - ["java.lang", "Class", "isAssignableFrom", "(Class)", "manual"]
142+ - ["java.lang", "Class", "isInstance", "(Object)", "manual"]
143+ - ["java.lang", "Class", "toString", "()", "manual"]
127144 - ["java.lang", "Enum", "Enum", "(String,int)", "manual"]
128145 - ["java.lang", "Enum", "equals", "(Object)", "manual"]
129146 - ["java.lang", "Enum", "hashCode", "()", "manual"]
@@ -146,24 +163,33 @@ extensions:
146163 - ["java.lang", "String", "indexOf", "(int)", "manual"]
147164 - ["java.lang", "String", "indexOf", "(String)", "manual"]
148165 - ["java.lang", "String", "isEmpty", "()", "manual"]
166+ - ["java.lang", "String", "lastIndexOf", "(int)", "manual"]
149167 - ["java.lang", "String", "length", "()", "manual"]
150168 - ["java.lang", "String", "startsWith", "(String)", "manual"]
151169 - ["java.lang", "System", "currentTimeMillis", "()", "manual"]
170+ - ["java.lang", "System", "exit", "(int)", "manual"]
171+ - ["java.lang", "System", "identityHashCode", "(Object)", "manual"]
152172 - ["java.lang", "System", "lineSeparator", "()", "manual"] # ! double-check...
153173 - ["java.lang", "System", "nanoTime", "()", "manual"]
154174 - ["java.lang", "Thread", "currentThread", "()", "manual"]
175+ - ["java.lang", "Thread", "interrupt", "()", "manual"]
155176 - ["java.lang", "Thread", "sleep", "(long)", "manual"]
156177 - ["java.lang", "Thread", "start", "()", "manual"]
157178 # The below APIs have numeric flow and are currently being stored as neutral models.
158179 # These may be changed to summary models with kinds "value-numeric" and "taint-numeric" (or similar) in the future.
159180 - ["java.lang", "Boolean", "booleanValue", "()", "manual"] # taint-numeric
160181 - ["java.lang", "Boolean", "parseBoolean", "(String)", "manual"] # taint-numeric
182+ - ["java.lang", "Double", "parseDouble", "(String)", "manual"] # taint-numeric
161183 - ["java.lang", "Integer", "Integer", "(int)", "manual"] # taint-numeric
162184 - ["java.lang", "Integer", "intValue", "()", "manual"] # taint-numeric
163185 - ["java.lang", "Integer", "parseInt", "(String)", "manual"] # taint-numeric
186+ - ["java.lang", "Integer", "toHexString", "(int)", "manual"] # taint-numeric
187+ - ["java.lang", "Integer", "toString", "()", "manual"] # taint-numeric
164188 - ["java.lang", "Integer", "toString", "(int)", "manual"] # taint-numeric
165189 - ["java.lang", "Integer", "valueOf", "(int)", "manual"] # taint-numeric
166190 - ["java.lang", "Integer", "valueOf", "(String)", "manual"] # taint-numeric # ! should probably make this and others like it have a "" signature instead...
191+ - ["java.lang", "Long", "Long", "(long)", "manual"] # taint-numeric
192+ - ["java.lang", "Long", "intValue", "()", "manual"] # taint-numeric
167193 - ["java.lang", "Long", "longValue", "()", "manual"] # taint-numeric
168194 - ["java.lang", "Long", "parseLong", "(String)", "manual"] # taint-numeric
169195 - ["java.lang", "Long", "toString", "()", "manual"] # taint-numeric
0 commit comments