From ff505134419713e16828205f46135df233f75335 Mon Sep 17 00:00:00 2001 From: Maikypedia Date: Sat, 25 Feb 2023 15:33:23 +0100 Subject: [PATCH 01/97] Add initial query for Ruby SSTI --- ruby/ql/lib/codeql/ruby/Concepts.qll | 66 ++++++++++++++++++ ruby/ql/lib/codeql/ruby/Frameworks.qll | 2 + ruby/ql/lib/codeql/ruby/frameworks/Erb.qll | 48 +++++++++++++ ruby/ql/lib/codeql/ruby/frameworks/Slim.qll | 38 +++++++++++ .../TemplateInjectionCustomizations.qll | 50 ++++++++++++++ .../ruby/security/TemplateInjectionQuery.qll | 21 ++++++ .../security/cwe-094/TemplateInjection.qhelp | 35 ++++++++++ .../security/cwe-094/TemplateInjection.ql | 21 ++++++ .../security/cwe-094/examples/SSTIBad.rb | 24 +++++++ .../security/cwe-094/examples/SSTIGood.rb | 26 +++++++ ruby/ql/src/rails | 1 + .../cwe-094/TemplateInjection/ErbInjection.rb | 59 ++++++++++++++++ .../TemplateInjection/SlimInjection.rb | 67 +++++++++++++++++++ .../TemplateInjection.expected | 33 +++++++++ .../TemplateInjection/TemplateInjection.qlref | 1 + 15 files changed, 492 insertions(+) create mode 100644 ruby/ql/lib/codeql/ruby/frameworks/Erb.qll create mode 100644 ruby/ql/lib/codeql/ruby/frameworks/Slim.qll create mode 100644 ruby/ql/lib/codeql/ruby/security/TemplateInjectionCustomizations.qll create mode 100644 ruby/ql/lib/codeql/ruby/security/TemplateInjectionQuery.qll create mode 100644 ruby/ql/src/queries/security/cwe-094/TemplateInjection.qhelp create mode 100644 ruby/ql/src/queries/security/cwe-094/TemplateInjection.ql create mode 100644 ruby/ql/src/queries/security/cwe-094/examples/SSTIBad.rb create mode 100644 ruby/ql/src/queries/security/cwe-094/examples/SSTIGood.rb create mode 160000 ruby/ql/src/rails create mode 100644 ruby/ql/test/query-tests/security/cwe-094/TemplateInjection/ErbInjection.rb create mode 100644 ruby/ql/test/query-tests/security/cwe-094/TemplateInjection/SlimInjection.rb create mode 100644 ruby/ql/test/query-tests/security/cwe-094/TemplateInjection/TemplateInjection.expected create mode 100644 ruby/ql/test/query-tests/security/cwe-094/TemplateInjection/TemplateInjection.qlref diff --git a/ruby/ql/lib/codeql/ruby/Concepts.qll b/ruby/ql/lib/codeql/ruby/Concepts.qll index 58eccac61e1..5eedd4b094c 100644 --- a/ruby/ql/lib/codeql/ruby/Concepts.qll +++ b/ruby/ql/lib/codeql/ruby/Concepts.qll @@ -1059,3 +1059,69 @@ module Cryptography { class BlockMode = SC::BlockMode; } + +/** + * A data-flow node that constructs a template. + * + * Often, it is worthy of an alert if a template is constructed such that + * executing it would be a security risk. + * + * If it is important that the template is rendered, use `TemplateRendering`. + * + * Extend this class to refine existing API models. If you want to model new APIs, + * extend `TemplateConstruction::Range` instead. + */ +class TemplateConstruction extends DataFlow::Node instanceof TemplateConstruction::Range { + /** Gets the argument that specifies the template to be constructed. */ + DataFlow::Node getTemplate() { result = super.getTemplate() } +} + +/** Provides a class for modeling new template rendering APIs. */ +module TemplateConstruction { + /** + * A data-flow node that constructs a template. + * + * Often, it is worthy of an alert if a template is constructed such that + * executing it would be a security risk. + * + * If it is important that the template is rendered, use `TemplateRendering`. + * + * Extend this class to model new APIs. If you want to refine existing API models, + * extend `TemplateConstruction` instead. + */ + abstract class Range extends DataFlow::Node { + /** Gets the argument that specifies the template to be constructed. */ + abstract DataFlow::Node getTemplate(); + } +} + +/** + * A data-flow node that renders templates. + * + * If the context of interest is such that merely constructing a template + * would be valuable to report, consider using `TemplateConstruction`. + * + * Extend this class to refine existing API models. If you want to model new APIs, + * extend `TemplateRendering::Range` instead. + */ +class TemplateRendering extends DataFlow::Node instanceof TemplateRendering::Range { + /** Gets the argument that specifies the template to be rendered. */ + DataFlow::Node getTemplate() { result = super.getTemplate() } +} + +/** Provides a class for modeling new template rendering APIs. */ +module TemplateRendering { + /** + * A data-flow node that renders templates. + * + * If the context of interest is such that merely constructing a template + * would be valuable to report, consider using `TemplateConstruction`. + * + * Extend this class to model new APIs. If you want to refine existing API models, + * extend `TemplateRendering` instead. + */ + abstract class Range extends DataFlow::Node { + /** Gets the argument that specifies the template to be rendered. */ + abstract DataFlow::Node getTemplate(); + } +} diff --git a/ruby/ql/lib/codeql/ruby/Frameworks.qll b/ruby/ql/lib/codeql/ruby/Frameworks.qll index c03b6427dec..3bb38d5aa6e 100644 --- a/ruby/ql/lib/codeql/ruby/Frameworks.qll +++ b/ruby/ql/lib/codeql/ruby/Frameworks.qll @@ -27,3 +27,5 @@ private import codeql.ruby.frameworks.ActionDispatch private import codeql.ruby.frameworks.PosixSpawn private import codeql.ruby.frameworks.StringFormatters private import codeql.ruby.frameworks.Json +private import codeql.ruby.frameworks.Erb +private import codeql.ruby.frameworks.Slim diff --git a/ruby/ql/lib/codeql/ruby/frameworks/Erb.qll b/ruby/ql/lib/codeql/ruby/frameworks/Erb.qll new file mode 100644 index 00000000000..1cf4d8c2270 --- /dev/null +++ b/ruby/ql/lib/codeql/ruby/frameworks/Erb.qll @@ -0,0 +1,48 @@ +/** + * Provides templating for embedding Ruby code into text files, allowing dynamic content generation in web applications. + */ + +private import codeql.ruby.ApiGraphs +private import codeql.ruby.dataflow.FlowSummary +private import codeql.ruby.Concepts + +/** + * Provides templating for embedding Ruby code into text files, allowing dynamic content generation in web applications. + */ +module ERB { + /** + * Flow summary for `ERB.new`. This method wraps a template string, compiling it. + */ + private class TemplateSummary extends SummarizedCallable { + TemplateSummary() { this = "ERB.new" } + + override MethodCall getACall() { + result = API::getTopLevelMember("ERB").getAMethodCall("new").asExpr().getExpr() + } + + override predicate propagatesFlowExt(string input, string output, boolean preservesValue) { + input = "Argument[0]" and output = "ReturnValue" and preservesValue = false + } + } + + /** A call to `ERB.new`, considered as a template construction. */ + private class ERBTemplateNewCall extends TemplateConstruction::Range, DataFlow::CallNode { + ERBTemplateNewCall() { this = API::getTopLevelMember("ERB").getAMethodCall("new") } + + override DataFlow::Node getTemplate() { result = this.getArgument(0) } + } + + /** A call to `ERB.new(foo).result(binding)`, considered as a template rendering. */ + private class ERBTemplateRendering extends TemplateRendering::Range, DataFlow::CallNode { + DataFlow::Node template; + + ERBTemplateRendering() { + exists(ERBTemplateNewCall templateConstruction | + this = templateConstruction.getAMethodCall("result") and + template = templateConstruction.getTemplate() + ) + } + + override DataFlow::Node getTemplate() { result = template } + } +} diff --git a/ruby/ql/lib/codeql/ruby/frameworks/Slim.qll b/ruby/ql/lib/codeql/ruby/frameworks/Slim.qll new file mode 100644 index 00000000000..0f29aa614e6 --- /dev/null +++ b/ruby/ql/lib/codeql/ruby/frameworks/Slim.qll @@ -0,0 +1,38 @@ +/** + * Provides templating for embedding Ruby code into text files, allowing dynamic content generation in web applications. + */ + +private import codeql.ruby.ApiGraphs +private import codeql.ruby.dataflow.FlowSummary +private import codeql.ruby.Concepts + +/** + * Provides templating for embedding Ruby code into text files, allowing dynamic content generation in web applications. + */ +module Slim { + /** A call to `Slim::Template.new`, considered as a template construction. */ + private class SlimTemplateNewCall extends TemplateConstruction::Range, DataFlow::CallNode { + SlimTemplateNewCall() { + this = API::getTopLevelMember("Slim").getMember("Template").getAMethodCall("new") + } + + override DataFlow::Node getTemplate() { + result.asExpr().getExpr() = + this.getBlock().(DataFlow::BlockNode).asCallableAstNode().getAStmt() + } + } + + /** A call to `Slim::Template.new{ foo }.render`, considered as a template rendering */ + private class SlimTemplateRendering extends TemplateRendering::Range, DataFlow::CallNode { + DataFlow::Node template; + + SlimTemplateRendering() { + exists(SlimTemplateNewCall templateConstruction | + this = templateConstruction.getAMethodCall("render") and + template = templateConstruction.getTemplate() + ) + } + + override DataFlow::Node getTemplate() { result = template } + } +} diff --git a/ruby/ql/lib/codeql/ruby/security/TemplateInjectionCustomizations.qll b/ruby/ql/lib/codeql/ruby/security/TemplateInjectionCustomizations.qll new file mode 100644 index 00000000000..ce00ec9e65f --- /dev/null +++ b/ruby/ql/lib/codeql/ruby/security/TemplateInjectionCustomizations.qll @@ -0,0 +1,50 @@ +/** + * Provides default sources, sinks and sanitizers for detecting + * ERB Server Side Template Injections, as well as extension points for adding your own + */ + +private import codeql.ruby.Concepts +private import codeql.ruby.DataFlow +private import codeql.ruby.dataflow.BarrierGuards +private import codeql.ruby.dataflow.RemoteFlowSources +import codeql.ruby.ApiGraphs +import codeql.ruby.AST + +/** + * Provides default sources, sinks and sanitizers for detecting + * Server Side Template Injections, as well as extension points for adding your own + */ +module TemplateInjection { + /** A data flow source for SSTI vulnerabilities */ + abstract class Source extends DataFlow::Node { } + + /** A data flow sink for SSTI vulnerabilities */ + abstract class Sink extends DataFlow::Node { } + + /** A sanitizer for SSTI vulnerabilities. */ + abstract class Sanitizer extends DataFlow::Node { } + + /** + * A source of remote user input, considered as a flow source. + */ + private class RemoteFlowSourceAsSource extends Source, RemoteFlowSource { } + + /** + * An Server Side Template Injection rendering, considered as a flow sink. + */ + private class TemplateRenderingAsSink extends Sink { + TemplateRenderingAsSink() { this = any(TemplateRendering e).getTemplate() } + } + + /** + * A comparison with a constant string, considered as a sanitizer-guard. + */ + private class StringConstCompareAsSanitizerGuard extends Sanitizer, StringConstCompareBarrier { } + + /** + * An inclusion check against an array of constant strings, considered as a + * sanitizer-guard. + */ + class StringConstArrayInclusionCallAsSanitizer extends Sanitizer, + StringConstArrayInclusionCallBarrier { } +} diff --git a/ruby/ql/lib/codeql/ruby/security/TemplateInjectionQuery.qll b/ruby/ql/lib/codeql/ruby/security/TemplateInjectionQuery.qll new file mode 100644 index 00000000000..827e582be6c --- /dev/null +++ b/ruby/ql/lib/codeql/ruby/security/TemplateInjectionQuery.qll @@ -0,0 +1,21 @@ +/** + * Provides default sources, sinks and sanitizers for detecting + * Server Side Template Injections, as well as extension points for adding your own + */ + +private import codeql.ruby.DataFlow +private import codeql.ruby.TaintTracking +import TemplateInjectionCustomizations::TemplateInjection + +/** + * A taint-tracking configuration for detecting Server Side Template Injections vulnerabilities. + */ +class Configuration extends TaintTracking::Configuration { + Configuration() { this = "TemplateInjection" } + + override predicate isSource(DataFlow::Node source) { source instanceof Source } + + override predicate isSink(DataFlow::Node source) { source instanceof Sink } + + override predicate isSanitizer(DataFlow::Node node) { node instanceof Sanitizer } +} diff --git a/ruby/ql/src/queries/security/cwe-094/TemplateInjection.qhelp b/ruby/ql/src/queries/security/cwe-094/TemplateInjection.qhelp new file mode 100644 index 00000000000..7d4aaad41f7 --- /dev/null +++ b/ruby/ql/src/queries/security/cwe-094/TemplateInjection.qhelp @@ -0,0 +1,35 @@ + + + +

+Template Injection occurs when user input is embedded in a template's code in an unsafe manner. +An attacker can use native template syntax to inject a malicious payload into a template, which is then executed server-side. +This permits the attacker to run arbitrary code in the server's context. +

+
+ + +

+To fix this, ensure that untrusted input is not used as part of a template's code. If the application requirements do not allow this, +use a sandboxed environment where access to unsafe attributes and methods is prohibited. +

+
+ + +

+

Consider the example given below, an untrusted HTTP parameter `name` is used to generate a template string. This can lead to remote code execution.

+ + +

Here we have fixed the problem by including ERB/Slim syntax in the string, then the user input will be rendered but no evaluated.

+ +
+ + +
  • +Wikipedia: Server Side Template Injection. +
  • +
  • +Portswigger : [Server Side Template Injection](https://portswigger.net/web-security/server-side-template-injection) +
  • +
    +
    \ No newline at end of file diff --git a/ruby/ql/src/queries/security/cwe-094/TemplateInjection.ql b/ruby/ql/src/queries/security/cwe-094/TemplateInjection.ql new file mode 100644 index 00000000000..3f81de72dea --- /dev/null +++ b/ruby/ql/src/queries/security/cwe-094/TemplateInjection.ql @@ -0,0 +1,21 @@ +/** + * @name Server-side template injection + * @description Building a server-side template from user-controlled sources is vulnerable to + * insertion of malicious code by the user. + * @kind path-problem + * @problem.severity error + * @security-severity 8.8 + * @precision high + * @id rb/ssti + * @tags security + * external/cwe/cwe-94 + */ + +import codeql.ruby.DataFlow +import codeql.ruby.security.TemplateInjectionQuery +import DataFlow::PathGraph + +from Configuration config, DataFlow::PathNode source, DataFlow::PathNode sink +where config.hasFlowPath(source, sink) +select sink.getNode(), source, sink, "This template depends on a $@.", source.getNode(), + "user-provided value" diff --git a/ruby/ql/src/queries/security/cwe-094/examples/SSTIBad.rb b/ruby/ql/src/queries/security/cwe-094/examples/SSTIBad.rb new file mode 100644 index 00000000000..6ea7f4ed8c2 --- /dev/null +++ b/ruby/ql/src/queries/security/cwe-094/examples/SSTIBad.rb @@ -0,0 +1,24 @@ +require 'erb' +require 'slim' + +class BadERBController < ActionController::Base + def some_request_handler + name = params["name"] + html_text = " + +

    Hello %s

    + " % name + template = ERB.new(html_text).result(binding) + end +end + +class BadSlimController < ActionController::Base + def some_request_handler + name = params["name"] + html_text = " + +

    Hello %s

    + " % name + Slim::Template.new{ html_text }.render + end +end \ No newline at end of file diff --git a/ruby/ql/src/queries/security/cwe-094/examples/SSTIGood.rb b/ruby/ql/src/queries/security/cwe-094/examples/SSTIGood.rb new file mode 100644 index 00000000000..844f0115d7c --- /dev/null +++ b/ruby/ql/src/queries/security/cwe-094/examples/SSTIGood.rb @@ -0,0 +1,26 @@ +require 'erb' +require 'slim' + +class GoodController < ActionController::Base + def some_request_handler + name = params["name"] + html_text = " + +

    Hello <%= name %>

    + " + template = ERB.new(html_text).result(binding) + end +end + +class GoodController < ActionController::Base + def some_request_handler + name = params["name"] + html_text = " + + html + body + h2 == name; + " + Slim::Template.new{ html_text }.render(Object.new, name: name) + end +end \ No newline at end of file diff --git a/ruby/ql/src/rails b/ruby/ql/src/rails new file mode 160000 index 00000000000..6eb882e6642 --- /dev/null +++ b/ruby/ql/src/rails @@ -0,0 +1 @@ +Subproject commit 6eb882e66425a3a4c4858a899c162c2f07a81d28 diff --git a/ruby/ql/test/query-tests/security/cwe-094/TemplateInjection/ErbInjection.rb b/ruby/ql/test/query-tests/security/cwe-094/TemplateInjection/ErbInjection.rb new file mode 100644 index 00000000000..f202fc146a7 --- /dev/null +++ b/ruby/ql/test/query-tests/security/cwe-094/TemplateInjection/ErbInjection.rb @@ -0,0 +1,59 @@ +class FooController < ActionController::Base + def some_request_handler + # A string tainted by user input is inserted into a template + # (i.e a remote flow source) + name = params[:name] + + # Template with the source + bad_text = " + +

    Hello %s

    + " % name + + # BAD: user input is evaluated + # where name is unsanitized + template = ERB.new(bad_text).result(binding) + + # Template with the source + good_text = " + +

    Hello <%= name %>

    + " + + # GOOD: user input is not evaluated + template2 = ERB.new(good_text).result(binding) + end +end + +class BarController < ApplicationController + def safe_paths + name1 = params["name1"] + # GOOD: barrier guard prevents taint flow + if name == "admin" + text_bar1 = " + +

    Hello %s

    + " % name + else + text = " + +

    Hello else

    + " + end + template_bar1 = ERB.new(text_bar1).result(binding) + + + name2 = params["name2"] + # GOOD: barrier guard prevents taint flow + name2 = if ["admin", "guest"].include? name2 + name2 + else + name2 = "none" + end + text_bar2 = " + +

    Hello %s

    + " % name2 + template_bar2 = ERB.new(text_bar2).result(binding) + end +end diff --git a/ruby/ql/test/query-tests/security/cwe-094/TemplateInjection/SlimInjection.rb b/ruby/ql/test/query-tests/security/cwe-094/TemplateInjection/SlimInjection.rb new file mode 100644 index 00000000000..07b93a20468 --- /dev/null +++ b/ruby/ql/test/query-tests/security/cwe-094/TemplateInjection/SlimInjection.rb @@ -0,0 +1,67 @@ +class FooController < ActionController::Base + def some_request_handler + # A string tainted by user input is inserted into a template + # (i.e a remote flow source) + name = params[:name] + + # Template with the source (no sanitizer) + bad_text = " + +

    Hello %s

    + " % name + # BAD: renders user input + # where text is unsanitized + Slim::Template.new{ bad_text }.render + + # Template with the source (no sanitizer) + bad2_text = " + +

    Hello #{name}

    + " + # BAD: renders user input + # where text is unsanitized + Slim::Template.new{ bad2_text }.render + + # Template with the source (no render) + good_text = " + + html + body + h2 == name; + " + # GOOD: user input is not evaluated + Slim::Template.new{ good_text }.render(Object.new, name: name) + end +end + +class BarController < ApplicationController + def safe_paths + name1 = params["name1"] + # GOOD: barrier guard prevents taint flow + if name == "admin" + text_bar1 = " + +

    Hello %s

    + " % name + else + text_bar1 = " + +

    Hello else

    + " + end + template_bar1 = Slim::Template.new{ text_bar1 }.render + + name2 = params["name2"] + # GOOD: barrier guard prevents taint flow + name2 = if ["admin", "guest"].include? name2 + name2 + else + name2 = "none" + end + text_bar2 = " + +

    Hello %s

    + " % name2 + template_bar1 = Slim::Template.new{ text_bar2 }.render + end +end \ No newline at end of file diff --git a/ruby/ql/test/query-tests/security/cwe-094/TemplateInjection/TemplateInjection.expected b/ruby/ql/test/query-tests/security/cwe-094/TemplateInjection/TemplateInjection.expected new file mode 100644 index 00000000000..7f7e0a5bbe4 --- /dev/null +++ b/ruby/ql/test/query-tests/security/cwe-094/TemplateInjection/TemplateInjection.expected @@ -0,0 +1,33 @@ +edges +| ErbInjection.rb:5:12:5:17 | call to params : | ErbInjection.rb:5:12:5:24 | ...[...] : | +| ErbInjection.rb:5:12:5:24 | ...[...] : | ErbInjection.rb:11:11:11:14 | name : | +| ErbInjection.rb:5:12:5:24 | ...[...] : | ErbInjection.rb:15:24:15:31 | bad_text | +| ErbInjection.rb:8:16:11:14 | ... % ... : | ErbInjection.rb:15:24:15:31 | bad_text | +| ErbInjection.rb:11:11:11:14 | name : | ErbInjection.rb:8:16:11:14 | ... % ... : | +| SlimInjection.rb:5:12:5:17 | call to params : | SlimInjection.rb:5:12:5:24 | ...[...] : | +| SlimInjection.rb:5:12:5:24 | ...[...] : | SlimInjection.rb:8:5:11:14 | ... = ... : | +| SlimInjection.rb:5:12:5:24 | ...[...] : | SlimInjection.rb:11:11:11:14 | name : | +| SlimInjection.rb:5:12:5:24 | ...[...] : | SlimInjection.rb:17:5:20:7 | ... = ... : | +| SlimInjection.rb:8:5:11:14 | ... = ... : | SlimInjection.rb:14:25:14:32 | bad_text | +| SlimInjection.rb:8:16:11:14 | ... % ... : | SlimInjection.rb:8:5:11:14 | ... = ... : | +| SlimInjection.rb:11:11:11:14 | name : | SlimInjection.rb:8:16:11:14 | ... % ... : | +| SlimInjection.rb:17:5:20:7 | ... = ... : | SlimInjection.rb:23:25:23:33 | bad2_text | +nodes +| ErbInjection.rb:5:12:5:17 | call to params : | semmle.label | call to params : | +| ErbInjection.rb:5:12:5:24 | ...[...] : | semmle.label | ...[...] : | +| ErbInjection.rb:8:16:11:14 | ... % ... : | semmle.label | ... % ... : | +| ErbInjection.rb:11:11:11:14 | name : | semmle.label | name : | +| ErbInjection.rb:15:24:15:31 | bad_text | semmle.label | bad_text | +| SlimInjection.rb:5:12:5:17 | call to params : | semmle.label | call to params : | +| SlimInjection.rb:5:12:5:24 | ...[...] : | semmle.label | ...[...] : | +| SlimInjection.rb:8:5:11:14 | ... = ... : | semmle.label | ... = ... : | +| SlimInjection.rb:8:16:11:14 | ... % ... : | semmle.label | ... % ... : | +| SlimInjection.rb:11:11:11:14 | name : | semmle.label | name : | +| SlimInjection.rb:14:25:14:32 | bad_text | semmle.label | bad_text | +| SlimInjection.rb:17:5:20:7 | ... = ... : | semmle.label | ... = ... : | +| SlimInjection.rb:23:25:23:33 | bad2_text | semmle.label | bad2_text | +subpaths +#select +| ErbInjection.rb:15:24:15:31 | bad_text | ErbInjection.rb:5:12:5:17 | call to params : | ErbInjection.rb:15:24:15:31 | bad_text | This template depends on a $@. | ErbInjection.rb:5:12:5:17 | call to params | user-provided value | +| SlimInjection.rb:14:25:14:32 | bad_text | SlimInjection.rb:5:12:5:17 | call to params : | SlimInjection.rb:14:25:14:32 | bad_text | This template depends on a $@. | SlimInjection.rb:5:12:5:17 | call to params | user-provided value | +| SlimInjection.rb:23:25:23:33 | bad2_text | SlimInjection.rb:5:12:5:17 | call to params : | SlimInjection.rb:23:25:23:33 | bad2_text | This template depends on a $@. | SlimInjection.rb:5:12:5:17 | call to params | user-provided value | diff --git a/ruby/ql/test/query-tests/security/cwe-094/TemplateInjection/TemplateInjection.qlref b/ruby/ql/test/query-tests/security/cwe-094/TemplateInjection/TemplateInjection.qlref new file mode 100644 index 00000000000..37d5be4cc92 --- /dev/null +++ b/ruby/ql/test/query-tests/security/cwe-094/TemplateInjection/TemplateInjection.qlref @@ -0,0 +1 @@ +queries/security/cwe-094/TemplateInjection.ql \ No newline at end of file From dd1f7cc1d27e6538d14fd9688d42ba9ff98b6573 Mon Sep 17 00:00:00 2001 From: Maikypedia Date: Sat, 25 Feb 2023 15:35:16 +0100 Subject: [PATCH 02/97] Remove missed file --- ruby/ql/src/rails | 1 - 1 file changed, 1 deletion(-) delete mode 160000 ruby/ql/src/rails diff --git a/ruby/ql/src/rails b/ruby/ql/src/rails deleted file mode 160000 index 6eb882e6642..00000000000 --- a/ruby/ql/src/rails +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 6eb882e66425a3a4c4858a899c162c2f07a81d28 From 61fe3704c035fdf958b189f369064cb2e4da9e44 Mon Sep 17 00:00:00 2001 From: Maikypedia Date: Sat, 25 Feb 2023 15:43:48 +0100 Subject: [PATCH 03/97] Remove unused imports --- .../codeql/ruby/security/TemplateInjectionCustomizations.qll | 2 -- 1 file changed, 2 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/security/TemplateInjectionCustomizations.qll b/ruby/ql/lib/codeql/ruby/security/TemplateInjectionCustomizations.qll index ce00ec9e65f..d7b197ac876 100644 --- a/ruby/ql/lib/codeql/ruby/security/TemplateInjectionCustomizations.qll +++ b/ruby/ql/lib/codeql/ruby/security/TemplateInjectionCustomizations.qll @@ -7,8 +7,6 @@ private import codeql.ruby.Concepts private import codeql.ruby.DataFlow private import codeql.ruby.dataflow.BarrierGuards private import codeql.ruby.dataflow.RemoteFlowSources -import codeql.ruby.ApiGraphs -import codeql.ruby.AST /** * Provides default sources, sinks and sanitizers for detecting From 44997d6b5f6536f32574d7041583f1ea83421ae7 Mon Sep 17 00:00:00 2001 From: Maikypedia Date: Sat, 25 Feb 2023 15:51:04 +0100 Subject: [PATCH 04/97] Change query id --- ruby/ql/src/queries/security/cwe-094/TemplateInjection.ql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ruby/ql/src/queries/security/cwe-094/TemplateInjection.ql b/ruby/ql/src/queries/security/cwe-094/TemplateInjection.ql index 3f81de72dea..774d8026fb8 100644 --- a/ruby/ql/src/queries/security/cwe-094/TemplateInjection.ql +++ b/ruby/ql/src/queries/security/cwe-094/TemplateInjection.ql @@ -6,7 +6,7 @@ * @problem.severity error * @security-severity 8.8 * @precision high - * @id rb/ssti + * @id rb/server-side-template-injection * @tags security * external/cwe/cwe-94 */ From cbb031ee14133374455d53d1c993c56175c24d93 Mon Sep 17 00:00:00 2001 From: Maiky <76447395+maikypedia@users.noreply.github.com> Date: Wed, 8 Mar 2023 10:27:39 +0100 Subject: [PATCH 05/97] Update ruby/ql/src/queries/security/cwe-094/TemplateInjection.qhelp Co-authored-by: intrigus-lgtm <60750685+intrigus-lgtm@users.noreply.github.com> --- ruby/ql/src/queries/security/cwe-094/TemplateInjection.qhelp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ruby/ql/src/queries/security/cwe-094/TemplateInjection.qhelp b/ruby/ql/src/queries/security/cwe-094/TemplateInjection.qhelp index 7d4aaad41f7..1bf7445c1ee 100644 --- a/ruby/ql/src/queries/security/cwe-094/TemplateInjection.qhelp +++ b/ruby/ql/src/queries/security/cwe-094/TemplateInjection.qhelp @@ -17,7 +17,7 @@ use a sandboxed environment where access to unsafe attributes and methods is pro

    -

    Consider the example given below, an untrusted HTTP parameter `name` is used to generate a template string. This can lead to remote code execution.

    +

    Consider the example given below, an untrusted HTTP parameter name is used to generate a template string. This can lead to remote code execution.

    Here we have fixed the problem by including ERB/Slim syntax in the string, then the user input will be rendered but no evaluated.

    From cd49175fae5bce9521ac0d4f9f7bfbe699f470a6 Mon Sep 17 00:00:00 2001 From: Maiky <76447395+maikypedia@users.noreply.github.com> Date: Wed, 8 Mar 2023 10:27:57 +0100 Subject: [PATCH 06/97] Update ruby/ql/src/queries/security/cwe-094/TemplateInjection.qhelp Co-authored-by: intrigus-lgtm <60750685+intrigus-lgtm@users.noreply.github.com> --- ruby/ql/src/queries/security/cwe-094/TemplateInjection.qhelp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ruby/ql/src/queries/security/cwe-094/TemplateInjection.qhelp b/ruby/ql/src/queries/security/cwe-094/TemplateInjection.qhelp index 1bf7445c1ee..be1f1a4f27d 100644 --- a/ruby/ql/src/queries/security/cwe-094/TemplateInjection.qhelp +++ b/ruby/ql/src/queries/security/cwe-094/TemplateInjection.qhelp @@ -29,7 +29,7 @@ use a sandboxed environment where access to unsafe attributes and methods is pro Wikipedia: Server Side Template Injection.
  • -Portswigger : [Server Side Template Injection](https://portswigger.net/web-security/server-side-template-injection) +Portswigger : Server Side Template Injection.
  • \ No newline at end of file From 3e1808d92e223811ab1fdef42847437a95442ef1 Mon Sep 17 00:00:00 2001 From: Maiky <76447395+maikypedia@users.noreply.github.com> Date: Wed, 8 Mar 2023 10:30:43 +0100 Subject: [PATCH 07/97] Apply suggestions from code review Co-authored-by: Alex Ford --- ruby/ql/lib/codeql/ruby/frameworks/Erb.qll | 16 ++++++++-------- ruby/ql/lib/codeql/ruby/frameworks/Slim.qll | 4 ++-- .../security/TemplateInjectionCustomizations.qll | 2 +- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/frameworks/Erb.qll b/ruby/ql/lib/codeql/ruby/frameworks/Erb.qll index 1cf4d8c2270..1bb5fcd2b82 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/Erb.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/Erb.qll @@ -9,7 +9,7 @@ private import codeql.ruby.Concepts /** * Provides templating for embedding Ruby code into text files, allowing dynamic content generation in web applications. */ -module ERB { +module Erb { /** * Flow summary for `ERB.new`. This method wraps a template string, compiling it. */ @@ -17,7 +17,7 @@ module ERB { TemplateSummary() { this = "ERB.new" } override MethodCall getACall() { - result = API::getTopLevelMember("ERB").getAMethodCall("new").asExpr().getExpr() + result = any(ErbTemplateNewCall c).asExpr().getExpr() } override predicate propagatesFlowExt(string input, string output, boolean preservesValue) { @@ -26,18 +26,18 @@ module ERB { } /** A call to `ERB.new`, considered as a template construction. */ - private class ERBTemplateNewCall extends TemplateConstruction::Range, DataFlow::CallNode { - ERBTemplateNewCall() { this = API::getTopLevelMember("ERB").getAMethodCall("new") } + private class ErbTemplateNewCall extends TemplateConstruction::Range, DataFlow::CallNode { + ERBTemplateNewCall() { this = API::getTopLevelMember("ERB").getAnInstantiation() } override DataFlow::Node getTemplate() { result = this.getArgument(0) } } /** A call to `ERB.new(foo).result(binding)`, considered as a template rendering. */ - private class ERBTemplateRendering extends TemplateRendering::Range, DataFlow::CallNode { - DataFlow::Node template; + private class ErbTemplateRendering extends TemplateRendering::Range, DataFlow::CallNode { + private DataFlow::Node template; - ERBTemplateRendering() { - exists(ERBTemplateNewCall templateConstruction | + ErbTemplateRendering() { + exists(ErbTemplateNewCall templateConstruction | this = templateConstruction.getAMethodCall("result") and template = templateConstruction.getTemplate() ) diff --git a/ruby/ql/lib/codeql/ruby/frameworks/Slim.qll b/ruby/ql/lib/codeql/ruby/frameworks/Slim.qll index 0f29aa614e6..3c3c3987383 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/Slim.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/Slim.qll @@ -13,7 +13,7 @@ module Slim { /** A call to `Slim::Template.new`, considered as a template construction. */ private class SlimTemplateNewCall extends TemplateConstruction::Range, DataFlow::CallNode { SlimTemplateNewCall() { - this = API::getTopLevelMember("Slim").getMember("Template").getAMethodCall("new") + this = API::getTopLevelMember("Slim").getMember("Template").getAnInstantiation() } override DataFlow::Node getTemplate() { @@ -24,7 +24,7 @@ module Slim { /** A call to `Slim::Template.new{ foo }.render`, considered as a template rendering */ private class SlimTemplateRendering extends TemplateRendering::Range, DataFlow::CallNode { - DataFlow::Node template; + private DataFlow::Node template; SlimTemplateRendering() { exists(SlimTemplateNewCall templateConstruction | diff --git a/ruby/ql/lib/codeql/ruby/security/TemplateInjectionCustomizations.qll b/ruby/ql/lib/codeql/ruby/security/TemplateInjectionCustomizations.qll index d7b197ac876..503cfe6e9e6 100644 --- a/ruby/ql/lib/codeql/ruby/security/TemplateInjectionCustomizations.qll +++ b/ruby/ql/lib/codeql/ruby/security/TemplateInjectionCustomizations.qll @@ -43,6 +43,6 @@ module TemplateInjection { * An inclusion check against an array of constant strings, considered as a * sanitizer-guard. */ - class StringConstArrayInclusionCallAsSanitizer extends Sanitizer, + private class StringConstArrayInclusionCallAsSanitizer extends Sanitizer, StringConstArrayInclusionCallBarrier { } } From d9d63bbdc60e7a3634ace496eb35212982f76f7d Mon Sep 17 00:00:00 2001 From: Maiky <76447395+maikypedia@users.noreply.github.com> Date: Wed, 8 Mar 2023 10:41:24 +0100 Subject: [PATCH 08/97] Change ERB to Erb --- ruby/ql/lib/codeql/ruby/frameworks/Erb.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ruby/ql/lib/codeql/ruby/frameworks/Erb.qll b/ruby/ql/lib/codeql/ruby/frameworks/Erb.qll index 1bb5fcd2b82..509f226e770 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/Erb.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/Erb.qll @@ -27,7 +27,7 @@ module Erb { /** A call to `ERB.new`, considered as a template construction. */ private class ErbTemplateNewCall extends TemplateConstruction::Range, DataFlow::CallNode { - ERBTemplateNewCall() { this = API::getTopLevelMember("ERB").getAnInstantiation() } + ErbTemplateNewCall() { this = API::getTopLevelMember("ERB").getAnInstantiation() } override DataFlow::Node getTemplate() { result = this.getArgument(0) } } From 5a9a90d00b0ae501d453567fc663defece1ebceb Mon Sep 17 00:00:00 2001 From: Maiky <76447395+maikypedia@users.noreply.github.com> Date: Wed, 8 Mar 2023 11:50:04 +0100 Subject: [PATCH 09/97] Move query to experimental --- .../template-injection}/TemplateInjection.qhelp | 0 .../template-injection}/TemplateInjection.ql | 0 .../template-injection}/examples/SSTIBad.rb | 0 .../template-injection}/examples/SSTIGood.rb | 0 4 files changed, 0 insertions(+), 0 deletions(-) rename ruby/ql/src/{queries/security/cwe-094 => experimental/template-injection}/TemplateInjection.qhelp (100%) rename ruby/ql/src/{queries/security/cwe-094 => experimental/template-injection}/TemplateInjection.ql (100%) rename ruby/ql/src/{queries/security/cwe-094 => experimental/template-injection}/examples/SSTIBad.rb (100%) rename ruby/ql/src/{queries/security/cwe-094 => experimental/template-injection}/examples/SSTIGood.rb (100%) diff --git a/ruby/ql/src/queries/security/cwe-094/TemplateInjection.qhelp b/ruby/ql/src/experimental/template-injection/TemplateInjection.qhelp similarity index 100% rename from ruby/ql/src/queries/security/cwe-094/TemplateInjection.qhelp rename to ruby/ql/src/experimental/template-injection/TemplateInjection.qhelp diff --git a/ruby/ql/src/queries/security/cwe-094/TemplateInjection.ql b/ruby/ql/src/experimental/template-injection/TemplateInjection.ql similarity index 100% rename from ruby/ql/src/queries/security/cwe-094/TemplateInjection.ql rename to ruby/ql/src/experimental/template-injection/TemplateInjection.ql diff --git a/ruby/ql/src/queries/security/cwe-094/examples/SSTIBad.rb b/ruby/ql/src/experimental/template-injection/examples/SSTIBad.rb similarity index 100% rename from ruby/ql/src/queries/security/cwe-094/examples/SSTIBad.rb rename to ruby/ql/src/experimental/template-injection/examples/SSTIBad.rb diff --git a/ruby/ql/src/queries/security/cwe-094/examples/SSTIGood.rb b/ruby/ql/src/experimental/template-injection/examples/SSTIGood.rb similarity index 100% rename from ruby/ql/src/queries/security/cwe-094/examples/SSTIGood.rb rename to ruby/ql/src/experimental/template-injection/examples/SSTIGood.rb From 8bc8342c7c225f5e9206c41666011eb9c99865e2 Mon Sep 17 00:00:00 2001 From: erik-krogh Date: Wed, 15 Mar 2023 23:14:04 +0100 Subject: [PATCH 10/97] Py:don't parse regular expressions in system-code --- python/ql/lib/semmle/python/regex.qll | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/python/ql/lib/semmle/python/regex.qll b/python/ql/lib/semmle/python/regex.qll index 7ea7750b859..d4d00da7aae 100644 --- a/python/ql/lib/semmle/python/regex.qll +++ b/python/ql/lib/semmle/python/regex.qll @@ -140,7 +140,11 @@ string mode_from_node(DataFlow::Node node) { node = re_flag_tracker(result) } /** A StrConst used as a regular expression */ abstract class RegexString extends Expr { - RegexString() { (this instanceof Bytes or this instanceof Unicode) } + RegexString() { + (this instanceof Bytes or this instanceof Unicode) and + // is part of the user code + exists(this.getLocation().getFile().getRelativePath()) + } /** * Helper predicate for `char_set_start(int start, int end)`. From 54ec047433aacd93b54b9ad2d6ace23c11facd05 Mon Sep 17 00:00:00 2001 From: erik-krogh Date: Wed, 15 Mar 2023 23:14:31 +0100 Subject: [PATCH 11/97] ReDoS: put an artificial limitation on the analysis in polynomial-redos for large regular expressions --- .../ReDoS/PolynomialBackTracking.expected | 54 +++++++------------ .../regex/nfa/SuperlinearBackTracking.qll | 46 +++++++++++++++- 2 files changed, 62 insertions(+), 38 deletions(-) diff --git a/javascript/ql/test/query-tests/Security/CWE-400/ReDoS/PolynomialBackTracking.expected b/javascript/ql/test/query-tests/Security/CWE-400/ReDoS/PolynomialBackTracking.expected index 898bc444dc3..cfc43062161 100644 --- a/javascript/ql/test/query-tests/Security/CWE-400/ReDoS/PolynomialBackTracking.expected +++ b/javascript/ql/test/query-tests/Security/CWE-400/ReDoS/PolynomialBackTracking.expected @@ -1,5 +1,5 @@ -| highlight.js:2:26:2:979 | ((traffic-flow\|traffic-generator\|firewall\|scheduler\|aaa\|accounting\|address-list\|address\|align\|area\|bandwidth-server\|bfd\|bgp\|bridge\|client\|clock\|community\|config\|connection\|console\|customer\|default\|dhcp-client\|dhcp-server\|discovery\|dns\|e-mail\|ethernet\|filter\|firewall\|firmware\|gps\|graphing\|group\|hardware\|health\|hotspot\|identity\|igmp-proxy\|incoming\|instance\|interface\|ip\|ipsec\|ipv6\|irq\|l2tp-server\|lcd\|ldp\|logging\|mac-server\|mac-winbox\|mangle\|manual\|mirror\|mme\|mpls\|nat\|nd\|neighbor\|network\|note\|ntp\|ospf\|ospf-v3\|ovpn-server\|page\|peer\|pim\|ping\|policy\|pool\|port\|ppp\|pppoe-client\|pptp-server\|prefix\|profile\|proposal\|proxy\|queue\|radius\|resource\|rip\|ripng\|route\|routing\|screen\|script\|security-profiles\|server\|service\|service-port\|settings\|shares\|smb\|sms\|sniffer\|snmp\|snooper\|socks\|sstp-server\|system\|tool\|tracking\|type\|upgrade\|upnp\|user-manager\|users\|user\|vlan\|secret\|vrrp\|watchdog\|web-access\|wireless\|pptp\|pppoe\|lan\|wan\|layer7-protocol\|lease\|simple\|raw);?\\s)+ | Strings starting with '/' and with many repetitions of 'ip\\t' can start matching anywhere after the start of the preceeding (\\.\\.\\/\|\\/\|\\s)((traffic-flow\|traffic-generator\|firewall\|scheduler\|aaa\|accounting\|address-list\|address\|align\|area\|bandwidth-server\|bfd\|bgp\|bridge\|client\|clock\|community\|config\|connection\|console\|customer\|default\|dhcp-client\|dhcp-server\|discovery\|dns\|e-mail\|ethernet\|filter\|firewall\|firmware\|gps\|graphing\|group\|hardware\|health\|hotspot\|identity\|igmp-proxy\|incoming\|instance\|interface\|ip\|ipsec\|ipv6\|irq\|l2tp-server\|lcd\|ldp\|logging\|mac-server\|mac-winbox\|mangle\|manual\|mirror\|mme\|mpls\|nat\|nd\|neighbor\|network\|note\|ntp\|ospf\|ospf-v3\|ovpn-server\|page\|peer\|pim\|ping\|policy\|pool\|port\|ppp\|pppoe-client\|pptp-server\|prefix\|profile\|proposal\|proxy\|queue\|radius\|resource\|rip\|ripng\|route\|routing\|screen\|script\|security-profiles\|server\|service\|service-port\|settings\|shares\|smb\|sms\|sniffer\|snmp\|snooper\|socks\|sstp-server\|system\|tool\|tracking\|type\|upgrade\|upnp\|user-manager\|users\|user\|vlan\|secret\|vrrp\|watchdog\|web-access\|wireless\|pptp\|pppoe\|lan\|wan\|layer7-protocol\|lease\|simple\|raw);?\\s)+X | -| highlight.js:3:27:3:971 | ((traffic-flow\|traffic-generator\|firewall\|scheduler\|aaa\|accounting\|address-list\|address\|align\|area\|bandwidth-server\|bfd\|bgp\|bridge\|client\|clock\|community\|config\|connection\|console\|customer\|default\|dhcp-client\|dhcp-server\|discovery\|dns\|e-mail\|ethernet\|filter\|firmware\|gps\|graphing\|group\|hardware\|health\|hotspot\|identity\|igmp-proxy\|incoming\|instance\|interface\|ip\|ipsec\|ipv6\|irq\|l2tp-server\|lcd\|ldp\|logging\|mac-server\|mac-winbox\|mangle\|manual\|mirror\|mme\|mpls\|nat\|nd\|neighbor\|network\|note\|ntp\|ospf\|ospf-v3\|ovpn-server\|page\|peer\|pim\|ping\|policy\|pool\|port\|ppp\|pppoe-client\|pptp-server\|prefix\|profile\|proposal\|proxy\|queue\|radius\|resource\|rip\|ripng\|route\|routing\|screen\|script\|security-profiles\|server\|service\|service-port\|settings\|shares\|smb\|sms\|sniffer\|snmp\|snooper\|socks\|sstp-server\|system\|tool\|tracking\|type\|upgrade\|upnp\|user-manager\|users\|user\|vlan\|secret\|vrrp\|watchdog\|web-access\|wireless\|pptp\|pppoe\|lan\|wan\|layer7-protocol\|lease\|simple\|raw);?\\s)+ | Strings starting with '/' and with many repetitions of 'ip\\t' can start matching anywhere after the start of the preceeding (\\.\\.\\/\|\\/\|\\s)((traffic-flow\|traffic-generator\|firewall\|scheduler\|aaa\|accounting\|address-list\|address\|align\|area\|bandwidth-server\|bfd\|bgp\|bridge\|client\|clock\|community\|config\|connection\|console\|customer\|default\|dhcp-client\|dhcp-server\|discovery\|dns\|e-mail\|ethernet\|filter\|firmware\|gps\|graphing\|group\|hardware\|health\|hotspot\|identity\|igmp-proxy\|incoming\|instance\|interface\|ip\|ipsec\|ipv6\|irq\|l2tp-server\|lcd\|ldp\|logging\|mac-server\|mac-winbox\|mangle\|manual\|mirror\|mme\|mpls\|nat\|nd\|neighbor\|network\|note\|ntp\|ospf\|ospf-v3\|ovpn-server\|page\|peer\|pim\|ping\|policy\|pool\|port\|ppp\|pppoe-client\|pptp-server\|prefix\|profile\|proposal\|proxy\|queue\|radius\|resource\|rip\|ripng\|route\|routing\|screen\|script\|security-profiles\|server\|service\|service-port\|settings\|shares\|smb\|sms\|sniffer\|snmp\|snooper\|socks\|sstp-server\|system\|tool\|tracking\|type\|upgrade\|upnp\|user-manager\|users\|user\|vlan\|secret\|vrrp\|watchdog\|web-access\|wireless\|pptp\|pppoe\|lan\|wan\|layer7-protocol\|lease\|simple\|raw);?\\s)+X | +| highlight.js:2:26:2:979 | ((traffic-flow\|traffic-generator\|firewall\|scheduler\|aaa\|accounting\|address-list\|address\|align\|area\|bandwidth-server\|bfd\|bgp\|bridge\|client\|clock\|community\|config\|connection\|console\|customer\|default\|dhcp-client\|dhcp-server\|discovery\|dns\|e-mail\|ethernet\|filter\|firewall\|firmware\|gps\|graphing\|group\|hardware\|health\|hotspot\|identity\|igmp-proxy\|incoming\|instance\|interface\|ip\|ipsec\|ipv6\|irq\|l2tp-server\|lcd\|ldp\|logging\|mac-server\|mac-winbox\|mangle\|manual\|mirror\|mme\|mpls\|nat\|nd\|neighbor\|network\|note\|ntp\|ospf\|ospf-v3\|ovpn-server\|page\|peer\|pim\|ping\|policy\|pool\|port\|ppp\|pppoe-client\|pptp-server\|prefix\|profile\|proposal\|proxy\|queue\|radius\|resource\|rip\|ripng\|route\|routing\|screen\|script\|security-profiles\|server\|service\|service-port\|settings\|shares\|smb\|sms\|sniffer\|snmp\|snooper\|socks\|sstp-server\|system\|tool\|tracking\|type\|upgrade\|upnp\|user-manager\|users\|user\|vlan\|secret\|vrrp\|watchdog\|web-access\|wireless\|pptp\|pppoe\|lan\|wan\|layer7-protocol\|lease\|simple\|raw);?\\s)+ | Strings starting with '/' and with many repetitions of 'aaa\\t' can start matching anywhere after the start of the preceeding (\\.\\.\\/\|\\/\|\\s)((traffic-flow\|traffic-generator\|firewall\|scheduler\|aaa\|accounting\|address-list\|address\|align\|area\|bandwidth-server\|bfd\|bgp\|bridge\|client\|clock\|community\|config\|connection\|console\|customer\|default\|dhcp-client\|dhcp-server\|discovery\|dns\|e-mail\|ethernet\|filter\|firewall\|firmware\|gps\|graphing\|group\|hardware\|health\|hotspot\|identity\|igmp-proxy\|incoming\|instance\|interface\|ip\|ipsec\|ipv6\|irq\|l2tp-server\|lcd\|ldp\|logging\|mac-server\|mac-winbox\|mangle\|manual\|mirror\|mme\|mpls\|nat\|nd\|neighbor\|network\|note\|ntp\|ospf\|ospf-v3\|ovpn-server\|page\|peer\|pim\|ping\|policy\|pool\|port\|ppp\|pppoe-client\|pptp-server\|prefix\|profile\|proposal\|proxy\|queue\|radius\|resource\|rip\|ripng\|route\|routing\|screen\|script\|security-profiles\|server\|service\|service-port\|settings\|shares\|smb\|sms\|sniffer\|snmp\|snooper\|socks\|sstp-server\|system\|tool\|tracking\|type\|upgrade\|upnp\|user-manager\|users\|user\|vlan\|secret\|vrrp\|watchdog\|web-access\|wireless\|pptp\|pppoe\|lan\|wan\|layer7-protocol\|lease\|simple\|raw);?\\s)+X | +| highlight.js:3:27:3:971 | ((traffic-flow\|traffic-generator\|firewall\|scheduler\|aaa\|accounting\|address-list\|address\|align\|area\|bandwidth-server\|bfd\|bgp\|bridge\|client\|clock\|community\|config\|connection\|console\|customer\|default\|dhcp-client\|dhcp-server\|discovery\|dns\|e-mail\|ethernet\|filter\|firmware\|gps\|graphing\|group\|hardware\|health\|hotspot\|identity\|igmp-proxy\|incoming\|instance\|interface\|ip\|ipsec\|ipv6\|irq\|l2tp-server\|lcd\|ldp\|logging\|mac-server\|mac-winbox\|mangle\|manual\|mirror\|mme\|mpls\|nat\|nd\|neighbor\|network\|note\|ntp\|ospf\|ospf-v3\|ovpn-server\|page\|peer\|pim\|ping\|policy\|pool\|port\|ppp\|pppoe-client\|pptp-server\|prefix\|profile\|proposal\|proxy\|queue\|radius\|resource\|rip\|ripng\|route\|routing\|screen\|script\|security-profiles\|server\|service\|service-port\|settings\|shares\|smb\|sms\|sniffer\|snmp\|snooper\|socks\|sstp-server\|system\|tool\|tracking\|type\|upgrade\|upnp\|user-manager\|users\|user\|vlan\|secret\|vrrp\|watchdog\|web-access\|wireless\|pptp\|pppoe\|lan\|wan\|layer7-protocol\|lease\|simple\|raw);?\\s)+ | Strings starting with '/' and with many repetitions of 'aaa\\t' can start matching anywhere after the start of the preceeding (\\.\\.\\/\|\\/\|\\s)((traffic-flow\|traffic-generator\|firewall\|scheduler\|aaa\|accounting\|address-list\|address\|align\|area\|bandwidth-server\|bfd\|bgp\|bridge\|client\|clock\|community\|config\|connection\|console\|customer\|default\|dhcp-client\|dhcp-server\|discovery\|dns\|e-mail\|ethernet\|filter\|firmware\|gps\|graphing\|group\|hardware\|health\|hotspot\|identity\|igmp-proxy\|incoming\|instance\|interface\|ip\|ipsec\|ipv6\|irq\|l2tp-server\|lcd\|ldp\|logging\|mac-server\|mac-winbox\|mangle\|manual\|mirror\|mme\|mpls\|nat\|nd\|neighbor\|network\|note\|ntp\|ospf\|ospf-v3\|ovpn-server\|page\|peer\|pim\|ping\|policy\|pool\|port\|ppp\|pppoe-client\|pptp-server\|prefix\|profile\|proposal\|proxy\|queue\|radius\|resource\|rip\|ripng\|route\|routing\|screen\|script\|security-profiles\|server\|service\|service-port\|settings\|shares\|smb\|sms\|sniffer\|snmp\|snooper\|socks\|sstp-server\|system\|tool\|tracking\|type\|upgrade\|upnp\|user-manager\|users\|user\|vlan\|secret\|vrrp\|watchdog\|web-access\|wireless\|pptp\|pppoe\|lan\|wan\|layer7-protocol\|lease\|simple\|raw);?\\s)+X | | highlight.js:6:12:6:695 | (Add\|Clear\|Close\|Copy\|Enter\|Exit\|Find\|Format\|Get\|Hide\|Join\|Lock\|Move\|New\|Open\|Optimize\|Pop\|Push\|Redo\|Remove\|Rename\|Reset\|Resize\|Search\|Select\|Set\|Show\|Skip\|Split\|Step\|Switch\|Undo\|Unlock\|Watch\|Backup\|Checkpoint\|Compare\|Compress\|Convert\|ConvertFrom\|ConvertTo\|Dismount\|Edit\|Expand\|Export\|Group\|Import\|Initialize\|Limit\|Merge\|New\|Out\|Publish\|Restore\|Save\|Sync\|Unpublish\|Update\|Approve\|Assert\|Complete\|Confirm\|Deny\|Disable\|Enable\|Install\|Invoke\|Register\|Request\|Restart\|Resume\|Start\|Stop\|Submit\|Suspend\|Uninstall\|Unregister\|Wait\|Debug\|Measure\|Ping\|Repair\|Resolve\|Test\|Trace\|Connect\|Disconnect\|Read\|Receive\|Send\|Write\|Block\|Grant\|Protect\|Revoke\|Unblock\|Unprotect\|Use\|ForEach\|Sort\|Tee\|Where)+ | Strings with many repetitions of 'Add' can start matching anywhere after the start of the preceeding (Add\|Clear\|Close\|Copy\|Enter\|Exit\|Find\|Format\|Get\|Hide\|Join\|Lock\|Move\|New\|Open\|Optimize\|Pop\|Push\|Redo\|Remove\|Rename\|Reset\|Resize\|Search\|Select\|Set\|Show\|Skip\|Split\|Step\|Switch\|Undo\|Unlock\|Watch\|Backup\|Checkpoint\|Compare\|Compress\|Convert\|ConvertFrom\|ConvertTo\|Dismount\|Edit\|Expand\|Export\|Group\|Import\|Initialize\|Limit\|Merge\|New\|Out\|Publish\|Restore\|Save\|Sync\|Unpublish\|Update\|Approve\|Assert\|Complete\|Confirm\|Deny\|Disable\|Enable\|Install\|Invoke\|Register\|Request\|Restart\|Resume\|Start\|Stop\|Submit\|Suspend\|Uninstall\|Unregister\|Wait\|Debug\|Measure\|Ping\|Repair\|Resolve\|Test\|Trace\|Connect\|Disconnect\|Read\|Receive\|Send\|Write\|Block\|Grant\|Protect\|Revoke\|Unblock\|Unprotect\|Use\|ForEach\|Sort\|Tee\|Where)+(-)[\\w\\d]+ | | highlight.js:7:13:7:692 | (Add\|Clear\|Close\|Copy\|Enter\|Exit\|Find\|Format\|Get\|Hide\|Join\|Lock\|Move\|New\|Open\|Optimize\|Pop\|Push\|Redo\|Remove\|Rename\|Reset\|Resize\|Search\|Select\|Set\|Show\|Skip\|Split\|Step\|Switch\|Undo\|Unlock\|Watch\|Backup\|Checkpoint\|Compare\|Compress\|Convert\|ConvertFrom\|ConvertTo\|Dismount\|Edit\|Expand\|Export\|Group\|Import\|Initialize\|Limit\|Merge\|Out\|Publish\|Restore\|Save\|Sync\|Unpublish\|Update\|Approve\|Assert\|Complete\|Confirm\|Deny\|Disable\|Enable\|Install\|Invoke\|Register\|Request\|Restart\|Resume\|Start\|Stop\|Submit\|Suspend\|Uninstall\|Unregister\|Wait\|Debug\|Measure\|Ping\|Repair\|Resolve\|Test\|Trace\|Connect\|Disconnect\|Read\|Receive\|Send\|Write\|Block\|Grant\|Protect\|Revoke\|Unblock\|Unprotect\|Use\|ForEach\|Sort\|Tee\|Where)+ | Strings with many repetitions of 'Add' can start matching anywhere after the start of the preceeding (Add\|Clear\|Close\|Copy\|Enter\|Exit\|Find\|Format\|Get\|Hide\|Join\|Lock\|Move\|New\|Open\|Optimize\|Pop\|Push\|Redo\|Remove\|Rename\|Reset\|Resize\|Search\|Select\|Set\|Show\|Skip\|Split\|Step\|Switch\|Undo\|Unlock\|Watch\|Backup\|Checkpoint\|Compare\|Compress\|Convert\|ConvertFrom\|ConvertTo\|Dismount\|Edit\|Expand\|Export\|Group\|Import\|Initialize\|Limit\|Merge\|Out\|Publish\|Restore\|Save\|Sync\|Unpublish\|Update\|Approve\|Assert\|Complete\|Confirm\|Deny\|Disable\|Enable\|Install\|Invoke\|Register\|Request\|Restart\|Resume\|Start\|Stop\|Submit\|Suspend\|Uninstall\|Unregister\|Wait\|Debug\|Measure\|Ping\|Repair\|Resolve\|Test\|Trace\|Connect\|Disconnect\|Read\|Receive\|Send\|Write\|Block\|Grant\|Protect\|Revoke\|Unblock\|Unprotect\|Use\|ForEach\|Sort\|Tee\|Where)+(-)[\\w\\d]+ | | highlight.js:14:17:14:52 | [a-z0-9&#*=?@\\\\><:,()$[\\]_.{}!+%^-]+ | Strings with many repetitions of '!' can start matching anywhere after the start of the preceeding ([ ]*[a-z0-9&#*=?@\\\\><:,()$[\\]_.{}!+%^-]+)+ | @@ -7,8 +7,7 @@ | highlight.js:18:20:18:22 | .*? | Strings starting with '"' and with many repetitions of '"' can start matching anywhere after the start of the preceeding .*? | | highlight.js:18:27:18:29 | .*? | Strings starting with '[' and with many repetitions of '[' can start matching anywhere after the start of the preceeding .*? | | highlight.js:18:33:18:69 | [^\\s!"#%&'()*+,.\\/;<=>@\\[\\\\\\]^`{\|}~]+ | Strings with many repetitions of '$' can start matching anywhere after the start of the preceeding .*? | -| highlight.js:19:56:19:61 | [^\\]]+ | Strings starting with '[' and with many repetitions of '[' can start matching anywhere after the start of the preceeding (\\.\|\\.\\/\|\\/)?(""\|"[^"]+"\|''\|'[^']+'\|\\[\\]\|\\[[^\\]]+\\]\|[^\\s!"#%&'()*+,.\\/;<=>@\\[\\\\\\]^`{\|}~]+)((\\.\|\\/)(""\|"[^"]+"\|''\|'[^']+'\|\\[\\]\|\\[[^\\]]+\\]\|[^\\s!"#%&'()*+,.\\/;<=>@\\[\\\\\\]^`{\|}~]+))* | -| highlight.js:19:141:19:146 | [^\\]]+ | Strings starting with '"".[' and with many repetitions of '$.[' can start matching anywhere after the start of the preceeding (\\.\|\\.\\/\|\\/)?(""\|"[^"]+"\|''\|'[^']+'\|\\[\\]\|\\[[^\\]]+\\]\|[^\\s!"#%&'()*+,.\\/;<=>@\\[\\\\\\]^`{\|}~]+)((\\.\|\\/)(""\|"[^"]+"\|''\|'[^']+'\|\\[\\]\|\\[[^\\]]+\\]\|[^\\s!"#%&'()*+,.\\/;<=>@\\[\\\\\\]^`{\|}~]+))* | +| highlight.js:19:56:19:61 | [^\\]]+ | Strings starting with '[' and with many repetitions of '.[' can start matching anywhere after the start of the preceeding (\\.\|\\.\\/\|\\/)?(""\|"[^"]+"\|''\|'[^']+'\|\\[\\]\|\\[[^\\]]+\\]\|[^\\s!"#%&'()*+,.\\/;<=>@\\[\\\\\\]^`{\|}~]+)((\\.\|\\/)(""\|"[^"]+"\|''\|'[^']+'\|\\[\\]\|\\[[^\\]]+\\]\|[^\\s!"#%&'()*+,.\\/;<=>@\\[\\\\\\]^`{\|}~]+))* | | highlight.js:22:12:22:82 | ((decltype\\(auto\\)\|(?:[a-zA-Z_]\\w*::)?[a-zA-Z_]\\w*(?:<.*?>)?)[\\*&\\s]+)+ | Strings with many repetitions of 'A\\t' can start matching anywhere after the start of the preceeding .*? | | highlight.js:22:43:22:45 | \\w* | Strings starting with 'A' and with many repetitions of 'A' can start matching anywhere after the start of the preceeding .*? | | highlight.js:22:66:22:68 | .*? | Strings starting with 'A<' and with many repetitions of 'A<' can start matching anywhere after the start of the preceeding \\w* | @@ -135,26 +134,22 @@ | regexplib/address.js:27:93:27:95 | \\s* | Strings with many repetitions of '\\t' can start matching anywhere after the start of the preceeding (\\s*(7\|8)(\\d{7}\|\\d{3}(\\-\|\\s{1})\\d{4})\\s*) | | regexplib/address.js:38:39:38:45 | [ 0-9]* | Strings starting with 'po' and with many repetitions of ' ' can start matching anywhere after the start of the preceeding [ \|\\.]* | | regexplib/address.js:51:220:51:222 | \\w+ | Strings starting with 'C/O ' and with many repetitions of '0' can start matching anywhere after the start of the preceeding \\x20* | -| regexplib/address.js:51:331:51:344 | [a-zA-Z0-9\\-]+ | Strings starting with 'C/O 0#' and with many repetitions of 'FL0' can start matching anywhere after the start of the preceeding \\w+ | -| regexplib/address.js:51:399:51:401 | \\s+ | Strings starting with 'C/O 0' and with many repetitions of ' ' can start matching anywhere after the start of the preceeding \\x20* | +| regexplib/address.js:51:331:51:344 | [a-zA-Z0-9\\-]+ | Strings starting with 'C/O 0#' and with many repetitions of '0APT0' can start matching anywhere after the start of the preceeding \\w+ | | regexplib/address.js:51:415:51:419 | \\x20+ | Strings starting with 'C/O 0\\t0' and with many repetitions of ' 0 ' can start matching anywhere after the start of the preceeding \\x20* | -| regexplib/address.js:51:420:51:422 | \\w+ | Strings starting with 'C/O 0\\t0 ' and with many repetitions of '0 0 ' can start matching anywhere after the start of the preceeding \\w+ | | regexplib/address.js:51:616:51:618 | \\w+ | Strings starting with 'C/O 0\\tC/O ' and with many repetitions of '0' can start matching anywhere after the start of the preceeding \\x20* | -| regexplib/address.js:51:727:51:740 | [a-zA-Z0-9\\-]+ | Strings starting with 'C/O 0\\t0 0#' and with many repetitions of 'FL0' can start matching anywhere after the start of the preceeding \\w+ | -| regexplib/address.js:51:796:51:798 | \\s+ | Strings starting with 'C/O 0\\t' and with many repetitions of ' ' can start matching anywhere after the start of the preceeding \\s+ | +| regexplib/address.js:51:727:51:740 | [a-zA-Z0-9\\-]+ | Strings starting with 'C/O 0\\t0 0#' and with many repetitions of '0APT0' can start matching anywhere after the start of the preceeding \\w+ | +| regexplib/address.js:51:796:51:798 | \\s+ | Strings starting with 'C/O 0\\t' and with many repetitions of '\\t\\t' can start matching anywhere after the start of the preceeding \\s+ | | regexplib/address.js:51:803:51:811 | [A-Za-z]+ | Strings starting with 'C/O 0\\t\\t' and with many repetitions of 'A' can start matching anywhere after the start of the preceeding \\w+ | | regexplib/address.js:67:379:67:755 | [a-zA-Z0-9ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæçèéêëìíîïñòóôõöøùúûüýÿ\\.\\,\\-\\/\\' ]+ | Strings starting with '#' and with many repetitions of '#' can start matching anywhere after the start of the preceeding [a-zA-Z0-9ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæçèéêëìíîïñòóôõöøùúûüýÿ\\.\\,\\-\\/\\']+ | | regexplib/address.js:69:3:69:5 | \\s* | Strings with many repetitions of '\\t' can start matching anywhere after the start of the preceeding (\\s*\\(?0\\d{4}\\)?(\\s*\|-)\\d{3}(\\s*\|-)\\d{3}\\s*) | | regexplib/address.js:69:48:69:50 | \\s* | Strings with many repetitions of '\\t' can start matching anywhere after the start of the preceeding (\\s*\\(?0\\d{3}\\)?(\\s*\|-)\\d{3}(\\s*\|-)\\d{4}\\s*) | | regexplib/address.js:69:93:69:95 | \\s* | Strings with many repetitions of '\\t' can start matching anywhere after the start of the preceeding (\\s*(7\|8)(\\d{7}\|\\d{3}(\\-\|\\s{1})\\d{4})\\s*) | | regexplib/address.js:75:220:75:222 | \\w+ | Strings starting with 'C/O ' and with many repetitions of '0' can start matching anywhere after the start of the preceeding \\x20* | -| regexplib/address.js:75:331:75:344 | [a-zA-Z0-9\\-]+ | Strings starting with 'C/O 0#' and with many repetitions of 'FL0' can start matching anywhere after the start of the preceeding \\w+ | -| regexplib/address.js:75:399:75:401 | \\s+ | Strings starting with 'C/O 0' and with many repetitions of ' ' can start matching anywhere after the start of the preceeding \\x20* | +| regexplib/address.js:75:331:75:344 | [a-zA-Z0-9\\-]+ | Strings starting with 'C/O 0#' and with many repetitions of '0APT0' can start matching anywhere after the start of the preceeding \\w+ | | regexplib/address.js:75:415:75:419 | \\x20+ | Strings starting with 'C/O 0\\t0' and with many repetitions of ' 0 ' can start matching anywhere after the start of the preceeding \\x20* | -| regexplib/address.js:75:420:75:422 | \\w+ | Strings starting with 'C/O 0\\t0 ' and with many repetitions of '0 0 ' can start matching anywhere after the start of the preceeding \\w+ | | regexplib/address.js:75:616:75:618 | \\w+ | Strings starting with 'C/O 0\\tC/O ' and with many repetitions of '0' can start matching anywhere after the start of the preceeding \\x20* | -| regexplib/address.js:75:727:75:740 | [a-zA-Z0-9\\-]+ | Strings starting with 'C/O 0\\t0 0#' and with many repetitions of 'FL0' can start matching anywhere after the start of the preceeding \\w+ | -| regexplib/address.js:75:796:75:798 | \\s+ | Strings starting with 'C/O 0\\t' and with many repetitions of ' ' can start matching anywhere after the start of the preceeding \\s+ | +| regexplib/address.js:75:727:75:740 | [a-zA-Z0-9\\-]+ | Strings starting with 'C/O 0\\t0 0#' and with many repetitions of '0APT0' can start matching anywhere after the start of the preceeding \\w+ | +| regexplib/address.js:75:796:75:798 | \\s+ | Strings starting with 'C/O 0\\t' and with many repetitions of '\\t\\t' can start matching anywhere after the start of the preceeding \\s+ | | regexplib/address.js:75:803:75:811 | [A-Za-z]+ | Strings starting with 'C/O 0\\t\\t' and with many repetitions of 'A' can start matching anywhere after the start of the preceeding \\w+ | | regexplib/address.js:85:15:85:49 | ([0-9]\|[ ]\|[-]\|[\\(]\|[\\)]\|ext.\|[,])+ | Strings with many repetitions of ' ' can start matching anywhere after the start of the preceeding (?([0-9]\|[ ]\|[-]\|[\\(]\|[\\)]\|ext.\|[,])+)([ ]\|[:]\|\\t\|[-])*(?Home\|Office\|Work\|Away\|Fax\|FAX\|Phone) | | regexplib/address.js:85:51:85:67 | ([ ]\|[:]\|\\t\|[-])* | Strings starting with '0' and with many repetitions of ' ' can start matching anywhere after the start of the preceeding ([0-9]\|[ ]\|[-]\|[\\(]\|[\\)]\|ext.\|[,])+ | @@ -168,10 +163,8 @@ | regexplib/email.js:5:24:5:35 | [a-zA-Z0-9]+ | Strings starting with '0' and with many repetitions of '0' can start matching anywhere after the start of the preceeding ([_\\.\\-]?[a-zA-Z0-9]+)* | | regexplib/email.js:5:63:5:74 | [a-zA-Z0-9]+ | Strings starting with '0@0' and with many repetitions of '0' can start matching anywhere after the start of the preceeding [A-Za-z0-9]+ | | regexplib/email.js:8:16:8:49 | [^ \\t\\(\\)\\<\\>@,;\\:\\\\\\"\\.\\[\\]\\r\\n]+ | Strings with many repetitions of '!' can start matching anywhere after the start of the preceeding (?(?:(?:[^ \\t\\(\\)\\<\\>@,;\\:\\\\\\"\\.\\[\\]\\r\\n]+)\|(?:\\"(?:(?:[^\\"\\\\\\r\\n])\|(?:\\\\.))*\\"))(?:\\.(?:(?:[^ \\t\\(\\)\\<\\>@,;\\:\\\\\\"\\.\\[\\]\\r\\n]+)\|(?:\\"(?:(?:[^\\"\\\\\\r\\n])\|(?:\\\\.))*\\")))*)@(?(?:(?:[^ \\t\\(\\)\\<\\>@,;\\:\\\\\\"\\.\\[\\]\\r\\n]+)\|(?:\\[(?:(?:[^\\[\\]\\\\\\r\\n])\|(?:\\\\.))*\\]))(?:\\.(?:(?:[^ \\t\\(\\)\\<\\>@,;\\:\\\\\\"\\.\\[\\]\\r\\n]+)\|(?:\\[(?:(?:[^\\[\\]\\\\\\r\\n])\|(?:\\\\.))*\\])))*) | -| regexplib/email.js:8:57:8:84 | (?:(?:[^\\"\\\\\\r\\n])\|(?:\\\\.))* | Strings starting with '"' and with many repetitions of '\\\\"' can start matching anywhere after the start of the preceeding (?(?:(?:[^ \\t\\(\\)\\<\\>@,;\\:\\\\\\"\\.\\[\\]\\r\\n]+)\|(?:\\"(?:(?:[^\\"\\\\\\r\\n])\|(?:\\\\.))*\\"))(?:\\.(?:(?:[^ \\t\\(\\)\\<\\>@,;\\:\\\\\\"\\.\\[\\]\\r\\n]+)\|(?:\\"(?:(?:[^\\"\\\\\\r\\n])\|(?:\\\\.))*\\")))*)@(?(?:(?:[^ \\t\\(\\)\\<\\>@,;\\:\\\\\\"\\.\\[\\]\\r\\n]+)\|(?:\\[(?:(?:[^\\[\\]\\\\\\r\\n])\|(?:\\\\.))*\\]))(?:\\.(?:(?:[^ \\t\\(\\)\\<\\>@,;\\:\\\\\\"\\.\\[\\]\\r\\n]+)\|(?:\\[(?:(?:[^\\[\\]\\\\\\r\\n])\|(?:\\\\.))*\\])))*) | | regexplib/email.js:8:89:8:174 | (?:\\.(?:(?:[^ \\t\\(\\)\\<\\>@,;\\:\\\\\\"\\.\\[\\]\\r\\n]+)\|(?:\\"(?:(?:[^\\"\\\\\\r\\n])\|(?:\\\\.))*\\")))* | Strings starting with '!' and with many repetitions of '.!' can start matching anywhere after the start of the preceeding (?(?:(?:[^ \\t\\(\\)\\<\\>@,;\\:\\\\\\"\\.\\[\\]\\r\\n]+)\|(?:\\"(?:(?:[^\\"\\\\\\r\\n])\|(?:\\\\.))*\\"))(?:\\.(?:(?:[^ \\t\\(\\)\\<\\>@,;\\:\\\\\\"\\.\\[\\]\\r\\n]+)\|(?:\\"(?:(?:[^\\"\\\\\\r\\n])\|(?:\\\\.))*\\")))*)@(?(?:(?:[^ \\t\\(\\)\\<\\>@,;\\:\\\\\\"\\.\\[\\]\\r\\n]+)\|(?:\\[(?:(?:[^\\[\\]\\\\\\r\\n])\|(?:\\\\.))*\\]))(?:\\.(?:(?:[^ \\t\\(\\)\\<\\>@,;\\:\\\\\\"\\.\\[\\]\\r\\n]+)\|(?:\\[(?:(?:[^\\[\\]\\\\\\r\\n])\|(?:\\\\.))*\\])))*) | | regexplib/email.js:8:100:8:133 | [^ \\t\\(\\)\\<\\>@,;\\:\\\\\\"\\.\\[\\]\\r\\n]+ | Strings starting with '!.' and with many repetitions of '!.!' can start matching anywhere after the start of the preceeding (?(?:(?:[^ \\t\\(\\)\\<\\>@,;\\:\\\\\\"\\.\\[\\]\\r\\n]+)\|(?:\\"(?:(?:[^\\"\\\\\\r\\n])\|(?:\\\\.))*\\"))(?:\\.(?:(?:[^ \\t\\(\\)\\<\\>@,;\\:\\\\\\"\\.\\[\\]\\r\\n]+)\|(?:\\"(?:(?:[^\\"\\\\\\r\\n])\|(?:\\\\.))*\\")))*)@(?(?:(?:[^ \\t\\(\\)\\<\\>@,;\\:\\\\\\"\\.\\[\\]\\r\\n]+)\|(?:\\[(?:(?:[^\\[\\]\\\\\\r\\n])\|(?:\\\\.))*\\]))(?:\\.(?:(?:[^ \\t\\(\\)\\<\\>@,;\\:\\\\\\"\\.\\[\\]\\r\\n]+)\|(?:\\[(?:(?:[^\\[\\]\\\\\\r\\n])\|(?:\\\\.))*\\])))*) | -| regexplib/email.js:8:141:8:168 | (?:(?:[^\\"\\\\\\r\\n])\|(?:\\\\.))* | Strings starting with '!."' and with many repetitions of '".!."' can start matching anywhere after the start of the preceeding (?(?:(?:[^ \\t\\(\\)\\<\\>@,;\\:\\\\\\"\\.\\[\\]\\r\\n]+)\|(?:\\"(?:(?:[^\\"\\\\\\r\\n])\|(?:\\\\.))*\\"))(?:\\.(?:(?:[^ \\t\\(\\)\\<\\>@,;\\:\\\\\\"\\.\\[\\]\\r\\n]+)\|(?:\\"(?:(?:[^\\"\\\\\\r\\n])\|(?:\\\\.))*\\")))*)@(?(?:(?:[^ \\t\\(\\)\\<\\>@,;\\:\\\\\\"\\.\\[\\]\\r\\n]+)\|(?:\\[(?:(?:[^\\[\\]\\\\\\r\\n])\|(?:\\\\.))*\\]))(?:\\.(?:(?:[^ \\t\\(\\)\\<\\>@,;\\:\\\\\\"\\.\\[\\]\\r\\n]+)\|(?:\\[(?:(?:[^\\[\\]\\\\\\r\\n])\|(?:\\\\.))*\\])))*) | | regexplib/email.js:12:2:12:4 | \\w+ | Strings with many repetitions of '0' can start matching anywhere after the start of the preceeding \\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*([,;]\\s*\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*)* | | regexplib/email.js:12:5:12:15 | ([-+.]\\w+)* | Strings starting with '0' and with many repetitions of '+0' can start matching anywhere after the start of the preceeding \\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*([,;]\\s*\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*)* | | regexplib/email.js:12:11:12:13 | \\w+ | Strings starting with '0+' and with many repetitions of '0+' can start matching anywhere after the start of the preceeding \\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*([,;]\\s*\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*)* | @@ -202,16 +195,12 @@ | regexplib/markup.js:2:3:2:7 | [^>]* | Strings starting with '<' and with many repetitions of '<' can start matching anywhere after the start of the preceeding <[^>]*> | | regexplib/markup.js:3:440:3:456 | (\\s(?.+?))* | Strings starting with '.+?))* | -| regexplib/markup.js:5:1525:5:1527 | \\s* | Strings starting with '?'DateLiteral' ?# Per the VB Spec : DateLiteral ::= '#' DateOrTime '#' # ?'DateOrTime' DateValue ?# TimeValue ::= HourValue : MinuteValue 10 ?# Hour 01 - 24 : 60 ?# Minute 01 - 60 : ?# Optional Minute :01 - :60 ' and with many repetitions of ' ' can start matching anywhere after the start of the preceeding \\s* | -| regexplib/markup.js:6:11:6:25 | [\\w\\*\\)\\(\\,\\s]+ | Strings starting with 'SELECT\\t' and with many repetitions of 'SELECT\\t' can start matching anywhere after the start of the preceeding (SELECT\\s[\\w\\*\\)\\(\\,\\s]+\\sFROM\\s[\\w]+) | | regexplib/markup.js:6:99:6:113 | [\\s\\w\\d\\)\\(\\,]* | Strings starting with ' INSERT\\tINTO\\t0' and with many repetitions of '0' can start matching anywhere after the start of the preceeding [\\d\\w]+ | | regexplib/markup.js:7:8:7:23 | (?:\\\\.\|[^\\\\"]*)* | Strings starting with '"!' and with many repetitions of '\\\\"!\\\\a' can start matching anywhere after the start of the preceeding "([^"](?:\\\\.\|[^\\\\"]*)*)" | | regexplib/markup.js:9:6:9:13 | [\\s\\S]*? | Strings starting with ' | | regexplib/markup.js:12:40:12:42 | .*? | Strings starting with ') | | regexplib/markup.js:12:117:12:121 | [^>]* | Strings starting with ']*>) | -| regexplib/markup.js:12:149:12:153 | [^>]* | Strings starting with 'font-family:' and with many repetitions of 'font-family:' can start matching anywhere after the start of the preceeding (font-family:[^>]*[;']) | -| regexplib/markup.js:12:171:12:175 | [^>]* | Strings starting with 'font-size:' and with many repetitions of 'font-size:' can start matching anywhere after the start of the preceeding (font-size:[^>]*[;'])(?-s) | | regexplib/markup.js:13:6:13:12 | [^"']+? | Strings starting with '<' and with many repetitions of '!' can start matching anywhere after the start of the preceeding .*? | | regexplib/markup.js:13:14:13:16 | .+? | Strings starting with '<' and with many repetitions of '!' can start matching anywhere after the start of the preceeding .*? | | regexplib/markup.js:14:13:14:14 | .* | Strings starting with '<' and with many repetitions of 'a' can start matching anywhere after the start of the preceeding .* | @@ -227,8 +216,7 @@ | regexplib/markup.js:20:52:20:53 | .* | Strings with many repetitions of '=color' can start matching anywhere after the start of the preceeding [^>]+ | | regexplib/markup.js:20:155:20:156 | '+ | Strings with many repetitions of '''' can start matching anywhere after the start of the preceeding '+ | | regexplib/markup.js:20:197:20:198 | "+ | Strings with many repetitions of '""' can start matching anywhere after the start of the preceeding "+ | -| regexplib/markup.js:20:245:20:247 | .*? | Strings with many repetitions of 'color: # IF found THEN move ahead "" # single or double # or no quotes\\t' can start matching anywhere after the start of the preceeding .*? | -| regexplib/markup.js:20:274:20:276 | .*? | Strings starting with ']+color.*>) #IF\\/THEN lookahead color in tag (.*?color\\s*?[=\|:]\\s*?) # IF found THEN move ahead ('+\\#*?[\\w\\s]*'+ # CAPTURE ColorName\\/Hex \|"+\\#*?[\\w\\s]*"+ # single or double \|\\#*\\w*\\b) # or no quotes\t.*?> # & move to end of tag \|.*?> # ELSE move to end of Tag ) # Close the If\\/Then lookahead # Use Multiline and IgnoreCase # Replace the matches from RE with MatchEvaluator below: # if m.Groups(1).Value<>"" then # Return "" # else # Return "" # end if | +| regexplib/markup.js:20:274:20:276 | .*? | Strings starting with ']+color.*>) #IF\\/THEN lookahead color in tag (.*?color\\s*?[=\|:]\\s*?) # IF found THEN move ahead ('+\\#*?[\\w\\s]*'+ # CAPTURE ColorName\\/Hex \|"+\\#*?[\\w\\s]*"+ # single or double \|\\#*\\w*\\b) # or no quotes\t.*?> # & move to end of tag \|.*?> # ELSE move to end of Tag ) # Close the If\\/Then lookahead # Use Multiline and IgnoreCase # Replace the matches from RE with MatchEvaluator below: # if m.Groups(1).Value<>"" then # Return "" # else # Return "" # end if | | regexplib/markup.js:24:39:24:41 | \\s+ | Strings starting with '<A' and with many repetitions of '\\t-\\t!=\\t' can start matching anywhere after the start of the preceeding \\s* | | regexplib/markup.js:24:43:24:45 | \\S+ | Strings starting with '<A\\t' and with many repetitions of '-\\t!=' can start matching anywhere after the start of the preceeding \\s* | | regexplib/markup.js:24:48:24:50 | \\s* | Strings starting with '<A\\t!' and with many repetitions of '\\t=-\\t!\\t' can start matching anywhere after the start of the preceeding \\s+ | @@ -262,7 +250,6 @@ | regexplib/markup.js:61:115:61:120 | [0-9]+ | Strings starting with '' and with many repetitions of '' can start matching anywhere after the start of the preceeding [^']*? | | regexplib/markup.js:62:9:62:14 | [^>]*? | Strings starting with '' and with many repetitions of 'href=! >;' can start matching anywhere after the start of the preceeding href\\s*=\\s*(?:(?:\\"(?[^\\"]*)\\")\|(?[^\\s*] ))>(?[^<]+)<\\/\\w> | | regexplib/uri.js:34:3:34:9 | [^\\=&]+ | Strings with many repetitions of '%' can start matching anywhere after the start of the preceeding ([^\\=&]+)(?<!param1\|param2\|param3)\\=([^\\=&]+)(&)? | | regexplib/uri.js:36:40:36:42 | \\d* | Strings starting with '$1' and with many repetitions of '1' can start matching anywhere after the start of the preceeding [1-9]+ | @@ -410,8 +393,7 @@ | regexplib/uri.js:55:20:55:28 | [a-z0-9]+ | Strings starting with 'a' and with many repetitions of '0' can start matching anywhere after the start of the preceeding [a-z]+ | | regexplib/uri.js:55:35:55:40 | [a-z]+ | Strings starting with 'a.' and with many repetitions of 'aa' can start matching anywhere after the start of the preceeding [a-z0-9]+ | | regexplib/uri.js:55:52:55:60 | [a-z0-9]+ | Strings starting with 'a.a' and with many repetitions of '0' can start matching anywhere after the start of the preceeding [a-z]+ | -| regexplib/uri.js:58:2:58:45 | ((http\\:\\/\\/\|https\\:\\/\\/\|ftp\\:\\/\\/)\|(www.))+ | Strings with many repetitions of 'wwwa' can start matching anywhere after the start of the preceeding ((http\\:\\/\\/\|https\\:\\/\\/\|ftp\\:\\/\\/)\|(www.))+(([a-zA-Z0-9\\.-]+\\.[a-zA-Z]{2,4})\|([0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}))(\\/[a-zA-Z0-9%:/-_\\?\\.'~]*)? | -| regexplib/uri.js:58:48:58:62 | [a-zA-Z0-9\\.-]+ | Strings starting with 'wwwa' and with many repetitions of 'www--' can start matching anywhere after the start of the preceeding ((http\\:\\/\\/\|https\\:\\/\\/\|ftp\\:\\/\\/)\|(www.))+ | +| regexplib/uri.js:58:2:58:45 | ((http\\:\\/\\/\|https\\:\\/\\/\|ftp\\:\\/\\/)\|(www.))+ | Strings with many repetitions of 'ftp://' can start matching anywhere after the start of the preceeding ((http\\:\\/\\/\|https\\:\\/\\/\|ftp\\:\\/\\/)\|(www.))+(([a-zA-Z0-9\\.-]+\\.[a-zA-Z]{2,4})\|([0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}))(\\/[a-zA-Z0-9%:/-_\\?\\.'~]*)? | | regexplib/uri.js:64:31:64:36 | [\\w-]+ | Strings with many repetitions of '-' can start matching anywhere after the start of the preceeding [\\w-\\s]* | | regexplib/uri.js:70:16:70:31 | [a-zA-Z0-9\\-\\.]+ | Strings starting with '0' and with many repetitions of '00' can start matching anywhere after the start of the preceeding [a-zA-Z0-9]+ | | regexplib/uri.js:71:75:71:89 | [^\\/\\\\:*?"<>\|]+ | Strings starting with 'A:\\\\!.' and with many repetitions of '!.' can start matching anywhere after the start of the preceeding [^\\/\\\\:*?"<>\|]+ | @@ -496,7 +478,7 @@ | tst.js:257:14:257:116 | (.thisisagoddamnlongstringforstresstestingthequery\|\\sthisisagoddamnlongstringforstresstestingthequery)* | Strings with many repetitions of '\\tthisisagoddamnlongstringforstresstestingthequery' can start matching anywhere after the start of the preceeding (.thisisagoddamnlongstringforstresstestingthequery\|\\sthisisagoddamnlongstringforstresstestingthequery)*- | | tst.js:260:14:260:77 | (thisisagoddamnlongstringforstresstestingthequery\|this\\w+query)* | Strings with many repetitions of 'this0query' can start matching anywhere after the start of the preceeding \\w+ | | tst.js:260:68:260:70 | \\w+ | Strings starting with 'this' and with many repetitions of 'this' can start matching anywhere after the start of the preceeding (thisisagoddamnlongstringforstresstestingthequery\|this\\w+query)* | -| tst.js:263:15:263:117 | (thisisagoddamnlongstringforstresstestingthequery\|imanotherbutunrelatedstringcomparedtotheotherstring)* | Strings with many repetitions of 'thisisagoddamnlongstringforstresstestingthequery' can start matching anywhere after the start of the preceeding (thisisagoddamnlongstringforstresstestingthequery\|imanotherbutunrelatedstringcomparedtotheotherstring)*- | +| tst.js:263:15:263:117 | (thisisagoddamnlongstringforstresstestingthequery\|imanotherbutunrelatedstringcomparedtotheotherstring)* | Strings with many repetitions of 'imanotherbutunrelatedstringcomparedtotheotherstring' can start matching anywhere after the start of the preceeding (thisisagoddamnlongstringforstresstestingthequery\|imanotherbutunrelatedstringcomparedtotheotherstring)*- | | tst.js:272:21:272:22 | b+ | Strings with many repetitions of 'b' can start matching anywhere after the start of the preceeding (b+)+ | | tst.js:275:25:275:27 | \\s+ | Strings starting with '<0' and with many repetitions of '\\t0="\\t0="\\t' can start matching anywhere after the start of the preceeding [^"]* | | tst.js:275:28:275:30 | \\w+ | Strings starting with '<0\\t' and with many repetitions of '0="\\t0="\\t' can start matching anywhere after the start of the preceeding [^"]* | diff --git a/shared/regex/codeql/regex/nfa/SuperlinearBackTracking.qll b/shared/regex/codeql/regex/nfa/SuperlinearBackTracking.qll index 139d4b1991b..dd786aef305 100644 --- a/shared/regex/codeql/regex/nfa/SuperlinearBackTracking.qll +++ b/shared/regex/codeql/regex/nfa/SuperlinearBackTracking.qll @@ -175,13 +175,55 @@ module Make<RegexTreeViewSig TreeImpl> { * Holds if there are transitions from the components of `q` to the corresponding * components of `r` labelled with `s1`, `s2`, and `s3`, respectively. */ - pragma[noinline] - predicate step(StateTuple q, InputSymbol s1, InputSymbol s2, InputSymbol s3, StateTuple r) { + pragma[nomagic] + private predicate stepHelper( + StateTuple q, InputSymbol s1, InputSymbol s2, InputSymbol s3, StateTuple r + ) { exists(State r1, State r2, State r3 | step(q, s1, s2, s3, r1, r2, r3) and r = MkStateTuple(r1, r2, r3) ) } + /** + * Holds if there are transitions from the components of `q` to the corresponding + * components of `r` labelled with `s1`, `s2`, and `s3`, respectively. + * + * Additionally, a heuristic is used to avoid blowups in the case of complex regexps. + * For regular expressions with more than 100 states, we only look at all the characters + * for the transitions out of `q` and only consider transitions that use the lexographically + * smallest character. + */ + pragma[noinline] + predicate step(StateTuple q, InputSymbol s1, InputSymbol s2, InputSymbol s3, StateTuple r) { + stepHelper(q, s1, s2, s3, r) and + ( + countStates(any(State s | q.isTuple(s, _, _)).getRepr().getRootTerm()) < 100 + or + // arbitrarily pick an edge out of `q` for complex regexps. This is a heuristic to avoid potential blowups. + exists(string char | + char = + min(string str, InputSymbol x1, InputSymbol x2, InputSymbol x3 | + stepHelper(q, x1, x2, x3, _) and str = getAStepChar(x1, x2, x3) + | + str + ) and + char = getAStepChar(s1, s2, s3) + ) + ) + } + + // specialized version of `getAThreewayIntersect` to be used in `step` above. + pragma[noinline] + private string getAStepChar(InputSymbol s1, InputSymbol s2, InputSymbol s3) { + stepHelper(_, s1, s2, s3, _) and result = getAThreewayIntersect(s1, s2, s3) + } + + /** Gets the number of states in the NFA for `root`. This is used to determine a complexity metric used in the `step` predicate above. */ + private int countStates(RegExpTerm root) { + root.isRootTerm() and + result = count(State s | s.getRepr().getRootTerm() = root) + } + /** * Holds if there are transitions from the components of `q` to `r1`, `r2`, and `r3 * labelled with `s1`, `s2`, and `s3`, respectively. From b208988675a44994ce198d2bb01d4098e39527e5 Mon Sep 17 00:00:00 2001 From: erik-krogh <erik-krogh@github.com> Date: Wed, 15 Mar 2023 23:19:06 +0100 Subject: [PATCH 12/97] Py: add test for problematic regex --- .../Security/CWE-730-PolynomialReDoS/PolynomialReDoS.expected | 2 ++ .../test/query-tests/Security/CWE-730-PolynomialReDoS/test.py | 3 +++ 2 files changed, 5 insertions(+) diff --git a/python/ql/test/query-tests/Security/CWE-730-PolynomialReDoS/PolynomialReDoS.expected b/python/ql/test/query-tests/Security/CWE-730-PolynomialReDoS/PolynomialReDoS.expected index a090ded356a..ccbc591eb85 100644 --- a/python/ql/test/query-tests/Security/CWE-730-PolynomialReDoS/PolynomialReDoS.expected +++ b/python/ql/test/query-tests/Security/CWE-730-PolynomialReDoS/PolynomialReDoS.expected @@ -7,6 +7,7 @@ edges | test.py:7:12:7:23 | ControlFlowNode for Attribute | test.py:9:32:9:35 | ControlFlowNode for text | | test.py:7:12:7:23 | ControlFlowNode for Attribute | test.py:12:17:12:20 | ControlFlowNode for text | | test.py:7:12:7:23 | ControlFlowNode for Attribute | test.py:18:28:18:31 | ControlFlowNode for text | +| test.py:7:12:7:23 | ControlFlowNode for Attribute | test.py:21:18:21:21 | ControlFlowNode for text | | test.py:14:33:14:39 | ControlFlowNode for my_text | test.py:16:24:16:30 | ControlFlowNode for my_text | | test.py:18:28:18:31 | ControlFlowNode for text | test.py:14:33:14:39 | ControlFlowNode for my_text | nodes @@ -21,6 +22,7 @@ nodes | test.py:14:33:14:39 | ControlFlowNode for my_text | semmle.label | ControlFlowNode for my_text | | test.py:16:24:16:30 | ControlFlowNode for my_text | semmle.label | ControlFlowNode for my_text | | test.py:18:28:18:31 | ControlFlowNode for text | semmle.label | ControlFlowNode for text | +| test.py:21:18:21:21 | ControlFlowNode for text | semmle.label | ControlFlowNode for text | subpaths #select | test.py:8:30:8:33 | ControlFlowNode for text | test.py:2:26:2:32 | ControlFlowNode for ImportMember | test.py:8:30:8:33 | ControlFlowNode for text | This $@ that depends on a $@ may run slow on strings with many repetitions of ' '. | test.py:8:21:8:23 | \\s+ | regular expression | test.py:2:26:2:32 | ControlFlowNode for ImportMember | user-provided value | diff --git a/python/ql/test/query-tests/Security/CWE-730-PolynomialReDoS/test.py b/python/ql/test/query-tests/Security/CWE-730-PolynomialReDoS/test.py index 77c8e4d3d6a..a6b75b4bd38 100644 --- a/python/ql/test/query-tests/Security/CWE-730-PolynomialReDoS/test.py +++ b/python/ql/test/query-tests/Security/CWE-730-PolynomialReDoS/test.py @@ -17,3 +17,6 @@ def code_execution(): indirect(r"^\s+|\s+$", text) + reg2 = re.compile(r"(AA|BB)(AA|BB)(AA|BB)(AA|BB)(AA|BB)(AA|BB)(AA|BB)(AA|BB)(AA|BB)(AA|BB)(AA|BB)(AA|BB)(AA|BB)(AA|BB)(AA|BB)(AA|BB)(AA|BB)(AA|BB)(AA|BB)(AA|BB)(AA|BB)(AA|BB)(AA|BB)(AA|BB)C.*") + reg2.sub("", text) # NOT OK + From fe4d27e8cc5d29443bc4e21054e4cad8d07d865d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <github-actions@github.com> Date: Thu, 16 Mar 2023 12:58:50 +0000 Subject: [PATCH 13/97] Release preparation for version 2.12.5 --- cpp/ql/lib/CHANGELOG.md | 43 +++++++++++++++++++ ...10-buffer-and-nill-termination-dataflow.md | 4 -- .../2023-03-02-dataflow-conf-module.md | 9 ---- .../change-notes/2023-03-03-delete-deps.md | 12 ------ ...3-08-deprecated-dataflow-configurations.md | 4 -- .../change-notes/2023-03-13-mergepathgraph.md | 4 -- .../change-notes/2023-03-16-use-use-flow.md | 11 ----- cpp/ql/lib/change-notes/released/0.6.0.md | 42 ++++++++++++++++++ cpp/ql/lib/codeql-pack.release.yml | 2 +- cpp/ql/lib/qlpack.yml | 2 +- cpp/ql/src/CHANGELOG.md | 7 +++ ...3-08-deprecated-dataflow-configurations.md | 4 -- .../0.5.5.md} | 8 ++-- cpp/ql/src/codeql-pack.release.yml | 2 +- cpp/ql/src/qlpack.yml | 2 +- .../ql/campaigns/Solorigate/lib/CHANGELOG.md | 4 ++ .../lib/change-notes/released/1.4.5.md | 3 ++ .../Solorigate/lib/codeql-pack.release.yml | 2 +- csharp/ql/campaigns/Solorigate/lib/qlpack.yml | 2 +- .../ql/campaigns/Solorigate/src/CHANGELOG.md | 4 ++ .../src/change-notes/released/1.4.5.md | 3 ++ .../Solorigate/src/codeql-pack.release.yml | 2 +- csharp/ql/campaigns/Solorigate/src/qlpack.yml | 2 +- csharp/ql/lib/CHANGELOG.md | 22 ++++++++++ .../2023-03-02-dataflow-conf-module.md | 9 ---- .../change-notes/2023-03-02-unsafemembers.md | 4 -- .../change-notes/2023-03-03-delete-deps.md | 6 --- .../change-notes/2023-03-13-mergepathgraph.md | 4 -- csharp/ql/lib/change-notes/released/0.5.5.md | 21 +++++++++ csharp/ql/lib/codeql-pack.release.yml | 2 +- csharp/ql/lib/qlpack.yml | 2 +- csharp/ql/src/CHANGELOG.md | 4 ++ csharp/ql/src/change-notes/released/0.5.5.md | 3 ++ csharp/ql/src/codeql-pack.release.yml | 2 +- csharp/ql/src/qlpack.yml | 2 +- go/ql/lib/CHANGELOG.md | 15 +++++++ .../change-notes/2023-03-13-mergepathgraph.md | 4 -- .../ql/lib/change-notes/released/0.4.5.md | 11 +++-- go/ql/lib/codeql-pack.release.yml | 2 +- go/ql/lib/qlpack.yml | 2 +- go/ql/src/CHANGELOG.md | 4 ++ go/ql/src/change-notes/released/0.4.5.md | 3 ++ go/ql/src/codeql-pack.release.yml | 2 +- go/ql/src/qlpack.yml | 2 +- java/ql/lib/CHANGELOG.md | 31 +++++++++++++ .../change-notes/2023-03-03-delete-deps.md | 7 --- .../change-notes/2023-03-09-more-models.md | 11 ----- .../change-notes/2023-03-13-mergepathgraph.md | 4 -- .../2023-03-14-neutral-dispatch.md | 4 -- java/ql/lib/change-notes/released/0.5.5.md | 30 +++++++++++++ java/ql/lib/codeql-pack.release.yml | 2 +- java/ql/lib/qlpack.yml | 2 +- java/ql/src/CHANGELOG.md | 6 +++ .../0.5.5.md} | 8 ++-- java/ql/src/codeql-pack.release.yml | 2 +- java/ql/src/qlpack.yml | 2 +- javascript/ql/lib/CHANGELOG.md | 12 ++++++ .../2023-03-03-import-assertion.md | 5 --- .../0.5.1.md} | 11 +++-- javascript/ql/lib/codeql-pack.release.yml | 2 +- javascript/ql/lib/qlpack.yml | 2 +- javascript/ql/src/CHANGELOG.md | 8 ++++ .../0.5.5.md} | 7 +-- javascript/ql/src/codeql-pack.release.yml | 2 +- javascript/ql/src/qlpack.yml | 2 +- misc/suite-helpers/CHANGELOG.md | 4 ++ .../change-notes/released/0.4.5.md | 3 ++ misc/suite-helpers/codeql-pack.release.yml | 2 +- misc/suite-helpers/qlpack.yml | 2 +- python/ql/lib/CHANGELOG.md | 19 ++++++++ .../2023-03-02-dataflow-conf-module.md | 9 ---- .../change-notes/2023-03-03-delete-deps.md | 4 -- .../change-notes/2023-03-13-mergepathgraph.md | 4 -- .../ql/lib/change-notes/released/0.8.2.md | 15 +++++-- python/ql/lib/codeql-pack.release.yml | 2 +- python/ql/lib/qlpack.yml | 2 +- python/ql/src/CHANGELOG.md | 6 +++ .../0.6.5.md} | 7 +-- python/ql/src/codeql-pack.release.yml | 2 +- python/ql/src/qlpack.yml | 2 +- ruby/ql/lib/CHANGELOG.md | 26 +++++++++++ .../2023-03-02-dataflow-conf-module.md | 9 ---- .../change-notes/2023-03-03-delete-deps.md | 6 --- .../change-notes/2023-03-09-parse-error.md | 4 -- .../change-notes/2023-03-13-initalize-flow.md | 4 -- .../change-notes/2023-03-13-mergepathgraph.md | 4 -- .../change-notes/2023-03-13-rails-sinks.md | 6 --- ruby/ql/lib/change-notes/released/0.5.5.md | 25 +++++++++++ ruby/ql/lib/codeql-pack.release.yml | 2 +- ruby/ql/lib/qlpack.yml | 2 +- ruby/ql/src/CHANGELOG.md | 6 +++ .../change-notes/2023-02-17-zip-slip-query.md | 4 -- ruby/ql/src/change-notes/released/0.5.5.md | 5 +++ ruby/ql/src/codeql-pack.release.yml | 2 +- ruby/ql/src/qlpack.yml | 2 +- shared/regex/CHANGELOG.md | 4 ++ shared/regex/change-notes/released/0.0.9.md | 3 ++ shared/regex/codeql-pack.release.yml | 2 +- shared/regex/qlpack.yml | 2 +- shared/ssa/CHANGELOG.md | 4 ++ shared/ssa/change-notes/released/0.0.13.md | 3 ++ shared/ssa/codeql-pack.release.yml | 2 +- shared/ssa/qlpack.yml | 2 +- shared/tutorial/CHANGELOG.md | 4 ++ .../tutorial/change-notes/released/0.0.6.md | 3 ++ shared/tutorial/codeql-pack.release.yml | 2 +- shared/tutorial/qlpack.yml | 2 +- shared/typetracking/CHANGELOG.md | 4 ++ .../change-notes/released/0.0.6.md | 3 ++ shared/typetracking/codeql-pack.release.yml | 2 +- shared/typetracking/qlpack.yml | 2 +- shared/typos/CHANGELOG.md | 4 ++ shared/typos/change-notes/released/0.0.13.md | 3 ++ shared/typos/codeql-pack.release.yml | 2 +- shared/typos/qlpack.yml | 2 +- shared/util/CHANGELOG.md | 4 ++ shared/util/change-notes/released/0.0.6.md | 3 ++ shared/util/codeql-pack.release.yml | 2 +- shared/util/qlpack.yml | 2 +- 119 files changed, 491 insertions(+), 229 deletions(-) delete mode 100644 cpp/ql/lib/change-notes/2023-02-10-buffer-and-nill-termination-dataflow.md delete mode 100644 cpp/ql/lib/change-notes/2023-03-02-dataflow-conf-module.md delete mode 100644 cpp/ql/lib/change-notes/2023-03-03-delete-deps.md delete mode 100644 cpp/ql/lib/change-notes/2023-03-08-deprecated-dataflow-configurations.md delete mode 100644 cpp/ql/lib/change-notes/2023-03-13-mergepathgraph.md delete mode 100644 cpp/ql/lib/change-notes/2023-03-16-use-use-flow.md create mode 100644 cpp/ql/lib/change-notes/released/0.6.0.md delete mode 100644 cpp/ql/src/change-notes/2023-03-08-deprecated-dataflow-configurations.md rename cpp/ql/src/change-notes/{2023-03-08-deprecated-leap-year-dataflow-configurations.md => released/0.5.5.md} (57%) create mode 100644 csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.4.5.md create mode 100644 csharp/ql/campaigns/Solorigate/src/change-notes/released/1.4.5.md delete mode 100644 csharp/ql/lib/change-notes/2023-03-02-dataflow-conf-module.md delete mode 100644 csharp/ql/lib/change-notes/2023-03-02-unsafemembers.md delete mode 100644 csharp/ql/lib/change-notes/2023-03-03-delete-deps.md delete mode 100644 csharp/ql/lib/change-notes/2023-03-13-mergepathgraph.md create mode 100644 csharp/ql/lib/change-notes/released/0.5.5.md create mode 100644 csharp/ql/src/change-notes/released/0.5.5.md delete mode 100644 go/ql/lib/change-notes/2023-03-13-mergepathgraph.md rename java/ql/lib/change-notes/2023-03-02-dataflow-conf-module.md => go/ql/lib/change-notes/released/0.4.5.md (64%) create mode 100644 go/ql/src/change-notes/released/0.4.5.md delete mode 100644 java/ql/lib/change-notes/2023-03-03-delete-deps.md delete mode 100644 java/ql/lib/change-notes/2023-03-09-more-models.md delete mode 100644 java/ql/lib/change-notes/2023-03-13-mergepathgraph.md delete mode 100644 java/ql/lib/change-notes/2023-03-14-neutral-dispatch.md create mode 100644 java/ql/lib/change-notes/released/0.5.5.md rename java/ql/src/change-notes/{2023-01-19-arbitrary-apk-installation.md => released/0.5.5.md} (81%) delete mode 100644 javascript/ql/lib/change-notes/2023-03-03-import-assertion.md rename javascript/ql/lib/change-notes/{2023-03-03-delete-deps.md => released/0.5.1.md} (61%) rename javascript/ql/src/change-notes/{2023-03-07-html-sanitizer-for-sql.md => released/0.5.5.md} (84%) create mode 100644 misc/suite-helpers/change-notes/released/0.4.5.md delete mode 100644 python/ql/lib/change-notes/2023-03-02-dataflow-conf-module.md delete mode 100644 python/ql/lib/change-notes/2023-03-03-delete-deps.md delete mode 100644 python/ql/lib/change-notes/2023-03-13-mergepathgraph.md rename go/ql/lib/change-notes/2023-03-02-dataflow-conf-module.md => python/ql/lib/change-notes/released/0.8.2.md (53%) rename python/ql/src/change-notes/{2023-02-03-unsafe-shell-command-construction.md => released/0.6.5.md} (84%) delete mode 100644 ruby/ql/lib/change-notes/2023-03-02-dataflow-conf-module.md delete mode 100644 ruby/ql/lib/change-notes/2023-03-03-delete-deps.md delete mode 100644 ruby/ql/lib/change-notes/2023-03-09-parse-error.md delete mode 100644 ruby/ql/lib/change-notes/2023-03-13-initalize-flow.md delete mode 100644 ruby/ql/lib/change-notes/2023-03-13-mergepathgraph.md delete mode 100644 ruby/ql/lib/change-notes/2023-03-13-rails-sinks.md create mode 100644 ruby/ql/lib/change-notes/released/0.5.5.md delete mode 100644 ruby/ql/src/change-notes/2023-02-17-zip-slip-query.md create mode 100644 ruby/ql/src/change-notes/released/0.5.5.md create mode 100644 shared/regex/change-notes/released/0.0.9.md create mode 100644 shared/ssa/change-notes/released/0.0.13.md create mode 100644 shared/tutorial/change-notes/released/0.0.6.md create mode 100644 shared/typetracking/change-notes/released/0.0.6.md create mode 100644 shared/typos/change-notes/released/0.0.13.md create mode 100644 shared/util/change-notes/released/0.0.6.md diff --git a/cpp/ql/lib/CHANGELOG.md b/cpp/ql/lib/CHANGELOG.md index 42a379734a1..cc4e0d9c1e2 100644 --- a/cpp/ql/lib/CHANGELOG.md +++ b/cpp/ql/lib/CHANGELOG.md @@ -1,3 +1,46 @@ +## 0.6.0 + +### Breaking Changes + +* The `semmle.code.cpp.commons.Buffer` and `semmle.code.cpp.commons.NullTermination` libraries no longer expose `semmle.code.cpp.dataflow.DataFlow`. Please import `semmle.code.cpp.dataflow.DataFlow` directly. + +### Deprecated APIs + +* The `WriteConfig` taint tracking configuration has been deprecated. Please use `WriteFlow`. + +### New Features + +* Added support for merging two `PathGraph`s via disjoint union to allow results from multiple data flow computations in a single `path-problem` query. + +### Major Analysis Improvements + +* A new C/C++ dataflow library (`semmle.code.cpp.dataflow.new.DataFlow`) has been added. + The new library behaves much more like the dataflow library of other CodeQL supported + languages by following use-use dataflow paths instead of def-use dataflow paths. + The new library also better supports dataflow through indirections, and new predicates + such as `Node::asIndirectExpr` have been added to facilitate working with indirections. + + The `semmle.code.cpp.ir.dataflow.DataFlow` library is now identical to the new + `semmle.code.cpp.dataflow.new.DataFlow` library. +* The main data flow and taint tracking APIs have been changed. The old APIs + remain in place for now and translate to the new through a + backwards-compatible wrapper. If multiple configurations are in scope + simultaneously, then this may affect results slightly. The new API is quite + similar to the old, but makes use of a configuration module instead of a + configuration class. + +### Minor Analysis Improvements + +* Deleted the deprecated `hasGeneratedCopyConstructor` and `hasGeneratedCopyAssignmentOperator` predicates from the `Folder` class. +* Deleted the deprecated `getPath` and `getFolder` predicates from the `XmlFile` class. +* Deleted the deprecated `getMustlockFunction`, `getTrylockFunction`, `getLockFunction`, and `getUnlockFunction` predicates from the `MutexType` class. +* Deleted the deprecated `getPosInBasicBlock` predicate from the `SubBasicBlock` class. +* Deleted the deprecated `getExpr` predicate from the `PointerDereferenceExpr` class. +* Deleted the deprecated `getUseInstruction` and `getDefinitionInstruction` predicates from the `Operand` class. +* Deleted the deprecated `isInParameter`, `isInParameterPointer`, and `isInQualifier` predicates from the `FunctionInput` class. +* Deleted the deprecated `isOutParameterPointer`, `isOutQualifier`, `isOutReturnValue`, and `isOutReturnPointer` predicate from the `FunctionOutput` class. +* Deleted the deprecated 3-argument `isGuardPhi` predicate from the `RangeSsaDefinition` class. + ## 0.5.4 No user-facing changes. diff --git a/cpp/ql/lib/change-notes/2023-02-10-buffer-and-nill-termination-dataflow.md b/cpp/ql/lib/change-notes/2023-02-10-buffer-and-nill-termination-dataflow.md deleted file mode 100644 index adc00f952f9..00000000000 --- a/cpp/ql/lib/change-notes/2023-02-10-buffer-and-nill-termination-dataflow.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: breaking ---- -* The `semmle.code.cpp.commons.Buffer` and `semmle.code.cpp.commons.NullTermination` libraries no longer expose `semmle.code.cpp.dataflow.DataFlow`. Please import `semmle.code.cpp.dataflow.DataFlow` directly. diff --git a/cpp/ql/lib/change-notes/2023-03-02-dataflow-conf-module.md b/cpp/ql/lib/change-notes/2023-03-02-dataflow-conf-module.md deleted file mode 100644 index 89190af399f..00000000000 --- a/cpp/ql/lib/change-notes/2023-03-02-dataflow-conf-module.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -category: majorAnalysis ---- -* The main data flow and taint tracking APIs have been changed. The old APIs - remain in place for now and translate to the new through a - backwards-compatible wrapper. If multiple configurations are in scope - simultaneously, then this may affect results slightly. The new API is quite - similar to the old, but makes use of a configuration module instead of a - configuration class. diff --git a/cpp/ql/lib/change-notes/2023-03-03-delete-deps.md b/cpp/ql/lib/change-notes/2023-03-03-delete-deps.md deleted file mode 100644 index 03efda07926..00000000000 --- a/cpp/ql/lib/change-notes/2023-03-03-delete-deps.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -category: minorAnalysis ---- -* Deleted the deprecated `hasGeneratedCopyConstructor` and `hasGeneratedCopyAssignmentOperator` predicates from the `Folder` class. -* Deleted the deprecated `getPath` and `getFolder` predicates from the `XmlFile` class. -* Deleted the deprecated `getMustlockFunction`, `getTrylockFunction`, `getLockFunction`, and `getUnlockFunction` predicates from the `MutexType` class. -* Deleted the deprecated `getPosInBasicBlock` predicate from the `SubBasicBlock` class. -* Deleted the deprecated `getExpr` predicate from the `PointerDereferenceExpr` class. -* Deleted the deprecated `getUseInstruction` and `getDefinitionInstruction` predicates from the `Operand` class. -* Deleted the deprecated `isInParameter`, `isInParameterPointer`, and `isInQualifier` predicates from the `FunctionInput` class. -* Deleted the deprecated `isOutParameterPointer`, `isOutQualifier`, `isOutReturnValue`, and `isOutReturnPointer` predicate from the `FunctionOutput` class. -* Deleted the deprecated 3-argument `isGuardPhi` predicate from the `RangeSsaDefinition` class. diff --git a/cpp/ql/lib/change-notes/2023-03-08-deprecated-dataflow-configurations.md b/cpp/ql/lib/change-notes/2023-03-08-deprecated-dataflow-configurations.md deleted file mode 100644 index 124dc73213a..00000000000 --- a/cpp/ql/lib/change-notes/2023-03-08-deprecated-dataflow-configurations.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: deprecated ---- -* The `WriteConfig` taint tracking configuration has been deprecated. Please use `WriteFlow`. diff --git a/cpp/ql/lib/change-notes/2023-03-13-mergepathgraph.md b/cpp/ql/lib/change-notes/2023-03-13-mergepathgraph.md deleted file mode 100644 index 63bfade2f10..00000000000 --- a/cpp/ql/lib/change-notes/2023-03-13-mergepathgraph.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: feature ---- -* Added support for merging two `PathGraph`s via disjoint union to allow results from multiple data flow computations in a single `path-problem` query. diff --git a/cpp/ql/lib/change-notes/2023-03-16-use-use-flow.md b/cpp/ql/lib/change-notes/2023-03-16-use-use-flow.md deleted file mode 100644 index a643fd50b7d..00000000000 --- a/cpp/ql/lib/change-notes/2023-03-16-use-use-flow.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -category: majorAnalysis ---- -* A new C/C++ dataflow library (`semmle.code.cpp.dataflow.new.DataFlow`) has been added. - The new library behaves much more like the dataflow library of other CodeQL supported - languages by following use-use dataflow paths instead of def-use dataflow paths. - The new library also better supports dataflow through indirections, and new predicates - such as `Node::asIndirectExpr` have been added to facilitate working with indirections. - - The `semmle.code.cpp.ir.dataflow.DataFlow` library is now identical to the new - `semmle.code.cpp.dataflow.new.DataFlow` library. diff --git a/cpp/ql/lib/change-notes/released/0.6.0.md b/cpp/ql/lib/change-notes/released/0.6.0.md new file mode 100644 index 00000000000..2ae831d8f9a --- /dev/null +++ b/cpp/ql/lib/change-notes/released/0.6.0.md @@ -0,0 +1,42 @@ +## 0.6.0 + +### Breaking Changes + +* The `semmle.code.cpp.commons.Buffer` and `semmle.code.cpp.commons.NullTermination` libraries no longer expose `semmle.code.cpp.dataflow.DataFlow`. Please import `semmle.code.cpp.dataflow.DataFlow` directly. + +### Deprecated APIs + +* The `WriteConfig` taint tracking configuration has been deprecated. Please use `WriteFlow`. + +### New Features + +* Added support for merging two `PathGraph`s via disjoint union to allow results from multiple data flow computations in a single `path-problem` query. + +### Major Analysis Improvements + +* A new C/C++ dataflow library (`semmle.code.cpp.dataflow.new.DataFlow`) has been added. + The new library behaves much more like the dataflow library of other CodeQL supported + languages by following use-use dataflow paths instead of def-use dataflow paths. + The new library also better supports dataflow through indirections, and new predicates + such as `Node::asIndirectExpr` have been added to facilitate working with indirections. + + The `semmle.code.cpp.ir.dataflow.DataFlow` library is now identical to the new + `semmle.code.cpp.dataflow.new.DataFlow` library. +* The main data flow and taint tracking APIs have been changed. The old APIs + remain in place for now and translate to the new through a + backwards-compatible wrapper. If multiple configurations are in scope + simultaneously, then this may affect results slightly. The new API is quite + similar to the old, but makes use of a configuration module instead of a + configuration class. + +### Minor Analysis Improvements + +* Deleted the deprecated `hasGeneratedCopyConstructor` and `hasGeneratedCopyAssignmentOperator` predicates from the `Folder` class. +* Deleted the deprecated `getPath` and `getFolder` predicates from the `XmlFile` class. +* Deleted the deprecated `getMustlockFunction`, `getTrylockFunction`, `getLockFunction`, and `getUnlockFunction` predicates from the `MutexType` class. +* Deleted the deprecated `getPosInBasicBlock` predicate from the `SubBasicBlock` class. +* Deleted the deprecated `getExpr` predicate from the `PointerDereferenceExpr` class. +* Deleted the deprecated `getUseInstruction` and `getDefinitionInstruction` predicates from the `Operand` class. +* Deleted the deprecated `isInParameter`, `isInParameterPointer`, and `isInQualifier` predicates from the `FunctionInput` class. +* Deleted the deprecated `isOutParameterPointer`, `isOutQualifier`, `isOutReturnValue`, and `isOutReturnPointer` predicate from the `FunctionOutput` class. +* Deleted the deprecated 3-argument `isGuardPhi` predicate from the `RangeSsaDefinition` class. diff --git a/cpp/ql/lib/codeql-pack.release.yml b/cpp/ql/lib/codeql-pack.release.yml index cd3f72e2513..a3f820f884d 100644 --- a/cpp/ql/lib/codeql-pack.release.yml +++ b/cpp/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.5.4 +lastReleaseVersion: 0.6.0 diff --git a/cpp/ql/lib/qlpack.yml b/cpp/ql/lib/qlpack.yml index 8e6602b6634..5a75c36d89d 100644 --- a/cpp/ql/lib/qlpack.yml +++ b/cpp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-all -version: 0.5.5-dev +version: 0.6.0 groups: cpp dbscheme: semmlecode.cpp.dbscheme extractor: cpp diff --git a/cpp/ql/src/CHANGELOG.md b/cpp/ql/src/CHANGELOG.md index 2024538e99c..510cd92b275 100644 --- a/cpp/ql/src/CHANGELOG.md +++ b/cpp/ql/src/CHANGELOG.md @@ -1,3 +1,10 @@ +## 0.5.5 + +### Deprecated Queries + +* The `NetworkToBufferSizeConfiguration` and `UntrustedDataToExternalApiConfig` dataflow configurations have been deprecated. Please use `NetworkToBufferSizeFlow` and `UntrustedDataToExternalApiFlow`. +* The `LeapYearCheckConfiguration`, `FiletimeYearArithmeticOperationCheckConfiguration`, and `PossibleYearArithmeticOperationCheckConfiguration` dataflow configurations have been deprecated. Please use `LeapYearCheckFlow`, `FiletimeYearArithmeticOperationCheckFlow` and `PossibleYearArithmeticOperationCheckFlow`. + ## 0.5.4 No user-facing changes. diff --git a/cpp/ql/src/change-notes/2023-03-08-deprecated-dataflow-configurations.md b/cpp/ql/src/change-notes/2023-03-08-deprecated-dataflow-configurations.md deleted file mode 100644 index 46952f5b1a3..00000000000 --- a/cpp/ql/src/change-notes/2023-03-08-deprecated-dataflow-configurations.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: deprecated ---- -* The `NetworkToBufferSizeConfiguration` and `UntrustedDataToExternalApiConfig` dataflow configurations have been deprecated. Please use `NetworkToBufferSizeFlow` and `UntrustedDataToExternalApiFlow`. diff --git a/cpp/ql/src/change-notes/2023-03-08-deprecated-leap-year-dataflow-configurations.md b/cpp/ql/src/change-notes/released/0.5.5.md similarity index 57% rename from cpp/ql/src/change-notes/2023-03-08-deprecated-leap-year-dataflow-configurations.md rename to cpp/ql/src/change-notes/released/0.5.5.md index 1ea59f77680..d8b6132e12b 100644 --- a/cpp/ql/src/change-notes/2023-03-08-deprecated-leap-year-dataflow-configurations.md +++ b/cpp/ql/src/change-notes/released/0.5.5.md @@ -1,4 +1,6 @@ ---- -category: deprecated ---- +## 0.5.5 + +### Deprecated Queries + +* The `NetworkToBufferSizeConfiguration` and `UntrustedDataToExternalApiConfig` dataflow configurations have been deprecated. Please use `NetworkToBufferSizeFlow` and `UntrustedDataToExternalApiFlow`. * The `LeapYearCheckConfiguration`, `FiletimeYearArithmeticOperationCheckConfiguration`, and `PossibleYearArithmeticOperationCheckConfiguration` dataflow configurations have been deprecated. Please use `LeapYearCheckFlow`, `FiletimeYearArithmeticOperationCheckFlow` and `PossibleYearArithmeticOperationCheckFlow`. diff --git a/cpp/ql/src/codeql-pack.release.yml b/cpp/ql/src/codeql-pack.release.yml index cd3f72e2513..03e491f0899 100644 --- a/cpp/ql/src/codeql-pack.release.yml +++ b/cpp/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.5.4 +lastReleaseVersion: 0.5.5 diff --git a/cpp/ql/src/qlpack.yml b/cpp/ql/src/qlpack.yml index 9c312b5a568..88e2c2a1921 100644 --- a/cpp/ql/src/qlpack.yml +++ b/cpp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-queries -version: 0.5.5-dev +version: 0.5.5 groups: - cpp - queries diff --git a/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md b/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md index 1f2dc408daf..892c022355a 100644 --- a/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md +++ b/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.4.5 + +No user-facing changes. + ## 1.4.4 No user-facing changes. diff --git a/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.4.5.md b/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.4.5.md new file mode 100644 index 00000000000..930163bb5ae --- /dev/null +++ b/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.4.5.md @@ -0,0 +1,3 @@ +## 1.4.5 + +No user-facing changes. diff --git a/csharp/ql/campaigns/Solorigate/lib/codeql-pack.release.yml b/csharp/ql/campaigns/Solorigate/lib/codeql-pack.release.yml index 1dfca6daa3b..a74b6b08d86 100644 --- a/csharp/ql/campaigns/Solorigate/lib/codeql-pack.release.yml +++ b/csharp/ql/campaigns/Solorigate/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.4.4 +lastReleaseVersion: 1.4.5 diff --git a/csharp/ql/campaigns/Solorigate/lib/qlpack.yml b/csharp/ql/campaigns/Solorigate/lib/qlpack.yml index 14647a2593b..cbc4e04bfe6 100644 --- a/csharp/ql/campaigns/Solorigate/lib/qlpack.yml +++ b/csharp/ql/campaigns/Solorigate/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-solorigate-all -version: 1.4.5-dev +version: 1.4.5 groups: - csharp - solorigate diff --git a/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md b/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md index 1f2dc408daf..892c022355a 100644 --- a/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md +++ b/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.4.5 + +No user-facing changes. + ## 1.4.4 No user-facing changes. diff --git a/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.4.5.md b/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.4.5.md new file mode 100644 index 00000000000..930163bb5ae --- /dev/null +++ b/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.4.5.md @@ -0,0 +1,3 @@ +## 1.4.5 + +No user-facing changes. diff --git a/csharp/ql/campaigns/Solorigate/src/codeql-pack.release.yml b/csharp/ql/campaigns/Solorigate/src/codeql-pack.release.yml index 1dfca6daa3b..a74b6b08d86 100644 --- a/csharp/ql/campaigns/Solorigate/src/codeql-pack.release.yml +++ b/csharp/ql/campaigns/Solorigate/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.4.4 +lastReleaseVersion: 1.4.5 diff --git a/csharp/ql/campaigns/Solorigate/src/qlpack.yml b/csharp/ql/campaigns/Solorigate/src/qlpack.yml index 48bb9aecd88..e7f9d67aa66 100644 --- a/csharp/ql/campaigns/Solorigate/src/qlpack.yml +++ b/csharp/ql/campaigns/Solorigate/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-solorigate-queries -version: 1.4.5-dev +version: 1.4.5 groups: - csharp - solorigate diff --git a/csharp/ql/lib/CHANGELOG.md b/csharp/ql/lib/CHANGELOG.md index 42eaea79fd6..4256614c2ee 100644 --- a/csharp/ql/lib/CHANGELOG.md +++ b/csharp/ql/lib/CHANGELOG.md @@ -1,3 +1,25 @@ +## 0.5.5 + +### New Features + +* Added support for merging two `PathGraph`s via disjoint union to allow results from multiple data flow computations in a single `path-problem` query. + +### Major Analysis Improvements + +* The main data flow and taint tracking APIs have been changed. The old APIs + remain in place for now and translate to the new through a + backwards-compatible wrapper. If multiple configurations are in scope + simultaneously, then this may affect results slightly. The new API is quite + similar to the old, but makes use of a configuration module instead of a + configuration class. + +### Minor Analysis Improvements + +* Deleted the deprecated `getPath` and `getFolder` predicates from the `XmlFile` class. +* Deleted the deprecated `getAssertionIndex`, and `getAssertedParameter` predicates from the `AssertMethod` class. +* Deleted the deprecated `OverridableMethod` and `OverridableAccessor` classes. +* The `unsafe` predicate for `Modifiable` has been extended to cover delegate return types and identify pointer like types at any nest level. This is relevant for `unsafe` declarations extracted from assemblies. + ## 0.5.4 ### Minor Analysis Improvements diff --git a/csharp/ql/lib/change-notes/2023-03-02-dataflow-conf-module.md b/csharp/ql/lib/change-notes/2023-03-02-dataflow-conf-module.md deleted file mode 100644 index 89190af399f..00000000000 --- a/csharp/ql/lib/change-notes/2023-03-02-dataflow-conf-module.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -category: majorAnalysis ---- -* The main data flow and taint tracking APIs have been changed. The old APIs - remain in place for now and translate to the new through a - backwards-compatible wrapper. If multiple configurations are in scope - simultaneously, then this may affect results slightly. The new API is quite - similar to the old, but makes use of a configuration module instead of a - configuration class. diff --git a/csharp/ql/lib/change-notes/2023-03-02-unsafemembers.md b/csharp/ql/lib/change-notes/2023-03-02-unsafemembers.md deleted file mode 100644 index 7ff64ca1301..00000000000 --- a/csharp/ql/lib/change-notes/2023-03-02-unsafemembers.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* The `unsafe` predicate for `Modifiable` has been extended to cover delegate return types and identify pointer like types at any nest level. This is relevant for `unsafe` declarations extracted from assemblies. \ No newline at end of file diff --git a/csharp/ql/lib/change-notes/2023-03-03-delete-deps.md b/csharp/ql/lib/change-notes/2023-03-03-delete-deps.md deleted file mode 100644 index f5557fc5b77..00000000000 --- a/csharp/ql/lib/change-notes/2023-03-03-delete-deps.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -category: minorAnalysis ---- -* Deleted the deprecated `getPath` and `getFolder` predicates from the `XmlFile` class. -* Deleted the deprecated `getAssertionIndex`, and `getAssertedParameter` predicates from the `AssertMethod` class. -* Deleted the deprecated `OverridableMethod` and `OverridableAccessor` classes. diff --git a/csharp/ql/lib/change-notes/2023-03-13-mergepathgraph.md b/csharp/ql/lib/change-notes/2023-03-13-mergepathgraph.md deleted file mode 100644 index 63bfade2f10..00000000000 --- a/csharp/ql/lib/change-notes/2023-03-13-mergepathgraph.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: feature ---- -* Added support for merging two `PathGraph`s via disjoint union to allow results from multiple data flow computations in a single `path-problem` query. diff --git a/csharp/ql/lib/change-notes/released/0.5.5.md b/csharp/ql/lib/change-notes/released/0.5.5.md new file mode 100644 index 00000000000..8b5ac2e9eab --- /dev/null +++ b/csharp/ql/lib/change-notes/released/0.5.5.md @@ -0,0 +1,21 @@ +## 0.5.5 + +### New Features + +* Added support for merging two `PathGraph`s via disjoint union to allow results from multiple data flow computations in a single `path-problem` query. + +### Major Analysis Improvements + +* The main data flow and taint tracking APIs have been changed. The old APIs + remain in place for now and translate to the new through a + backwards-compatible wrapper. If multiple configurations are in scope + simultaneously, then this may affect results slightly. The new API is quite + similar to the old, but makes use of a configuration module instead of a + configuration class. + +### Minor Analysis Improvements + +* Deleted the deprecated `getPath` and `getFolder` predicates from the `XmlFile` class. +* Deleted the deprecated `getAssertionIndex`, and `getAssertedParameter` predicates from the `AssertMethod` class. +* Deleted the deprecated `OverridableMethod` and `OverridableAccessor` classes. +* The `unsafe` predicate for `Modifiable` has been extended to cover delegate return types and identify pointer like types at any nest level. This is relevant for `unsafe` declarations extracted from assemblies. diff --git a/csharp/ql/lib/codeql-pack.release.yml b/csharp/ql/lib/codeql-pack.release.yml index cd3f72e2513..03e491f0899 100644 --- a/csharp/ql/lib/codeql-pack.release.yml +++ b/csharp/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.5.4 +lastReleaseVersion: 0.5.5 diff --git a/csharp/ql/lib/qlpack.yml b/csharp/ql/lib/qlpack.yml index 34880f509e8..434c2e324b9 100644 --- a/csharp/ql/lib/qlpack.yml +++ b/csharp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-all -version: 0.5.5-dev +version: 0.5.5 groups: csharp dbscheme: semmlecode.csharp.dbscheme extractor: csharp diff --git a/csharp/ql/src/CHANGELOG.md b/csharp/ql/src/CHANGELOG.md index b75d77162f4..0abf2626a75 100644 --- a/csharp/ql/src/CHANGELOG.md +++ b/csharp/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.5.5 + +No user-facing changes. + ## 0.5.4 No user-facing changes. diff --git a/csharp/ql/src/change-notes/released/0.5.5.md b/csharp/ql/src/change-notes/released/0.5.5.md new file mode 100644 index 00000000000..5f5ae32c059 --- /dev/null +++ b/csharp/ql/src/change-notes/released/0.5.5.md @@ -0,0 +1,3 @@ +## 0.5.5 + +No user-facing changes. diff --git a/csharp/ql/src/codeql-pack.release.yml b/csharp/ql/src/codeql-pack.release.yml index cd3f72e2513..03e491f0899 100644 --- a/csharp/ql/src/codeql-pack.release.yml +++ b/csharp/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.5.4 +lastReleaseVersion: 0.5.5 diff --git a/csharp/ql/src/qlpack.yml b/csharp/ql/src/qlpack.yml index 3ed4e37fefc..a2eae93dec8 100644 --- a/csharp/ql/src/qlpack.yml +++ b/csharp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-queries -version: 0.5.5-dev +version: 0.5.5 groups: - csharp - queries diff --git a/go/ql/lib/CHANGELOG.md b/go/ql/lib/CHANGELOG.md index 3bab3bf2b6a..56c35b2f9fe 100644 --- a/go/ql/lib/CHANGELOG.md +++ b/go/ql/lib/CHANGELOG.md @@ -1,3 +1,18 @@ +## 0.4.5 + +### New Features + +* Added support for merging two `PathGraph`s via disjoint union to allow results from multiple data flow computations in a single `path-problem` query. + +### Major Analysis Improvements + +* The main data flow and taint tracking APIs have been changed. The old APIs + remain in place for now and translate to the new through a + backwards-compatible wrapper. If multiple configurations are in scope + simultaneously, then this may affect results slightly. The new API is quite + similar to the old, but makes use of a configuration module instead of a + configuration class. + ## 0.4.4 No user-facing changes. diff --git a/go/ql/lib/change-notes/2023-03-13-mergepathgraph.md b/go/ql/lib/change-notes/2023-03-13-mergepathgraph.md deleted file mode 100644 index 63bfade2f10..00000000000 --- a/go/ql/lib/change-notes/2023-03-13-mergepathgraph.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: feature ---- -* Added support for merging two `PathGraph`s via disjoint union to allow results from multiple data flow computations in a single `path-problem` query. diff --git a/java/ql/lib/change-notes/2023-03-02-dataflow-conf-module.md b/go/ql/lib/change-notes/released/0.4.5.md similarity index 64% rename from java/ql/lib/change-notes/2023-03-02-dataflow-conf-module.md rename to go/ql/lib/change-notes/released/0.4.5.md index 89190af399f..af3533b8018 100644 --- a/java/ql/lib/change-notes/2023-03-02-dataflow-conf-module.md +++ b/go/ql/lib/change-notes/released/0.4.5.md @@ -1,6 +1,11 @@ ---- -category: majorAnalysis ---- +## 0.4.5 + +### New Features + +* Added support for merging two `PathGraph`s via disjoint union to allow results from multiple data flow computations in a single `path-problem` query. + +### Major Analysis Improvements + * The main data flow and taint tracking APIs have been changed. The old APIs remain in place for now and translate to the new through a backwards-compatible wrapper. If multiple configurations are in scope diff --git a/go/ql/lib/codeql-pack.release.yml b/go/ql/lib/codeql-pack.release.yml index e9b57993a01..466cd01cf4e 100644 --- a/go/ql/lib/codeql-pack.release.yml +++ b/go/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.4.4 +lastReleaseVersion: 0.4.5 diff --git a/go/ql/lib/qlpack.yml b/go/ql/lib/qlpack.yml index 378f7b0e5e4..7770c7beaa6 100644 --- a/go/ql/lib/qlpack.yml +++ b/go/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-all -version: 0.4.5-dev +version: 0.4.5 groups: go dbscheme: go.dbscheme extractor: go diff --git a/go/ql/src/CHANGELOG.md b/go/ql/src/CHANGELOG.md index 89ee497c17f..e9d64e6c8e8 100644 --- a/go/ql/src/CHANGELOG.md +++ b/go/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.4.5 + +No user-facing changes. + ## 0.4.4 ### Minor Analysis Improvements diff --git a/go/ql/src/change-notes/released/0.4.5.md b/go/ql/src/change-notes/released/0.4.5.md new file mode 100644 index 00000000000..7ba9b2e8ade --- /dev/null +++ b/go/ql/src/change-notes/released/0.4.5.md @@ -0,0 +1,3 @@ +## 0.4.5 + +No user-facing changes. diff --git a/go/ql/src/codeql-pack.release.yml b/go/ql/src/codeql-pack.release.yml index e9b57993a01..466cd01cf4e 100644 --- a/go/ql/src/codeql-pack.release.yml +++ b/go/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.4.4 +lastReleaseVersion: 0.4.5 diff --git a/go/ql/src/qlpack.yml b/go/ql/src/qlpack.yml index 02c9d788969..21f9f365c5e 100644 --- a/go/ql/src/qlpack.yml +++ b/go/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-queries -version: 0.4.5-dev +version: 0.4.5 groups: - go - queries diff --git a/java/ql/lib/CHANGELOG.md b/java/ql/lib/CHANGELOG.md index d7428d81c27..5ff003fb8cb 100644 --- a/java/ql/lib/CHANGELOG.md +++ b/java/ql/lib/CHANGELOG.md @@ -1,3 +1,34 @@ +## 0.5.5 + +### New Features + +* Added support for merging two `PathGraph`s via disjoint union to allow results from multiple data flow computations in a single `path-problem` query. + +### Major Analysis Improvements + +* Removed low-confidence call edges to known neutral call targets from the call graph used in data flow analysis. This includes, for example, custom `List.contains` implementations when the best inferrable type at the call site is simply `List`. +* Added more sink and summary dataflow models for the following packages: + * `java.io` + * `java.lang` + * `java.sql` + * `javafx.scene.web` + * `org.apache.commons.compress.archivers.tar` + * `org.apache.http.client.utils` + * `org.codehaus.cargo.container.installer` +* The main data flow and taint tracking APIs have been changed. The old APIs + remain in place for now and translate to the new through a + backwards-compatible wrapper. If multiple configurations are in scope + simultaneously, then this may affect results slightly. The new API is quite + similar to the old, but makes use of a configuration module instead of a + configuration class. + +### Minor Analysis Improvements + +* Deleted the deprecated `getPath` and `getFolder` predicates from the `XmlFile` class. +* Deleted the deprecated `getRepresentedString` predicate from the `StringLiteral` class. +* Deleted the deprecated `ServletWriterSource` class. +* Deleted the deprecated `getGroupID`, `getArtefactID`, and `artefactMatches` predicates from the `MavenRepoJar` class. + ## 0.5.4 ### Minor Analysis Improvements diff --git a/java/ql/lib/change-notes/2023-03-03-delete-deps.md b/java/ql/lib/change-notes/2023-03-03-delete-deps.md deleted file mode 100644 index bdc84d43d26..00000000000 --- a/java/ql/lib/change-notes/2023-03-03-delete-deps.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -category: minorAnalysis ---- -* Deleted the deprecated `getPath` and `getFolder` predicates from the `XmlFile` class. -* Deleted the deprecated `getRepresentedString` predicate from the `StringLiteral` class. -* Deleted the deprecated `ServletWriterSource` class. -* Deleted the deprecated `getGroupID`, `getArtefactID`, and `artefactMatches` predicates from the `MavenRepoJar` class. \ No newline at end of file diff --git a/java/ql/lib/change-notes/2023-03-09-more-models.md b/java/ql/lib/change-notes/2023-03-09-more-models.md deleted file mode 100644 index 2d763c0d22b..00000000000 --- a/java/ql/lib/change-notes/2023-03-09-more-models.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -category: majorAnalysis ---- -* Added more sink and summary dataflow models for the following packages: - * `java.io` - * `java.lang` - * `java.sql` - * `javafx.scene.web` - * `org.apache.commons.compress.archivers.tar` - * `org.apache.http.client.utils` - * `org.codehaus.cargo.container.installer` diff --git a/java/ql/lib/change-notes/2023-03-13-mergepathgraph.md b/java/ql/lib/change-notes/2023-03-13-mergepathgraph.md deleted file mode 100644 index 63bfade2f10..00000000000 --- a/java/ql/lib/change-notes/2023-03-13-mergepathgraph.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: feature ---- -* Added support for merging two `PathGraph`s via disjoint union to allow results from multiple data flow computations in a single `path-problem` query. diff --git a/java/ql/lib/change-notes/2023-03-14-neutral-dispatch.md b/java/ql/lib/change-notes/2023-03-14-neutral-dispatch.md deleted file mode 100644 index f01e8700757..00000000000 --- a/java/ql/lib/change-notes/2023-03-14-neutral-dispatch.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: majorAnalysis ---- -* Removed low-confidence call edges to known neutral call targets from the call graph used in data flow analysis. This includes, for example, custom `List.contains` implementations when the best inferrable type at the call site is simply `List`. diff --git a/java/ql/lib/change-notes/released/0.5.5.md b/java/ql/lib/change-notes/released/0.5.5.md new file mode 100644 index 00000000000..60e487e4c0c --- /dev/null +++ b/java/ql/lib/change-notes/released/0.5.5.md @@ -0,0 +1,30 @@ +## 0.5.5 + +### New Features + +* Added support for merging two `PathGraph`s via disjoint union to allow results from multiple data flow computations in a single `path-problem` query. + +### Major Analysis Improvements + +* Removed low-confidence call edges to known neutral call targets from the call graph used in data flow analysis. This includes, for example, custom `List.contains` implementations when the best inferrable type at the call site is simply `List`. +* Added more sink and summary dataflow models for the following packages: + * `java.io` + * `java.lang` + * `java.sql` + * `javafx.scene.web` + * `org.apache.commons.compress.archivers.tar` + * `org.apache.http.client.utils` + * `org.codehaus.cargo.container.installer` +* The main data flow and taint tracking APIs have been changed. The old APIs + remain in place for now and translate to the new through a + backwards-compatible wrapper. If multiple configurations are in scope + simultaneously, then this may affect results slightly. The new API is quite + similar to the old, but makes use of a configuration module instead of a + configuration class. + +### Minor Analysis Improvements + +* Deleted the deprecated `getPath` and `getFolder` predicates from the `XmlFile` class. +* Deleted the deprecated `getRepresentedString` predicate from the `StringLiteral` class. +* Deleted the deprecated `ServletWriterSource` class. +* Deleted the deprecated `getGroupID`, `getArtefactID`, and `artefactMatches` predicates from the `MavenRepoJar` class. diff --git a/java/ql/lib/codeql-pack.release.yml b/java/ql/lib/codeql-pack.release.yml index cd3f72e2513..03e491f0899 100644 --- a/java/ql/lib/codeql-pack.release.yml +++ b/java/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.5.4 +lastReleaseVersion: 0.5.5 diff --git a/java/ql/lib/qlpack.yml b/java/ql/lib/qlpack.yml index 90fcc57cebf..bf49dec886c 100644 --- a/java/ql/lib/qlpack.yml +++ b/java/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-all -version: 0.5.5-dev +version: 0.5.5 groups: java dbscheme: config/semmlecode.dbscheme extractor: java diff --git a/java/ql/src/CHANGELOG.md b/java/ql/src/CHANGELOG.md index e2a9e8a56f0..0b18bced9b3 100644 --- a/java/ql/src/CHANGELOG.md +++ b/java/ql/src/CHANGELOG.md @@ -1,3 +1,9 @@ +## 0.5.5 + +### New Queries + +* Added a new query, `java/android/arbitrary-apk-installation`, to detect installation of APKs from untrusted sources. + ## 0.5.4 No user-facing changes. diff --git a/java/ql/src/change-notes/2023-01-19-arbitrary-apk-installation.md b/java/ql/src/change-notes/released/0.5.5.md similarity index 81% rename from java/ql/src/change-notes/2023-01-19-arbitrary-apk-installation.md rename to java/ql/src/change-notes/released/0.5.5.md index 93eb13f87d5..197c7ae1b69 100644 --- a/java/ql/src/change-notes/2023-01-19-arbitrary-apk-installation.md +++ b/java/ql/src/change-notes/released/0.5.5.md @@ -1,5 +1,5 @@ ---- -category: newQuery ---- -* Added a new query, `java/android/arbitrary-apk-installation`, to detect installation of APKs from untrusted sources. +## 0.5.5 +### New Queries + +* Added a new query, `java/android/arbitrary-apk-installation`, to detect installation of APKs from untrusted sources. diff --git a/java/ql/src/codeql-pack.release.yml b/java/ql/src/codeql-pack.release.yml index cd3f72e2513..03e491f0899 100644 --- a/java/ql/src/codeql-pack.release.yml +++ b/java/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.5.4 +lastReleaseVersion: 0.5.5 diff --git a/java/ql/src/qlpack.yml b/java/ql/src/qlpack.yml index 6c1783ce1cb..1d3c43f7e28 100644 --- a/java/ql/src/qlpack.yml +++ b/java/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-queries -version: 0.5.5-dev +version: 0.5.5 groups: - java - queries diff --git a/javascript/ql/lib/CHANGELOG.md b/javascript/ql/lib/CHANGELOG.md index bb0c197b3f2..53553dad5f4 100644 --- a/javascript/ql/lib/CHANGELOG.md +++ b/javascript/ql/lib/CHANGELOG.md @@ -1,3 +1,15 @@ +## 0.5.1 + +### Minor Analysis Improvements + +* Deleted the deprecated `getPath` and `getFolder` predicates from the `XmlFile` class. +* Deleted the deprecated `getId` from the `Function`, `NamespaceDefinition`, and `ImportEqualsDeclaration` classes. +* Deleted the deprecated `flowsTo` predicate from the `HTTP::Servers::RequestSource` and `HTTP::Servers::ResponseSource` class. +* Deleted the deprecated `getEventName` predicate from the `SocketIO::ReceiveNode`, `SocketIO::SendNode`, `SocketIOClient::SendNode` classes. +* Deleted the deprecated `RateLimitedRouteHandlerExpr` and `RouteHandlerExpressionWithRateLimiter` classes. +* [Import assertions](https://github.com/tc39/proposal-import-assertions) are now supported. + Previously this feature was only supported in TypeScript code, but is now supported for plain JavaScript as well and is also accessible in the AST. + ## 0.5.0 ### Breaking Changes diff --git a/javascript/ql/lib/change-notes/2023-03-03-import-assertion.md b/javascript/ql/lib/change-notes/2023-03-03-import-assertion.md deleted file mode 100644 index b6ee92a6660..00000000000 --- a/javascript/ql/lib/change-notes/2023-03-03-import-assertion.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -category: minorAnalysis ---- -* [Import assertions](https://github.com/tc39/proposal-import-assertions) are now supported. - Previously this feature was only supported in TypeScript code, but is now supported for plain JavaScript as well and is also accessible in the AST. diff --git a/javascript/ql/lib/change-notes/2023-03-03-delete-deps.md b/javascript/ql/lib/change-notes/released/0.5.1.md similarity index 61% rename from javascript/ql/lib/change-notes/2023-03-03-delete-deps.md rename to javascript/ql/lib/change-notes/released/0.5.1.md index 3ac871fa8a2..972b37b573b 100644 --- a/javascript/ql/lib/change-notes/2023-03-03-delete-deps.md +++ b/javascript/ql/lib/change-notes/released/0.5.1.md @@ -1,8 +1,11 @@ ---- -category: minorAnalysis ---- +## 0.5.1 + +### Minor Analysis Improvements + * Deleted the deprecated `getPath` and `getFolder` predicates from the `XmlFile` class. * Deleted the deprecated `getId` from the `Function`, `NamespaceDefinition`, and `ImportEqualsDeclaration` classes. * Deleted the deprecated `flowsTo` predicate from the `HTTP::Servers::RequestSource` and `HTTP::Servers::ResponseSource` class. * Deleted the deprecated `getEventName` predicate from the `SocketIO::ReceiveNode`, `SocketIO::SendNode`, `SocketIOClient::SendNode` classes. -* Deleted the deprecated `RateLimitedRouteHandlerExpr` and `RouteHandlerExpressionWithRateLimiter` classes. \ No newline at end of file +* Deleted the deprecated `RateLimitedRouteHandlerExpr` and `RouteHandlerExpressionWithRateLimiter` classes. +* [Import assertions](https://github.com/tc39/proposal-import-assertions) are now supported. + Previously this feature was only supported in TypeScript code, but is now supported for plain JavaScript as well and is also accessible in the AST. diff --git a/javascript/ql/lib/codeql-pack.release.yml b/javascript/ql/lib/codeql-pack.release.yml index 30e271c5361..0bf7024c337 100644 --- a/javascript/ql/lib/codeql-pack.release.yml +++ b/javascript/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.5.0 +lastReleaseVersion: 0.5.1 diff --git a/javascript/ql/lib/qlpack.yml b/javascript/ql/lib/qlpack.yml index 22328fa622b..8eaa891b23e 100644 --- a/javascript/ql/lib/qlpack.yml +++ b/javascript/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-all -version: 0.5.1-dev +version: 0.5.1 groups: javascript dbscheme: semmlecode.javascript.dbscheme extractor: javascript diff --git a/javascript/ql/src/CHANGELOG.md b/javascript/ql/src/CHANGELOG.md index 2b0ef33f565..1abcc918b2c 100644 --- a/javascript/ql/src/CHANGELOG.md +++ b/javascript/ql/src/CHANGELOG.md @@ -1,3 +1,11 @@ +## 0.5.5 + +### Minor Analysis Improvements + +* The following queries now recognize HTML sanitizers as propagating taint: `js/sql-injection`, + `js/path-injection`, `js/server-side-unvalidated-url-redirection`, `js/client-side-unvalidated-url-redirection`, + and `js/request-forgery`. + ## 0.5.4 ### Minor Analysis Improvements diff --git a/javascript/ql/src/change-notes/2023-03-07-html-sanitizer-for-sql.md b/javascript/ql/src/change-notes/released/0.5.5.md similarity index 84% rename from javascript/ql/src/change-notes/2023-03-07-html-sanitizer-for-sql.md rename to javascript/ql/src/change-notes/released/0.5.5.md index b26c1caec02..78f2dd33acf 100644 --- a/javascript/ql/src/change-notes/2023-03-07-html-sanitizer-for-sql.md +++ b/javascript/ql/src/change-notes/released/0.5.5.md @@ -1,6 +1,7 @@ ---- -category: minorAnalysis ---- +## 0.5.5 + +### Minor Analysis Improvements + * The following queries now recognize HTML sanitizers as propagating taint: `js/sql-injection`, `js/path-injection`, `js/server-side-unvalidated-url-redirection`, `js/client-side-unvalidated-url-redirection`, and `js/request-forgery`. diff --git a/javascript/ql/src/codeql-pack.release.yml b/javascript/ql/src/codeql-pack.release.yml index cd3f72e2513..03e491f0899 100644 --- a/javascript/ql/src/codeql-pack.release.yml +++ b/javascript/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.5.4 +lastReleaseVersion: 0.5.5 diff --git a/javascript/ql/src/qlpack.yml b/javascript/ql/src/qlpack.yml index eda7c965604..45819411de3 100644 --- a/javascript/ql/src/qlpack.yml +++ b/javascript/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-queries -version: 0.5.5-dev +version: 0.5.5 groups: - javascript - queries diff --git a/misc/suite-helpers/CHANGELOG.md b/misc/suite-helpers/CHANGELOG.md index d9ec2274496..80c3e1ddeb5 100644 --- a/misc/suite-helpers/CHANGELOG.md +++ b/misc/suite-helpers/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.4.5 + +No user-facing changes. + ## 0.4.4 No user-facing changes. diff --git a/misc/suite-helpers/change-notes/released/0.4.5.md b/misc/suite-helpers/change-notes/released/0.4.5.md new file mode 100644 index 00000000000..7ba9b2e8ade --- /dev/null +++ b/misc/suite-helpers/change-notes/released/0.4.5.md @@ -0,0 +1,3 @@ +## 0.4.5 + +No user-facing changes. diff --git a/misc/suite-helpers/codeql-pack.release.yml b/misc/suite-helpers/codeql-pack.release.yml index e9b57993a01..466cd01cf4e 100644 --- a/misc/suite-helpers/codeql-pack.release.yml +++ b/misc/suite-helpers/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.4.4 +lastReleaseVersion: 0.4.5 diff --git a/misc/suite-helpers/qlpack.yml b/misc/suite-helpers/qlpack.yml index e6e1a928060..eeda1afd1ea 100644 --- a/misc/suite-helpers/qlpack.yml +++ b/misc/suite-helpers/qlpack.yml @@ -1,3 +1,3 @@ name: codeql/suite-helpers -version: 0.4.5-dev +version: 0.4.5 groups: shared diff --git a/python/ql/lib/CHANGELOG.md b/python/ql/lib/CHANGELOG.md index cd00bbba31a..de1895d3b6b 100644 --- a/python/ql/lib/CHANGELOG.md +++ b/python/ql/lib/CHANGELOG.md @@ -1,3 +1,22 @@ +## 0.8.2 + +### New Features + +* Added support for merging two `PathGraph`s via disjoint union to allow results from multiple data flow computations in a single `path-problem` query. + +### Major Analysis Improvements + +* The main data flow and taint tracking APIs have been changed. The old APIs + remain in place for now and translate to the new through a + backwards-compatible wrapper. If multiple configurations are in scope + simultaneously, then this may affect results slightly. The new API is quite + similar to the old, but makes use of a configuration module instead of a + configuration class. + +### Minor Analysis Improvements + +* Deleted the deprecated `getPath` and `getFolder` predicates from the `XmlFile` class. + ## 0.8.1 ### Major Analysis Improvements diff --git a/python/ql/lib/change-notes/2023-03-02-dataflow-conf-module.md b/python/ql/lib/change-notes/2023-03-02-dataflow-conf-module.md deleted file mode 100644 index 89190af399f..00000000000 --- a/python/ql/lib/change-notes/2023-03-02-dataflow-conf-module.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -category: majorAnalysis ---- -* The main data flow and taint tracking APIs have been changed. The old APIs - remain in place for now and translate to the new through a - backwards-compatible wrapper. If multiple configurations are in scope - simultaneously, then this may affect results slightly. The new API is quite - similar to the old, but makes use of a configuration module instead of a - configuration class. diff --git a/python/ql/lib/change-notes/2023-03-03-delete-deps.md b/python/ql/lib/change-notes/2023-03-03-delete-deps.md deleted file mode 100644 index 887db05e8c9..00000000000 --- a/python/ql/lib/change-notes/2023-03-03-delete-deps.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Deleted the deprecated `getPath` and `getFolder` predicates from the `XmlFile` class. \ No newline at end of file diff --git a/python/ql/lib/change-notes/2023-03-13-mergepathgraph.md b/python/ql/lib/change-notes/2023-03-13-mergepathgraph.md deleted file mode 100644 index 63bfade2f10..00000000000 --- a/python/ql/lib/change-notes/2023-03-13-mergepathgraph.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: feature ---- -* Added support for merging two `PathGraph`s via disjoint union to allow results from multiple data flow computations in a single `path-problem` query. diff --git a/go/ql/lib/change-notes/2023-03-02-dataflow-conf-module.md b/python/ql/lib/change-notes/released/0.8.2.md similarity index 53% rename from go/ql/lib/change-notes/2023-03-02-dataflow-conf-module.md rename to python/ql/lib/change-notes/released/0.8.2.md index 89190af399f..6855fdaf72a 100644 --- a/go/ql/lib/change-notes/2023-03-02-dataflow-conf-module.md +++ b/python/ql/lib/change-notes/released/0.8.2.md @@ -1,9 +1,18 @@ ---- -category: majorAnalysis ---- +## 0.8.2 + +### New Features + +* Added support for merging two `PathGraph`s via disjoint union to allow results from multiple data flow computations in a single `path-problem` query. + +### Major Analysis Improvements + * The main data flow and taint tracking APIs have been changed. The old APIs remain in place for now and translate to the new through a backwards-compatible wrapper. If multiple configurations are in scope simultaneously, then this may affect results slightly. The new API is quite similar to the old, but makes use of a configuration module instead of a configuration class. + +### Minor Analysis Improvements + +* Deleted the deprecated `getPath` and `getFolder` predicates from the `XmlFile` class. diff --git a/python/ql/lib/codeql-pack.release.yml b/python/ql/lib/codeql-pack.release.yml index 2f693f95ba6..404110129dc 100644 --- a/python/ql/lib/codeql-pack.release.yml +++ b/python/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.8.1 +lastReleaseVersion: 0.8.2 diff --git a/python/ql/lib/qlpack.yml b/python/ql/lib/qlpack.yml index 77b07a5c101..c25f554065b 100644 --- a/python/ql/lib/qlpack.yml +++ b/python/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-all -version: 0.8.2-dev +version: 0.8.2 groups: python dbscheme: semmlecode.python.dbscheme extractor: python diff --git a/python/ql/src/CHANGELOG.md b/python/ql/src/CHANGELOG.md index aa03127e160..3872807e4c5 100644 --- a/python/ql/src/CHANGELOG.md +++ b/python/ql/src/CHANGELOG.md @@ -1,3 +1,9 @@ +## 0.6.5 + +### New Queries + +* Added a new query, `py/shell-command-constructed-from-input`, to detect libraries that unsafely construct shell commands from their inputs. + ## 0.6.4 No user-facing changes. diff --git a/python/ql/src/change-notes/2023-02-03-unsafe-shell-command-construction.md b/python/ql/src/change-notes/released/0.6.5.md similarity index 84% rename from python/ql/src/change-notes/2023-02-03-unsafe-shell-command-construction.md rename to python/ql/src/change-notes/released/0.6.5.md index 0654a93582b..90a9171e732 100644 --- a/python/ql/src/change-notes/2023-02-03-unsafe-shell-command-construction.md +++ b/python/ql/src/change-notes/released/0.6.5.md @@ -1,4 +1,5 @@ ---- -category: newQuery ---- +## 0.6.5 + +### New Queries + * Added a new query, `py/shell-command-constructed-from-input`, to detect libraries that unsafely construct shell commands from their inputs. diff --git a/python/ql/src/codeql-pack.release.yml b/python/ql/src/codeql-pack.release.yml index ced8cf94614..86780fb6148 100644 --- a/python/ql/src/codeql-pack.release.yml +++ b/python/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.6.4 +lastReleaseVersion: 0.6.5 diff --git a/python/ql/src/qlpack.yml b/python/ql/src/qlpack.yml index 99238b665e5..c3808c0e9f0 100644 --- a/python/ql/src/qlpack.yml +++ b/python/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-queries -version: 0.6.5-dev +version: 0.6.5 groups: - python - queries diff --git a/ruby/ql/lib/CHANGELOG.md b/ruby/ql/lib/CHANGELOG.md index 9613a598176..167403aac71 100644 --- a/ruby/ql/lib/CHANGELOG.md +++ b/ruby/ql/lib/CHANGELOG.md @@ -1,3 +1,29 @@ +## 0.5.5 + +### New Features + +* Added support for merging two `PathGraph`s via disjoint union to allow results from multiple data flow computations in a single `path-problem` query. + +### Major Analysis Improvements + +* The main data flow and taint tracking APIs have been changed. The old APIs + remain in place for now and translate to the new through a + backwards-compatible wrapper. If multiple configurations are in scope + simultaneously, then this may affect results slightly. The new API is quite + similar to the old, but makes use of a configuration module instead of a + configuration class. + +### Minor Analysis Improvements + +* Data flow through `initialize` methods is now taken into account also when the receiver of a `new` call is an (implicit or explicit) `self`. +* The Active Record query methods `reorder` and `count_by_sql` are now recognised as SQL executions. +* Calls to `ActiveRecord::Connection#execute`, including those via subclasses, are now recognised as SQL executions. +* Data flow through `ActionController::Parameters#require` is now tracked properly. +* The severity of parse errors was reduced to warning (previously error). +* Deleted the deprecated `getQualifiedName` predicate from the `ConstantWriteAccess` class. +* Deleted the deprecated `getWhenBranch` and `getAWhenBranch` predicates from the `CaseExpr` class. +* Deleted the deprecated `Self`, `PatternParameter`, `Pattern`, `VariablePattern`, `TuplePattern`, and `TuplePatternParameter` classes. + ## 0.5.4 ### Minor Analysis Improvements diff --git a/ruby/ql/lib/change-notes/2023-03-02-dataflow-conf-module.md b/ruby/ql/lib/change-notes/2023-03-02-dataflow-conf-module.md deleted file mode 100644 index 89190af399f..00000000000 --- a/ruby/ql/lib/change-notes/2023-03-02-dataflow-conf-module.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -category: majorAnalysis ---- -* The main data flow and taint tracking APIs have been changed. The old APIs - remain in place for now and translate to the new through a - backwards-compatible wrapper. If multiple configurations are in scope - simultaneously, then this may affect results slightly. The new API is quite - similar to the old, but makes use of a configuration module instead of a - configuration class. diff --git a/ruby/ql/lib/change-notes/2023-03-03-delete-deps.md b/ruby/ql/lib/change-notes/2023-03-03-delete-deps.md deleted file mode 100644 index aab1e76bf70..00000000000 --- a/ruby/ql/lib/change-notes/2023-03-03-delete-deps.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -category: minorAnalysis ---- -* Deleted the deprecated `getQualifiedName` predicate from the `ConstantWriteAccess` class. -* Deleted the deprecated `getWhenBranch` and `getAWhenBranch` predicates from the `CaseExpr` class. -* Deleted the deprecated `Self`, `PatternParameter`, `Pattern`, `VariablePattern`, `TuplePattern`, and `TuplePatternParameter` classes. \ No newline at end of file diff --git a/ruby/ql/lib/change-notes/2023-03-09-parse-error.md b/ruby/ql/lib/change-notes/2023-03-09-parse-error.md deleted file mode 100644 index da07ab22b5f..00000000000 --- a/ruby/ql/lib/change-notes/2023-03-09-parse-error.md +++ /dev/null @@ -1,4 +0,0 @@ ---- - category: minorAnalysis ---- -* The severity of parse errors was reduced to warning (previously error). diff --git a/ruby/ql/lib/change-notes/2023-03-13-initalize-flow.md b/ruby/ql/lib/change-notes/2023-03-13-initalize-flow.md deleted file mode 100644 index bc366496e6f..00000000000 --- a/ruby/ql/lib/change-notes/2023-03-13-initalize-flow.md +++ /dev/null @@ -1,4 +0,0 @@ ---- - category: minorAnalysis ---- -* Data flow through `initialize` methods is now taken into account also when the receiver of a `new` call is an (implicit or explicit) `self`. diff --git a/ruby/ql/lib/change-notes/2023-03-13-mergepathgraph.md b/ruby/ql/lib/change-notes/2023-03-13-mergepathgraph.md deleted file mode 100644 index 63bfade2f10..00000000000 --- a/ruby/ql/lib/change-notes/2023-03-13-mergepathgraph.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: feature ---- -* Added support for merging two `PathGraph`s via disjoint union to allow results from multiple data flow computations in a single `path-problem` query. diff --git a/ruby/ql/lib/change-notes/2023-03-13-rails-sinks.md b/ruby/ql/lib/change-notes/2023-03-13-rails-sinks.md deleted file mode 100644 index 6827b2755ed..00000000000 --- a/ruby/ql/lib/change-notes/2023-03-13-rails-sinks.md +++ /dev/null @@ -1,6 +0,0 @@ ---- - category: minorAnalysis ---- -* The Active Record query methods `reorder` and `count_by_sql` are now recognised as SQL executions. -* Calls to `ActiveRecord::Connection#execute`, including those via subclasses, are now recognised as SQL executions. -* Data flow through `ActionController::Parameters#require` is now tracked properly. \ No newline at end of file diff --git a/ruby/ql/lib/change-notes/released/0.5.5.md b/ruby/ql/lib/change-notes/released/0.5.5.md new file mode 100644 index 00000000000..38877dbfebf --- /dev/null +++ b/ruby/ql/lib/change-notes/released/0.5.5.md @@ -0,0 +1,25 @@ +## 0.5.5 + +### New Features + +* Added support for merging two `PathGraph`s via disjoint union to allow results from multiple data flow computations in a single `path-problem` query. + +### Major Analysis Improvements + +* The main data flow and taint tracking APIs have been changed. The old APIs + remain in place for now and translate to the new through a + backwards-compatible wrapper. If multiple configurations are in scope + simultaneously, then this may affect results slightly. The new API is quite + similar to the old, but makes use of a configuration module instead of a + configuration class. + +### Minor Analysis Improvements + +* Data flow through `initialize` methods is now taken into account also when the receiver of a `new` call is an (implicit or explicit) `self`. +* The Active Record query methods `reorder` and `count_by_sql` are now recognised as SQL executions. +* Calls to `ActiveRecord::Connection#execute`, including those via subclasses, are now recognised as SQL executions. +* Data flow through `ActionController::Parameters#require` is now tracked properly. +* The severity of parse errors was reduced to warning (previously error). +* Deleted the deprecated `getQualifiedName` predicate from the `ConstantWriteAccess` class. +* Deleted the deprecated `getWhenBranch` and `getAWhenBranch` predicates from the `CaseExpr` class. +* Deleted the deprecated `Self`, `PatternParameter`, `Pattern`, `VariablePattern`, `TuplePattern`, and `TuplePatternParameter` classes. diff --git a/ruby/ql/lib/codeql-pack.release.yml b/ruby/ql/lib/codeql-pack.release.yml index cd3f72e2513..03e491f0899 100644 --- a/ruby/ql/lib/codeql-pack.release.yml +++ b/ruby/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.5.4 +lastReleaseVersion: 0.5.5 diff --git a/ruby/ql/lib/qlpack.yml b/ruby/ql/lib/qlpack.yml index 767902b86d9..ecd2b8b0a00 100644 --- a/ruby/ql/lib/qlpack.yml +++ b/ruby/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-all -version: 0.5.5-dev +version: 0.5.5 groups: ruby extractor: ruby dbscheme: ruby.dbscheme diff --git a/ruby/ql/src/CHANGELOG.md b/ruby/ql/src/CHANGELOG.md index 03759edabe6..39ca0718982 100644 --- a/ruby/ql/src/CHANGELOG.md +++ b/ruby/ql/src/CHANGELOG.md @@ -1,3 +1,9 @@ +## 0.5.5 + +### New Queries + +* Added a new query, `rb/zip-slip`, to detect arbitrary file writes during extraction of zip/tar archives. + ## 0.5.4 No user-facing changes. diff --git a/ruby/ql/src/change-notes/2023-02-17-zip-slip-query.md b/ruby/ql/src/change-notes/2023-02-17-zip-slip-query.md deleted file mode 100644 index ebf17acb7be..00000000000 --- a/ruby/ql/src/change-notes/2023-02-17-zip-slip-query.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: newQuery ---- -* Added a new query, `rb/zip-slip`, to detect arbitrary file writes during extraction of zip/tar archives. \ No newline at end of file diff --git a/ruby/ql/src/change-notes/released/0.5.5.md b/ruby/ql/src/change-notes/released/0.5.5.md new file mode 100644 index 00000000000..20cdffb6307 --- /dev/null +++ b/ruby/ql/src/change-notes/released/0.5.5.md @@ -0,0 +1,5 @@ +## 0.5.5 + +### New Queries + +* Added a new query, `rb/zip-slip`, to detect arbitrary file writes during extraction of zip/tar archives. diff --git a/ruby/ql/src/codeql-pack.release.yml b/ruby/ql/src/codeql-pack.release.yml index cd3f72e2513..03e491f0899 100644 --- a/ruby/ql/src/codeql-pack.release.yml +++ b/ruby/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.5.4 +lastReleaseVersion: 0.5.5 diff --git a/ruby/ql/src/qlpack.yml b/ruby/ql/src/qlpack.yml index ca67c75eca6..08c92e6b22a 100644 --- a/ruby/ql/src/qlpack.yml +++ b/ruby/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-queries -version: 0.5.5-dev +version: 0.5.5 groups: - ruby - queries diff --git a/shared/regex/CHANGELOG.md b/shared/regex/CHANGELOG.md index cf315546ed9..771960678f5 100644 --- a/shared/regex/CHANGELOG.md +++ b/shared/regex/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.0.9 + +No user-facing changes. + ## 0.0.8 No user-facing changes. diff --git a/shared/regex/change-notes/released/0.0.9.md b/shared/regex/change-notes/released/0.0.9.md new file mode 100644 index 00000000000..c9e17c6d6cf --- /dev/null +++ b/shared/regex/change-notes/released/0.0.9.md @@ -0,0 +1,3 @@ +## 0.0.9 + +No user-facing changes. diff --git a/shared/regex/codeql-pack.release.yml b/shared/regex/codeql-pack.release.yml index 58fdc6b45de..ecdd64fbab8 100644 --- a/shared/regex/codeql-pack.release.yml +++ b/shared/regex/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.0.8 +lastReleaseVersion: 0.0.9 diff --git a/shared/regex/qlpack.yml b/shared/regex/qlpack.yml index f688e4a8e28..ddf814e93b5 100644 --- a/shared/regex/qlpack.yml +++ b/shared/regex/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/regex -version: 0.0.9-dev +version: 0.0.9 groups: shared library: true dependencies: diff --git a/shared/ssa/CHANGELOG.md b/shared/ssa/CHANGELOG.md index b051605d8b6..68bd110c267 100644 --- a/shared/ssa/CHANGELOG.md +++ b/shared/ssa/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.0.13 + +No user-facing changes. + ## 0.0.12 No user-facing changes. diff --git a/shared/ssa/change-notes/released/0.0.13.md b/shared/ssa/change-notes/released/0.0.13.md new file mode 100644 index 00000000000..f679eaf0313 --- /dev/null +++ b/shared/ssa/change-notes/released/0.0.13.md @@ -0,0 +1,3 @@ +## 0.0.13 + +No user-facing changes. diff --git a/shared/ssa/codeql-pack.release.yml b/shared/ssa/codeql-pack.release.yml index 997fb8da83c..044e54e4f7e 100644 --- a/shared/ssa/codeql-pack.release.yml +++ b/shared/ssa/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.0.12 +lastReleaseVersion: 0.0.13 diff --git a/shared/ssa/qlpack.yml b/shared/ssa/qlpack.yml index da55082c66b..ae3687f98c1 100644 --- a/shared/ssa/qlpack.yml +++ b/shared/ssa/qlpack.yml @@ -1,4 +1,4 @@ name: codeql/ssa -version: 0.0.13-dev +version: 0.0.13 groups: shared library: true diff --git a/shared/tutorial/CHANGELOG.md b/shared/tutorial/CHANGELOG.md index c2a0dedaa8e..282cc1b4857 100644 --- a/shared/tutorial/CHANGELOG.md +++ b/shared/tutorial/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.0.6 + +No user-facing changes. + ## 0.0.5 No user-facing changes. diff --git a/shared/tutorial/change-notes/released/0.0.6.md b/shared/tutorial/change-notes/released/0.0.6.md new file mode 100644 index 00000000000..ccbce856079 --- /dev/null +++ b/shared/tutorial/change-notes/released/0.0.6.md @@ -0,0 +1,3 @@ +## 0.0.6 + +No user-facing changes. diff --git a/shared/tutorial/codeql-pack.release.yml b/shared/tutorial/codeql-pack.release.yml index bb45a1ab018..cf398ce02aa 100644 --- a/shared/tutorial/codeql-pack.release.yml +++ b/shared/tutorial/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.0.5 +lastReleaseVersion: 0.0.6 diff --git a/shared/tutorial/qlpack.yml b/shared/tutorial/qlpack.yml index b1958a441e0..f1f209426c4 100644 --- a/shared/tutorial/qlpack.yml +++ b/shared/tutorial/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/tutorial description: Library for the CodeQL detective tutorials, helping new users learn to write CodeQL queries. -version: 0.0.6-dev +version: 0.0.6 groups: shared library: true diff --git a/shared/typetracking/CHANGELOG.md b/shared/typetracking/CHANGELOG.md index 8d859f9b9e6..9e7951e8ea8 100644 --- a/shared/typetracking/CHANGELOG.md +++ b/shared/typetracking/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.0.6 + +No user-facing changes. + ## 0.0.5 No user-facing changes. diff --git a/shared/typetracking/change-notes/released/0.0.6.md b/shared/typetracking/change-notes/released/0.0.6.md new file mode 100644 index 00000000000..ccbce856079 --- /dev/null +++ b/shared/typetracking/change-notes/released/0.0.6.md @@ -0,0 +1,3 @@ +## 0.0.6 + +No user-facing changes. diff --git a/shared/typetracking/codeql-pack.release.yml b/shared/typetracking/codeql-pack.release.yml index bb45a1ab018..cf398ce02aa 100644 --- a/shared/typetracking/codeql-pack.release.yml +++ b/shared/typetracking/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.0.5 +lastReleaseVersion: 0.0.6 diff --git a/shared/typetracking/qlpack.yml b/shared/typetracking/qlpack.yml index c1d91c841cb..93e5003b9be 100644 --- a/shared/typetracking/qlpack.yml +++ b/shared/typetracking/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typetracking -version: 0.0.6-dev +version: 0.0.6 groups: shared library: true dependencies: diff --git a/shared/typos/CHANGELOG.md b/shared/typos/CHANGELOG.md index 803a23bed1a..5c1e2e83225 100644 --- a/shared/typos/CHANGELOG.md +++ b/shared/typos/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.0.13 + +No user-facing changes. + ## 0.0.12 No user-facing changes. diff --git a/shared/typos/change-notes/released/0.0.13.md b/shared/typos/change-notes/released/0.0.13.md new file mode 100644 index 00000000000..f679eaf0313 --- /dev/null +++ b/shared/typos/change-notes/released/0.0.13.md @@ -0,0 +1,3 @@ +## 0.0.13 + +No user-facing changes. diff --git a/shared/typos/codeql-pack.release.yml b/shared/typos/codeql-pack.release.yml index 997fb8da83c..044e54e4f7e 100644 --- a/shared/typos/codeql-pack.release.yml +++ b/shared/typos/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.0.12 +lastReleaseVersion: 0.0.13 diff --git a/shared/typos/qlpack.yml b/shared/typos/qlpack.yml index e913e54cb72..723b891ab21 100644 --- a/shared/typos/qlpack.yml +++ b/shared/typos/qlpack.yml @@ -1,4 +1,4 @@ name: codeql/typos -version: 0.0.13-dev +version: 0.0.13 groups: shared library: true diff --git a/shared/util/CHANGELOG.md b/shared/util/CHANGELOG.md index 152fb894277..3d405b525ea 100644 --- a/shared/util/CHANGELOG.md +++ b/shared/util/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.0.6 + +No user-facing changes. + ## 0.0.5 No user-facing changes. diff --git a/shared/util/change-notes/released/0.0.6.md b/shared/util/change-notes/released/0.0.6.md new file mode 100644 index 00000000000..ccbce856079 --- /dev/null +++ b/shared/util/change-notes/released/0.0.6.md @@ -0,0 +1,3 @@ +## 0.0.6 + +No user-facing changes. diff --git a/shared/util/codeql-pack.release.yml b/shared/util/codeql-pack.release.yml index bb45a1ab018..cf398ce02aa 100644 --- a/shared/util/codeql-pack.release.yml +++ b/shared/util/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.0.5 +lastReleaseVersion: 0.0.6 diff --git a/shared/util/qlpack.yml b/shared/util/qlpack.yml index 27ebf28723d..b6cab33264f 100644 --- a/shared/util/qlpack.yml +++ b/shared/util/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/util -version: 0.0.6-dev +version: 0.0.6 groups: shared library: true dependencies: From 880632f5360c7a49ca65b35d953eae66276b286d Mon Sep 17 00:00:00 2001 From: erik-krogh <erik-krogh@github.com> Date: Thu, 16 Mar 2023 13:56:18 +0100 Subject: [PATCH 14/97] use Number.qll to parse hex numbers in regex parsing for Python/Java --- .../semmle/code/java/regex/RegexTreeView.qll | 39 ++----------------- python/ql/lib/qlpack.yml | 1 + python/ql/lib/semmle/python/RegexTreeView.qll | 38 ++---------------- 3 files changed, 7 insertions(+), 71 deletions(-) diff --git a/java/ql/lib/semmle/code/java/regex/RegexTreeView.qll b/java/ql/lib/semmle/code/java/regex/RegexTreeView.qll index 87e179c3d14..7575ccb6213 100644 --- a/java/ql/lib/semmle/code/java/regex/RegexTreeView.qll +++ b/java/ql/lib/semmle/code/java/regex/RegexTreeView.qll @@ -470,6 +470,8 @@ module Impl implements RegexTreeViewSig { override string getPrimaryQLClass() { result = "RegExpAlt" } } + private import codeql.util.Numbers as Numbers + /** * An escaped regular expression term, that is, a regular expression * term starting with a backslash, which is not a backreference. @@ -531,11 +533,7 @@ module Impl implements RegexTreeViewSig { * Gets the unicode char for this escape. * E.g. for `\u0061` this returns "a". */ - private string getUnicode() { - exists(int codepoint | codepoint = sum(this.getHexValueFromUnicode(_)) | - result = codepoint.toUnicode() - ) - } + private string getUnicode() { result = Numbers::parseHexInt(this.getHexString()).toUnicode() } /** Gets the part of this escape that is a hexidecimal string */ private string getHexString() { @@ -547,18 +545,6 @@ module Impl implements RegexTreeViewSig { then result = this.getText().substring(3, this.getText().length() - 1) else result = this.getText().suffix(2) // \xhh } - - /** - * Gets int value for the `index`th char in the hex number of the unicode escape. - * E.g. for `\u0061` and `index = 2` this returns 96 (the number `6` interpreted as hex). - */ - private int getHexValueFromUnicode(int index) { - this.isUnicode() and - exists(string hex, string char | hex = this.getHexString() | - char = hex.charAt(index) and - result = 16.pow(hex.length() - index - 1) * toHex(char) - ) - } } /** @@ -586,25 +572,6 @@ module Impl implements RegexTreeViewSig { RegExpNonWordBoundary() { this.getChar() = "\\B" } } - /** - * Gets the hex number for the `hex` char. - */ - private int toHex(string hex) { - result = [0 .. 9] and hex = result.toString() - or - result = 10 and hex = ["a", "A"] - or - result = 11 and hex = ["b", "B"] - or - result = 12 and hex = ["c", "C"] - or - result = 13 and hex = ["d", "D"] - or - result = 14 and hex = ["e", "E"] - or - result = 15 and hex = ["f", "F"] - } - /** * A character class escape in a regular expression. * That is, an escaped character that denotes multiple characters. diff --git a/python/ql/lib/qlpack.yml b/python/ql/lib/qlpack.yml index 77b07a5c101..822ae117791 100644 --- a/python/ql/lib/qlpack.yml +++ b/python/ql/lib/qlpack.yml @@ -7,6 +7,7 @@ library: true upgrades: upgrades dependencies: codeql/regex: ${workspace} + codeql/util: ${workspace} codeql/tutorial: ${workspace} dataExtensions: - semmle/python/frameworks/**/model.yml diff --git a/python/ql/lib/semmle/python/RegexTreeView.qll b/python/ql/lib/semmle/python/RegexTreeView.qll index 47969412ff7..a69e076d21a 100644 --- a/python/ql/lib/semmle/python/RegexTreeView.qll +++ b/python/ql/lib/semmle/python/RegexTreeView.qll @@ -468,6 +468,8 @@ module Impl implements RegexTreeViewSig { */ class RegExpCharEscape = RegExpEscape; + private import codeql.util.Numbers as Numbers + /** * An escaped regular expression term, that is, a regular expression * term starting with a backslash, which is not a backreference. @@ -528,42 +530,8 @@ module Impl implements RegexTreeViewSig { * E.g. for `\u0061` this returns "a". */ private string getUnicode() { - exists(int codepoint | codepoint = sum(this.getHexValueFromUnicode(_)) | - result = codepoint.toUnicode() - ) + result = Numbers::parseHexInt(this.getText().suffix(2)).toUnicode() } - - /** - * Gets int value for the `index`th char in the hex number of the unicode escape. - * E.g. for `\u0061` and `index = 2` this returns 96 (the number `6` interpreted as hex). - */ - private int getHexValueFromUnicode(int index) { - this.isUnicode() and - exists(string hex, string char | hex = this.getText().suffix(2) | - char = hex.charAt(index) and - result = 16.pow(hex.length() - index - 1) * toHex(char) - ) - } - } - - /** - * Gets the hex number for the `hex` char. - */ - private int toHex(string hex) { - hex = [0 .. 9].toString() and - result = hex.toInt() - or - result = 10 and hex = ["a", "A"] - or - result = 11 and hex = ["b", "B"] - or - result = 12 and hex = ["c", "C"] - or - result = 13 and hex = ["d", "D"] - or - result = 14 and hex = ["e", "E"] - or - result = 15 and hex = ["f", "F"] } /** From e7079b35bcff50ad320d66f3b0b07dc5eed5e7ac Mon Sep 17 00:00:00 2001 From: Jeroen Ketema <93738568+jketema@users.noreply.github.com> Date: Thu, 16 Mar 2023 14:28:17 +0100 Subject: [PATCH 15/97] Apply suggestions from code review --- csharp/ql/lib/CHANGELOG.md | 2 +- csharp/ql/lib/change-notes/released/0.5.5.md | 2 +- ruby/ql/lib/CHANGELOG.md | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/csharp/ql/lib/CHANGELOG.md b/csharp/ql/lib/CHANGELOG.md index 4256614c2ee..bf400a54378 100644 --- a/csharp/ql/lib/CHANGELOG.md +++ b/csharp/ql/lib/CHANGELOG.md @@ -18,7 +18,7 @@ * Deleted the deprecated `getPath` and `getFolder` predicates from the `XmlFile` class. * Deleted the deprecated `getAssertionIndex`, and `getAssertedParameter` predicates from the `AssertMethod` class. * Deleted the deprecated `OverridableMethod` and `OverridableAccessor` classes. -* The `unsafe` predicate for `Modifiable` has been extended to cover delegate return types and identify pointer like types at any nest level. This is relevant for `unsafe` declarations extracted from assemblies. +* The `unsafe` predicate for `Modifiable` has been extended to cover delegate return types and identify pointer-like types at any nest level. This is relevant for `unsafe` declarations extracted from assemblies. ## 0.5.4 diff --git a/csharp/ql/lib/change-notes/released/0.5.5.md b/csharp/ql/lib/change-notes/released/0.5.5.md index 8b5ac2e9eab..873ac6839e3 100644 --- a/csharp/ql/lib/change-notes/released/0.5.5.md +++ b/csharp/ql/lib/change-notes/released/0.5.5.md @@ -18,4 +18,4 @@ * Deleted the deprecated `getPath` and `getFolder` predicates from the `XmlFile` class. * Deleted the deprecated `getAssertionIndex`, and `getAssertedParameter` predicates from the `AssertMethod` class. * Deleted the deprecated `OverridableMethod` and `OverridableAccessor` classes. -* The `unsafe` predicate for `Modifiable` has been extended to cover delegate return types and identify pointer like types at any nest level. This is relevant for `unsafe` declarations extracted from assemblies. +* The `unsafe` predicate for `Modifiable` has been extended to cover delegate return types and identify pointer-like types at any nest level. This is relevant for `unsafe` declarations extracted from assemblies. diff --git a/ruby/ql/lib/CHANGELOG.md b/ruby/ql/lib/CHANGELOG.md index 167403aac71..fd99d1504a2 100644 --- a/ruby/ql/lib/CHANGELOG.md +++ b/ruby/ql/lib/CHANGELOG.md @@ -16,8 +16,8 @@ ### Minor Analysis Improvements * Data flow through `initialize` methods is now taken into account also when the receiver of a `new` call is an (implicit or explicit) `self`. -* The Active Record query methods `reorder` and `count_by_sql` are now recognised as SQL executions. -* Calls to `ActiveRecord::Connection#execute`, including those via subclasses, are now recognised as SQL executions. +* The Active Record query methods `reorder` and `count_by_sql` are now recognized as SQL executions. +* Calls to `ActiveRecord::Connection#execute`, including those via subclasses, are now recognized as SQL executions. * Data flow through `ActionController::Parameters#require` is now tracked properly. * The severity of parse errors was reduced to warning (previously error). * Deleted the deprecated `getQualifiedName` predicate from the `ConstantWriteAccess` class. From 66b03dbd1d45ad0d33a2bae98a97f41b3b00f597 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema <93738568+jketema@users.noreply.github.com> Date: Thu, 16 Mar 2023 14:29:16 +0100 Subject: [PATCH 16/97] Apply suggestions from code review --- ruby/ql/lib/change-notes/released/0.5.5.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ruby/ql/lib/change-notes/released/0.5.5.md b/ruby/ql/lib/change-notes/released/0.5.5.md index 38877dbfebf..a6c6618886d 100644 --- a/ruby/ql/lib/change-notes/released/0.5.5.md +++ b/ruby/ql/lib/change-notes/released/0.5.5.md @@ -16,8 +16,8 @@ ### Minor Analysis Improvements * Data flow through `initialize` methods is now taken into account also when the receiver of a `new` call is an (implicit or explicit) `self`. -* The Active Record query methods `reorder` and `count_by_sql` are now recognised as SQL executions. -* Calls to `ActiveRecord::Connection#execute`, including those via subclasses, are now recognised as SQL executions. +* The Active Record query methods `reorder` and `count_by_sql` are now recognized as SQL executions. +* Calls to `ActiveRecord::Connection#execute`, including those via subclasses, are now recognized as SQL executions. * Data flow through `ActionController::Parameters#require` is now tracked properly. * The severity of parse errors was reduced to warning (previously error). * Deleted the deprecated `getQualifiedName` predicate from the `ConstantWriteAccess` class. From a229f7a832d2bd76720ed02b639393154af99fdc Mon Sep 17 00:00:00 2001 From: Maiky <76447395+maikypedia@users.noreply.github.com> Date: Thu, 16 Mar 2023 16:15:02 +0100 Subject: [PATCH 17/97] Solve merge conflict and add a change note --- ruby/ql/lib/codeql/ruby/Frameworks.qll | 1 + ruby/ql/src/change-notes/2023-03-15-ssti-query | 4 ++++ 2 files changed, 5 insertions(+) create mode 100644 ruby/ql/src/change-notes/2023-03-15-ssti-query diff --git a/ruby/ql/lib/codeql/ruby/Frameworks.qll b/ruby/ql/lib/codeql/ruby/Frameworks.qll index 3bb38d5aa6e..283a1f87a30 100644 --- a/ruby/ql/lib/codeql/ruby/Frameworks.qll +++ b/ruby/ql/lib/codeql/ruby/Frameworks.qll @@ -27,5 +27,6 @@ private import codeql.ruby.frameworks.ActionDispatch private import codeql.ruby.frameworks.PosixSpawn private import codeql.ruby.frameworks.StringFormatters private import codeql.ruby.frameworks.Json +private import codeql.ruby.frameworks.Twirp private import codeql.ruby.frameworks.Erb private import codeql.ruby.frameworks.Slim diff --git a/ruby/ql/src/change-notes/2023-03-15-ssti-query b/ruby/ql/src/change-notes/2023-03-15-ssti-query new file mode 100644 index 00000000000..f696623df52 --- /dev/null +++ b/ruby/ql/src/change-notes/2023-03-15-ssti-query @@ -0,0 +1,4 @@ +--- +category: newQuery +--- +* Added a new experimental query, `rb/server-side-template-injection`, to detect cases where user input may be embedded into a template's code in an unsafe manner. \ No newline at end of file From 37e42bb05bb9a179b0c48ada0ecb202adc127446 Mon Sep 17 00:00:00 2001 From: Maiky <76447395+maikypedia@users.noreply.github.com> Date: Thu, 16 Mar 2023 20:45:35 +0100 Subject: [PATCH 18/97] Missing markdown extension --- .../{2023-03-15-ssti-query => 2023-03-15-ssti-query.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename ruby/ql/src/change-notes/{2023-03-15-ssti-query => 2023-03-15-ssti-query.md} (100%) diff --git a/ruby/ql/src/change-notes/2023-03-15-ssti-query b/ruby/ql/src/change-notes/2023-03-15-ssti-query.md similarity index 100% rename from ruby/ql/src/change-notes/2023-03-15-ssti-query rename to ruby/ql/src/change-notes/2023-03-15-ssti-query.md From ee6288173fb51f74ad10306f412fbbf323f3c003 Mon Sep 17 00:00:00 2001 From: Alex Ford <alexrford@github.com> Date: Fri, 17 Mar 2023 11:38:49 +0000 Subject: [PATCH 19/97] Ruby: remove extra opening p tag --- .../template-injection/TemplateInjection.qhelp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/ruby/ql/src/experimental/template-injection/TemplateInjection.qhelp b/ruby/ql/src/experimental/template-injection/TemplateInjection.qhelp index be1f1a4f27d..031d8619152 100644 --- a/ruby/ql/src/experimental/template-injection/TemplateInjection.qhelp +++ b/ruby/ql/src/experimental/template-injection/TemplateInjection.qhelp @@ -17,11 +17,14 @@ use a sandboxed environment where access to unsafe attributes and methods is pro <example> <p> - <p>Consider the example given below, an untrusted HTTP parameter <code>name</code> is used to generate a template string. This can lead to remote code execution. </p> - <sample src="examples/SSTIBad.rb" /> - - <p>Here we have fixed the problem by including ERB/Slim syntax in the string, then the user input will be rendered but no evaluated.</p> - <sample src="examples/SSTIGood.rb" /> +Consider the example given below, an untrusted HTTP parameter <code>name</code> is used to generate a template string. This can lead to remote code execution. +</p> +<sample src="examples/SSTIBad.rb" /> + +<p> +Here we have fixed the problem by including ERB/Slim syntax in the string, then the user input will be rendered but no evaluated. +</p> +<sample src="examples/SSTIGood.rb" /> </example> <references> @@ -32,4 +35,4 @@ Wikipedia: <a href="https://en.wikipedia.org/wiki/Code_injection#Server_Side_Tem Portswigger : <a href="https://portswigger.net/web-security/server-side-template-injection">Server Side Template Injection</a>. </li> </references> -</qhelp> \ No newline at end of file +</qhelp> From 76ed56d2b636a249c551361f7e20d66cec2def74 Mon Sep 17 00:00:00 2001 From: Alex Ford <alexrford@github.com> Date: Fri, 17 Mar 2023 11:40:59 +0000 Subject: [PATCH 20/97] Ruby: typo --- .../src/experimental/template-injection/TemplateInjection.qhelp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ruby/ql/src/experimental/template-injection/TemplateInjection.qhelp b/ruby/ql/src/experimental/template-injection/TemplateInjection.qhelp index 031d8619152..6bef3dd11c3 100644 --- a/ruby/ql/src/experimental/template-injection/TemplateInjection.qhelp +++ b/ruby/ql/src/experimental/template-injection/TemplateInjection.qhelp @@ -22,7 +22,7 @@ Consider the example given below, an untrusted HTTP parameter <code>name</code> <sample src="examples/SSTIBad.rb" /> <p> -Here we have fixed the problem by including ERB/Slim syntax in the string, then the user input will be rendered but no evaluated. +Here we have fixed the problem by including ERB/Slim syntax in the string, then the user input will be rendered but not evaluated. </p> <sample src="examples/SSTIGood.rb" /> </example> From c12a85b07b3de68454a4c8bc97e06c2fa520e2c6 Mon Sep 17 00:00:00 2001 From: Alex Ford <alexrford@github.com> Date: Fri, 17 Mar 2023 11:49:10 +0000 Subject: [PATCH 21/97] Ruby: autoformat --- ruby/ql/lib/codeql/ruby/frameworks/Erb.qll | 4 +--- .../codeql/ruby/security/TemplateInjectionCustomizations.qll | 3 ++- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/frameworks/Erb.qll b/ruby/ql/lib/codeql/ruby/frameworks/Erb.qll index 509f226e770..2d080091b2b 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/Erb.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/Erb.qll @@ -16,9 +16,7 @@ module Erb { private class TemplateSummary extends SummarizedCallable { TemplateSummary() { this = "ERB.new" } - override MethodCall getACall() { - result = any(ErbTemplateNewCall c).asExpr().getExpr() - } + override MethodCall getACall() { result = any(ErbTemplateNewCall c).asExpr().getExpr() } override predicate propagatesFlowExt(string input, string output, boolean preservesValue) { input = "Argument[0]" and output = "ReturnValue" and preservesValue = false diff --git a/ruby/ql/lib/codeql/ruby/security/TemplateInjectionCustomizations.qll b/ruby/ql/lib/codeql/ruby/security/TemplateInjectionCustomizations.qll index 503cfe6e9e6..fe96a029b8f 100644 --- a/ruby/ql/lib/codeql/ruby/security/TemplateInjectionCustomizations.qll +++ b/ruby/ql/lib/codeql/ruby/security/TemplateInjectionCustomizations.qll @@ -44,5 +44,6 @@ module TemplateInjection { * sanitizer-guard. */ private class StringConstArrayInclusionCallAsSanitizer extends Sanitizer, - StringConstArrayInclusionCallBarrier { } + StringConstArrayInclusionCallBarrier + { } } From e84b08409c6996effe3fac3e36aa7d20c5a360ba Mon Sep 17 00:00:00 2001 From: Alex Ford <alexrford@github.com> Date: Fri, 17 Mar 2023 12:08:38 +0000 Subject: [PATCH 22/97] Ruby: test fixes --- ruby/ql/test/library-tests/dataflow/local/TaintStep.expected | 1 + .../cwe-094 => experimental}/TemplateInjection/ErbInjection.rb | 0 .../cwe-094 => experimental}/TemplateInjection/SlimInjection.rb | 0 .../TemplateInjection/TemplateInjection.expected | 0 .../experimental/TemplateInjection/TemplateInjection.qlref | 1 + .../security/cwe-094/TemplateInjection/TemplateInjection.qlref | 1 - 6 files changed, 2 insertions(+), 1 deletion(-) rename ruby/ql/test/query-tests/{security/cwe-094 => experimental}/TemplateInjection/ErbInjection.rb (100%) rename ruby/ql/test/query-tests/{security/cwe-094 => experimental}/TemplateInjection/SlimInjection.rb (100%) rename ruby/ql/test/query-tests/{security/cwe-094 => experimental}/TemplateInjection/TemplateInjection.expected (100%) create mode 100644 ruby/ql/test/query-tests/experimental/TemplateInjection/TemplateInjection.qlref delete mode 100644 ruby/ql/test/query-tests/security/cwe-094/TemplateInjection/TemplateInjection.qlref diff --git a/ruby/ql/test/library-tests/dataflow/local/TaintStep.expected b/ruby/ql/test/library-tests/dataflow/local/TaintStep.expected index a25ca1905d9..da8b1b82747 100644 --- a/ruby/ql/test/library-tests/dataflow/local/TaintStep.expected +++ b/ruby/ql/test/library-tests/dataflow/local/TaintStep.expected @@ -2805,6 +2805,7 @@ | file://:0:0:0:0 | parameter position 0 of ActionController::Parameters#merge! | file://:0:0:0:0 | [summary] to write: return (return) in ActionController::Parameters#merge! | | file://:0:0:0:0 | parameter position 0 of Arel.sql | file://:0:0:0:0 | [summary] to write: return (return) in Arel.sql | | file://:0:0:0:0 | parameter position 0 of Base64.decode64() | file://:0:0:0:0 | [summary] to write: return (return) in Base64.decode64() | +| file://:0:0:0:0 | parameter position 0 of ERB.new | file://:0:0:0:0 | [summary] to write: return (return) in ERB.new | | file://:0:0:0:0 | parameter position 0 of File.absolute_path | file://:0:0:0:0 | [summary] to write: return (return) in File.absolute_path | | file://:0:0:0:0 | parameter position 0 of File.dirname | file://:0:0:0:0 | [summary] to write: return (return) in File.dirname | | file://:0:0:0:0 | parameter position 0 of File.expand_path | file://:0:0:0:0 | [summary] to write: return (return) in File.expand_path | diff --git a/ruby/ql/test/query-tests/security/cwe-094/TemplateInjection/ErbInjection.rb b/ruby/ql/test/query-tests/experimental/TemplateInjection/ErbInjection.rb similarity index 100% rename from ruby/ql/test/query-tests/security/cwe-094/TemplateInjection/ErbInjection.rb rename to ruby/ql/test/query-tests/experimental/TemplateInjection/ErbInjection.rb diff --git a/ruby/ql/test/query-tests/security/cwe-094/TemplateInjection/SlimInjection.rb b/ruby/ql/test/query-tests/experimental/TemplateInjection/SlimInjection.rb similarity index 100% rename from ruby/ql/test/query-tests/security/cwe-094/TemplateInjection/SlimInjection.rb rename to ruby/ql/test/query-tests/experimental/TemplateInjection/SlimInjection.rb diff --git a/ruby/ql/test/query-tests/security/cwe-094/TemplateInjection/TemplateInjection.expected b/ruby/ql/test/query-tests/experimental/TemplateInjection/TemplateInjection.expected similarity index 100% rename from ruby/ql/test/query-tests/security/cwe-094/TemplateInjection/TemplateInjection.expected rename to ruby/ql/test/query-tests/experimental/TemplateInjection/TemplateInjection.expected diff --git a/ruby/ql/test/query-tests/experimental/TemplateInjection/TemplateInjection.qlref b/ruby/ql/test/query-tests/experimental/TemplateInjection/TemplateInjection.qlref new file mode 100644 index 00000000000..38054e393ee --- /dev/null +++ b/ruby/ql/test/query-tests/experimental/TemplateInjection/TemplateInjection.qlref @@ -0,0 +1 @@ +experimental/template-injection/TemplateInjection.ql \ No newline at end of file diff --git a/ruby/ql/test/query-tests/security/cwe-094/TemplateInjection/TemplateInjection.qlref b/ruby/ql/test/query-tests/security/cwe-094/TemplateInjection/TemplateInjection.qlref deleted file mode 100644 index 37d5be4cc92..00000000000 --- a/ruby/ql/test/query-tests/security/cwe-094/TemplateInjection/TemplateInjection.qlref +++ /dev/null @@ -1 +0,0 @@ -queries/security/cwe-094/TemplateInjection.ql \ No newline at end of file From 981e171525e81c5481e7d5bb613d0c0ea03b03cc Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <github-actions@github.com> Date: Fri, 17 Mar 2023 13:27:00 +0000 Subject: [PATCH 23/97] Post-release preparation for codeql-cli-2.12.5 --- cpp/ql/lib/qlpack.yml | 2 +- cpp/ql/src/qlpack.yml | 2 +- csharp/ql/campaigns/Solorigate/lib/qlpack.yml | 2 +- csharp/ql/campaigns/Solorigate/src/qlpack.yml | 2 +- csharp/ql/lib/qlpack.yml | 2 +- csharp/ql/src/qlpack.yml | 2 +- go/ql/lib/qlpack.yml | 2 +- go/ql/src/qlpack.yml | 2 +- java/ql/lib/qlpack.yml | 2 +- java/ql/src/qlpack.yml | 2 +- javascript/ql/lib/qlpack.yml | 2 +- javascript/ql/src/qlpack.yml | 2 +- misc/suite-helpers/qlpack.yml | 2 +- python/ql/lib/qlpack.yml | 2 +- python/ql/src/qlpack.yml | 2 +- ruby/ql/lib/qlpack.yml | 2 +- ruby/ql/src/qlpack.yml | 2 +- shared/regex/qlpack.yml | 2 +- shared/ssa/qlpack.yml | 2 +- shared/tutorial/qlpack.yml | 2 +- shared/typetracking/qlpack.yml | 2 +- shared/typos/qlpack.yml | 2 +- shared/util/qlpack.yml | 2 +- 23 files changed, 23 insertions(+), 23 deletions(-) diff --git a/cpp/ql/lib/qlpack.yml b/cpp/ql/lib/qlpack.yml index 5a75c36d89d..12ad778c119 100644 --- a/cpp/ql/lib/qlpack.yml +++ b/cpp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-all -version: 0.6.0 +version: 0.6.1-dev groups: cpp dbscheme: semmlecode.cpp.dbscheme extractor: cpp diff --git a/cpp/ql/src/qlpack.yml b/cpp/ql/src/qlpack.yml index 88e2c2a1921..eb82996adba 100644 --- a/cpp/ql/src/qlpack.yml +++ b/cpp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-queries -version: 0.5.5 +version: 0.5.6-dev groups: - cpp - queries diff --git a/csharp/ql/campaigns/Solorigate/lib/qlpack.yml b/csharp/ql/campaigns/Solorigate/lib/qlpack.yml index cbc4e04bfe6..2b2be57e934 100644 --- a/csharp/ql/campaigns/Solorigate/lib/qlpack.yml +++ b/csharp/ql/campaigns/Solorigate/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-solorigate-all -version: 1.4.5 +version: 1.4.6-dev groups: - csharp - solorigate diff --git a/csharp/ql/campaigns/Solorigate/src/qlpack.yml b/csharp/ql/campaigns/Solorigate/src/qlpack.yml index e7f9d67aa66..e588fb9218e 100644 --- a/csharp/ql/campaigns/Solorigate/src/qlpack.yml +++ b/csharp/ql/campaigns/Solorigate/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-solorigate-queries -version: 1.4.5 +version: 1.4.6-dev groups: - csharp - solorigate diff --git a/csharp/ql/lib/qlpack.yml b/csharp/ql/lib/qlpack.yml index 434c2e324b9..9c1c247e967 100644 --- a/csharp/ql/lib/qlpack.yml +++ b/csharp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-all -version: 0.5.5 +version: 0.5.6-dev groups: csharp dbscheme: semmlecode.csharp.dbscheme extractor: csharp diff --git a/csharp/ql/src/qlpack.yml b/csharp/ql/src/qlpack.yml index a2eae93dec8..36a7fe45eee 100644 --- a/csharp/ql/src/qlpack.yml +++ b/csharp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-queries -version: 0.5.5 +version: 0.5.6-dev groups: - csharp - queries diff --git a/go/ql/lib/qlpack.yml b/go/ql/lib/qlpack.yml index 7770c7beaa6..a8601ec94b7 100644 --- a/go/ql/lib/qlpack.yml +++ b/go/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-all -version: 0.4.5 +version: 0.4.6-dev groups: go dbscheme: go.dbscheme extractor: go diff --git a/go/ql/src/qlpack.yml b/go/ql/src/qlpack.yml index 21f9f365c5e..86760bca0f9 100644 --- a/go/ql/src/qlpack.yml +++ b/go/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-queries -version: 0.4.5 +version: 0.4.6-dev groups: - go - queries diff --git a/java/ql/lib/qlpack.yml b/java/ql/lib/qlpack.yml index bf49dec886c..263e9321c54 100644 --- a/java/ql/lib/qlpack.yml +++ b/java/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-all -version: 0.5.5 +version: 0.5.6-dev groups: java dbscheme: config/semmlecode.dbscheme extractor: java diff --git a/java/ql/src/qlpack.yml b/java/ql/src/qlpack.yml index 1d3c43f7e28..6295db39e31 100644 --- a/java/ql/src/qlpack.yml +++ b/java/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-queries -version: 0.5.5 +version: 0.5.6-dev groups: - java - queries diff --git a/javascript/ql/lib/qlpack.yml b/javascript/ql/lib/qlpack.yml index 8eaa891b23e..5c650164c39 100644 --- a/javascript/ql/lib/qlpack.yml +++ b/javascript/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-all -version: 0.5.1 +version: 0.5.2-dev groups: javascript dbscheme: semmlecode.javascript.dbscheme extractor: javascript diff --git a/javascript/ql/src/qlpack.yml b/javascript/ql/src/qlpack.yml index 45819411de3..ca8f353446a 100644 --- a/javascript/ql/src/qlpack.yml +++ b/javascript/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-queries -version: 0.5.5 +version: 0.5.6-dev groups: - javascript - queries diff --git a/misc/suite-helpers/qlpack.yml b/misc/suite-helpers/qlpack.yml index eeda1afd1ea..11aa41479a2 100644 --- a/misc/suite-helpers/qlpack.yml +++ b/misc/suite-helpers/qlpack.yml @@ -1,3 +1,3 @@ name: codeql/suite-helpers -version: 0.4.5 +version: 0.4.6-dev groups: shared diff --git a/python/ql/lib/qlpack.yml b/python/ql/lib/qlpack.yml index c25f554065b..35773496d10 100644 --- a/python/ql/lib/qlpack.yml +++ b/python/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-all -version: 0.8.2 +version: 0.8.3-dev groups: python dbscheme: semmlecode.python.dbscheme extractor: python diff --git a/python/ql/src/qlpack.yml b/python/ql/src/qlpack.yml index c3808c0e9f0..0de886af534 100644 --- a/python/ql/src/qlpack.yml +++ b/python/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-queries -version: 0.6.5 +version: 0.6.6-dev groups: - python - queries diff --git a/ruby/ql/lib/qlpack.yml b/ruby/ql/lib/qlpack.yml index ecd2b8b0a00..0cbb3cc99da 100644 --- a/ruby/ql/lib/qlpack.yml +++ b/ruby/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-all -version: 0.5.5 +version: 0.5.6-dev groups: ruby extractor: ruby dbscheme: ruby.dbscheme diff --git a/ruby/ql/src/qlpack.yml b/ruby/ql/src/qlpack.yml index 08c92e6b22a..58e6d53f3bc 100644 --- a/ruby/ql/src/qlpack.yml +++ b/ruby/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-queries -version: 0.5.5 +version: 0.5.6-dev groups: - ruby - queries diff --git a/shared/regex/qlpack.yml b/shared/regex/qlpack.yml index ddf814e93b5..245e2e6b546 100644 --- a/shared/regex/qlpack.yml +++ b/shared/regex/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/regex -version: 0.0.9 +version: 0.0.10-dev groups: shared library: true dependencies: diff --git a/shared/ssa/qlpack.yml b/shared/ssa/qlpack.yml index ae3687f98c1..573e0fdb8dc 100644 --- a/shared/ssa/qlpack.yml +++ b/shared/ssa/qlpack.yml @@ -1,4 +1,4 @@ name: codeql/ssa -version: 0.0.13 +version: 0.0.14-dev groups: shared library: true diff --git a/shared/tutorial/qlpack.yml b/shared/tutorial/qlpack.yml index f1f209426c4..529717d22d8 100644 --- a/shared/tutorial/qlpack.yml +++ b/shared/tutorial/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/tutorial description: Library for the CodeQL detective tutorials, helping new users learn to write CodeQL queries. -version: 0.0.6 +version: 0.0.7-dev groups: shared library: true diff --git a/shared/typetracking/qlpack.yml b/shared/typetracking/qlpack.yml index 93e5003b9be..59d5f4d66e1 100644 --- a/shared/typetracking/qlpack.yml +++ b/shared/typetracking/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typetracking -version: 0.0.6 +version: 0.0.7-dev groups: shared library: true dependencies: diff --git a/shared/typos/qlpack.yml b/shared/typos/qlpack.yml index 723b891ab21..ec9b54559f6 100644 --- a/shared/typos/qlpack.yml +++ b/shared/typos/qlpack.yml @@ -1,4 +1,4 @@ name: codeql/typos -version: 0.0.13 +version: 0.0.14-dev groups: shared library: true diff --git a/shared/util/qlpack.yml b/shared/util/qlpack.yml index b6cab33264f..9fe13ca503a 100644 --- a/shared/util/qlpack.yml +++ b/shared/util/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/util -version: 0.0.6 +version: 0.0.7-dev groups: shared library: true dependencies: From 8f565f50238574303b2dd1badd617f060002b1d1 Mon Sep 17 00:00:00 2001 From: Stephan Brandauer <kaeluka@github.com> Date: Fri, 17 Mar 2023 16:01:36 +0100 Subject: [PATCH 24/97] Update MaD Declarations after Triage --- java/ql/lib/ext/hudson.model.model.yml | 14 ++++++++++++++ java/ql/lib/ext/hudson.os.model.yml | 6 ++++++ java/ql/lib/ext/hudson.util.jna.model.yml | 8 ++++++++ java/ql/lib/ext/hudson.util.model.yml | 11 +++++++++++ java/ql/lib/ext/io.netty.bootstrap.model.yml | 8 ++++++++ java/ql/lib/ext/io.netty.channel.model.yml | 14 ++++++++++++++ .../lib/ext/io.netty.handler.codec.http.model.yml | 12 ++++++++++++ ...io.netty.handler.codec.http.multipart.model.yml | 6 ++++++ java/ql/lib/ext/io.netty.handler.ssl.model.yml | 7 +++++++ java/ql/lib/ext/io.netty.handler.stream.model.yml | 6 ++++++ java/ql/lib/ext/io.netty.util.internal.model.yml | 13 +++++++++++++ 11 files changed, 105 insertions(+) create mode 100644 java/ql/lib/ext/hudson.model.model.yml create mode 100644 java/ql/lib/ext/hudson.os.model.yml create mode 100644 java/ql/lib/ext/hudson.util.jna.model.yml create mode 100644 java/ql/lib/ext/hudson.util.model.yml create mode 100644 java/ql/lib/ext/io.netty.bootstrap.model.yml create mode 100644 java/ql/lib/ext/io.netty.channel.model.yml create mode 100644 java/ql/lib/ext/io.netty.handler.codec.http.model.yml create mode 100644 java/ql/lib/ext/io.netty.handler.codec.http.multipart.model.yml create mode 100644 java/ql/lib/ext/io.netty.handler.ssl.model.yml create mode 100644 java/ql/lib/ext/io.netty.handler.stream.model.yml create mode 100644 java/ql/lib/ext/io.netty.util.internal.model.yml diff --git a/java/ql/lib/ext/hudson.model.model.yml b/java/ql/lib/ext/hudson.model.model.yml new file mode 100644 index 00000000000..8cd424bed83 --- /dev/null +++ b/java/ql/lib/ext/hudson.model.model.yml @@ -0,0 +1,14 @@ +extensions: + - addsTo: + pack: codeql/java-all + extensible: summaryModel + data: + - ["hudson.model", "DirectoryBrowserSupport$Path", False, "Path", "(String,String,boolean,long,boolean,long)", "", "Argument[0]", "Argument[-1].SyntheticField[hudson.model.DirectoryBrowserSupport$Path.href]", "taint", "ai-generated"] + - addsTo: + pack: codeql/java-all + extensible: sinkModel + data: + - ["hudson.model", "DirectoryBrowserSupport", False, "DirectoryBrowserSupport", "(ModelObject,FilePath,String,String,boolean)", "", "Argument[1]", "read-file", "ai-generated"] + - ["hudson.model", "UpdateCenter$UpdateCenterConfiguration", True, "download", "(DownloadJob,URL)", "", "Argument[1]", "open-url", "ai-generated"] +# suggested label is not supported: - ["hudson.model", "UpdateCenter$UpdateCenterConfiguration", True, "install", "(DownloadJob,File,File)", "", "Argument[1]", "delete-file", "ai-generated"] + - ["hudson.model", "UpdateCenter$UpdateCenterConfiguration", True, "install", "(DownloadJob,File,File)", "", "Argument[2]", "create-file", "ai-generated"] diff --git a/java/ql/lib/ext/hudson.os.model.yml b/java/ql/lib/ext/hudson.os.model.yml new file mode 100644 index 00000000000..4949b84f84b --- /dev/null +++ b/java/ql/lib/ext/hudson.os.model.yml @@ -0,0 +1,6 @@ +extensions: + - addsTo: + pack: codeql/java-all + extensible: summaryModel + data: + - ["hudson.os", "WindowsUtil", True, "quoteArgument", "(String)", "", "Argument[0]", "ReturnValue", "taint", "ai-generated"] diff --git a/java/ql/lib/ext/hudson.util.jna.model.yml b/java/ql/lib/ext/hudson.util.jna.model.yml new file mode 100644 index 00000000000..695a28dc01e --- /dev/null +++ b/java/ql/lib/ext/hudson.util.jna.model.yml @@ -0,0 +1,8 @@ +extensions: + - addsTo: + pack: codeql/java-all + extensible: sinkModel + data: + - ["hudson.util.jna", "GNUCLibrary", True, "open", "(String,int)", "", "Argument[0]", "read-file", "ai-generated"] +# suggested label is not supported: - ["hudson.util.jna", "Kernel32", True, "MoveFileExA", "(String,String,int)", "", "Argument[0]", "delete-file", "ai-generated"] + - ["hudson.util.jna", "Kernel32", True, "MoveFileExA", "(String,String,int)", "", "Argument[1]", "create-file", "ai-generated"] diff --git a/java/ql/lib/ext/hudson.util.model.yml b/java/ql/lib/ext/hudson.util.model.yml new file mode 100644 index 00000000000..df34e56791f --- /dev/null +++ b/java/ql/lib/ext/hudson.util.model.yml @@ -0,0 +1,11 @@ +extensions: + - addsTo: + pack: codeql/java-all + extensible: summaryModel + data: + - ["hudson.util", "QuotedStringTokenizer", True, "tokenize", "(String)", "", "Argument[0]", "ReturnValue", "taint", "ai-generated"] + - addsTo: + pack: codeql/java-all + extensible: sinkModel + data: + - ["hudson.util", "StreamTaskListener", True, "StreamTaskListener", "(File,boolean,Charset)", "", "Argument[0]", "create-file", "ai-generated"] diff --git a/java/ql/lib/ext/io.netty.bootstrap.model.yml b/java/ql/lib/ext/io.netty.bootstrap.model.yml new file mode 100644 index 00000000000..c0af203cc41 --- /dev/null +++ b/java/ql/lib/ext/io.netty.bootstrap.model.yml @@ -0,0 +1,8 @@ +extensions: + - addsTo: + pack: codeql/java-all + extensible: sinkModel + data: + - ["io.netty.bootstrap", "Bootstrap", True, "connect", "(InetAddress,int)", "", "Argument[0]", "open-url", "ai-generated"] + - ["io.netty.bootstrap", "Bootstrap", True, "connect", "(SocketAddress)", "", "Argument[0]", "open-url", "ai-generated"] + - ["io.netty.bootstrap", "Bootstrap", True, "connect", "(String,int)", "", "Argument[0]", "open-url", "ai-generated"] diff --git a/java/ql/lib/ext/io.netty.channel.model.yml b/java/ql/lib/ext/io.netty.channel.model.yml new file mode 100644 index 00000000000..e1125013a63 --- /dev/null +++ b/java/ql/lib/ext/io.netty.channel.model.yml @@ -0,0 +1,14 @@ +extensions: + - addsTo: + pack: codeql/java-all + extensible: sinkModel + data: + - ["io.netty.channel", "Channel$Unsafe", True, "connect", "(SocketAddress,SocketAddress,ChannelPromise)", "", "Argument[0]", "open-url", "ai-generated"] + - ["io.netty.channel", "ChannelDuplexHandler", True, "connect", "(ChannelHandlerContext,SocketAddress,SocketAddress,ChannelPromise)", "", "Argument[1]", "open-url", "ai-generated"] + - ["io.netty.channel", "ChannelOutboundHandlerAdapter", True, "connect", "(ChannelHandlerContext,SocketAddress,SocketAddress,ChannelPromise)", "", "Argument[1]", "open-url", "ai-generated"] + - ["io.netty.channel", "ChannelOutboundInvoker", True, "connect", "(SocketAddress,ChannelPromise)", "", "Argument[0]", "open-url", "ai-generated"] + - ["io.netty.channel", "ChannelOutboundInvoker", True, "connect", "(SocketAddress,SocketAddress,ChannelPromise)", "", "Argument[0]", "open-url", "ai-generated"] + - ["io.netty.channel", "ChannelOutboundInvoker", True, "connect", "(SocketAddress)", "", "Argument[0]", "open-url", "ai-generated"] + - ["io.netty.channel", "DefaultChannelPipeline", False, "connect", "(SocketAddress,ChannelPromise)", "", "Argument[0]", "open-url", "ai-generated"] + - ["io.netty.channel", "DefaultChannelPipeline", False, "connect", "(SocketAddress,SocketAddress,ChannelPromise)", "", "Argument[0]", "open-url", "ai-generated"] + - ["io.netty.channel", "DefaultChannelPipeline", False, "connect", "(SocketAddress,SocketAddress)", "", "Argument[0]", "open-url", "ai-generated"] diff --git a/java/ql/lib/ext/io.netty.handler.codec.http.model.yml b/java/ql/lib/ext/io.netty.handler.codec.http.model.yml new file mode 100644 index 00000000000..a7a801d67dd --- /dev/null +++ b/java/ql/lib/ext/io.netty.handler.codec.http.model.yml @@ -0,0 +1,12 @@ +extensions: + - addsTo: + pack: codeql/java-all + extensible: sinkModel + data: + - ["io.netty.handler.codec.http", "DefaultFullHttpRequest", True, "DefaultFullHttpRequest", "(HttpVersion,HttpMethod,String,ByteBuf)", "", "Argument[2]", "open-url", "ai-generated"] + - ["io.netty.handler.codec.http", "DefaultHttpRequest", True, "DefaultHttpRequest", "(HttpVersion,HttpMethod,String)", "", "Argument[2]", "open-url", "ai-generated"] + - addsTo: + pack: codeql/java-all + extensible: summaryModel + data: + - ["io.netty.handler.codec.http", "QueryStringEncoder", True, "QueryStringEncoder", "(String)", "", "Argument[0]", "Argument[-1]", "taint", "ai-generated"] diff --git a/java/ql/lib/ext/io.netty.handler.codec.http.multipart.model.yml b/java/ql/lib/ext/io.netty.handler.codec.http.multipart.model.yml new file mode 100644 index 00000000000..5f0dceb85a0 --- /dev/null +++ b/java/ql/lib/ext/io.netty.handler.codec.http.multipart.model.yml @@ -0,0 +1,6 @@ +extensions: + - addsTo: + pack: codeql/java-all + extensible: sinkModel + data: + - ["io.netty.handler.codec.http.multipart", "HttpPostRequestEncoder", True, "addBodyFileUpload", "(String,File,String,boolean)", "", "Argument[1]", "read-file", "ai-generated"] diff --git a/java/ql/lib/ext/io.netty.handler.ssl.model.yml b/java/ql/lib/ext/io.netty.handler.ssl.model.yml new file mode 100644 index 00000000000..866ad705071 --- /dev/null +++ b/java/ql/lib/ext/io.netty.handler.ssl.model.yml @@ -0,0 +1,7 @@ +extensions: + - addsTo: + pack: codeql/java-all + extensible: sinkModel + data: + - ["io.netty.handler.ssl", "OpenSslServerContext", False, "OpenSslServerContext", "(File,File)", "", "Argument[0]", "read-file", "ai-generated"] + - ["io.netty.handler.ssl", "SslContextBuilder", False, "forServer", "(File,File)", "", "Argument[0]", "read-file", "ai-generated"] diff --git a/java/ql/lib/ext/io.netty.handler.stream.model.yml b/java/ql/lib/ext/io.netty.handler.stream.model.yml new file mode 100644 index 00000000000..ce9ea0c7689 --- /dev/null +++ b/java/ql/lib/ext/io.netty.handler.stream.model.yml @@ -0,0 +1,6 @@ +extensions: + - addsTo: + pack: codeql/java-all + extensible: sinkModel + data: + - ["io.netty.handler.stream", "ChunkedFile", True, "ChunkedFile", "(RandomAccessFile,long,long,int)", "", "Argument[0]", "read-file", "ai-generated"] diff --git a/java/ql/lib/ext/io.netty.util.internal.model.yml b/java/ql/lib/ext/io.netty.util.internal.model.yml new file mode 100644 index 00000000000..1cb548d9ed2 --- /dev/null +++ b/java/ql/lib/ext/io.netty.util.internal.model.yml @@ -0,0 +1,13 @@ +extensions: + - addsTo: + pack: codeql/java-all + extensible: sinkModel + data: + - ["io.netty.util.internal", "PlatformDependent", False, "createTempFile", "(String,String,File)", "", "Argument[2]", "create-file", "ai-generated"] + - ["io.netty.util.internal", "SocketUtils", False, "connect", "(Socket,SocketAddress,int)", "", "Argument[1]", "open-url", "ai-generated"] + - addsTo: + pack: codeql/java-all + extensible: summaryModel + data: + - ["io.netty.util.internal", "SocketUtils", False, "addressByName", "(String)", "", "Argument[0]", "ReturnValue", "taint", "ai-generated"] + - ["io.netty.util.internal", "SocketUtils", False, "allAddressesByName", "(String)", "", "Argument[0]", "ReturnValue", "taint", "ai-generated"] From e60e1a2ba9b1b7de7832aac66fb3539c1063553c Mon Sep 17 00:00:00 2001 From: Ed Minnix <egregius313@github.com> Date: Wed, 15 Mar 2023 13:10:58 -0400 Subject: [PATCH 25/97] Refactor Security.CWE.CWE-022.TaintedPathLocal --- .../Security/CWE/CWE-022/TaintedPathLocal.ql | 23 ++++++++++--------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/java/ql/src/Security/CWE/CWE-022/TaintedPathLocal.ql b/java/ql/src/Security/CWE/CWE-022/TaintedPathLocal.ql index 506dc2ad65e..e31d9a172b1 100644 --- a/java/ql/src/Security/CWE/CWE-022/TaintedPathLocal.ql +++ b/java/ql/src/Security/CWE/CWE-022/TaintedPathLocal.ql @@ -18,32 +18,33 @@ import semmle.code.java.dataflow.FlowSources private import semmle.code.java.dataflow.ExternalFlow import semmle.code.java.security.PathCreation import semmle.code.java.security.PathSanitizer -import DataFlow::PathGraph import TaintedPathCommon -class TaintedPathLocalConfig extends TaintTracking::Configuration { - TaintedPathLocalConfig() { this = "TaintedPathLocalConfig" } +private module TaintedPathLocalConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof LocalUserInput } - override predicate isSource(DataFlow::Node source) { source instanceof LocalUserInput } - - override predicate isSink(DataFlow::Node sink) { + predicate isSink(DataFlow::Node sink) { sink.asExpr() = any(PathCreation p).getAnInput() or sinkNode(sink, "create-file") } - override predicate isSanitizer(DataFlow::Node sanitizer) { + predicate isBarrier(DataFlow::Node sanitizer) { sanitizer.getType() instanceof BoxedType or sanitizer.getType() instanceof PrimitiveType or sanitizer.getType() instanceof NumberType or sanitizer instanceof PathInjectionSanitizer } - override predicate isAdditionalTaintStep(DataFlow::Node n1, DataFlow::Node n2) { + predicate isAdditionalFlowStep(DataFlow::Node n1, DataFlow::Node n2) { any(TaintedPathAdditionalTaintStep s).step(n1, n2) } } +module TaintedPathLocalFlow = TaintTracking::Make<TaintedPathLocalConfig>; + +import TaintedPathLocalFlow::PathGraph + /** * Gets the data-flow node at which to report a path ending at `sink`. * @@ -52,13 +53,13 @@ class TaintedPathLocalConfig extends TaintTracking::Configuration { * continue to report there; otherwise we report directly at `sink`. */ DataFlow::Node getReportingNode(DataFlow::Node sink) { - any(TaintedPathLocalConfig c).hasFlowTo(sink) and + TaintedPathLocalFlow::hasFlowTo(sink) and if exists(PathCreation pc | pc.getAnInput() = sink.asExpr()) then result.asExpr() = any(PathCreation pc | pc.getAnInput() = sink.asExpr()) else result = sink } -from DataFlow::PathNode source, DataFlow::PathNode sink, TaintedPathLocalConfig conf -where conf.hasFlowPath(source, sink) +from TaintedPathLocalFlow::PathNode source, TaintedPathLocalFlow::PathNode sink +where TaintedPathLocalFlow::hasFlowPath(source, sink) select getReportingNode(sink.getNode()), source, sink, "This path depends on a $@.", source.getNode(), "user-provided value" From 07fdcf2d04665f56457275cbc0ed932e12605130 Mon Sep 17 00:00:00 2001 From: Ed Minnix <egregius313@github.com> Date: Wed, 15 Mar 2023 13:16:31 -0400 Subject: [PATCH 26/97] Refactor Security.CWE.CWE-022.ZipSlip --- java/ql/src/Security/CWE/CWE-022/ZipSlip.ql | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/java/ql/src/Security/CWE/CWE-022/ZipSlip.ql b/java/ql/src/Security/CWE/CWE-022/ZipSlip.ql index 3f63123cfb6..b03c12c471a 100644 --- a/java/ql/src/Security/CWE/CWE-022/ZipSlip.ql +++ b/java/ql/src/Security/CWE/CWE-022/ZipSlip.ql @@ -17,8 +17,6 @@ import semmle.code.java.controlflow.Guards import semmle.code.java.dataflow.SSA import semmle.code.java.dataflow.TaintTracking import semmle.code.java.security.PathSanitizer -import DataFlow -import PathGraph private import semmle.code.java.dataflow.ExternalFlow /** @@ -36,18 +34,20 @@ class ArchiveEntryNameMethod extends Method { } } -class ZipSlipConfiguration extends TaintTracking::Configuration { - ZipSlipConfiguration() { this = "ZipSlip" } - - override predicate isSource(Node source) { +private module ZipSlipConfiguration implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source.asExpr().(MethodAccess).getMethod() instanceof ArchiveEntryNameMethod } - override predicate isSink(Node sink) { sink instanceof FileCreationSink } + predicate isSink(DataFlow::Node sink) { sink instanceof FileCreationSink } - override predicate isSanitizer(Node node) { node instanceof PathInjectionSanitizer } + predicate isBarrier(DataFlow::Node node) { node instanceof PathInjectionSanitizer } } +module ZipSlipFlow = TaintTracking::Make<ZipSlipConfiguration>; + +import ZipSlipFlow::PathGraph + /** * A sink that represents a file creation, such as a file write, copy or move operation. */ @@ -55,8 +55,8 @@ private class FileCreationSink extends DataFlow::Node { FileCreationSink() { sinkNode(this, "create-file") } } -from PathNode source, PathNode sink -where any(ZipSlipConfiguration c).hasFlowPath(source, sink) +from ZipSlipFlow::PathNode source, ZipSlipFlow::PathNode sink +where ZipSlipFlow::hasFlowPath(source, sink) select source.getNode(), source, sink, "Unsanitized archive entry, which may contain '..', is used in a $@.", sink.getNode(), "file system operation" From 7aecefc4aa6c5a1efa7521451529cfe544bc4748 Mon Sep 17 00:00:00 2001 From: Ed Minnix <egregius313@github.com> Date: Wed, 15 Mar 2023 13:23:16 -0400 Subject: [PATCH 27/97] Refactor Security.CWE.CWE-090.LdapInjectionLib --- java/ql/src/Security/CWE/CWE-090/LdapInjection.ql | 6 +++--- .../src/Security/CWE/CWE-090/LdapInjectionLib.qll | 15 +++++++-------- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/java/ql/src/Security/CWE/CWE-090/LdapInjection.ql b/java/ql/src/Security/CWE/CWE-090/LdapInjection.ql index b263c7484a6..66371f161ca 100644 --- a/java/ql/src/Security/CWE/CWE-090/LdapInjection.ql +++ b/java/ql/src/Security/CWE/CWE-090/LdapInjection.ql @@ -14,9 +14,9 @@ import java import semmle.code.java.dataflow.FlowSources import LdapInjectionLib -import DataFlow::PathGraph +import LdapInjectionFlow::PathGraph -from DataFlow::PathNode source, DataFlow::PathNode sink, LdapInjectionFlowConfig conf -where conf.hasFlowPath(source, sink) +from LdapInjectionFlow::PathNode source, LdapInjectionFlow::PathNode sink +where LdapInjectionFlow::hasFlowPath(source, sink) select sink.getNode(), source, sink, "This LDAP query depends on a $@.", source.getNode(), "user-provided value" diff --git a/java/ql/src/Security/CWE/CWE-090/LdapInjectionLib.qll b/java/ql/src/Security/CWE/CWE-090/LdapInjectionLib.qll index 2304ec1cd02..712a9e82002 100644 --- a/java/ql/src/Security/CWE/CWE-090/LdapInjectionLib.qll +++ b/java/ql/src/Security/CWE/CWE-090/LdapInjectionLib.qll @@ -1,21 +1,20 @@ import java import semmle.code.java.dataflow.FlowSources -import DataFlow import semmle.code.java.security.LdapInjection /** * A taint-tracking configuration for unvalidated user input that is used to construct LDAP queries. */ -class LdapInjectionFlowConfig extends TaintTracking::Configuration { - LdapInjectionFlowConfig() { this = "LdapInjectionFlowConfig" } +private module LdapInjectionFlowConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource } - override predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource } + predicate isSink(DataFlow::Node sink) { sink instanceof LdapInjectionSink } - override predicate isSink(DataFlow::Node sink) { sink instanceof LdapInjectionSink } + predicate isBarrier(DataFlow::Node node) { node instanceof LdapInjectionSanitizer } - override predicate isSanitizer(DataFlow::Node node) { node instanceof LdapInjectionSanitizer } - - override predicate isAdditionalTaintStep(DataFlow::Node pred, DataFlow::Node succ) { + predicate isAdditionalFlowStep(DataFlow::Node pred, DataFlow::Node succ) { any(LdapInjectionAdditionalTaintStep a).step(pred, succ) } } + +module LdapInjectionFlow = TaintTracking::Make<LdapInjectionFlowConfig>; From ac223ea57f56fa3330981b83acf41832c2d296ba Mon Sep 17 00:00:00 2001 From: Ed Minnix <egregius313@github.com> Date: Wed, 15 Mar 2023 13:33:01 -0400 Subject: [PATCH 28/97] Refactor Security.CWE.CWE-094.InsecureBeanValidation --- .../CWE/CWE-094/InsecureBeanValidation.ql | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/java/ql/src/Security/CWE/CWE-094/InsecureBeanValidation.ql b/java/ql/src/Security/CWE/CWE-094/InsecureBeanValidation.ql index 2f8e11b207b..2e431f6fece 100644 --- a/java/ql/src/Security/CWE/CWE-094/InsecureBeanValidation.ql +++ b/java/ql/src/Security/CWE/CWE-094/InsecureBeanValidation.ql @@ -13,7 +13,6 @@ import java import semmle.code.java.dataflow.TaintTracking import semmle.code.java.dataflow.FlowSources -import DataFlow::PathGraph private import semmle.code.java.dataflow.ExternalFlow /** @@ -56,14 +55,16 @@ class SetMessageInterpolatorCall extends MethodAccess { * Taint tracking BeanValidationConfiguration describing the flow of data from user input * to the argument of a method that builds constraint error messages. */ -class BeanValidationConfig extends TaintTracking::Configuration { - BeanValidationConfig() { this = "BeanValidationConfig" } +private module BeanValidationConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource } - override predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource } - - override predicate isSink(DataFlow::Node sink) { sink instanceof BeanValidationSink } + predicate isSink(DataFlow::Node sink) { sink instanceof BeanValidationSink } } +module BeanValidationFlow = TaintTracking::Make<BeanValidationConfig>; + +import BeanValidationFlow::PathGraph + /** * A bean validation sink, such as method `buildConstraintViolationWithTemplate` * declared on a subtype of `javax.validation.ConstraintValidatorContext`. @@ -72,13 +73,13 @@ private class BeanValidationSink extends DataFlow::Node { BeanValidationSink() { sinkNode(this, "bean-validation") } } -from BeanValidationConfig cfg, DataFlow::PathNode source, DataFlow::PathNode sink +from BeanValidationFlow::PathNode source, BeanValidationFlow::PathNode sink where ( not exists(SetMessageInterpolatorCall c) or exists(SetMessageInterpolatorCall c | not c.isSafe()) ) and - cfg.hasFlowPath(source, sink) + BeanValidationFlow::hasFlowPath(source, sink) select sink.getNode(), source, sink, "Custom constraint error message contains an unsanitized $@.", source, "user-provided value" From d34dbbc96f0743e44233e0429571bacded0896dc Mon Sep 17 00:00:00 2001 From: Ed Minnix <egregius313@github.com> Date: Wed, 15 Mar 2023 13:39:19 -0400 Subject: [PATCH 29/97] Refactor Security.CWE.CWE-134.ExternallyControlledFormatString --- .../ExternallyControlledFormatString.ql | 24 +++++++++++-------- .../ExternallyControlledFormatStringLocal.ql | 24 ++++++++++--------- 2 files changed, 27 insertions(+), 21 deletions(-) diff --git a/java/ql/src/Security/CWE/CWE-134/ExternallyControlledFormatString.ql b/java/ql/src/Security/CWE/CWE-134/ExternallyControlledFormatString.ql index 942c5d25950..da5bc5372a4 100644 --- a/java/ql/src/Security/CWE/CWE-134/ExternallyControlledFormatString.ql +++ b/java/ql/src/Security/CWE/CWE-134/ExternallyControlledFormatString.ql @@ -13,25 +13,29 @@ import java import semmle.code.java.dataflow.FlowSources import semmle.code.java.StringFormat -import DataFlow::PathGraph -class ExternallyControlledFormatStringConfig extends TaintTracking::Configuration { - ExternallyControlledFormatStringConfig() { this = "ExternallyControlledFormatStringConfig" } +module ExternallyControlledFormatStringConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource } - override predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource } - - override predicate isSink(DataFlow::Node sink) { + predicate isSink(DataFlow::Node sink) { sink.asExpr() = any(StringFormat formatCall).getFormatArgument() } - override predicate isSanitizer(DataFlow::Node node) { + predicate isBarrier(DataFlow::Node node) { node.getType() instanceof NumericType or node.getType() instanceof BooleanType } } +module ExternallyControlledFormatStringFlow = + TaintTracking::Make<ExternallyControlledFormatStringConfig>; + +import ExternallyControlledFormatStringFlow::PathGraph + from - DataFlow::PathNode source, DataFlow::PathNode sink, StringFormat formatCall, - ExternallyControlledFormatStringConfig conf -where conf.hasFlowPath(source, sink) and sink.getNode().asExpr() = formatCall.getFormatArgument() + ExternallyControlledFormatStringFlow::PathNode source, + ExternallyControlledFormatStringFlow::PathNode sink, StringFormat formatCall +where + ExternallyControlledFormatStringFlow::hasFlowPath(source, sink) and + sink.getNode().asExpr() = formatCall.getFormatArgument() select formatCall.getFormatArgument(), source, sink, "Format string depends on a $@.", source.getNode(), "user-provided value" diff --git a/java/ql/src/Security/CWE/CWE-134/ExternallyControlledFormatStringLocal.ql b/java/ql/src/Security/CWE/CWE-134/ExternallyControlledFormatStringLocal.ql index 2cd3a0c29da..f418372647f 100644 --- a/java/ql/src/Security/CWE/CWE-134/ExternallyControlledFormatStringLocal.ql +++ b/java/ql/src/Security/CWE/CWE-134/ExternallyControlledFormatStringLocal.ql @@ -13,23 +13,25 @@ import java import semmle.code.java.dataflow.FlowSources import semmle.code.java.StringFormat -import DataFlow::PathGraph -class ExternallyControlledFormatStringLocalConfig extends TaintTracking::Configuration { - ExternallyControlledFormatStringLocalConfig() { - this = "ExternallyControlledFormatStringLocalConfig" - } +private module ExternallyControlledFormatStringLocalConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof LocalUserInput } - override predicate isSource(DataFlow::Node source) { source instanceof LocalUserInput } - - override predicate isSink(DataFlow::Node sink) { + predicate isSink(DataFlow::Node sink) { sink.asExpr() = any(StringFormat formatCall).getFormatArgument() } } +module ExternallyControlledFormatStringLocalFlow = + TaintTracking::Make<ExternallyControlledFormatStringLocalConfig>; + +import ExternallyControlledFormatStringLocalFlow::PathGraph + from - DataFlow::PathNode source, DataFlow::PathNode sink, StringFormat formatCall, - ExternallyControlledFormatStringLocalConfig conf -where conf.hasFlowPath(source, sink) and sink.getNode().asExpr() = formatCall.getFormatArgument() + ExternallyControlledFormatStringLocalFlow::PathNode source, + ExternallyControlledFormatStringLocalFlow::PathNode sink, StringFormat formatCall +where + ExternallyControlledFormatStringLocalFlow::hasFlowPath(source, sink) and + sink.getNode().asExpr() = formatCall.getFormatArgument() select formatCall.getFormatArgument(), source, sink, "Format string depends on a $@.", source.getNode(), "user-provided value" From 4a202b430f0a77ce03366c82f9587e8f8cd4c9d3 Mon Sep 17 00:00:00 2001 From: Ed Minnix <egregius313@github.com> Date: Wed, 15 Mar 2023 14:15:38 -0400 Subject: [PATCH 30/97] Security.CWE.CWE-200.AndroidWebViewSettingsAllowsContentAccess --- ...droidWebViewSettingsAllowsContentAccess.ql | 32 ++++++++++++------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/java/ql/src/Security/CWE/CWE-200/AndroidWebViewSettingsAllowsContentAccess.ql b/java/ql/src/Security/CWE/CWE-200/AndroidWebViewSettingsAllowsContentAccess.ql index d1f4f33917a..7ac14ff3c48 100644 --- a/java/ql/src/Security/CWE/CWE-200/AndroidWebViewSettingsAllowsContentAccess.ql +++ b/java/ql/src/Security/CWE/CWE-200/AndroidWebViewSettingsAllowsContentAccess.ql @@ -61,10 +61,16 @@ class WebSettingsDisallowContentAccessSink extends DataFlow::Node { } } -class WebViewDisallowContentAccessConfiguration extends TaintTracking::Configuration { - WebViewDisallowContentAccessConfiguration() { this = "WebViewDisallowContentAccessConfiguration" } +private newtype WebViewOrSettings = + IsWebView() or + IsSettings() - override predicate isSource(DataFlow::Node node) { node instanceof WebViewSource } +private module WebViewDisallowContentAccessConfiguration implements DataFlow::StateConfigSig { + class FlowState = WebViewOrSettings; + + predicate isSource(DataFlow::Node node, FlowState state) { + node instanceof WebViewSource and state instanceof IsWebView + } /** * Holds if the step from `node1` to `node2` is a dataflow step that gets the `WebSettings` object @@ -73,12 +79,11 @@ class WebViewDisallowContentAccessConfiguration extends TaintTracking::Configura * This step is only valid when `state1` is empty and `state2` indicates that the `WebSettings` object * has been accessed. */ - override predicate isAdditionalTaintStep( - DataFlow::Node node1, DataFlow::FlowState state1, DataFlow::Node node2, - DataFlow::FlowState state2 + predicate isAdditionalFlowStep( + DataFlow::Node node1, FlowState state1, DataFlow::Node node2, FlowState state2 ) { - state1 instanceof DataFlow::FlowStateEmpty and - state2 = "WebSettings" and + state1 instanceof IsWebView and + state2 instanceof IsSettings and // settings = webView.getSettings() // ^node2 = ^node1 exists(MethodAccess ma | @@ -88,12 +93,17 @@ class WebViewDisallowContentAccessConfiguration extends TaintTracking::Configura ) } - override predicate isSink(DataFlow::Node node, DataFlow::FlowState state) { - state = "WebSettings" and + predicate isSink(DataFlow::Node node, FlowState state) { + state instanceof IsSettings and node instanceof WebSettingsDisallowContentAccessSink } + + predicate isBarrier(DataFlow::Node node, FlowState state) { none() } } +module WebViewDisallowContentAccessFlow = + TaintTracking::MakeWithState<WebViewDisallowContentAccessConfiguration>; + from Expr e where // explicit: setAllowContentAccess(true) @@ -106,7 +116,7 @@ where // implicit: no setAllowContentAccess(false) exists(WebViewSource source | source.asExpr() = e and - not any(WebViewDisallowContentAccessConfiguration cfg).hasFlow(source, _) + not WebViewDisallowContentAccessFlow::hasFlow(source, _) ) select e, "Sensitive information may be exposed via a malicious link due to access to content:// links being allowed in this WebView." From 7bd7ecd9e64b68bf03d51209c3e12e1b00405462 Mon Sep 17 00:00:00 2001 From: Ed Minnix <egregius313@github.com> Date: Wed, 15 Mar 2023 14:23:37 -0400 Subject: [PATCH 31/97] Refactor Security.CWE.CWE-190 Arithmetic queries --- .../CWE/CWE-190/ArithmeticTaintedLocal.ql | 36 ++++++++++------- .../CWE/CWE-190/ArithmeticUncontrolled.ql | 36 ++++++++++------- .../CWE-190/ArithmeticWithExtremeValues.ql | 40 ++++++++++--------- 3 files changed, 64 insertions(+), 48 deletions(-) diff --git a/java/ql/src/Security/CWE/CWE-190/ArithmeticTaintedLocal.ql b/java/ql/src/Security/CWE/CWE-190/ArithmeticTaintedLocal.ql index 1dc6e8a6d06..eb7dfb680ab 100644 --- a/java/ql/src/Security/CWE/CWE-190/ArithmeticTaintedLocal.ql +++ b/java/ql/src/Security/CWE/CWE-190/ArithmeticTaintedLocal.ql @@ -15,35 +15,41 @@ import java import semmle.code.java.dataflow.FlowSources import ArithmeticCommon -import DataFlow::PathGraph -class ArithmeticTaintedLocalOverflowConfig extends TaintTracking::Configuration { - ArithmeticTaintedLocalOverflowConfig() { this = "ArithmeticTaintedLocalOverflowConfig" } +private module ArithmeticTaintedLocalOverflowConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof LocalUserInput } - override predicate isSource(DataFlow::Node source) { source instanceof LocalUserInput } + predicate isSink(DataFlow::Node sink) { overflowSink(_, sink.asExpr()) } - override predicate isSink(DataFlow::Node sink) { overflowSink(_, sink.asExpr()) } - - override predicate isSanitizer(DataFlow::Node n) { overflowBarrier(n) } + predicate isBarrier(DataFlow::Node n) { overflowBarrier(n) } } -class ArithmeticTaintedLocalUnderflowConfig extends TaintTracking::Configuration { - ArithmeticTaintedLocalUnderflowConfig() { this = "ArithmeticTaintedLocalUnderflowConfig" } +module ArithmeticTaintedLocalOverflowFlow = + TaintTracking::Make<ArithmeticTaintedLocalOverflowConfig>; - override predicate isSource(DataFlow::Node source) { source instanceof LocalUserInput } +private module ArithmeticTaintedLocalUnderflowConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof LocalUserInput } - override predicate isSink(DataFlow::Node sink) { underflowSink(_, sink.asExpr()) } + predicate isSink(DataFlow::Node sink) { underflowSink(_, sink.asExpr()) } - override predicate isSanitizer(DataFlow::Node n) { underflowBarrier(n) } + predicate isBarrier(DataFlow::Node n) { underflowBarrier(n) } } -from DataFlow::PathNode source, DataFlow::PathNode sink, ArithExpr exp, string effect +module ArithmeticTaintedLocalUnderflowFlow = + TaintTracking::Make<ArithmeticTaintedLocalUnderflowConfig>; + +module Flow = + DataFlow::MergePathGraph<ArithmeticTaintedLocalOverflowFlow::PathNode, ArithmeticTaintedLocalUnderflowFlow::PathNode, ArithmeticTaintedLocalOverflowFlow::PathGraph, ArithmeticTaintedLocalUnderflowFlow::PathGraph>; + +import Flow::PathGraph + +from Flow::PathNode source, Flow::PathNode sink, ArithExpr exp, string effect where - any(ArithmeticTaintedLocalOverflowConfig c).hasFlowPath(source, sink) and + ArithmeticTaintedLocalOverflowFlow::hasFlowPath(source.asPathNode1(), sink.asPathNode1()) and overflowSink(exp, sink.getNode().asExpr()) and effect = "overflow" or - any(ArithmeticTaintedLocalUnderflowConfig c).hasFlowPath(source, sink) and + ArithmeticTaintedLocalUnderflowFlow::hasFlowPath(source.asPathNode2(), sink.asPathNode2()) and underflowSink(exp, sink.getNode().asExpr()) and effect = "underflow" select exp, source, sink, diff --git a/java/ql/src/Security/CWE/CWE-190/ArithmeticUncontrolled.ql b/java/ql/src/Security/CWE/CWE-190/ArithmeticUncontrolled.ql index 015abf5831f..32b33c68bec 100644 --- a/java/ql/src/Security/CWE/CWE-190/ArithmeticUncontrolled.ql +++ b/java/ql/src/Security/CWE/CWE-190/ArithmeticUncontrolled.ql @@ -17,7 +17,6 @@ import semmle.code.java.dataflow.TaintTracking import semmle.code.java.security.RandomQuery import semmle.code.java.security.SecurityTests import ArithmeticCommon -import DataFlow::PathGraph class TaintSource extends DataFlow::ExprNode { TaintSource() { @@ -25,33 +24,40 @@ class TaintSource extends DataFlow::ExprNode { } } -class ArithmeticUncontrolledOverflowConfig extends TaintTracking::Configuration { - ArithmeticUncontrolledOverflowConfig() { this = "ArithmeticUncontrolledOverflowConfig" } +private module ArithmeticUncontrolledOverflowConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof TaintSource } - override predicate isSource(DataFlow::Node source) { source instanceof TaintSource } + predicate isSink(DataFlow::Node sink) { overflowSink(_, sink.asExpr()) } - override predicate isSink(DataFlow::Node sink) { overflowSink(_, sink.asExpr()) } - - override predicate isSanitizer(DataFlow::Node n) { overflowBarrier(n) } + predicate isBarrier(DataFlow::Node n) { overflowBarrier(n) } } -class ArithmeticUncontrolledUnderflowConfig extends TaintTracking::Configuration { - ArithmeticUncontrolledUnderflowConfig() { this = "ArithmeticUncontrolledUnderflowConfig" } +module ArithmeticUncontrolledOverflowFlow = + TaintTracking::Make<ArithmeticUncontrolledOverflowConfig>; - override predicate isSource(DataFlow::Node source) { source instanceof TaintSource } +private module ArithmeticUncontrolledUnderflowConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof TaintSource } - override predicate isSink(DataFlow::Node sink) { underflowSink(_, sink.asExpr()) } + predicate isSink(DataFlow::Node sink) { underflowSink(_, sink.asExpr()) } - override predicate isSanitizer(DataFlow::Node n) { underflowBarrier(n) } + predicate isBarrier(DataFlow::Node n) { underflowBarrier(n) } } -from DataFlow::PathNode source, DataFlow::PathNode sink, ArithExpr exp, string effect +module ArithmeticUncontrolledUnderflowFlow = + TaintTracking::Make<ArithmeticUncontrolledUnderflowConfig>; + +module Flow = + DataFlow::MergePathGraph<ArithmeticUncontrolledOverflowFlow::PathNode, ArithmeticUncontrolledUnderflowFlow::PathNode, ArithmeticUncontrolledOverflowFlow::PathGraph, ArithmeticUncontrolledUnderflowFlow::PathGraph>; + +import Flow::PathGraph + +from Flow::PathNode source, Flow::PathNode sink, ArithExpr exp, string effect where - any(ArithmeticUncontrolledOverflowConfig c).hasFlowPath(source, sink) and + ArithmeticUncontrolledOverflowFlow::hasFlowPath(source.asPathNode1(), sink.asPathNode1()) and overflowSink(exp, sink.getNode().asExpr()) and effect = "overflow" or - any(ArithmeticUncontrolledUnderflowConfig c).hasFlowPath(source, sink) and + ArithmeticUncontrolledUnderflowFlow::hasFlowPath(source.asPathNode2(), sink.asPathNode2()) and underflowSink(exp, sink.getNode().asExpr()) and effect = "underflow" select exp, source, sink, diff --git a/java/ql/src/Security/CWE/CWE-190/ArithmeticWithExtremeValues.ql b/java/ql/src/Security/CWE/CWE-190/ArithmeticWithExtremeValues.ql index cf5cf2f39a8..72801f205aa 100644 --- a/java/ql/src/Security/CWE/CWE-190/ArithmeticWithExtremeValues.ql +++ b/java/ql/src/Security/CWE/CWE-190/ArithmeticWithExtremeValues.ql @@ -16,7 +16,6 @@ import java import semmle.code.java.dataflow.DataFlow import ArithmeticCommon -import DataFlow::PathGraph abstract class ExtremeValueField extends Field { ExtremeValueField() { this.getType() instanceof IntegralType } @@ -34,43 +33,48 @@ class ExtremeSource extends VarAccess { ExtremeSource() { this.getVariable() instanceof ExtremeValueField } } -class MaxValueFlowConfig extends DataFlow::Configuration { - MaxValueFlowConfig() { this = "MaxValueFlowConfig" } - - override predicate isSource(DataFlow::Node source) { +private module MaxValueFlowConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source.asExpr().(ExtremeSource).getVariable() instanceof MaxValueField } - override predicate isSink(DataFlow::Node sink) { overflowSink(_, sink.asExpr()) } + predicate isSink(DataFlow::Node sink) { overflowSink(_, sink.asExpr()) } - override predicate isBarrierIn(DataFlow::Node n) { this.isSource(n) } + predicate isBarrierIn(DataFlow::Node n) { isSource(n) } - override predicate isBarrier(DataFlow::Node n) { overflowBarrier(n) } + predicate isBarrier(DataFlow::Node n) { overflowBarrier(n) } } -class MinValueFlowConfig extends DataFlow::Configuration { - MinValueFlowConfig() { this = "MinValueFlowConfig" } +module MaxValueFlow = DataFlow::Make<MaxValueFlowConfig>; - override predicate isSource(DataFlow::Node source) { +private module MinValueFlowConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source.asExpr().(ExtremeSource).getVariable() instanceof MinValueField } - override predicate isSink(DataFlow::Node sink) { underflowSink(_, sink.asExpr()) } + predicate isSink(DataFlow::Node sink) { underflowSink(_, sink.asExpr()) } - override predicate isBarrierIn(DataFlow::Node n) { this.isSource(n) } + predicate isBarrierIn(DataFlow::Node n) { isSource(n) } - override predicate isBarrier(DataFlow::Node n) { underflowBarrier(n) } + predicate isBarrier(DataFlow::Node n) { underflowBarrier(n) } } +module MinValueFlow = DataFlow::Make<MinValueFlowConfig>; + +module Flow = + DataFlow::MergePathGraph<MaxValueFlow::PathNode, MinValueFlow::PathNode, MaxValueFlow::PathGraph, MinValueFlow::PathGraph>; + +import Flow::PathGraph + predicate query( - DataFlow::PathNode source, DataFlow::PathNode sink, ArithExpr exp, string effect, Type srctyp + Flow::PathNode source, Flow::PathNode sink, ArithExpr exp, string effect, Type srctyp ) { ( - any(MaxValueFlowConfig c).hasFlowPath(source, sink) and + MaxValueFlow::hasFlowPath(source.asPathNode1(), sink.asPathNode1()) and overflowSink(exp, sink.getNode().asExpr()) and effect = "overflow" or - any(MinValueFlowConfig c).hasFlowPath(source, sink) and + MinValueFlow::hasFlowPath(source.asPathNode2(), sink.asPathNode2()) and underflowSink(exp, sink.getNode().asExpr()) and effect = "underflow" ) and @@ -78,7 +82,7 @@ predicate query( } from - DataFlow::PathNode source, DataFlow::PathNode sink, ArithExpr exp, Variable v, ExtremeSource s, + Flow::PathNode source, Flow::PathNode sink, ArithExpr exp, Variable v, ExtremeSource s, string effect, Type srctyp where query(source, sink, exp, effect, srctyp) and From 481d1f9b15b0e396250f200c20fc1dd6ca2aeb00 Mon Sep 17 00:00:00 2001 From: Ed Minnix <egregius313@github.com> Date: Wed, 15 Mar 2023 14:24:19 -0400 Subject: [PATCH 32/97] Refactor Security.CWE.CWE-297.UnsafeHostnameVerification --- .../CWE/CWE-297/UnsafeHostnameVerification.ql | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/java/ql/src/Security/CWE/CWE-297/UnsafeHostnameVerification.ql b/java/ql/src/Security/CWE/CWE-297/UnsafeHostnameVerification.ql index bc306750e47..e1a94c62dba 100644 --- a/java/ql/src/Security/CWE/CWE-297/UnsafeHostnameVerification.ql +++ b/java/ql/src/Security/CWE/CWE-297/UnsafeHostnameVerification.ql @@ -16,7 +16,6 @@ import semmle.code.java.dataflow.DataFlow import semmle.code.java.dataflow.FlowSources import semmle.code.java.security.Encryption import semmle.code.java.security.SecurityFlag -import DataFlow::PathGraph private import semmle.code.java.dataflow.ExternalFlow /** @@ -29,7 +28,7 @@ private predicate alwaysReturnsTrue(HostnameVerifierVerify m) { } /** - * A class that overrides the `javax.net.ssl.HostnameVerifier.verify` method and **always** returns `true` (though it could also exit due to an uncaught exception), thus + * A class that s the `javax.net.ssl.HostnameVerifier.verify` method and **always** returns `true` (though it could also exit due to an uncaught exception), thus * accepting any certificate despite a hostname mismatch. */ class TrustAllHostnameVerifier extends RefType { @@ -45,16 +44,14 @@ class TrustAllHostnameVerifier extends RefType { /** * A configuration to model the flow of a `TrustAllHostnameVerifier` to a `set(Default)HostnameVerifier` call. */ -class TrustAllHostnameVerifierConfiguration extends DataFlow::Configuration { - TrustAllHostnameVerifierConfiguration() { this = "TrustAllHostnameVerifierConfiguration" } - - override predicate isSource(DataFlow::Node source) { +private module TrustAllHostnameVerifierConfiguration implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source.asExpr().(ClassInstanceExpr).getConstructedType() instanceof TrustAllHostnameVerifier } - override predicate isSink(DataFlow::Node sink) { sink instanceof HostnameVerifierSink } + predicate isSink(DataFlow::Node sink) { sink instanceof HostnameVerifierSink } - override predicate isBarrier(DataFlow::Node barrier) { + predicate isBarrier(DataFlow::Node barrier) { // ignore nodes that are in functions that intentionally disable hostname verification barrier .getEnclosingCallable() @@ -80,6 +77,10 @@ class TrustAllHostnameVerifierConfiguration extends DataFlow::Configuration { } } +module TrustAllHostnameVerifierFlow = DataFlow::Make<TrustAllHostnameVerifierConfiguration>; + +import TrustAllHostnameVerifierFlow::PathGraph + /** * A sink that sets the `HostnameVerifier` on `HttpsURLConnection`. */ @@ -114,10 +115,10 @@ private predicate isNodeGuardedByFlag(DataFlow::Node node) { } from - DataFlow::PathNode source, DataFlow::PathNode sink, TrustAllHostnameVerifierConfiguration cfg, + TrustAllHostnameVerifierFlow::PathNode source, TrustAllHostnameVerifierFlow::PathNode sink, RefType verifier where - cfg.hasFlowPath(source, sink) and + TrustAllHostnameVerifierFlow::hasFlowPath(source, sink) and not isNodeGuardedByFlag(sink.getNode()) and verifier = source.getNode().asExpr().(ClassInstanceExpr).getConstructedType() select sink, source, sink, From 80012b190d1429e0a6275bef1473150fe270aac9 Mon Sep 17 00:00:00 2001 From: Ed Minnix <egregius313@github.com> Date: Wed, 15 Mar 2023 14:30:10 -0400 Subject: [PATCH 33/97] Refactor Security.CWE.CWE-601.UrlRedirect --- java/ql/src/Security/CWE/CWE-601/UrlRedirect.ql | 17 +++++++++-------- .../Security/CWE/CWE-601/UrlRedirectLocal.ql | 17 +++++++++-------- 2 files changed, 18 insertions(+), 16 deletions(-) diff --git a/java/ql/src/Security/CWE/CWE-601/UrlRedirect.ql b/java/ql/src/Security/CWE/CWE-601/UrlRedirect.ql index f3f535e5460..4c141835eb2 100644 --- a/java/ql/src/Security/CWE/CWE-601/UrlRedirect.ql +++ b/java/ql/src/Security/CWE/CWE-601/UrlRedirect.ql @@ -14,17 +14,18 @@ import java import semmle.code.java.dataflow.FlowSources import semmle.code.java.security.UrlRedirect -import DataFlow::PathGraph -class UrlRedirectConfig extends TaintTracking::Configuration { - UrlRedirectConfig() { this = "UrlRedirectConfig" } +private module UrlRedirectConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource } - override predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource } - - override predicate isSink(DataFlow::Node sink) { sink instanceof UrlRedirectSink } + predicate isSink(DataFlow::Node sink) { sink instanceof UrlRedirectSink } } -from DataFlow::PathNode source, DataFlow::PathNode sink, UrlRedirectConfig conf -where conf.hasFlowPath(source, sink) +module UrlRedirectFlow = TaintTracking::Make<UrlRedirectConfig>; + +import UrlRedirectFlow::PathGraph + +from UrlRedirectFlow::PathNode source, UrlRedirectFlow::PathNode sink +where UrlRedirectFlow::hasFlowPath(source, sink) select sink.getNode(), source, sink, "Untrusted URL redirection depends on a $@.", source.getNode(), "user-provided value" diff --git a/java/ql/src/Security/CWE/CWE-601/UrlRedirectLocal.ql b/java/ql/src/Security/CWE/CWE-601/UrlRedirectLocal.ql index 776cd8cff97..f9dd9938bc4 100644 --- a/java/ql/src/Security/CWE/CWE-601/UrlRedirectLocal.ql +++ b/java/ql/src/Security/CWE/CWE-601/UrlRedirectLocal.ql @@ -14,17 +14,18 @@ import java import semmle.code.java.dataflow.FlowSources import semmle.code.java.security.UrlRedirect -import DataFlow::PathGraph -class UrlRedirectLocalConfig extends TaintTracking::Configuration { - UrlRedirectLocalConfig() { this = "UrlRedirectLocalConfig" } +private module UrlRedirectLocalConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof LocalUserInput } - override predicate isSource(DataFlow::Node source) { source instanceof LocalUserInput } - - override predicate isSink(DataFlow::Node sink) { sink instanceof UrlRedirectSink } + predicate isSink(DataFlow::Node sink) { sink instanceof UrlRedirectSink } } -from DataFlow::PathNode source, DataFlow::PathNode sink, UrlRedirectLocalConfig conf -where conf.hasFlowPath(source, sink) +module UrlRedirectLocalFlow = TaintTracking::Make<UrlRedirectLocalConfig>; + +import UrlRedirectLocalFlow::PathGraph + +from UrlRedirectLocalFlow::PathNode source, UrlRedirectLocalFlow::PathNode sink +where UrlRedirectLocalFlow::hasFlowPath(source, sink) select sink.getNode(), source, sink, "Untrusted URL redirection depends on a $@.", source.getNode(), "user-provided value" From 271d50ba996044cd1aafa8d7da9fb718e4bdcc93 Mon Sep 17 00:00:00 2001 From: Ed Minnix <egregius313@github.com> Date: Wed, 15 Mar 2023 14:35:36 -0400 Subject: [PATCH 34/97] Refactor Security.CWE.CWE-611 Xxe queries --- .../semmle/code/java/security/XxeLocalQuery.qll | 16 +++++++++++++++- .../semmle/code/java/security/XxeRemoteQuery.qll | 16 +++++++++++++++- java/ql/src/Security/CWE/CWE-611/XXE.ql | 6 +++--- java/ql/src/Security/CWE/CWE-611/XXELocal.ql | 6 +++--- 4 files changed, 36 insertions(+), 8 deletions(-) diff --git a/java/ql/lib/semmle/code/java/security/XxeLocalQuery.qll b/java/ql/lib/semmle/code/java/security/XxeLocalQuery.qll index 47d30793f7a..3737afb7797 100644 --- a/java/ql/lib/semmle/code/java/security/XxeLocalQuery.qll +++ b/java/ql/lib/semmle/code/java/security/XxeLocalQuery.qll @@ -8,7 +8,7 @@ private import semmle.code.java.security.XxeQuery /** * A taint-tracking configuration for unvalidated local user input that is used in XML external entity expansion. */ -class XxeLocalConfig extends TaintTracking::Configuration { +deprecated class XxeLocalConfig extends TaintTracking::Configuration { XxeLocalConfig() { this = "XxeLocalConfig" } override predicate isSource(DataFlow::Node src) { src instanceof LocalUserInput } @@ -21,3 +21,17 @@ class XxeLocalConfig extends TaintTracking::Configuration { any(XxeAdditionalTaintStep s).step(n1, n2) } } + +private module XxeLocalConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node src) { src instanceof LocalUserInput } + + predicate isSink(DataFlow::Node sink) { sink instanceof XxeSink } + + predicate isBarrier(DataFlow::Node sanitizer) { sanitizer instanceof XxeSanitizer } + + predicate isAdditionalFlowStep(DataFlow::Node n1, DataFlow::Node n2) { + any(XxeAdditionalTaintStep s).step(n1, n2) + } +} + +module XxeLocalFlow = TaintTracking::Make<XxeLocalConfig>; diff --git a/java/ql/lib/semmle/code/java/security/XxeRemoteQuery.qll b/java/ql/lib/semmle/code/java/security/XxeRemoteQuery.qll index f6ace15eba6..e8a40d5426b 100644 --- a/java/ql/lib/semmle/code/java/security/XxeRemoteQuery.qll +++ b/java/ql/lib/semmle/code/java/security/XxeRemoteQuery.qll @@ -8,7 +8,7 @@ private import semmle.code.java.security.XxeQuery /** * A taint-tracking configuration for unvalidated remote user input that is used in XML external entity expansion. */ -class XxeConfig extends TaintTracking::Configuration { +deprecated class XxeConfig extends TaintTracking::Configuration { XxeConfig() { this = "XxeConfig" } override predicate isSource(DataFlow::Node src) { src instanceof RemoteFlowSource } @@ -21,3 +21,17 @@ class XxeConfig extends TaintTracking::Configuration { any(XxeAdditionalTaintStep s).step(n1, n2) } } + +private module XxeConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node src) { src instanceof RemoteFlowSource } + + predicate isSink(DataFlow::Node sink) { sink instanceof XxeSink } + + predicate isBarrier(DataFlow::Node sanitizer) { sanitizer instanceof XxeSanitizer } + + predicate isAdditionalFlowStep(DataFlow::Node n1, DataFlow::Node n2) { + any(XxeAdditionalTaintStep s).step(n1, n2) + } +} + +module XxeFlow = TaintTracking::Make<XxeConfig>; diff --git a/java/ql/src/Security/CWE/CWE-611/XXE.ql b/java/ql/src/Security/CWE/CWE-611/XXE.ql index af83d7aa35a..708d4f08ee7 100644 --- a/java/ql/src/Security/CWE/CWE-611/XXE.ql +++ b/java/ql/src/Security/CWE/CWE-611/XXE.ql @@ -16,10 +16,10 @@ import java import semmle.code.java.dataflow.DataFlow import semmle.code.java.security.XxeRemoteQuery -import DataFlow::PathGraph +import XxeFlow::PathGraph -from DataFlow::PathNode source, DataFlow::PathNode sink, XxeConfig conf -where conf.hasFlowPath(source, sink) +from XxeFlow::PathNode source, XxeFlow::PathNode sink +where XxeFlow::hasFlowPath(source, sink) select sink.getNode(), source, sink, "XML parsing depends on a $@ without guarding against external entity expansion.", source.getNode(), "user-provided value" diff --git a/java/ql/src/Security/CWE/CWE-611/XXELocal.ql b/java/ql/src/Security/CWE/CWE-611/XXELocal.ql index 6d142921a1d..0ab4ddcc106 100644 --- a/java/ql/src/Security/CWE/CWE-611/XXELocal.ql +++ b/java/ql/src/Security/CWE/CWE-611/XXELocal.ql @@ -16,10 +16,10 @@ import java import semmle.code.java.dataflow.DataFlow import semmle.code.java.security.XxeLocalQuery -import DataFlow::PathGraph +import XxeLocalFlow::PathGraph -from DataFlow::PathNode source, DataFlow::PathNode sink, XxeLocalConfig conf -where conf.hasFlowPath(source, sink) +from XxeLocalFlow::PathNode source, XxeLocalFlow::PathNode sink +where XxeLocalFlow::hasFlowPath(source, sink) select sink.getNode(), source, sink, "XML parsing depends on a $@ without guarding against external entity expansion.", source.getNode(), "user-provided value" From a9561a97c363ee2e4ad103980e0a3b2df2a8c1bc Mon Sep 17 00:00:00 2001 From: Ed Minnix <egregius313@github.com> Date: Wed, 15 Mar 2023 15:16:50 -0400 Subject: [PATCH 35/97] Refactor Security.CWE.CWE-643.XPathInjection --- .../src/Security/CWE/CWE-643/XPathInjection.ql | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/java/ql/src/Security/CWE/CWE-643/XPathInjection.ql b/java/ql/src/Security/CWE/CWE-643/XPathInjection.ql index eeaa147ce71..ea6aa713d9e 100644 --- a/java/ql/src/Security/CWE/CWE-643/XPathInjection.ql +++ b/java/ql/src/Security/CWE/CWE-643/XPathInjection.ql @@ -15,17 +15,18 @@ import java import semmle.code.java.dataflow.FlowSources import semmle.code.java.dataflow.TaintTracking import semmle.code.java.security.XPath -import DataFlow::PathGraph -class XPathInjectionConfiguration extends TaintTracking::Configuration { - XPathInjectionConfiguration() { this = "XPathInjection" } +private module XPathInjectionConfiguration implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource } - override predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource } - - override predicate isSink(DataFlow::Node sink) { sink instanceof XPathInjectionSink } + predicate isSink(DataFlow::Node sink) { sink instanceof XPathInjectionSink } } -from DataFlow::PathNode source, DataFlow::PathNode sink, XPathInjectionConfiguration c -where c.hasFlowPath(source, sink) +module XPathInjectionFlow = TaintTracking::Make<XPathInjectionConfiguration>; + +import XPathInjectionFlow::PathGraph + +from XPathInjectionFlow::PathNode source, XPathInjectionFlow::PathNode sink +where XPathInjectionFlow::hasFlowPath(source, sink) select sink.getNode(), source, sink, "XPath expression depends on a $@.", source.getNode(), "user-provided value" From 310af9984393bfee269c6cfce28c551356c8b7c4 Mon Sep 17 00:00:00 2001 From: Ed Minnix <egregius313@github.com> Date: Wed, 15 Mar 2023 15:21:24 -0400 Subject: [PATCH 36/97] Refactor Security.CWE.CWE-807.TaintedPermissionsCheck --- .../CWE/CWE-807/TaintedPermissionsCheck.ql | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/java/ql/src/Security/CWE/CWE-807/TaintedPermissionsCheck.ql b/java/ql/src/Security/CWE/CWE-807/TaintedPermissionsCheck.ql index 1251708ec5f..3c0fdbbf82d 100644 --- a/java/ql/src/Security/CWE/CWE-807/TaintedPermissionsCheck.ql +++ b/java/ql/src/Security/CWE/CWE-807/TaintedPermissionsCheck.ql @@ -14,7 +14,7 @@ import java import semmle.code.java.dataflow.FlowSources -import DataFlow::PathGraph +import semmle.code.java.dataflow.TaintTracking class TypeShiroSubject extends RefType { TypeShiroSubject() { this.getQualifiedName() = "org.apache.shiro.subject.Subject" } @@ -52,19 +52,22 @@ class WCPermissionConstruction extends ClassInstanceExpr, PermissionsConstructio override Expr getInput() { result = this.getArgument(0) } } -class TaintedPermissionsCheckFlowConfig extends TaintTracking::Configuration { - TaintedPermissionsCheckFlowConfig() { this = "TaintedPermissionsCheckFlowConfig" } +private module TaintedPermissionsCheckFlowConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof UserInput } - override predicate isSource(DataFlow::Node source) { source instanceof UserInput } - - override predicate isSink(DataFlow::Node sink) { + predicate isSink(DataFlow::Node sink) { sink.asExpr() = any(PermissionsConstruction p).getInput() } } +module TaintedPermissionsCheckFlow = TaintTracking::Make<TaintedPermissionsCheckFlowConfig>; + +import TaintedPermissionsCheckFlow::PathGraph + from - DataFlow::PathNode source, DataFlow::PathNode sink, PermissionsConstruction p, - TaintedPermissionsCheckFlowConfig conf -where sink.getNode().asExpr() = p.getInput() and conf.hasFlowPath(source, sink) + TaintedPermissionsCheckFlow::PathNode source, TaintedPermissionsCheckFlow::PathNode sink, + PermissionsConstruction p +where + sink.getNode().asExpr() = p.getInput() and TaintedPermissionsCheckFlow::hasFlowPath(source, sink) select p, source, sink, "Permissions check depends on a $@.", source.getNode(), "user-controlled value" From d317de14c9f22996fdfcbcf15e17d73ff68bce0a Mon Sep 17 00:00:00 2001 From: Ed Minnix <egregius313@github.com> Date: Wed, 15 Mar 2023 15:46:22 -0400 Subject: [PATCH 37/97] XXE Configuration Deprecation messages --- java/ql/lib/semmle/code/java/security/XxeLocalQuery.qll | 2 ++ java/ql/lib/semmle/code/java/security/XxeRemoteQuery.qll | 2 ++ 2 files changed, 4 insertions(+) diff --git a/java/ql/lib/semmle/code/java/security/XxeLocalQuery.qll b/java/ql/lib/semmle/code/java/security/XxeLocalQuery.qll index 3737afb7797..086ff3aa41b 100644 --- a/java/ql/lib/semmle/code/java/security/XxeLocalQuery.qll +++ b/java/ql/lib/semmle/code/java/security/XxeLocalQuery.qll @@ -6,6 +6,8 @@ private import semmle.code.java.dataflow.TaintTracking private import semmle.code.java.security.XxeQuery /** + * DEPRECATED: Use `XxeLocalFlow` instead. + * * A taint-tracking configuration for unvalidated local user input that is used in XML external entity expansion. */ deprecated class XxeLocalConfig extends TaintTracking::Configuration { diff --git a/java/ql/lib/semmle/code/java/security/XxeRemoteQuery.qll b/java/ql/lib/semmle/code/java/security/XxeRemoteQuery.qll index e8a40d5426b..404534d90b8 100644 --- a/java/ql/lib/semmle/code/java/security/XxeRemoteQuery.qll +++ b/java/ql/lib/semmle/code/java/security/XxeRemoteQuery.qll @@ -6,6 +6,8 @@ private import semmle.code.java.dataflow.TaintTracking private import semmle.code.java.security.XxeQuery /** + * DEPRECATED: Use `XxeFlow` instead. + * * A taint-tracking configuration for unvalidated remote user input that is used in XML external entity expansion. */ deprecated class XxeConfig extends TaintTracking::Configuration { From 7eb3fd2ff7df4e1861015e7f2d8ad21b500a69d8 Mon Sep 17 00:00:00 2001 From: Ed Minnix <egregius313@github.com> Date: Thu, 16 Mar 2023 23:07:46 -0400 Subject: [PATCH 38/97] Conform queries to `Config` naming convention --- .../CWE/CWE-200/AndroidWebViewSettingsAllowsContentAccess.ql | 4 ++-- .../ql/src/Security/CWE/CWE-297/UnsafeHostnameVerification.ql | 4 ++-- java/ql/src/Security/CWE/CWE-643/XPathInjection.ql | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/java/ql/src/Security/CWE/CWE-200/AndroidWebViewSettingsAllowsContentAccess.ql b/java/ql/src/Security/CWE/CWE-200/AndroidWebViewSettingsAllowsContentAccess.ql index 7ac14ff3c48..0026fbd47c7 100644 --- a/java/ql/src/Security/CWE/CWE-200/AndroidWebViewSettingsAllowsContentAccess.ql +++ b/java/ql/src/Security/CWE/CWE-200/AndroidWebViewSettingsAllowsContentAccess.ql @@ -65,7 +65,7 @@ private newtype WebViewOrSettings = IsWebView() or IsSettings() -private module WebViewDisallowContentAccessConfiguration implements DataFlow::StateConfigSig { +private module WebViewDisallowContentAccessConfig implements DataFlow::StateConfigSig { class FlowState = WebViewOrSettings; predicate isSource(DataFlow::Node node, FlowState state) { @@ -102,7 +102,7 @@ private module WebViewDisallowContentAccessConfiguration implements DataFlow::St } module WebViewDisallowContentAccessFlow = - TaintTracking::MakeWithState<WebViewDisallowContentAccessConfiguration>; + TaintTracking::MakeWithState<WebViewDisallowContentAccessConfig>; from Expr e where diff --git a/java/ql/src/Security/CWE/CWE-297/UnsafeHostnameVerification.ql b/java/ql/src/Security/CWE/CWE-297/UnsafeHostnameVerification.ql index e1a94c62dba..6055089433e 100644 --- a/java/ql/src/Security/CWE/CWE-297/UnsafeHostnameVerification.ql +++ b/java/ql/src/Security/CWE/CWE-297/UnsafeHostnameVerification.ql @@ -44,7 +44,7 @@ class TrustAllHostnameVerifier extends RefType { /** * A configuration to model the flow of a `TrustAllHostnameVerifier` to a `set(Default)HostnameVerifier` call. */ -private module TrustAllHostnameVerifierConfiguration implements DataFlow::ConfigSig { +private module TrustAllHostnameVerifierConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node source) { source.asExpr().(ClassInstanceExpr).getConstructedType() instanceof TrustAllHostnameVerifier } @@ -77,7 +77,7 @@ private module TrustAllHostnameVerifierConfiguration implements DataFlow::Config } } -module TrustAllHostnameVerifierFlow = DataFlow::Make<TrustAllHostnameVerifierConfiguration>; +module TrustAllHostnameVerifierFlow = DataFlow::Make<TrustAllHostnameVerifierConfig>; import TrustAllHostnameVerifierFlow::PathGraph diff --git a/java/ql/src/Security/CWE/CWE-643/XPathInjection.ql b/java/ql/src/Security/CWE/CWE-643/XPathInjection.ql index ea6aa713d9e..df68af6e4a8 100644 --- a/java/ql/src/Security/CWE/CWE-643/XPathInjection.ql +++ b/java/ql/src/Security/CWE/CWE-643/XPathInjection.ql @@ -16,13 +16,13 @@ import semmle.code.java.dataflow.FlowSources import semmle.code.java.dataflow.TaintTracking import semmle.code.java.security.XPath -private module XPathInjectionConfiguration implements DataFlow::ConfigSig { +private module XPathInjectionConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource } predicate isSink(DataFlow::Node sink) { sink instanceof XPathInjectionSink } } -module XPathInjectionFlow = TaintTracking::Make<XPathInjectionConfiguration>; +module XPathInjectionFlow = TaintTracking::Make<XPathInjectionConfig>; import XPathInjectionFlow::PathGraph From 9630feb5e417dd5d4b1c918c0789ce8a94a0106e Mon Sep 17 00:00:00 2001 From: Kasper Svendsen <kaspersv@github.com> Date: Mon, 20 Mar 2023 09:04:35 +0100 Subject: [PATCH 39/97] Dataflow: Remove revFlowAlias trick --- .../cpp/dataflow/internal/DataFlowImpl.qll | 30 +++++++------------ .../cpp/ir/dataflow/internal/DataFlowImpl.qll | 30 +++++++------------ .../csharp/dataflow/internal/DataFlowImpl.qll | 30 +++++++------------ .../go/dataflow/internal/DataFlowImpl.qll | 30 +++++++------------ .../java/dataflow/internal/DataFlowImpl.qll | 30 +++++++------------ .../dataflow/new/internal/DataFlowImpl.qll | 30 +++++++------------ .../ruby/dataflow/internal/DataFlowImpl.qll | 30 +++++++------------ .../swift/dataflow/internal/DataFlowImpl.qll | 30 +++++++------------ 8 files changed, 80 insertions(+), 160 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl.qll index b7cb98deaf9..f02728b9e18 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl.qll @@ -1695,16 +1695,6 @@ module Impl<FullStateConfigSig Config> { pragma[nomagic] predicate revFlowAp(NodeEx node, Ap ap) { revFlow(node, _, _, _, ap) } - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - additional predicate revFlowAlias(NodeEx node) { revFlow(node, _, _, _, _) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - additional predicate revFlowAlias(NodeEx node, FlowState state, Ap ap) { - revFlow(node, state, ap) - } - private predicate fwdConsCand(TypedContent tc, Ap ap) { storeStepFwd(_, ap, tc, _, _) } private predicate revConsCand(TypedContent tc, Ap ap) { storeStepCand(_, ap, tc, _, _) } @@ -1978,7 +1968,7 @@ module Impl<FullStateConfigSig Config> { ) { flowOutOfCallNodeCand1(call, node1, kind, node2, allowsFieldFlow) and Stage2::revFlow(node2) and - Stage2::revFlowAlias(node1) + Stage2::revFlow(node1) } pragma[nomagic] @@ -1987,7 +1977,7 @@ module Impl<FullStateConfigSig Config> { ) { flowIntoCallNodeCand1(call, node1, node2, allowsFieldFlow) and Stage2::revFlow(node2) and - Stage2::revFlowAlias(node1) + Stage2::revFlow(node1) } private module LocalFlowBigStep { @@ -2069,11 +2059,11 @@ module Impl<FullStateConfigSig Config> { additionalLocalFlowStepNodeCand1(node1, node2) and state1 = state2 and Stage2::revFlow(node1, pragma[only_bind_into](state1), false) and - Stage2::revFlowAlias(node2, pragma[only_bind_into](state2), false) + Stage2::revFlow(node2, pragma[only_bind_into](state2), false) or additionalLocalStateStep(node1, state1, node2, state2) and Stage2::revFlow(node1, state1, false) and - Stage2::revFlowAlias(node2, state2, false) + Stage2::revFlow(node2, state2, false) } /** @@ -2266,7 +2256,7 @@ module Impl<FullStateConfigSig Config> { ) { localFlowBigStep(node1, state1, node2, state2, preservesValue, ap.getType(), _) and PrevStage::revFlow(node1, pragma[only_bind_into](state1), _) and - PrevStage::revFlowAlias(node2, pragma[only_bind_into](state2), _) and + PrevStage::revFlow(node2, pragma[only_bind_into](state2), _) and exists(lcc) } @@ -2277,7 +2267,7 @@ module Impl<FullStateConfigSig Config> { exists(FlowState state | flowOutOfCallNodeCand2(call, node1, kind, node2, allowsFieldFlow) and PrevStage::revFlow(node2, pragma[only_bind_into](state), _) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _) + PrevStage::revFlow(node1, pragma[only_bind_into](state), _) ) } @@ -2288,7 +2278,7 @@ module Impl<FullStateConfigSig Config> { exists(FlowState state | flowIntoCallNodeCand2(call, node1, node2, allowsFieldFlow) and PrevStage::revFlow(node2, pragma[only_bind_into](state), _) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _) + PrevStage::revFlow(node1, pragma[only_bind_into](state), _) ) } @@ -2590,7 +2580,7 @@ module Impl<FullStateConfigSig Config> { ) { localFlowBigStep(node1, state1, node2, state2, preservesValue, ap.getType(), lcc) and PrevStage::revFlow(node1, pragma[only_bind_into](state1), _) and - PrevStage::revFlowAlias(node2, pragma[only_bind_into](state2), _) + PrevStage::revFlow(node2, pragma[only_bind_into](state2), _) } pragma[nomagic] @@ -2600,7 +2590,7 @@ module Impl<FullStateConfigSig Config> { exists(FlowState state | flowOutOfCallNodeCand2(call, node1, kind, node2, allowsFieldFlow) and PrevStage::revFlow(node2, pragma[only_bind_into](state), _) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _) + PrevStage::revFlow(node1, pragma[only_bind_into](state), _) ) } @@ -2611,7 +2601,7 @@ module Impl<FullStateConfigSig Config> { exists(FlowState state | flowIntoCallNodeCand2(call, node1, node2, allowsFieldFlow) and PrevStage::revFlow(node2, pragma[only_bind_into](state), _) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _) + PrevStage::revFlow(node1, pragma[only_bind_into](state), _) ) } diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl.qll index b7cb98deaf9..f02728b9e18 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl.qll @@ -1695,16 +1695,6 @@ module Impl<FullStateConfigSig Config> { pragma[nomagic] predicate revFlowAp(NodeEx node, Ap ap) { revFlow(node, _, _, _, ap) } - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - additional predicate revFlowAlias(NodeEx node) { revFlow(node, _, _, _, _) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - additional predicate revFlowAlias(NodeEx node, FlowState state, Ap ap) { - revFlow(node, state, ap) - } - private predicate fwdConsCand(TypedContent tc, Ap ap) { storeStepFwd(_, ap, tc, _, _) } private predicate revConsCand(TypedContent tc, Ap ap) { storeStepCand(_, ap, tc, _, _) } @@ -1978,7 +1968,7 @@ module Impl<FullStateConfigSig Config> { ) { flowOutOfCallNodeCand1(call, node1, kind, node2, allowsFieldFlow) and Stage2::revFlow(node2) and - Stage2::revFlowAlias(node1) + Stage2::revFlow(node1) } pragma[nomagic] @@ -1987,7 +1977,7 @@ module Impl<FullStateConfigSig Config> { ) { flowIntoCallNodeCand1(call, node1, node2, allowsFieldFlow) and Stage2::revFlow(node2) and - Stage2::revFlowAlias(node1) + Stage2::revFlow(node1) } private module LocalFlowBigStep { @@ -2069,11 +2059,11 @@ module Impl<FullStateConfigSig Config> { additionalLocalFlowStepNodeCand1(node1, node2) and state1 = state2 and Stage2::revFlow(node1, pragma[only_bind_into](state1), false) and - Stage2::revFlowAlias(node2, pragma[only_bind_into](state2), false) + Stage2::revFlow(node2, pragma[only_bind_into](state2), false) or additionalLocalStateStep(node1, state1, node2, state2) and Stage2::revFlow(node1, state1, false) and - Stage2::revFlowAlias(node2, state2, false) + Stage2::revFlow(node2, state2, false) } /** @@ -2266,7 +2256,7 @@ module Impl<FullStateConfigSig Config> { ) { localFlowBigStep(node1, state1, node2, state2, preservesValue, ap.getType(), _) and PrevStage::revFlow(node1, pragma[only_bind_into](state1), _) and - PrevStage::revFlowAlias(node2, pragma[only_bind_into](state2), _) and + PrevStage::revFlow(node2, pragma[only_bind_into](state2), _) and exists(lcc) } @@ -2277,7 +2267,7 @@ module Impl<FullStateConfigSig Config> { exists(FlowState state | flowOutOfCallNodeCand2(call, node1, kind, node2, allowsFieldFlow) and PrevStage::revFlow(node2, pragma[only_bind_into](state), _) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _) + PrevStage::revFlow(node1, pragma[only_bind_into](state), _) ) } @@ -2288,7 +2278,7 @@ module Impl<FullStateConfigSig Config> { exists(FlowState state | flowIntoCallNodeCand2(call, node1, node2, allowsFieldFlow) and PrevStage::revFlow(node2, pragma[only_bind_into](state), _) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _) + PrevStage::revFlow(node1, pragma[only_bind_into](state), _) ) } @@ -2590,7 +2580,7 @@ module Impl<FullStateConfigSig Config> { ) { localFlowBigStep(node1, state1, node2, state2, preservesValue, ap.getType(), lcc) and PrevStage::revFlow(node1, pragma[only_bind_into](state1), _) and - PrevStage::revFlowAlias(node2, pragma[only_bind_into](state2), _) + PrevStage::revFlow(node2, pragma[only_bind_into](state2), _) } pragma[nomagic] @@ -2600,7 +2590,7 @@ module Impl<FullStateConfigSig Config> { exists(FlowState state | flowOutOfCallNodeCand2(call, node1, kind, node2, allowsFieldFlow) and PrevStage::revFlow(node2, pragma[only_bind_into](state), _) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _) + PrevStage::revFlow(node1, pragma[only_bind_into](state), _) ) } @@ -2611,7 +2601,7 @@ module Impl<FullStateConfigSig Config> { exists(FlowState state | flowIntoCallNodeCand2(call, node1, node2, allowsFieldFlow) and PrevStage::revFlow(node2, pragma[only_bind_into](state), _) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _) + PrevStage::revFlow(node1, pragma[only_bind_into](state), _) ) } diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl.qll index b7cb98deaf9..f02728b9e18 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl.qll @@ -1695,16 +1695,6 @@ module Impl<FullStateConfigSig Config> { pragma[nomagic] predicate revFlowAp(NodeEx node, Ap ap) { revFlow(node, _, _, _, ap) } - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - additional predicate revFlowAlias(NodeEx node) { revFlow(node, _, _, _, _) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - additional predicate revFlowAlias(NodeEx node, FlowState state, Ap ap) { - revFlow(node, state, ap) - } - private predicate fwdConsCand(TypedContent tc, Ap ap) { storeStepFwd(_, ap, tc, _, _) } private predicate revConsCand(TypedContent tc, Ap ap) { storeStepCand(_, ap, tc, _, _) } @@ -1978,7 +1968,7 @@ module Impl<FullStateConfigSig Config> { ) { flowOutOfCallNodeCand1(call, node1, kind, node2, allowsFieldFlow) and Stage2::revFlow(node2) and - Stage2::revFlowAlias(node1) + Stage2::revFlow(node1) } pragma[nomagic] @@ -1987,7 +1977,7 @@ module Impl<FullStateConfigSig Config> { ) { flowIntoCallNodeCand1(call, node1, node2, allowsFieldFlow) and Stage2::revFlow(node2) and - Stage2::revFlowAlias(node1) + Stage2::revFlow(node1) } private module LocalFlowBigStep { @@ -2069,11 +2059,11 @@ module Impl<FullStateConfigSig Config> { additionalLocalFlowStepNodeCand1(node1, node2) and state1 = state2 and Stage2::revFlow(node1, pragma[only_bind_into](state1), false) and - Stage2::revFlowAlias(node2, pragma[only_bind_into](state2), false) + Stage2::revFlow(node2, pragma[only_bind_into](state2), false) or additionalLocalStateStep(node1, state1, node2, state2) and Stage2::revFlow(node1, state1, false) and - Stage2::revFlowAlias(node2, state2, false) + Stage2::revFlow(node2, state2, false) } /** @@ -2266,7 +2256,7 @@ module Impl<FullStateConfigSig Config> { ) { localFlowBigStep(node1, state1, node2, state2, preservesValue, ap.getType(), _) and PrevStage::revFlow(node1, pragma[only_bind_into](state1), _) and - PrevStage::revFlowAlias(node2, pragma[only_bind_into](state2), _) and + PrevStage::revFlow(node2, pragma[only_bind_into](state2), _) and exists(lcc) } @@ -2277,7 +2267,7 @@ module Impl<FullStateConfigSig Config> { exists(FlowState state | flowOutOfCallNodeCand2(call, node1, kind, node2, allowsFieldFlow) and PrevStage::revFlow(node2, pragma[only_bind_into](state), _) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _) + PrevStage::revFlow(node1, pragma[only_bind_into](state), _) ) } @@ -2288,7 +2278,7 @@ module Impl<FullStateConfigSig Config> { exists(FlowState state | flowIntoCallNodeCand2(call, node1, node2, allowsFieldFlow) and PrevStage::revFlow(node2, pragma[only_bind_into](state), _) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _) + PrevStage::revFlow(node1, pragma[only_bind_into](state), _) ) } @@ -2590,7 +2580,7 @@ module Impl<FullStateConfigSig Config> { ) { localFlowBigStep(node1, state1, node2, state2, preservesValue, ap.getType(), lcc) and PrevStage::revFlow(node1, pragma[only_bind_into](state1), _) and - PrevStage::revFlowAlias(node2, pragma[only_bind_into](state2), _) + PrevStage::revFlow(node2, pragma[only_bind_into](state2), _) } pragma[nomagic] @@ -2600,7 +2590,7 @@ module Impl<FullStateConfigSig Config> { exists(FlowState state | flowOutOfCallNodeCand2(call, node1, kind, node2, allowsFieldFlow) and PrevStage::revFlow(node2, pragma[only_bind_into](state), _) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _) + PrevStage::revFlow(node1, pragma[only_bind_into](state), _) ) } @@ -2611,7 +2601,7 @@ module Impl<FullStateConfigSig Config> { exists(FlowState state | flowIntoCallNodeCand2(call, node1, node2, allowsFieldFlow) and PrevStage::revFlow(node2, pragma[only_bind_into](state), _) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _) + PrevStage::revFlow(node1, pragma[only_bind_into](state), _) ) } diff --git a/go/ql/lib/semmle/go/dataflow/internal/DataFlowImpl.qll b/go/ql/lib/semmle/go/dataflow/internal/DataFlowImpl.qll index b7cb98deaf9..f02728b9e18 100644 --- a/go/ql/lib/semmle/go/dataflow/internal/DataFlowImpl.qll +++ b/go/ql/lib/semmle/go/dataflow/internal/DataFlowImpl.qll @@ -1695,16 +1695,6 @@ module Impl<FullStateConfigSig Config> { pragma[nomagic] predicate revFlowAp(NodeEx node, Ap ap) { revFlow(node, _, _, _, ap) } - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - additional predicate revFlowAlias(NodeEx node) { revFlow(node, _, _, _, _) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - additional predicate revFlowAlias(NodeEx node, FlowState state, Ap ap) { - revFlow(node, state, ap) - } - private predicate fwdConsCand(TypedContent tc, Ap ap) { storeStepFwd(_, ap, tc, _, _) } private predicate revConsCand(TypedContent tc, Ap ap) { storeStepCand(_, ap, tc, _, _) } @@ -1978,7 +1968,7 @@ module Impl<FullStateConfigSig Config> { ) { flowOutOfCallNodeCand1(call, node1, kind, node2, allowsFieldFlow) and Stage2::revFlow(node2) and - Stage2::revFlowAlias(node1) + Stage2::revFlow(node1) } pragma[nomagic] @@ -1987,7 +1977,7 @@ module Impl<FullStateConfigSig Config> { ) { flowIntoCallNodeCand1(call, node1, node2, allowsFieldFlow) and Stage2::revFlow(node2) and - Stage2::revFlowAlias(node1) + Stage2::revFlow(node1) } private module LocalFlowBigStep { @@ -2069,11 +2059,11 @@ module Impl<FullStateConfigSig Config> { additionalLocalFlowStepNodeCand1(node1, node2) and state1 = state2 and Stage2::revFlow(node1, pragma[only_bind_into](state1), false) and - Stage2::revFlowAlias(node2, pragma[only_bind_into](state2), false) + Stage2::revFlow(node2, pragma[only_bind_into](state2), false) or additionalLocalStateStep(node1, state1, node2, state2) and Stage2::revFlow(node1, state1, false) and - Stage2::revFlowAlias(node2, state2, false) + Stage2::revFlow(node2, state2, false) } /** @@ -2266,7 +2256,7 @@ module Impl<FullStateConfigSig Config> { ) { localFlowBigStep(node1, state1, node2, state2, preservesValue, ap.getType(), _) and PrevStage::revFlow(node1, pragma[only_bind_into](state1), _) and - PrevStage::revFlowAlias(node2, pragma[only_bind_into](state2), _) and + PrevStage::revFlow(node2, pragma[only_bind_into](state2), _) and exists(lcc) } @@ -2277,7 +2267,7 @@ module Impl<FullStateConfigSig Config> { exists(FlowState state | flowOutOfCallNodeCand2(call, node1, kind, node2, allowsFieldFlow) and PrevStage::revFlow(node2, pragma[only_bind_into](state), _) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _) + PrevStage::revFlow(node1, pragma[only_bind_into](state), _) ) } @@ -2288,7 +2278,7 @@ module Impl<FullStateConfigSig Config> { exists(FlowState state | flowIntoCallNodeCand2(call, node1, node2, allowsFieldFlow) and PrevStage::revFlow(node2, pragma[only_bind_into](state), _) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _) + PrevStage::revFlow(node1, pragma[only_bind_into](state), _) ) } @@ -2590,7 +2580,7 @@ module Impl<FullStateConfigSig Config> { ) { localFlowBigStep(node1, state1, node2, state2, preservesValue, ap.getType(), lcc) and PrevStage::revFlow(node1, pragma[only_bind_into](state1), _) and - PrevStage::revFlowAlias(node2, pragma[only_bind_into](state2), _) + PrevStage::revFlow(node2, pragma[only_bind_into](state2), _) } pragma[nomagic] @@ -2600,7 +2590,7 @@ module Impl<FullStateConfigSig Config> { exists(FlowState state | flowOutOfCallNodeCand2(call, node1, kind, node2, allowsFieldFlow) and PrevStage::revFlow(node2, pragma[only_bind_into](state), _) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _) + PrevStage::revFlow(node1, pragma[only_bind_into](state), _) ) } @@ -2611,7 +2601,7 @@ module Impl<FullStateConfigSig Config> { exists(FlowState state | flowIntoCallNodeCand2(call, node1, node2, allowsFieldFlow) and PrevStage::revFlow(node2, pragma[only_bind_into](state), _) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _) + PrevStage::revFlow(node1, pragma[only_bind_into](state), _) ) } diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl.qll index b7cb98deaf9..f02728b9e18 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl.qll @@ -1695,16 +1695,6 @@ module Impl<FullStateConfigSig Config> { pragma[nomagic] predicate revFlowAp(NodeEx node, Ap ap) { revFlow(node, _, _, _, ap) } - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - additional predicate revFlowAlias(NodeEx node) { revFlow(node, _, _, _, _) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - additional predicate revFlowAlias(NodeEx node, FlowState state, Ap ap) { - revFlow(node, state, ap) - } - private predicate fwdConsCand(TypedContent tc, Ap ap) { storeStepFwd(_, ap, tc, _, _) } private predicate revConsCand(TypedContent tc, Ap ap) { storeStepCand(_, ap, tc, _, _) } @@ -1978,7 +1968,7 @@ module Impl<FullStateConfigSig Config> { ) { flowOutOfCallNodeCand1(call, node1, kind, node2, allowsFieldFlow) and Stage2::revFlow(node2) and - Stage2::revFlowAlias(node1) + Stage2::revFlow(node1) } pragma[nomagic] @@ -1987,7 +1977,7 @@ module Impl<FullStateConfigSig Config> { ) { flowIntoCallNodeCand1(call, node1, node2, allowsFieldFlow) and Stage2::revFlow(node2) and - Stage2::revFlowAlias(node1) + Stage2::revFlow(node1) } private module LocalFlowBigStep { @@ -2069,11 +2059,11 @@ module Impl<FullStateConfigSig Config> { additionalLocalFlowStepNodeCand1(node1, node2) and state1 = state2 and Stage2::revFlow(node1, pragma[only_bind_into](state1), false) and - Stage2::revFlowAlias(node2, pragma[only_bind_into](state2), false) + Stage2::revFlow(node2, pragma[only_bind_into](state2), false) or additionalLocalStateStep(node1, state1, node2, state2) and Stage2::revFlow(node1, state1, false) and - Stage2::revFlowAlias(node2, state2, false) + Stage2::revFlow(node2, state2, false) } /** @@ -2266,7 +2256,7 @@ module Impl<FullStateConfigSig Config> { ) { localFlowBigStep(node1, state1, node2, state2, preservesValue, ap.getType(), _) and PrevStage::revFlow(node1, pragma[only_bind_into](state1), _) and - PrevStage::revFlowAlias(node2, pragma[only_bind_into](state2), _) and + PrevStage::revFlow(node2, pragma[only_bind_into](state2), _) and exists(lcc) } @@ -2277,7 +2267,7 @@ module Impl<FullStateConfigSig Config> { exists(FlowState state | flowOutOfCallNodeCand2(call, node1, kind, node2, allowsFieldFlow) and PrevStage::revFlow(node2, pragma[only_bind_into](state), _) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _) + PrevStage::revFlow(node1, pragma[only_bind_into](state), _) ) } @@ -2288,7 +2278,7 @@ module Impl<FullStateConfigSig Config> { exists(FlowState state | flowIntoCallNodeCand2(call, node1, node2, allowsFieldFlow) and PrevStage::revFlow(node2, pragma[only_bind_into](state), _) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _) + PrevStage::revFlow(node1, pragma[only_bind_into](state), _) ) } @@ -2590,7 +2580,7 @@ module Impl<FullStateConfigSig Config> { ) { localFlowBigStep(node1, state1, node2, state2, preservesValue, ap.getType(), lcc) and PrevStage::revFlow(node1, pragma[only_bind_into](state1), _) and - PrevStage::revFlowAlias(node2, pragma[only_bind_into](state2), _) + PrevStage::revFlow(node2, pragma[only_bind_into](state2), _) } pragma[nomagic] @@ -2600,7 +2590,7 @@ module Impl<FullStateConfigSig Config> { exists(FlowState state | flowOutOfCallNodeCand2(call, node1, kind, node2, allowsFieldFlow) and PrevStage::revFlow(node2, pragma[only_bind_into](state), _) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _) + PrevStage::revFlow(node1, pragma[only_bind_into](state), _) ) } @@ -2611,7 +2601,7 @@ module Impl<FullStateConfigSig Config> { exists(FlowState state | flowIntoCallNodeCand2(call, node1, node2, allowsFieldFlow) and PrevStage::revFlow(node2, pragma[only_bind_into](state), _) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _) + PrevStage::revFlow(node1, pragma[only_bind_into](state), _) ) } diff --git a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl.qll b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl.qll index b7cb98deaf9..f02728b9e18 100644 --- a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl.qll +++ b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl.qll @@ -1695,16 +1695,6 @@ module Impl<FullStateConfigSig Config> { pragma[nomagic] predicate revFlowAp(NodeEx node, Ap ap) { revFlow(node, _, _, _, ap) } - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - additional predicate revFlowAlias(NodeEx node) { revFlow(node, _, _, _, _) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - additional predicate revFlowAlias(NodeEx node, FlowState state, Ap ap) { - revFlow(node, state, ap) - } - private predicate fwdConsCand(TypedContent tc, Ap ap) { storeStepFwd(_, ap, tc, _, _) } private predicate revConsCand(TypedContent tc, Ap ap) { storeStepCand(_, ap, tc, _, _) } @@ -1978,7 +1968,7 @@ module Impl<FullStateConfigSig Config> { ) { flowOutOfCallNodeCand1(call, node1, kind, node2, allowsFieldFlow) and Stage2::revFlow(node2) and - Stage2::revFlowAlias(node1) + Stage2::revFlow(node1) } pragma[nomagic] @@ -1987,7 +1977,7 @@ module Impl<FullStateConfigSig Config> { ) { flowIntoCallNodeCand1(call, node1, node2, allowsFieldFlow) and Stage2::revFlow(node2) and - Stage2::revFlowAlias(node1) + Stage2::revFlow(node1) } private module LocalFlowBigStep { @@ -2069,11 +2059,11 @@ module Impl<FullStateConfigSig Config> { additionalLocalFlowStepNodeCand1(node1, node2) and state1 = state2 and Stage2::revFlow(node1, pragma[only_bind_into](state1), false) and - Stage2::revFlowAlias(node2, pragma[only_bind_into](state2), false) + Stage2::revFlow(node2, pragma[only_bind_into](state2), false) or additionalLocalStateStep(node1, state1, node2, state2) and Stage2::revFlow(node1, state1, false) and - Stage2::revFlowAlias(node2, state2, false) + Stage2::revFlow(node2, state2, false) } /** @@ -2266,7 +2256,7 @@ module Impl<FullStateConfigSig Config> { ) { localFlowBigStep(node1, state1, node2, state2, preservesValue, ap.getType(), _) and PrevStage::revFlow(node1, pragma[only_bind_into](state1), _) and - PrevStage::revFlowAlias(node2, pragma[only_bind_into](state2), _) and + PrevStage::revFlow(node2, pragma[only_bind_into](state2), _) and exists(lcc) } @@ -2277,7 +2267,7 @@ module Impl<FullStateConfigSig Config> { exists(FlowState state | flowOutOfCallNodeCand2(call, node1, kind, node2, allowsFieldFlow) and PrevStage::revFlow(node2, pragma[only_bind_into](state), _) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _) + PrevStage::revFlow(node1, pragma[only_bind_into](state), _) ) } @@ -2288,7 +2278,7 @@ module Impl<FullStateConfigSig Config> { exists(FlowState state | flowIntoCallNodeCand2(call, node1, node2, allowsFieldFlow) and PrevStage::revFlow(node2, pragma[only_bind_into](state), _) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _) + PrevStage::revFlow(node1, pragma[only_bind_into](state), _) ) } @@ -2590,7 +2580,7 @@ module Impl<FullStateConfigSig Config> { ) { localFlowBigStep(node1, state1, node2, state2, preservesValue, ap.getType(), lcc) and PrevStage::revFlow(node1, pragma[only_bind_into](state1), _) and - PrevStage::revFlowAlias(node2, pragma[only_bind_into](state2), _) + PrevStage::revFlow(node2, pragma[only_bind_into](state2), _) } pragma[nomagic] @@ -2600,7 +2590,7 @@ module Impl<FullStateConfigSig Config> { exists(FlowState state | flowOutOfCallNodeCand2(call, node1, kind, node2, allowsFieldFlow) and PrevStage::revFlow(node2, pragma[only_bind_into](state), _) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _) + PrevStage::revFlow(node1, pragma[only_bind_into](state), _) ) } @@ -2611,7 +2601,7 @@ module Impl<FullStateConfigSig Config> { exists(FlowState state | flowIntoCallNodeCand2(call, node1, node2, allowsFieldFlow) and PrevStage::revFlow(node2, pragma[only_bind_into](state), _) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _) + PrevStage::revFlow(node1, pragma[only_bind_into](state), _) ) } diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl.qll index b7cb98deaf9..f02728b9e18 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl.qll @@ -1695,16 +1695,6 @@ module Impl<FullStateConfigSig Config> { pragma[nomagic] predicate revFlowAp(NodeEx node, Ap ap) { revFlow(node, _, _, _, ap) } - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - additional predicate revFlowAlias(NodeEx node) { revFlow(node, _, _, _, _) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - additional predicate revFlowAlias(NodeEx node, FlowState state, Ap ap) { - revFlow(node, state, ap) - } - private predicate fwdConsCand(TypedContent tc, Ap ap) { storeStepFwd(_, ap, tc, _, _) } private predicate revConsCand(TypedContent tc, Ap ap) { storeStepCand(_, ap, tc, _, _) } @@ -1978,7 +1968,7 @@ module Impl<FullStateConfigSig Config> { ) { flowOutOfCallNodeCand1(call, node1, kind, node2, allowsFieldFlow) and Stage2::revFlow(node2) and - Stage2::revFlowAlias(node1) + Stage2::revFlow(node1) } pragma[nomagic] @@ -1987,7 +1977,7 @@ module Impl<FullStateConfigSig Config> { ) { flowIntoCallNodeCand1(call, node1, node2, allowsFieldFlow) and Stage2::revFlow(node2) and - Stage2::revFlowAlias(node1) + Stage2::revFlow(node1) } private module LocalFlowBigStep { @@ -2069,11 +2059,11 @@ module Impl<FullStateConfigSig Config> { additionalLocalFlowStepNodeCand1(node1, node2) and state1 = state2 and Stage2::revFlow(node1, pragma[only_bind_into](state1), false) and - Stage2::revFlowAlias(node2, pragma[only_bind_into](state2), false) + Stage2::revFlow(node2, pragma[only_bind_into](state2), false) or additionalLocalStateStep(node1, state1, node2, state2) and Stage2::revFlow(node1, state1, false) and - Stage2::revFlowAlias(node2, state2, false) + Stage2::revFlow(node2, state2, false) } /** @@ -2266,7 +2256,7 @@ module Impl<FullStateConfigSig Config> { ) { localFlowBigStep(node1, state1, node2, state2, preservesValue, ap.getType(), _) and PrevStage::revFlow(node1, pragma[only_bind_into](state1), _) and - PrevStage::revFlowAlias(node2, pragma[only_bind_into](state2), _) and + PrevStage::revFlow(node2, pragma[only_bind_into](state2), _) and exists(lcc) } @@ -2277,7 +2267,7 @@ module Impl<FullStateConfigSig Config> { exists(FlowState state | flowOutOfCallNodeCand2(call, node1, kind, node2, allowsFieldFlow) and PrevStage::revFlow(node2, pragma[only_bind_into](state), _) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _) + PrevStage::revFlow(node1, pragma[only_bind_into](state), _) ) } @@ -2288,7 +2278,7 @@ module Impl<FullStateConfigSig Config> { exists(FlowState state | flowIntoCallNodeCand2(call, node1, node2, allowsFieldFlow) and PrevStage::revFlow(node2, pragma[only_bind_into](state), _) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _) + PrevStage::revFlow(node1, pragma[only_bind_into](state), _) ) } @@ -2590,7 +2580,7 @@ module Impl<FullStateConfigSig Config> { ) { localFlowBigStep(node1, state1, node2, state2, preservesValue, ap.getType(), lcc) and PrevStage::revFlow(node1, pragma[only_bind_into](state1), _) and - PrevStage::revFlowAlias(node2, pragma[only_bind_into](state2), _) + PrevStage::revFlow(node2, pragma[only_bind_into](state2), _) } pragma[nomagic] @@ -2600,7 +2590,7 @@ module Impl<FullStateConfigSig Config> { exists(FlowState state | flowOutOfCallNodeCand2(call, node1, kind, node2, allowsFieldFlow) and PrevStage::revFlow(node2, pragma[only_bind_into](state), _) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _) + PrevStage::revFlow(node1, pragma[only_bind_into](state), _) ) } @@ -2611,7 +2601,7 @@ module Impl<FullStateConfigSig Config> { exists(FlowState state | flowIntoCallNodeCand2(call, node1, node2, allowsFieldFlow) and PrevStage::revFlow(node2, pragma[only_bind_into](state), _) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _) + PrevStage::revFlow(node1, pragma[only_bind_into](state), _) ) } diff --git a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImpl.qll b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImpl.qll index b7cb98deaf9..f02728b9e18 100644 --- a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImpl.qll +++ b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImpl.qll @@ -1695,16 +1695,6 @@ module Impl<FullStateConfigSig Config> { pragma[nomagic] predicate revFlowAp(NodeEx node, Ap ap) { revFlow(node, _, _, _, ap) } - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - additional predicate revFlowAlias(NodeEx node) { revFlow(node, _, _, _, _) } - - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - additional predicate revFlowAlias(NodeEx node, FlowState state, Ap ap) { - revFlow(node, state, ap) - } - private predicate fwdConsCand(TypedContent tc, Ap ap) { storeStepFwd(_, ap, tc, _, _) } private predicate revConsCand(TypedContent tc, Ap ap) { storeStepCand(_, ap, tc, _, _) } @@ -1978,7 +1968,7 @@ module Impl<FullStateConfigSig Config> { ) { flowOutOfCallNodeCand1(call, node1, kind, node2, allowsFieldFlow) and Stage2::revFlow(node2) and - Stage2::revFlowAlias(node1) + Stage2::revFlow(node1) } pragma[nomagic] @@ -1987,7 +1977,7 @@ module Impl<FullStateConfigSig Config> { ) { flowIntoCallNodeCand1(call, node1, node2, allowsFieldFlow) and Stage2::revFlow(node2) and - Stage2::revFlowAlias(node1) + Stage2::revFlow(node1) } private module LocalFlowBigStep { @@ -2069,11 +2059,11 @@ module Impl<FullStateConfigSig Config> { additionalLocalFlowStepNodeCand1(node1, node2) and state1 = state2 and Stage2::revFlow(node1, pragma[only_bind_into](state1), false) and - Stage2::revFlowAlias(node2, pragma[only_bind_into](state2), false) + Stage2::revFlow(node2, pragma[only_bind_into](state2), false) or additionalLocalStateStep(node1, state1, node2, state2) and Stage2::revFlow(node1, state1, false) and - Stage2::revFlowAlias(node2, state2, false) + Stage2::revFlow(node2, state2, false) } /** @@ -2266,7 +2256,7 @@ module Impl<FullStateConfigSig Config> { ) { localFlowBigStep(node1, state1, node2, state2, preservesValue, ap.getType(), _) and PrevStage::revFlow(node1, pragma[only_bind_into](state1), _) and - PrevStage::revFlowAlias(node2, pragma[only_bind_into](state2), _) and + PrevStage::revFlow(node2, pragma[only_bind_into](state2), _) and exists(lcc) } @@ -2277,7 +2267,7 @@ module Impl<FullStateConfigSig Config> { exists(FlowState state | flowOutOfCallNodeCand2(call, node1, kind, node2, allowsFieldFlow) and PrevStage::revFlow(node2, pragma[only_bind_into](state), _) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _) + PrevStage::revFlow(node1, pragma[only_bind_into](state), _) ) } @@ -2288,7 +2278,7 @@ module Impl<FullStateConfigSig Config> { exists(FlowState state | flowIntoCallNodeCand2(call, node1, node2, allowsFieldFlow) and PrevStage::revFlow(node2, pragma[only_bind_into](state), _) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _) + PrevStage::revFlow(node1, pragma[only_bind_into](state), _) ) } @@ -2590,7 +2580,7 @@ module Impl<FullStateConfigSig Config> { ) { localFlowBigStep(node1, state1, node2, state2, preservesValue, ap.getType(), lcc) and PrevStage::revFlow(node1, pragma[only_bind_into](state1), _) and - PrevStage::revFlowAlias(node2, pragma[only_bind_into](state2), _) + PrevStage::revFlow(node2, pragma[only_bind_into](state2), _) } pragma[nomagic] @@ -2600,7 +2590,7 @@ module Impl<FullStateConfigSig Config> { exists(FlowState state | flowOutOfCallNodeCand2(call, node1, kind, node2, allowsFieldFlow) and PrevStage::revFlow(node2, pragma[only_bind_into](state), _) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _) + PrevStage::revFlow(node1, pragma[only_bind_into](state), _) ) } @@ -2611,7 +2601,7 @@ module Impl<FullStateConfigSig Config> { exists(FlowState state | flowIntoCallNodeCand2(call, node1, node2, allowsFieldFlow) and PrevStage::revFlow(node2, pragma[only_bind_into](state), _) and - PrevStage::revFlowAlias(node1, pragma[only_bind_into](state), _) + PrevStage::revFlow(node1, pragma[only_bind_into](state), _) ) } From 352bb5a29a4fb065b5ea32427469db7d4f4ed16f Mon Sep 17 00:00:00 2001 From: Michael Nebel <michaelnebel@github.com> Date: Thu, 16 Mar 2023 14:43:08 +0100 Subject: [PATCH 40/97] C#: Update internal documentation for this parameter in models. --- csharp/ql/lib/semmle/code/csharp/dataflow/ExternalFlow.qll | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/ExternalFlow.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/ExternalFlow.qll index 196af2a449d..e4cfab342b5 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/ExternalFlow.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/ExternalFlow.qll @@ -39,7 +39,7 @@ * "Argument[n]", "Argument[n1..n2]", or "ReturnValue": * - "": Selects a write to the selected element in case this is a field or property. * - "Argument[n]": Selects an argument in a call to the selected element. - * The arguments are zero-indexed, and `-1` specifies the qualifier. + * The arguments are zero-indexed, and `this` specifies the qualifier. * - "Argument[n1..n2]": Similar to "Argument[n]" but select any argument in * the given range. The range is inclusive at both ends. * - "ReturnValue": Selects a value being returned by the selected element. @@ -50,14 +50,14 @@ * - "": Selects a read of a selected field, property, or parameter. * - "Argument[n]": Selects the post-update value of an argument in a call to the * selected element. That is, the value of the argument after the call returns. - * The arguments are zero-indexed, and `-1` specifies the qualifier. + * The arguments are zero-indexed, and `this` specifies the qualifier. * - "Argument[n1..n2]": Similar to "Argument[n]" but select any argument in * the given range. The range is inclusive at both ends. * - "Parameter": Selects the value of a parameter of the selected element. * "Parameter" is also allowed in case the selected element is already a * parameter itself. * - "Parameter[n]": Similar to "Parameter" but restricted to a specific - * numbered parameter (zero-indexed, and `-1` specifies the value of `this`). + * numbered parameter (zero-indexed, and `this` specifies the value of `this`). * - "Parameter[n1..n2]": Similar to "Parameter[n]" but selects any parameter * in the given range. The range is inclusive at both ends. * - "ReturnValue": Selects the return value of a call to the selected element. From abd9f673e176499210b5d2c25a61b0030ba4e8e6 Mon Sep 17 00:00:00 2001 From: Michael Nebel <michaelnebel@github.com> Date: Thu, 16 Mar 2023 14:45:57 +0100 Subject: [PATCH 41/97] Java: Update the java internal documentation for models. --- java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll b/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll index 31a321da0ee..ac6c28cb457 100644 --- a/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll +++ b/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll @@ -39,7 +39,7 @@ * "Argument[n]", "Argument[n1..n2]", "ReturnValue": * - "": Selects a write to the selected element in case this is a field. * - "Argument[n]": Selects an argument in a call to the selected element. - * The arguments are zero-indexed, and `-1` specifies the qualifier. + * The arguments are zero-indexed, and `this` specifies the qualifier. * - "Argument[n1..n2]": Similar to "Argument[n]" but select any argument in * the given range. The range is inclusive at both ends. * - "ReturnValue": Selects a value being returned by the selected element. @@ -50,14 +50,14 @@ * - "": Selects a read of a selected field, or a selected parameter. * - "Argument[n]": Selects the post-update value of an argument in a call to the * selected element. That is, the value of the argument after the call returns. - * The arguments are zero-indexed, and `-1` specifies the qualifier. + * The arguments are zero-indexed, and `this` specifies the qualifier. * - "Argument[n1..n2]": Similar to "Argument[n]" but select any argument in * the given range. The range is inclusive at both ends. * - "Parameter": Selects the value of a parameter of the selected element. * "Parameter" is also allowed in case the selected element is already a * parameter itself. * - "Parameter[n]": Similar to "Parameter" but restricted to a specific - * numbered parameter (zero-indexed, and `-1` specifies the value of `this`). + * numbered parameter (zero-indexed, and `this` specifies the value of `this`). * - "Parameter[n1..n2]": Similar to "Parameter[n]" but selects any parameter * in the given range. The range is inclusive at both ends. * - "ReturnValue": Selects the return value of a call to the selected element. From 9a3c2d3fbe528ac527468a108abaf2fa74a90272 Mon Sep 17 00:00:00 2001 From: Michael Nebel <michaelnebel@github.com> Date: Thu, 16 Mar 2023 16:03:19 +0100 Subject: [PATCH 42/97] Java: Update summary parsing to use this instead of -1 and adjust the model generator. --- .../internal/FlowSummaryImplSpecific.qll | 21 +++++++++++++++---- .../internal/CaptureModelsSpecific.qll | 2 +- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/FlowSummaryImplSpecific.qll b/java/ql/lib/semmle/code/java/dataflow/internal/FlowSummaryImplSpecific.qll index cdbcfd30990..cde591b19b1 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/FlowSummaryImplSpecific.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/FlowSummaryImplSpecific.qll @@ -196,11 +196,16 @@ string getComponentSpecific(SummaryComponent sc) { exists(Content c | sc = TContentSummaryComponent(c) and result = getContentSpecific(c)) } +bindingset[pos] +private string positionToString(int pos) { + if pos = -1 then result = "this" else result = pos.toString() +} + /** Gets the textual representation of a parameter position in the format used for flow summaries. */ -string getParameterPosition(ParameterPosition pos) { result = pos.toString() } +string getParameterPosition(ParameterPosition pos) { result = positionToString(pos) } /** Gets the textual representation of an argument position in the format used for flow summaries. */ -string getArgumentPosition(ArgumentPosition pos) { result = pos.toString() } +string getArgumentPosition(ArgumentPosition pos) { result = positionToString(pos) } /** Holds if input specification component `c` needs a reference. */ predicate inputNeedsReferenceSpecific(string c) { none() } @@ -314,8 +319,16 @@ predicate interpretInputSpecific(string c, InterpretNode mid, InterpretNode n) { /** Gets the argument position obtained by parsing `X` in `Parameter[X]`. */ bindingset[s] -ArgumentPosition parseParamBody(string s) { result = AccessPath::parseInt(s) } +ArgumentPosition parseParamBody(string s) { + result = AccessPath::parseInt(s) + or + s = "this" and result = -1 +} /** Gets the parameter position obtained by parsing `X` in `Argument[X]`. */ bindingset[s] -ParameterPosition parseArgBody(string s) { result = AccessPath::parseInt(s) } +ParameterPosition parseArgBody(string s) { + result = AccessPath::parseInt(s) + or + s = "this" and result = -1 +} diff --git a/java/ql/src/utils/modelgenerator/internal/CaptureModelsSpecific.qll b/java/ql/src/utils/modelgenerator/internal/CaptureModelsSpecific.qll index 879df6bb873..bce229d10a6 100644 --- a/java/ql/src/utils/modelgenerator/internal/CaptureModelsSpecific.qll +++ b/java/ql/src/utils/modelgenerator/internal/CaptureModelsSpecific.qll @@ -189,7 +189,7 @@ predicate isRelevantType(J::Type t) { /** * Gets the CSV string representation of the qualifier. */ -string qualifierString() { result = "Argument[-1]" } +string qualifierString() { result = "Argument[this]" } private string parameterAccess(J::Parameter p) { if From 0ec56203f957f288f8b238a7c0ef06757e404c8f Mon Sep 17 00:00:00 2001 From: Michael Nebel <michaelnebel@github.com> Date: Fri, 17 Mar 2023 14:04:57 +0100 Subject: [PATCH 43/97] Java: Introduce index validation. --- .../lib/semmle/code/java/dataflow/ExternalFlow.qll | 12 +++++++++--- .../code/java/dataflow/internal/FlowSummaryImpl.qll | 10 ++++++++++ 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll b/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll index ac6c28cb457..a736928361c 100644 --- a/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll +++ b/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll @@ -233,6 +233,8 @@ module ModelValidation { or part = input.(AccessPath).getToken(0) and parseParam(part, _) + or + invalidIndexComponent(input, part) ) and result = "Unrecognized input specification \"" + part + "\" in " + pred + " model." ) @@ -244,9 +246,13 @@ module ModelValidation { or summaryModel(_, _, _, _, _, _, _, output, _, _) and pred = "summary" | - invalidSpecComponent(output, part) and - not part = "" and - not (part = ["Argument", "Parameter"] and pred = "source") and + ( + invalidSpecComponent(output, part) and + not part = "" and + not (part = ["Argument", "Parameter"] and pred = "source") + or + invalidIndexComponent(output, part) + ) and result = "Unrecognized output specification \"" + part + "\" in " + pred + " model." ) } diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/FlowSummaryImpl.qll b/java/ql/lib/semmle/code/java/dataflow/internal/FlowSummaryImpl.qll index e485a5be522..478328d90bf 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/FlowSummaryImpl.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/FlowSummaryImpl.qll @@ -1050,6 +1050,16 @@ module Private { not exists(interpretComponent(c)) } + /** + * Holds if token `part` of specification `spec` has an invalid index. + * E.g., `Argument[-1]`. + */ + predicate invalidIndexComponent(AccessPath spec, AccessPathToken part) { + part = spec.getToken(_) and + part.getName() = ["Parameter", "Argument"] and + AccessPath::parseInt(part.getArgumentList()) < 0 + } + private predicate inputNeedsReference(AccessPathToken c) { c.getName() = "Argument" or inputNeedsReferenceSpecific(c) From 37484a415ff71a336a1d6ffa7e5721f9a7bbecc4 Mon Sep 17 00:00:00 2001 From: Michael Nebel <michaelnebel@github.com> Date: Fri, 17 Mar 2023 14:38:13 +0100 Subject: [PATCH 44/97] Sync files. --- .../code/csharp/dataflow/internal/FlowSummaryImpl.qll | 10 ++++++++++ .../semmle/go/dataflow/internal/FlowSummaryImpl.qll | 10 ++++++++++ .../python/dataflow/new/internal/FlowSummaryImpl.qll | 10 ++++++++++ .../codeql/ruby/dataflow/internal/FlowSummaryImpl.qll | 10 ++++++++++ .../codeql/swift/dataflow/internal/FlowSummaryImpl.qll | 10 ++++++++++ 5 files changed, 50 insertions(+) diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/FlowSummaryImpl.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/FlowSummaryImpl.qll index e485a5be522..478328d90bf 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/FlowSummaryImpl.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/FlowSummaryImpl.qll @@ -1050,6 +1050,16 @@ module Private { not exists(interpretComponent(c)) } + /** + * Holds if token `part` of specification `spec` has an invalid index. + * E.g., `Argument[-1]`. + */ + predicate invalidIndexComponent(AccessPath spec, AccessPathToken part) { + part = spec.getToken(_) and + part.getName() = ["Parameter", "Argument"] and + AccessPath::parseInt(part.getArgumentList()) < 0 + } + private predicate inputNeedsReference(AccessPathToken c) { c.getName() = "Argument" or inputNeedsReferenceSpecific(c) diff --git a/go/ql/lib/semmle/go/dataflow/internal/FlowSummaryImpl.qll b/go/ql/lib/semmle/go/dataflow/internal/FlowSummaryImpl.qll index e485a5be522..478328d90bf 100644 --- a/go/ql/lib/semmle/go/dataflow/internal/FlowSummaryImpl.qll +++ b/go/ql/lib/semmle/go/dataflow/internal/FlowSummaryImpl.qll @@ -1050,6 +1050,16 @@ module Private { not exists(interpretComponent(c)) } + /** + * Holds if token `part` of specification `spec` has an invalid index. + * E.g., `Argument[-1]`. + */ + predicate invalidIndexComponent(AccessPath spec, AccessPathToken part) { + part = spec.getToken(_) and + part.getName() = ["Parameter", "Argument"] and + AccessPath::parseInt(part.getArgumentList()) < 0 + } + private predicate inputNeedsReference(AccessPathToken c) { c.getName() = "Argument" or inputNeedsReferenceSpecific(c) diff --git a/python/ql/lib/semmle/python/dataflow/new/internal/FlowSummaryImpl.qll b/python/ql/lib/semmle/python/dataflow/new/internal/FlowSummaryImpl.qll index e485a5be522..478328d90bf 100644 --- a/python/ql/lib/semmle/python/dataflow/new/internal/FlowSummaryImpl.qll +++ b/python/ql/lib/semmle/python/dataflow/new/internal/FlowSummaryImpl.qll @@ -1050,6 +1050,16 @@ module Private { not exists(interpretComponent(c)) } + /** + * Holds if token `part` of specification `spec` has an invalid index. + * E.g., `Argument[-1]`. + */ + predicate invalidIndexComponent(AccessPath spec, AccessPathToken part) { + part = spec.getToken(_) and + part.getName() = ["Parameter", "Argument"] and + AccessPath::parseInt(part.getArgumentList()) < 0 + } + private predicate inputNeedsReference(AccessPathToken c) { c.getName() = "Argument" or inputNeedsReferenceSpecific(c) diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/FlowSummaryImpl.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/FlowSummaryImpl.qll index e485a5be522..478328d90bf 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/FlowSummaryImpl.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/FlowSummaryImpl.qll @@ -1050,6 +1050,16 @@ module Private { not exists(interpretComponent(c)) } + /** + * Holds if token `part` of specification `spec` has an invalid index. + * E.g., `Argument[-1]`. + */ + predicate invalidIndexComponent(AccessPath spec, AccessPathToken part) { + part = spec.getToken(_) and + part.getName() = ["Parameter", "Argument"] and + AccessPath::parseInt(part.getArgumentList()) < 0 + } + private predicate inputNeedsReference(AccessPathToken c) { c.getName() = "Argument" or inputNeedsReferenceSpecific(c) diff --git a/swift/ql/lib/codeql/swift/dataflow/internal/FlowSummaryImpl.qll b/swift/ql/lib/codeql/swift/dataflow/internal/FlowSummaryImpl.qll index e485a5be522..478328d90bf 100644 --- a/swift/ql/lib/codeql/swift/dataflow/internal/FlowSummaryImpl.qll +++ b/swift/ql/lib/codeql/swift/dataflow/internal/FlowSummaryImpl.qll @@ -1050,6 +1050,16 @@ module Private { not exists(interpretComponent(c)) } + /** + * Holds if token `part` of specification `spec` has an invalid index. + * E.g., `Argument[-1]`. + */ + predicate invalidIndexComponent(AccessPath spec, AccessPathToken part) { + part = spec.getToken(_) and + part.getName() = ["Parameter", "Argument"] and + AccessPath::parseInt(part.getArgumentList()) < 0 + } + private predicate inputNeedsReference(AccessPathToken c) { c.getName() = "Argument" or inputNeedsReferenceSpecific(c) From e78af3e66cdc4803a33b2ba60e425138488e1414 Mon Sep 17 00:00:00 2001 From: Michael Nebel <michaelnebel@github.com> Date: Fri, 17 Mar 2023 14:42:31 +0100 Subject: [PATCH 45/97] C#: Introduce Argument and Parameter index validation for models. --- .../lib/semmle/code/csharp/dataflow/ExternalFlow.qll | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/ExternalFlow.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/ExternalFlow.qll index e4cfab342b5..4067ba6e81c 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/ExternalFlow.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/ExternalFlow.qll @@ -173,6 +173,8 @@ module ModelValidation { or part = input.getToken(_) and parseParam(part, _) + or + invalidIndexComponent(input, part) ) and result = "Unrecognized input specification \"" + part + "\" in " + pred + " model." ) @@ -184,9 +186,13 @@ module ModelValidation { or summaryModel(_, _, _, _, _, _, _, output, _, _) and pred = "summary" | - invalidSpecComponent(output, part) and - not part = "" and - not (part = ["Argument", "Parameter"] and pred = "source") and + ( + invalidSpecComponent(output, part) and + not part = "" and + not (part = ["Argument", "Parameter"] and pred = "source") + or + invalidIndexComponent(output, part) + ) and result = "Unrecognized output specification \"" + part + "\" in " + pred + " model." ) } From a9ef3f95a2bea1d58ea5f334e09bb51ab0a22c83 Mon Sep 17 00:00:00 2001 From: Tom Hvitved <hvitved@github.com> Date: Mon, 20 Mar 2023 09:33:30 +0100 Subject: [PATCH 46/97] Ruby: Introduce `ContentSet::isElementOfType[OrUnknown]/1` --- .../dataflow/internal/DataFlowPrivate.qll | 6 ++- .../ruby/dataflow/internal/DataFlowPublic.qll | 43 ++++++++++++++++++- .../security/UnsafeCodeConstructionQuery.qll | 4 +- .../UnsafeShellCommandConstructionQuery.qll | 4 +- .../ruby/typetracking/TypeTrackerSpecific.qll | 6 +++ .../flow-summaries/semantics.expected | 42 ++++++++++++++++++ .../dataflow/flow-summaries/semantics.rb | 8 ++-- 7 files changed, 101 insertions(+), 12 deletions(-) diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll index 82a5271e9b9..cfce508e706 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll @@ -1,3 +1,4 @@ +private import codeql.util.Boolean private import codeql.ruby.AST private import codeql.ruby.ast.internal.Synthesis private import codeql.ruby.CFG @@ -456,12 +457,15 @@ private module Cached { FlowSummaryImplSpecific::ParsePositions::isParsedElementLowerBoundPosition(_, includeUnknown, lower) } or + TElementContentOfTypeContent(string type, Boolean includeUnknown) { + type = any(Content::KnownElementContent content).getIndex().getValueType() + } or TNoContentSet() // Only used by type-tracking cached class TContentSet = TSingletonContent or TAnyElementContent or TKnownOrUnknownElementContent or - TElementLowerBoundContent; + TElementLowerBoundContent or TElementContentOfTypeContent; private predicate trackKnownValue(ConstantValue cv) { not cv.isFloat(_) and diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPublic.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPublic.qll index 4ea02818c92..418e3f621d2 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPublic.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPublic.qll @@ -534,6 +534,21 @@ class ContentSet extends TContentSet { this = TElementLowerBoundContent(lower, true) } + /** + * Holds if this content set represents all `KnownElementContent`s where + * the index is of type `type`, as per `ConstantValue::getValueType/0`. + */ + predicate isElementOfType(string type) { this = TElementContentOfTypeContent(type, false) } + + /** + * Holds if this content set represents `UnknownElementContent` unioned with + * all `KnownElementContent`s where the index is of type `type`, as per + * `ConstantValue::getValueType/0`. + */ + predicate isElementOfTypeOrUnknown(string type) { + this = TElementContentOfTypeContent(type, true) + } + /** Gets a textual representation of this content set. */ string toString() { exists(Content c | @@ -558,6 +573,16 @@ class ContentSet extends TContentSet { includeUnknown = true and result = lower + ".." ) + or + exists(string type, boolean includeUnknown | + this = TElementContentOfTypeContent(type, includeUnknown) + | + includeUnknown = false and + result = "any(" + type + ")!" + or + includeUnknown = true and + result = "any(" + type + ")" + ) } /** Gets a content that may be stored into when storing into this set. */ @@ -576,7 +601,14 @@ class ContentSet extends TContentSet { // step that store only into `1` this.isKnownOrUnknownElement(result) or - this.isElementLowerBound(_) and + // These reverse stores are not as accurate as they could be, but making + // them more accurate would result in a large fan-out + ( + this.isElementLowerBound(_) or + this.isElementLowerBoundOrUnknown(_) or + this.isElementOfType(_) or + this.isElementOfTypeOrUnknown(_) + ) and result = TUnknownElementContent() } @@ -603,6 +635,15 @@ class ContentSet extends TContentSet { includeUnknown = true and result = TUnknownElementContent() ) + or + exists(string type, boolean includeUnknown | + this = TElementContentOfTypeContent(type, includeUnknown) + | + type = result.(Content::KnownElementContent).getIndex().getValueType() + or + includeUnknown = true and + result = TUnknownElementContent() + ) } } diff --git a/ruby/ql/lib/codeql/ruby/security/UnsafeCodeConstructionQuery.qll b/ruby/ql/lib/codeql/ruby/security/UnsafeCodeConstructionQuery.qll index e0d9508c4a8..c5b5c5489a2 100644 --- a/ruby/ql/lib/codeql/ruby/security/UnsafeCodeConstructionQuery.qll +++ b/ruby/ql/lib/codeql/ruby/security/UnsafeCodeConstructionQuery.qll @@ -34,8 +34,6 @@ class Configuration extends TaintTracking::Configuration { override predicate allowImplicitRead(DataFlow::Node node, DataFlow::ContentSet set) { // allow implicit reads of array elements this.isSink(node) and - set.isKnownOrUnknownElement(any(DataFlow::Content::KnownElementContent content | - content.getIndex().getValueType() = "int" - )) + set.isElementOfTypeOrUnknown("int") } } diff --git a/ruby/ql/lib/codeql/ruby/security/UnsafeShellCommandConstructionQuery.qll b/ruby/ql/lib/codeql/ruby/security/UnsafeShellCommandConstructionQuery.qll index 49f03f18144..35ff4ffea97 100644 --- a/ruby/ql/lib/codeql/ruby/security/UnsafeShellCommandConstructionQuery.qll +++ b/ruby/ql/lib/codeql/ruby/security/UnsafeShellCommandConstructionQuery.qll @@ -36,8 +36,6 @@ class Configuration extends TaintTracking::Configuration { override predicate allowImplicitRead(DataFlow::Node node, DataFlow::ContentSet set) { // allow implicit reads of array elements this.isSink(node) and - set.isKnownOrUnknownElement(any(DataFlow::Content::KnownElementContent content | - content.getIndex().getValueType() = "int" - )) + set.isElementOfTypeOrUnknown("int") } } diff --git a/ruby/ql/lib/codeql/ruby/typetracking/TypeTrackerSpecific.qll b/ruby/ql/lib/codeql/ruby/typetracking/TypeTrackerSpecific.qll index cc11b6b2a87..69ac88c777e 100644 --- a/ruby/ql/lib/codeql/ruby/typetracking/TypeTrackerSpecific.qll +++ b/ruby/ql/lib/codeql/ruby/typetracking/TypeTrackerSpecific.qll @@ -449,6 +449,8 @@ private ContentFilter getFilterFromWithoutContentStep(DataFlow::ContentSet conte or content.isElementLowerBoundOrUnknown(_) or + content.isElementOfTypeOrUnknown(_) + or content.isSingleton(any(DataFlow::Content::UnknownElementContent c)) ) and result = MkElementFilter() @@ -484,6 +486,10 @@ private ContentFilter getFilterFromWithContentStep(DataFlow::ContentSet content) or content.isElementLowerBoundOrUnknown(_) or + content.isElementOfType(_) + or + content.isElementOfTypeOrUnknown(_) + or content.isSingleton(any(DataFlow::Content::ElementContent c)) ) and result = MkElementFilter() diff --git a/ruby/ql/test/library-tests/dataflow/flow-summaries/semantics.expected b/ruby/ql/test/library-tests/dataflow/flow-summaries/semantics.expected index 63405c9785e..4ef45d2ae92 100644 --- a/ruby/ql/test/library-tests/dataflow/flow-summaries/semantics.expected +++ b/ruby/ql/test/library-tests/dataflow/flow-summaries/semantics.expected @@ -248,6 +248,26 @@ edges | semantics.rb:221:14:221:14 | h [element 2] : | semantics.rb:221:10:221:15 | call to s27 | | semantics.rb:221:14:221:14 | h [element] : | semantics.rb:221:10:221:15 | call to s27 | | semantics.rb:221:14:221:14 | h [element] : | semantics.rb:221:10:221:15 | call to s27 | +| semantics.rb:225:9:225:18 | call to source : | semantics.rb:226:13:226:13 | a : | +| semantics.rb:225:9:225:18 | call to source : | semantics.rb:226:13:226:13 | a : | +| semantics.rb:226:9:226:14 | call to s28 [element] : | semantics.rb:227:10:227:10 | x [element] : | +| semantics.rb:226:9:226:14 | call to s28 [element] : | semantics.rb:227:10:227:10 | x [element] : | +| semantics.rb:226:9:226:14 | call to s28 [element] : | semantics.rb:228:10:228:10 | x [element] : | +| semantics.rb:226:9:226:14 | call to s28 [element] : | semantics.rb:228:10:228:10 | x [element] : | +| semantics.rb:226:9:226:14 | call to s28 [element] : | semantics.rb:229:10:229:10 | x [element] : | +| semantics.rb:226:9:226:14 | call to s28 [element] : | semantics.rb:229:10:229:10 | x [element] : | +| semantics.rb:226:9:226:14 | call to s28 [element] : | semantics.rb:230:10:230:10 | x [element] : | +| semantics.rb:226:9:226:14 | call to s28 [element] : | semantics.rb:230:10:230:10 | x [element] : | +| semantics.rb:226:13:226:13 | a : | semantics.rb:226:9:226:14 | call to s28 [element] : | +| semantics.rb:226:13:226:13 | a : | semantics.rb:226:9:226:14 | call to s28 [element] : | +| semantics.rb:227:10:227:10 | x [element] : | semantics.rb:227:10:227:13 | ...[...] | +| semantics.rb:227:10:227:10 | x [element] : | semantics.rb:227:10:227:13 | ...[...] | +| semantics.rb:228:10:228:10 | x [element] : | semantics.rb:228:10:228:13 | ...[...] | +| semantics.rb:228:10:228:10 | x [element] : | semantics.rb:228:10:228:13 | ...[...] | +| semantics.rb:229:10:229:10 | x [element] : | semantics.rb:229:10:229:13 | ...[...] | +| semantics.rb:229:10:229:10 | x [element] : | semantics.rb:229:10:229:13 | ...[...] | +| semantics.rb:230:10:230:10 | x [element] : | semantics.rb:230:10:230:13 | ...[...] | +| semantics.rb:230:10:230:10 | x [element] : | semantics.rb:230:10:230:13 | ...[...] | | semantics.rb:235:9:235:18 | call to source : | semantics.rb:240:5:240:5 | [post] h [element 1] : | | semantics.rb:235:9:235:18 | call to source : | semantics.rb:240:5:240:5 | [post] h [element 1] : | | semantics.rb:236:9:236:18 | call to source : | semantics.rb:241:5:241:5 | [post] h [element 2] : | @@ -1206,6 +1226,28 @@ nodes | semantics.rb:221:14:221:14 | h [element 2] : | semmle.label | h [element 2] : | | semantics.rb:221:14:221:14 | h [element] : | semmle.label | h [element] : | | semantics.rb:221:14:221:14 | h [element] : | semmle.label | h [element] : | +| semantics.rb:225:9:225:18 | call to source : | semmle.label | call to source : | +| semantics.rb:225:9:225:18 | call to source : | semmle.label | call to source : | +| semantics.rb:226:9:226:14 | call to s28 [element] : | semmle.label | call to s28 [element] : | +| semantics.rb:226:9:226:14 | call to s28 [element] : | semmle.label | call to s28 [element] : | +| semantics.rb:226:13:226:13 | a : | semmle.label | a : | +| semantics.rb:226:13:226:13 | a : | semmle.label | a : | +| semantics.rb:227:10:227:10 | x [element] : | semmle.label | x [element] : | +| semantics.rb:227:10:227:10 | x [element] : | semmle.label | x [element] : | +| semantics.rb:227:10:227:13 | ...[...] | semmle.label | ...[...] | +| semantics.rb:227:10:227:13 | ...[...] | semmle.label | ...[...] | +| semantics.rb:228:10:228:10 | x [element] : | semmle.label | x [element] : | +| semantics.rb:228:10:228:10 | x [element] : | semmle.label | x [element] : | +| semantics.rb:228:10:228:13 | ...[...] | semmle.label | ...[...] | +| semantics.rb:228:10:228:13 | ...[...] | semmle.label | ...[...] | +| semantics.rb:229:10:229:10 | x [element] : | semmle.label | x [element] : | +| semantics.rb:229:10:229:10 | x [element] : | semmle.label | x [element] : | +| semantics.rb:229:10:229:13 | ...[...] | semmle.label | ...[...] | +| semantics.rb:229:10:229:13 | ...[...] | semmle.label | ...[...] | +| semantics.rb:230:10:230:10 | x [element] : | semmle.label | x [element] : | +| semantics.rb:230:10:230:10 | x [element] : | semmle.label | x [element] : | +| semantics.rb:230:10:230:13 | ...[...] | semmle.label | ...[...] | +| semantics.rb:230:10:230:13 | ...[...] | semmle.label | ...[...] | | semantics.rb:235:9:235:18 | call to source : | semmle.label | call to source : | | semantics.rb:235:9:235:18 | call to source : | semmle.label | call to source : | | semantics.rb:236:9:236:18 | call to source : | semmle.label | call to source : | diff --git a/ruby/ql/test/library-tests/dataflow/flow-summaries/semantics.rb b/ruby/ql/test/library-tests/dataflow/flow-summaries/semantics.rb index 4424893a9b5..5ec554aed48 100644 --- a/ruby/ql/test/library-tests/dataflow/flow-summaries/semantics.rb +++ b/ruby/ql/test/library-tests/dataflow/flow-summaries/semantics.rb @@ -224,10 +224,10 @@ end def m28(i) a = source "a" x = s28(a) - sink x[0] - sink x[1] # $ MISSING: hasValueFlow=a - sink x[2] # $ MISSING: hasValueFlow=a - sink x[i] # $ MISSING: hasValueFlow=a + sink x[0] # $ SPURIOUS: hasValueFlow=a + sink x[1] # $ hasValueFlow=a + sink x[2] # $ hasValueFlow=a + sink x[i] # $ hasValueFlow=a end def m29(i) From e86f1e49614196755347960d31e1c7fd6c5fbd1e Mon Sep 17 00:00:00 2001 From: Michael Nebel <michaelnebel@github.com> Date: Fri, 17 Mar 2023 10:58:56 +0100 Subject: [PATCH 47/97] Java: Replace Argument[-1] with Argument[this]. --- .../default-parameter-mad-flow/test.ext.yml | 2 +- java/ql/lib/ext/android.app.model.yml | 204 ++-- java/ql/lib/ext/android.content.model.yml | 240 ++-- java/ql/lib/ext/android.database.model.yml | 18 +- .../lib/ext/android.database.sqlite.model.yml | 28 +- java/ql/lib/ext/android.net.model.yml | 106 +- java/ql/lib/ext/android.os.model.yml | 238 ++-- java/ql/lib/ext/android.widget.model.yml | 2 +- java/ql/lib/ext/androidx.core.app.model.yml | 190 ++-- .../lib/ext/androidx.slice.builders.model.yml | 170 +-- .../com.esotericsoftware.kryo.io.model.yml | 2 +- .../com.esotericsoftware.kryo5.io.model.yml | 2 +- .../lib/ext/com.google.common.base.model.yml | 60 +- .../lib/ext/com.google.common.cache.model.yml | 30 +- .../ext/com.google.common.collect.model.yml | 272 ++--- .../ql/lib/ext/com.google.common.io.model.yml | 78 +- .../ext/com.rabbitmq.client.impl.model.yml | 2 +- java/ql/lib/ext/com.rabbitmq.client.model.yml | 8 +- .../ext/experimental/android.webkit.model.yml | 2 +- .../com.auth0.jwt.interfaces.model.yml | 28 +- ...ndertow.server.handlers.resource.model.yml | 6 +- .../ql/lib/ext/experimental/java.io.model.yml | 2 +- .../ext/experimental/java.nio.file.model.yml | 4 +- ...org.apache.logging.log4j.message.model.yml | 8 +- .../org.springframework.core.io.model.yml | 10 +- java/ql/lib/ext/flexjson.model.yml | 2 +- .../lib/ext/generated/kotlinstdlib.model.yml | 470 ++++---- .../generated/org.apache.commons.io.model.yml | 714 ++++++------ java/ql/lib/ext/jakarta.json.model.yml | 172 +-- java/ql/lib/ext/jakarta.ws.rs.core.model.yml | 214 ++-- java/ql/lib/ext/java.beans.model.yml | 2 +- java/ql/lib/ext/java.io.model.yml | 80 +- java/ql/lib/ext/java.lang.model.yml | 122 +- java/ql/lib/ext/java.net.model.yml | 24 +- java/ql/lib/ext/java.nio.channels.model.yml | 2 +- java/ql/lib/ext/java.nio.file.model.yml | 12 +- java/ql/lib/ext/java.nio.model.yml | 4 +- java/ql/lib/ext/java.sql.model.yml | 4 +- .../ext/java.util.concurrent.atomic.model.yml | 4 +- .../ql/lib/ext/java.util.concurrent.model.yml | 36 +- java/ql/lib/ext/java.util.function.model.yml | 2 +- java/ql/lib/ext/java.util.logging.model.yml | 2 +- java/ql/lib/ext/java.util.model.yml | 424 +++---- java/ql/lib/ext/java.util.regex.model.yml | 18 +- java/ql/lib/ext/java.util.stream.model.yml | 98 +- java/ql/lib/ext/java.util.zip.model.yml | 4 +- java/ql/lib/ext/javax.jms.model.yml | 114 +- java/ql/lib/ext/javax.json.model.yml | 172 +-- .../lib/ext/javax.management.remote.model.yml | 2 +- java/ql/lib/ext/javax.script.model.yml | 2 +- java/ql/lib/ext/javax.servlet.http.model.yml | 4 +- java/ql/lib/ext/javax.ws.rs.core.model.yml | 214 ++-- java/ql/lib/ext/javax.xml.transform.model.yml | 2 +- .../lib/ext/javax.xml.transform.sax.model.yml | 6 +- .../ext/javax.xml.transform.stream.model.yml | 4 +- java/ql/lib/ext/jodd.json.model.yml | 20 +- java/ql/lib/ext/net.sf.saxon.s9api.model.yml | 10 +- java/ql/lib/ext/ognl.enhance.model.yml | 4 +- java/ql/lib/ext/ognl.model.yml | 4 +- java/ql/lib/ext/okhttp3.model.yml | 92 +- ...g.apache.commons.collections.bag.model.yml | 16 +- ...ache.commons.collections.bidimap.model.yml | 52 +- ...e.commons.collections.collection.model.yml | 48 +- ...he.commons.collections.iterators.model.yml | 134 +-- ...che.commons.collections.keyvalue.model.yml | 104 +- ....apache.commons.collections.list.model.yml | 30 +- ...g.apache.commons.collections.map.model.yml | 190 ++-- .../org.apache.commons.collections.model.yml | 170 +-- ...che.commons.collections.multimap.model.yml | 16 +- ...che.commons.collections.multiset.model.yml | 2 +- ...apache.commons.collections.queue.model.yml | 4 +- ...g.apache.commons.collections.set.model.yml | 30 +- ...che.commons.collections.splitmap.model.yml | 4 +- ....apache.commons.collections.trie.model.yml | 12 +- ....apache.commons.collections4.bag.model.yml | 16 +- ...che.commons.collections4.bidimap.model.yml | 52 +- ....commons.collections4.collection.model.yml | 48 +- ...e.commons.collections4.iterators.model.yml | 134 +-- ...he.commons.collections4.keyvalue.model.yml | 104 +- ...apache.commons.collections4.list.model.yml | 30 +- ....apache.commons.collections4.map.model.yml | 190 ++-- .../org.apache.commons.collections4.model.yml | 170 +-- ...he.commons.collections4.multimap.model.yml | 16 +- ...he.commons.collections4.multiset.model.yml | 2 +- ...pache.commons.collections4.queue.model.yml | 4 +- ....apache.commons.collections4.set.model.yml | 30 +- ...he.commons.collections4.splitmap.model.yml | 4 +- ...apache.commons.collections4.trie.model.yml | 12 +- ...e.commons.compress.archivers.tar.model.yml | 8 +- .../ext/org.apache.commons.jexl2.model.yml | 22 +- .../ext/org.apache.commons.jexl3.model.yml | 22 +- ...org.apache.commons.lang3.builder.model.yml | 34 +- ...org.apache.commons.lang3.mutable.model.yml | 6 +- .../org.apache.commons.lang3.text.model.yml | 244 ++-- .../org.apache.commons.lang3.tuple.model.yml | 60 +- .../org.apache.commons.ognl.enhance.model.yml | 4 +- .../lib/ext/org.apache.commons.ognl.model.yml | 4 +- .../org.apache.commons.text.lookup.model.yml | 2 +- .../lib/ext/org.apache.commons.text.model.yml | 466 ++++---- .../org.apache.hc.core5.function.model.yml | 2 +- ...g.apache.hc.core5.http.io.entity.model.yml | 4 +- ...org.apache.hc.core5.http.message.model.yml | 10 +- .../ext/org.apache.hc.core5.http.model.yml | 40 +- .../lib/ext/org.apache.hc.core5.net.model.yml | 4 +- .../ext/org.apache.hc.core5.util.model.yml | 36 +- .../org.apache.http.client.utils.model.yml | 10 +- .../lib/ext/org.apache.http.entity.model.yml | 6 +- .../lib/ext/org.apache.http.message.model.yml | 2 +- java/ql/lib/ext/org.apache.http.model.yml | 50 +- .../lib/ext/org.apache.http.params.model.yml | 8 +- .../ql/lib/ext/org.apache.http.util.model.yml | 36 +- .../lib/ext/org.apache.ibatis.jdbc.model.yml | 114 +- .../ql/lib/ext/org.apache.tools.zip.model.yml | 2 +- .../ext/org.codehaus.groovy.control.model.yml | 2 +- java/ql/lib/ext/org.json.model.yml | 344 +++--- ...ohsuke.stapler.framework.adjunct.model.yml | 2 +- java/ql/lib/ext/org.mvel2.compiler.model.yml | 8 +- java/ql/lib/ext/org.mvel2.jsr223.model.yml | 2 +- java/ql/lib/ext/org.slf4j.spi.model.yml | 12 +- .../ext/org.springframework.beans.model.yml | 60 +- .../ext/org.springframework.cache.model.yml | 26 +- .../ext/org.springframework.http.model.yml | 126 +- .../lib/ext/org.springframework.ui.model.yml | 64 +- .../ext/org.springframework.util.model.yml | 66 +- .../org.springframework.validation.model.yml | 26 +- ...rg.springframework.web.multipart.model.yml | 24 +- .../org.springframework.web.util.model.yml | 170 +-- java/ql/lib/ext/org.thymeleaf.model.yml | 4 +- java/ql/lib/ext/org.xml.sax.model.yml | 2 +- java/ql/lib/ext/ratpack.core.form.model.yml | 6 +- java/ql/lib/ext/ratpack.core.http.model.yml | 20 +- java/ql/lib/ext/ratpack.exec.model.yml | 58 +- java/ql/lib/ext/ratpack.form.model.yml | 6 +- java/ql/lib/ext/ratpack.func.model.yml | 44 +- java/ql/lib/ext/ratpack.http.model.yml | 20 +- java/ql/lib/ext/ratpack.util.model.yml | 44 +- .../internal/CaptureSummaryFlow.qll | 6 +- .../dataflow/notnullexpr/test.ext.yml | 2 +- .../dataflow/whenexpr/test.ext.yml | 2 +- .../library-tests/dataflow/collections/B.java | 300 ++--- .../dataflow/collections/Constructors.java | 70 +- .../dataflow/external-models/steps.ext.yml | 6 +- .../content-provider-summaries/Test.java | 126 +- .../frameworks/android/flow-steps/Test.java | 82 +- .../frameworks/android/intent/Test.java | 474 ++++---- .../frameworks/android/notification/Test.java | 400 +++---- .../frameworks/android/slice/Test.java | 212 ++-- .../frameworks/android/uri/Test.java | 108 +- .../frameworks/apache-ant/Test.java | 2 +- .../frameworks/apache-collections/Test.java | 1012 ++++++++--------- .../apache-commons-compress/Test.java | 8 +- .../frameworks/apache-http/Client.java | 10 +- .../guava/generated/cache/Test.java | 32 +- .../guava/generated/collect/Test.java | 892 +++++++-------- .../frameworks/javax-json/Test.java | 646 +++++------ .../frameworks/jdk/java.io/Test.java | 212 ++-- .../frameworks/jdk/java.net/Test.java | 20 +- .../frameworks/jdk/java.nio.file/Test.java | 12 +- .../frameworks/json-java/Test.java | 472 ++++---- .../library-tests/frameworks/okhttp/Test.java | 94 +- .../frameworks/spring/beans/Test.java | 64 +- .../frameworks/spring/cache/Test.java | 26 +- .../frameworks/spring/ui/Test.java | 116 +- .../frameworks/spring/util/Test.java | 108 +- .../frameworks/spring/webmultipart/Test.java | 24 +- .../frameworks/spring/webutil/Test.java | 302 ++--- .../frameworks/stapler/Test.java | 2 +- .../library-tests/frameworks/stream/Test.java | 102 +- .../frameworks/thymeleaf/Test.java | 12 +- java/ql/test/library-tests/logging/Test.java | 18 +- java/ql/test/library-tests/optional/Test.java | 16 +- java/ql/test/library-tests/paths/Test.java | 38 +- java/ql/test/library-tests/regex/Test.java | 10 +- java/ql/test/library-tests/scanner/Test.java | 86 +- .../CWE-094/GroovyCompilationUnitTest.java | 2 +- .../security/CWE-918/mad/Test.java | 4 +- .../dataflow/CaptureSinkModels.expected | 2 +- .../dataflow/CaptureSummaryModels.expected | 54 +- .../typebasedflow/p/MyFunction.java | 6 +- .../typebasedflow/p/Stream.java | 86 +- .../typebasedflow/p/TypeBasedCollection.java | 8 +- .../typebasedflow/p/TypeBasedComplex.java | 32 +- .../typebasedflow/p/TypeBasedSimple.java | 14 +- 183 files changed, 7530 insertions(+), 7530 deletions(-) diff --git a/java/ql/integration-tests/all-platforms/kotlin/default-parameter-mad-flow/test.ext.yml b/java/ql/integration-tests/all-platforms/kotlin/default-parameter-mad-flow/test.ext.yml index 3553b9fe577..1632b5a8080 100644 --- a/java/ql/integration-tests/all-platforms/kotlin/default-parameter-mad-flow/test.ext.yml +++ b/java/ql/integration-tests/all-platforms/kotlin/default-parameter-mad-flow/test.ext.yml @@ -3,7 +3,7 @@ extensions: pack: integrationtest-default-parameter-mad-flow extensible: summaryModel data: - - ["", "ConstructorWithDefaults", True, "ConstructorWithDefaults", "(int,int)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] + - ["", "ConstructorWithDefaults", True, "ConstructorWithDefaults", "(int,int)", "", "Argument[0]", "Argument[this]", "taint", "manual"] - ["", "LibKt", True, "topLevelWithDefaults", "(int,int)", "", "Argument[0]", "ReturnValue", "value", "manual"] - ["", "LibKt", True, "extensionWithDefaults", "(String,int,int)", "", "Argument[1]", "ReturnValue", "value", "manual"] - ["", "LibClass", True, "memberWithDefaults", "(int,int)", "", "Argument[0]", "ReturnValue", "value", "manual"] diff --git a/java/ql/lib/ext/android.app.model.yml b/java/ql/lib/ext/android.app.model.yml index 82ed724a418..861867d344c 100644 --- a/java/ql/lib/ext/android.app.model.yml +++ b/java/ql/lib/ext/android.app.model.yml @@ -42,106 +42,106 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["android.app", "Notification$Action", True, "Action", "(int,CharSequence,PendingIntent)", "", "Argument[2]", "Argument[-1]", "taint", "manual"] - - ["android.app", "Notification$Action", True, "getExtras", "", "", "Argument[-1].SyntheticField[android.content.Intent.extras]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$Action$Builder", True, "Builder", "(Action)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["android.app", "Notification$Action$Builder", True, "Builder", "(Icon,CharSequence,PendingIntent)", "", "Argument[2]", "Argument[-1]", "taint", "manual"] - - ["android.app", "Notification$Action$Builder", True, "Builder", "(int,CharSequence,PendingIntent)", "", "Argument[2]", "Argument[-1]", "taint", "manual"] - - ["android.app", "Notification$Action$Builder", True, "addExtras", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$Action$Builder", True, "addExtras", "", "", "Argument[0].MapKey", "Argument[-1].SyntheticField[android.content.Intent.extras].MapKey", "value", "manual"] - - ["android.app", "Notification$Action$Builder", True, "addExtras", "", "", "Argument[0].MapValue", "Argument[-1].SyntheticField[android.content.Intent.extras].MapValue", "value", "manual"] - - ["android.app", "Notification$Action$Builder", True, "addRemoteInput", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$Action$Builder", True, "build", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["android.app", "Notification$Action$Builder", True, "build", "", "", "Argument[-1].SyntheticField[android.content.Intent.extras]", "ReturnValue.SyntheticField[android.content.Intent.extras]", "value", "manual"] - - ["android.app", "Notification$Action$Builder", True, "extend", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$Action$Builder", True, "getExtras", "", "", "Argument[-1].SyntheticField[android.content.Intent.extras]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$Action$Builder", True, "setAllowGeneratedReplies", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$Action$Builder", True, "setAuthenticationRequired", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$Action$Builder", True, "setContextual", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$Action$Builder", True, "setSemanticAction", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$BigPictureStyle", True, "BigPictureStyle", "(Builder)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["android.app", "Notification$BigPictureStyle", True, "bigLargeIcon", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$BigPictureStyle", True, "bigPicture", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$BigPictureStyle", True, "setBigContentTitle", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$BigPictureStyle", True, "setContentDescription", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$BigPictureStyle", True, "setSummaryText", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$BigPictureStyle", True, "showBigPictureWhenCollapsed", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$BigTextStyle", True, "BigTextStyle", "(Builder)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["android.app", "Notification$BigTextStyle", True, "bigText", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$BigTextStyle", True, "setBigContentTitle", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$BigTextStyle", True, "setSummaryText", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$Builder", True, "addAction", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$Builder", True, "addAction", "(Action)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["android.app", "Notification$Builder", True, "addAction", "(int,CharSequence,PendingIntent)", "", "Argument[2]", "Argument[-1]", "taint", "manual"] - - ["android.app", "Notification$Builder", True, "addExtras", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$Builder", True, "addExtras", "", "", "Argument[0].MapKey", "Argument[-1].SyntheticField[android.content.Intent.extras].MapKey", "value", "manual"] - - ["android.app", "Notification$Builder", True, "addExtras", "", "", "Argument[0].MapValue", "Argument[-1].SyntheticField[android.content.Intent.extras].MapValue", "value", "manual"] - - ["android.app", "Notification$Builder", True, "addPerson", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$Builder", True, "build", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["android.app", "Notification$Builder", True, "build", "", "", "Argument[-1].SyntheticField[android.content.Intent.extras]", "ReturnValue.Field[android.app.Notification.extras]", "value", "manual"] - - ["android.app", "Notification$Builder", True, "extend", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$Builder", True, "getExtras", "", "", "Argument[-1].SyntheticField[android.content.Intent.extras]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$Action", True, "Action", "(int,CharSequence,PendingIntent)", "", "Argument[2]", "Argument[this]", "taint", "manual"] + - ["android.app", "Notification$Action", True, "getExtras", "", "", "Argument[this].SyntheticField[android.content.Intent.extras]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$Action$Builder", True, "Builder", "(Action)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["android.app", "Notification$Action$Builder", True, "Builder", "(Icon,CharSequence,PendingIntent)", "", "Argument[2]", "Argument[this]", "taint", "manual"] + - ["android.app", "Notification$Action$Builder", True, "Builder", "(int,CharSequence,PendingIntent)", "", "Argument[2]", "Argument[this]", "taint", "manual"] + - ["android.app", "Notification$Action$Builder", True, "addExtras", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$Action$Builder", True, "addExtras", "", "", "Argument[0].MapKey", "Argument[this].SyntheticField[android.content.Intent.extras].MapKey", "value", "manual"] + - ["android.app", "Notification$Action$Builder", True, "addExtras", "", "", "Argument[0].MapValue", "Argument[this].SyntheticField[android.content.Intent.extras].MapValue", "value", "manual"] + - ["android.app", "Notification$Action$Builder", True, "addRemoteInput", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$Action$Builder", True, "build", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["android.app", "Notification$Action$Builder", True, "build", "", "", "Argument[this].SyntheticField[android.content.Intent.extras]", "ReturnValue.SyntheticField[android.content.Intent.extras]", "value", "manual"] + - ["android.app", "Notification$Action$Builder", True, "extend", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$Action$Builder", True, "getExtras", "", "", "Argument[this].SyntheticField[android.content.Intent.extras]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$Action$Builder", True, "setAllowGeneratedReplies", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$Action$Builder", True, "setAuthenticationRequired", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$Action$Builder", True, "setContextual", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$Action$Builder", True, "setSemanticAction", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$BigPictureStyle", True, "BigPictureStyle", "(Builder)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["android.app", "Notification$BigPictureStyle", True, "bigLargeIcon", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$BigPictureStyle", True, "bigPicture", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$BigPictureStyle", True, "setBigContentTitle", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$BigPictureStyle", True, "setContentDescription", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$BigPictureStyle", True, "setSummaryText", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$BigPictureStyle", True, "showBigPictureWhenCollapsed", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$BigTextStyle", True, "BigTextStyle", "(Builder)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["android.app", "Notification$BigTextStyle", True, "bigText", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$BigTextStyle", True, "setBigContentTitle", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$BigTextStyle", True, "setSummaryText", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$Builder", True, "addAction", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$Builder", True, "addAction", "(Action)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["android.app", "Notification$Builder", True, "addAction", "(int,CharSequence,PendingIntent)", "", "Argument[2]", "Argument[this]", "taint", "manual"] + - ["android.app", "Notification$Builder", True, "addExtras", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$Builder", True, "addExtras", "", "", "Argument[0].MapKey", "Argument[this].SyntheticField[android.content.Intent.extras].MapKey", "value", "manual"] + - ["android.app", "Notification$Builder", True, "addExtras", "", "", "Argument[0].MapValue", "Argument[this].SyntheticField[android.content.Intent.extras].MapValue", "value", "manual"] + - ["android.app", "Notification$Builder", True, "addPerson", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$Builder", True, "build", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["android.app", "Notification$Builder", True, "build", "", "", "Argument[this].SyntheticField[android.content.Intent.extras]", "ReturnValue.Field[android.app.Notification.extras]", "value", "manual"] + - ["android.app", "Notification$Builder", True, "extend", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$Builder", True, "getExtras", "", "", "Argument[this].SyntheticField[android.content.Intent.extras]", "ReturnValue", "value", "manual"] - ["android.app", "Notification$Builder", True, "recoverBuilder", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] - - ["android.app", "Notification$Builder", True, "setActions", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$Builder", True, "setActions", "", "", "Argument[0].ArrayElement", "Argument[-1]", "taint", "manual"] - - ["android.app", "Notification$Builder", True, "setAutoCancel", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$Builder", True, "setBadgeIconType", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$Builder", True, "setBubbleMetadata", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$Builder", True, "setCategory", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$Builder", True, "setChannelId", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$Builder", True, "setChronometerCountDown", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$Builder", True, "setColor", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$Builder", True, "setColorized", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$Builder", True, "setContent", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$Builder", True, "setContentInfo", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$Builder", True, "setContentIntent", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$Builder", True, "setContentIntent", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["android.app", "Notification$Builder", True, "setContentText", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$Builder", True, "setContentTitle", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$Builder", True, "setCustomBigContentView", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$Builder", True, "setCustomHeadsUpContentView", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$Builder", True, "setDefaults", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$Builder", True, "setDeleteIntent", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$Builder", True, "setDeleteIntent", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["android.app", "Notification$Builder", True, "setExtras", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$Builder", True, "setExtras", "", "", "Argument[0]", "Argument[-1].SyntheticField[android.content.Intent.extras]", "value", "manual"] - - ["android.app", "Notification$Builder", True, "setFlag", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$Builder", True, "setForegroundServiceBehavior", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$Builder", True, "setFullScreenIntent", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$Builder", True, "setGroup", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$Builder", True, "setGroupAlertBehavior", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$Builder", True, "setGroupSummary", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$Builder", True, "setLargeIcon", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$Builder", True, "setLights", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$Builder", True, "setLocalOnly", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$Builder", True, "setLocusId", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$Builder", True, "setNumber", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$Builder", True, "setOngoing", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$Builder", True, "setOnlyAlertOnce", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$Builder", True, "setPriority", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$Builder", True, "setProgress", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$Builder", True, "setPublicVersion", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$Builder", True, "setPublicVersion", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["android.app", "Notification$Builder", True, "setRemoteInputHistory", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$Builder", True, "setSettingsText", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$Builder", True, "setShortcutId", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$Builder", True, "setShowWhen", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$Builder", True, "setSmallIcon", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$Builder", True, "setSortKey", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$Builder", True, "setSound", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$Builder", True, "setStyle", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$Builder", True, "setSubText", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$Builder", True, "setTicker", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$Builder", True, "setTimeoutAfter", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$Builder", True, "setUsesChronometer", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$Builder", True, "setVibrate", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$Builder", True, "setVisibility", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$Builder", True, "setWhen", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$InboxStyle", True, "InboxStyle", "(Builder)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["android.app", "Notification$InboxStyle", True, "addLine", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$InboxStyle", True, "setBigContentTitle", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$InboxStyle", True, "setSummaryText", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$MediaStyle", True, "MediaStyle", "(Builder)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["android.app", "Notification$MediaStyle", True, "setMediaSession", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$MediaStyle", True, "setShowActionsInCompactView", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.app", "Notification$Style", True, "build", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["android.app", "Notification$Builder", True, "setActions", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$Builder", True, "setActions", "", "", "Argument[0].ArrayElement", "Argument[this]", "taint", "manual"] + - ["android.app", "Notification$Builder", True, "setAutoCancel", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$Builder", True, "setBadgeIconType", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$Builder", True, "setBubbleMetadata", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$Builder", True, "setCategory", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$Builder", True, "setChannelId", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$Builder", True, "setChronometerCountDown", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$Builder", True, "setColor", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$Builder", True, "setColorized", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$Builder", True, "setContent", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$Builder", True, "setContentInfo", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$Builder", True, "setContentIntent", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$Builder", True, "setContentIntent", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["android.app", "Notification$Builder", True, "setContentText", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$Builder", True, "setContentTitle", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$Builder", True, "setCustomBigContentView", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$Builder", True, "setCustomHeadsUpContentView", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$Builder", True, "setDefaults", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$Builder", True, "setDeleteIntent", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$Builder", True, "setDeleteIntent", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["android.app", "Notification$Builder", True, "setExtras", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$Builder", True, "setExtras", "", "", "Argument[0]", "Argument[this].SyntheticField[android.content.Intent.extras]", "value", "manual"] + - ["android.app", "Notification$Builder", True, "setFlag", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$Builder", True, "setForegroundServiceBehavior", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$Builder", True, "setFullScreenIntent", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$Builder", True, "setGroup", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$Builder", True, "setGroupAlertBehavior", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$Builder", True, "setGroupSummary", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$Builder", True, "setLargeIcon", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$Builder", True, "setLights", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$Builder", True, "setLocalOnly", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$Builder", True, "setLocusId", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$Builder", True, "setNumber", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$Builder", True, "setOngoing", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$Builder", True, "setOnlyAlertOnce", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$Builder", True, "setPriority", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$Builder", True, "setProgress", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$Builder", True, "setPublicVersion", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$Builder", True, "setPublicVersion", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["android.app", "Notification$Builder", True, "setRemoteInputHistory", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$Builder", True, "setSettingsText", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$Builder", True, "setShortcutId", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$Builder", True, "setShowWhen", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$Builder", True, "setSmallIcon", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$Builder", True, "setSortKey", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$Builder", True, "setSound", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$Builder", True, "setStyle", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$Builder", True, "setSubText", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$Builder", True, "setTicker", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$Builder", True, "setTimeoutAfter", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$Builder", True, "setUsesChronometer", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$Builder", True, "setVibrate", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$Builder", True, "setVisibility", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$Builder", True, "setWhen", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$InboxStyle", True, "InboxStyle", "(Builder)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["android.app", "Notification$InboxStyle", True, "addLine", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$InboxStyle", True, "setBigContentTitle", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$InboxStyle", True, "setSummaryText", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$MediaStyle", True, "MediaStyle", "(Builder)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["android.app", "Notification$MediaStyle", True, "setMediaSession", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$MediaStyle", True, "setShowActionsInCompactView", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.app", "Notification$Style", True, "build", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] diff --git a/java/ql/lib/ext/android.content.model.yml b/java/ql/lib/ext/android.content.model.yml index 292360c550c..89368acc04e 100644 --- a/java/ql/lib/ext/android.content.model.yml +++ b/java/ql/lib/ext/android.content.model.yml @@ -67,32 +67,32 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["android.content", "ComponentName", False, "ComponentName", "(Context,Class)", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["android.content", "ComponentName", False, "ComponentName", "(Context,String)", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["android.content", "ComponentName", False, "ComponentName", "(Parcel)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["android.content", "ComponentName", False, "ComponentName", "(String,String)", "", "Argument[0..1]", "Argument[-1]", "taint", "manual"] + - ["android.content", "ComponentName", False, "ComponentName", "(Context,Class)", "", "Argument[1]", "Argument[this]", "taint", "manual"] + - ["android.content", "ComponentName", False, "ComponentName", "(Context,String)", "", "Argument[1]", "Argument[this]", "taint", "manual"] + - ["android.content", "ComponentName", False, "ComponentName", "(Parcel)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["android.content", "ComponentName", False, "ComponentName", "(String,String)", "", "Argument[0..1]", "Argument[this]", "taint", "manual"] - ["android.content", "ComponentName", False, "createRelative", "(Context,String)", "", "Argument[1]", "ReturnValue", "taint", "manual"] - ["android.content", "ComponentName", False, "createRelative", "(String,String)", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["android.content", "ComponentName", False, "flattenToShortString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["android.content", "ComponentName", False, "flattenToString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["android.content", "ComponentName", False, "getClassName", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["android.content", "ComponentName", False, "getPackageName", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["android.content", "ComponentName", False, "getShortClassName", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["android.content", "ComponentName", False, "flattenToShortString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["android.content", "ComponentName", False, "flattenToString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["android.content", "ComponentName", False, "getClassName", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["android.content", "ComponentName", False, "getPackageName", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["android.content", "ComponentName", False, "getShortClassName", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["android.content", "ComponentName", False, "unflattenFromString", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["android.content", "ContentProvider", True, "query", "(Uri,String[],String,String[],String)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["android.content", "ContentProvider", True, "query", "(Uri,String[],String,String[],String,CancellationSignal)", "", "Argument[0]", "ReturnValue", "taint", "manual"] # ContentProviderClient is tainted at its creation, not by its arguments - - ["android.content", "ContentProviderClient", True, "applyBatch", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["android.content", "ContentProviderClient", True, "call", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["android.content", "ContentProviderClient", True, "canonicalize", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["android.content", "ContentProviderClient", True, "getLocalContentProvider", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["android.content", "ContentProviderClient", True, "getStreamTypes", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["android.content", "ContentProviderClient", True, "insert", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["android.content", "ContentProviderClient", True, "query", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["android.content", "ContentProviderClient", True, "uncanonicalize", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["android.content", "ContentProviderOperation", False, "apply", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["android.content", "ContentProviderClient", True, "applyBatch", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["android.content", "ContentProviderClient", True, "call", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["android.content", "ContentProviderClient", True, "canonicalize", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["android.content", "ContentProviderClient", True, "getLocalContentProvider", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["android.content", "ContentProviderClient", True, "getStreamTypes", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["android.content", "ContentProviderClient", True, "insert", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["android.content", "ContentProviderClient", True, "query", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["android.content", "ContentProviderClient", True, "uncanonicalize", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["android.content", "ContentProviderOperation", False, "apply", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["android.content", "ContentProviderOperation", False, "apply", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["android.content", "ContentProviderOperation", False, "getUri", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["android.content", "ContentProviderOperation", False, "getUri", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["android.content", "ContentProviderOperation", False, "newAssertQuery", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["android.content", "ContentProviderOperation", False, "newCall", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["android.content", "ContentProviderOperation", False, "newDelete", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] @@ -101,22 +101,22 @@ extensions: - ["android.content", "ContentProviderOperation", False, "resolveExtrasBackReferences", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["android.content", "ContentProviderOperation", False, "resolveSelectionArgsBackReferences", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["android.content", "ContentProviderOperation", False, "resolveValueBackReferences", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["android.content", "ContentProviderOperation$Builder", False, "build", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["android.content", "ContentProviderOperation$Builder", False, "withExceptionAllowed", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.content", "ContentProviderOperation$Builder", False, "withExpectedCount", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.content", "ContentProviderOperation$Builder", False, "withExtra", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.content", "ContentProviderOperation$Builder", False, "withExtraBackReference", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.content", "ContentProviderOperation$Builder", False, "withExtras", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.content", "ContentProviderOperation$Builder", False, "withSelection", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.content", "ContentProviderOperation$Builder", False, "withSelectionBackReference", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.content", "ContentProviderOperation$Builder", False, "withValue", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.content", "ContentProviderOperation$Builder", False, "withValueBackReference", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.content", "ContentProviderOperation$Builder", False, "withValues", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.content", "ContentProviderOperation$Builder", False, "withYieldAllowed", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.content", "ContentProviderResult", False, "ContentProviderResult", "(Bundle)", "", "Argument[0]", "Argument[-1].Field[android.content.ContentProviderResult.extras]", "value", "manual"] - - ["android.content", "ContentProviderResult", False, "ContentProviderResult", "(Parcel)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["android.content", "ContentProviderResult", False, "ContentProviderResult", "(Throwable)", "", "Argument[0]", "Argument[-1].Field[android.content.ContentProviderResult.exception]", "value", "manual"] - - ["android.content", "ContentProviderResult", False, "ContentProviderResult", "(Uri)", "", "Argument[0]", "Argument[-1].Field[android.content.ContentProviderResult.uri]", "value", "manual"] + - ["android.content", "ContentProviderOperation$Builder", False, "build", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["android.content", "ContentProviderOperation$Builder", False, "withExceptionAllowed", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.content", "ContentProviderOperation$Builder", False, "withExpectedCount", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.content", "ContentProviderOperation$Builder", False, "withExtra", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.content", "ContentProviderOperation$Builder", False, "withExtraBackReference", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.content", "ContentProviderOperation$Builder", False, "withExtras", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.content", "ContentProviderOperation$Builder", False, "withSelection", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.content", "ContentProviderOperation$Builder", False, "withSelectionBackReference", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.content", "ContentProviderOperation$Builder", False, "withValue", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.content", "ContentProviderOperation$Builder", False, "withValueBackReference", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.content", "ContentProviderOperation$Builder", False, "withValues", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.content", "ContentProviderOperation$Builder", False, "withYieldAllowed", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.content", "ContentProviderResult", False, "ContentProviderResult", "(Bundle)", "", "Argument[0]", "Argument[this].Field[android.content.ContentProviderResult.extras]", "value", "manual"] + - ["android.content", "ContentProviderResult", False, "ContentProviderResult", "(Parcel)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["android.content", "ContentProviderResult", False, "ContentProviderResult", "(Throwable)", "", "Argument[0]", "Argument[this].Field[android.content.ContentProviderResult.exception]", "value", "manual"] + - ["android.content", "ContentProviderResult", False, "ContentProviderResult", "(Uri)", "", "Argument[0]", "Argument[this].Field[android.content.ContentProviderResult.uri]", "value", "manual"] - ["android.content", "ContentResolver", True, "acquireContentProviderClient", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["android.content", "ContentResolver", True, "acquireUnstableContentProviderClient", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["android.content", "ContentResolver", True, "applyBatch", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] @@ -130,96 +130,96 @@ extensions: - ["android.content", "ContentResolver", True, "query", "(Uri,String[],String,String[],String,CancellationSignal)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["android.content", "ContentResolver", True, "uncanonicalize", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["android.content", "ContentResolver", True, "wrap", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["android.content", "ContentValues", False, "put", "", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["android.content", "ContentValues", False, "put", "", "", "Argument[1]", "Argument[-1].MapValue", "value", "manual"] - - ["android.content", "ContentValues", False, "putAll", "", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["android.content", "ContentValues", False, "putAll", "", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] + - ["android.content", "ContentValues", False, "put", "", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["android.content", "ContentValues", False, "put", "", "", "Argument[1]", "Argument[this].MapValue", "value", "manual"] + - ["android.content", "ContentValues", False, "putAll", "", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["android.content", "ContentValues", False, "putAll", "", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] # Currently only the Extras part of the intent and the data field are fully modeled - - ["android.content", "Intent", True, "Intent", "(Context,Class)", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["android.content", "Intent", True, "Intent", "(Intent)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["android.content", "Intent", False, "Intent", "(Intent)", "", "Argument[0].SyntheticField[android.content.Intent.extras].MapKey", "Argument[-1].SyntheticField[android.content.Intent.extras].MapKey", "value", "manual"] - - ["android.content", "Intent", False, "Intent", "(Intent)", "", "Argument[0].SyntheticField[android.content.Intent.extras].MapValue", "Argument[-1].SyntheticField[android.content.Intent.extras].MapValue", "value", "manual"] - - ["android.content", "Intent", False, "Intent", "(String,Uri)", "", "Argument[1]", "Argument[-1].SyntheticField[android.content.Intent.data]", "value", "manual"] - - ["android.content", "Intent", False, "Intent", "(String,Uri,Context,Class)", "", "Argument[1]", "Argument[-1].SyntheticField[android.content.Intent.data]", "value", "manual"] - - ["android.content", "Intent", True, "Intent", "(String,Uri,Context,Class)", "", "Argument[3]", "Argument[-1]", "taint", "manual"] - - ["android.content", "Intent", True, "addCategory", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.content", "Intent", True, "addFlags", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] + - ["android.content", "Intent", True, "Intent", "(Context,Class)", "", "Argument[1]", "Argument[this]", "taint", "manual"] + - ["android.content", "Intent", True, "Intent", "(Intent)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["android.content", "Intent", False, "Intent", "(Intent)", "", "Argument[0].SyntheticField[android.content.Intent.extras].MapKey", "Argument[this].SyntheticField[android.content.Intent.extras].MapKey", "value", "manual"] + - ["android.content", "Intent", False, "Intent", "(Intent)", "", "Argument[0].SyntheticField[android.content.Intent.extras].MapValue", "Argument[this].SyntheticField[android.content.Intent.extras].MapValue", "value", "manual"] + - ["android.content", "Intent", False, "Intent", "(String,Uri)", "", "Argument[1]", "Argument[this].SyntheticField[android.content.Intent.data]", "value", "manual"] + - ["android.content", "Intent", False, "Intent", "(String,Uri,Context,Class)", "", "Argument[1]", "Argument[this].SyntheticField[android.content.Intent.data]", "value", "manual"] + - ["android.content", "Intent", True, "Intent", "(String,Uri,Context,Class)", "", "Argument[3]", "Argument[this]", "taint", "manual"] + - ["android.content", "Intent", True, "addCategory", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.content", "Intent", True, "addFlags", "", "", "Argument[this]", "ReturnValue", "value", "manual"] - ["android.content", "Intent", False, "createChooser", "", "", "Argument[0..2]", "ReturnValue.SyntheticField[android.content.Intent.extras].MapValue", "value", "manual"] - - ["android.content", "Intent", True, "getBundleExtra", "(String)", "", "Argument[-1].SyntheticField[android.content.Intent.extras].MapValue", "ReturnValue", "value", "manual"] - - ["android.content", "Intent", True, "getByteArrayExtra", "(String)", "", "Argument[-1].SyntheticField[android.content.Intent.extras].MapValue", "ReturnValue", "value", "manual"] - - ["android.content", "Intent", True, "getCharArrayExtra", "(String)", "", "Argument[-1].SyntheticField[android.content.Intent.extras].MapValue", "ReturnValue", "value", "manual"] - - ["android.content", "Intent", True, "getCharSequenceArrayExtra", "(String)", "", "Argument[-1].SyntheticField[android.content.Intent.extras].MapValue", "ReturnValue", "value", "manual"] - - ["android.content", "Intent", True, "getCharSequenceArrayListExtra", "(String)", "", "Argument[-1].SyntheticField[android.content.Intent.extras].MapValue", "ReturnValue", "value", "manual"] - - ["android.content", "Intent", True, "getCharSequenceExtra", "(String)", "", "Argument[-1].SyntheticField[android.content.Intent.extras].MapValue", "ReturnValue", "value", "manual"] - - ["android.content", "Intent", True, "getData", "", "", "Argument[-1].SyntheticField[android.content.Intent.data]", "ReturnValue", "value", "manual"] - - ["android.content", "Intent", True, "getDataString", "", "", "Argument[-1].SyntheticField[android.content.Intent.data]", "ReturnValue", "taint", "manual"] - - ["android.content", "Intent", True, "getExtras", "()", "", "Argument[-1].SyntheticField[android.content.Intent.extras]", "ReturnValue", "value", "manual"] + - ["android.content", "Intent", True, "getBundleExtra", "(String)", "", "Argument[this].SyntheticField[android.content.Intent.extras].MapValue", "ReturnValue", "value", "manual"] + - ["android.content", "Intent", True, "getByteArrayExtra", "(String)", "", "Argument[this].SyntheticField[android.content.Intent.extras].MapValue", "ReturnValue", "value", "manual"] + - ["android.content", "Intent", True, "getCharArrayExtra", "(String)", "", "Argument[this].SyntheticField[android.content.Intent.extras].MapValue", "ReturnValue", "value", "manual"] + - ["android.content", "Intent", True, "getCharSequenceArrayExtra", "(String)", "", "Argument[this].SyntheticField[android.content.Intent.extras].MapValue", "ReturnValue", "value", "manual"] + - ["android.content", "Intent", True, "getCharSequenceArrayListExtra", "(String)", "", "Argument[this].SyntheticField[android.content.Intent.extras].MapValue", "ReturnValue", "value", "manual"] + - ["android.content", "Intent", True, "getCharSequenceExtra", "(String)", "", "Argument[this].SyntheticField[android.content.Intent.extras].MapValue", "ReturnValue", "value", "manual"] + - ["android.content", "Intent", True, "getData", "", "", "Argument[this].SyntheticField[android.content.Intent.data]", "ReturnValue", "value", "manual"] + - ["android.content", "Intent", True, "getDataString", "", "", "Argument[this].SyntheticField[android.content.Intent.data]", "ReturnValue", "taint", "manual"] + - ["android.content", "Intent", True, "getExtras", "()", "", "Argument[this].SyntheticField[android.content.Intent.extras]", "ReturnValue", "value", "manual"] - ["android.content", "Intent", False, "getIntent", "", "", "Argument[0]", "ReturnValue.SyntheticField[android.content.Intent.data]", "taint", "manual"] - ["android.content", "Intent", True, "getIntent", "(String)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["android.content", "Intent", False, "getIntentOld", "", "", "Argument[0]", "ReturnValue.SyntheticField[android.content.Intent.data]", "taint", "manual"] - ["android.content", "Intent", True, "getIntentOld", "(String)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["android.content", "Intent", True, "getParcelableArrayExtra", "(String)", "", "Argument[-1].SyntheticField[android.content.Intent.extras].MapValue", "ReturnValue", "value", "manual"] - - ["android.content", "Intent", True, "getParcelableArrayListExtra", "(String)", "", "Argument[-1].SyntheticField[android.content.Intent.extras].MapValue", "ReturnValue", "value", "manual"] - - ["android.content", "Intent", True, "getParcelableExtra", "(String)", "", "Argument[-1].SyntheticField[android.content.Intent.extras].MapValue", "ReturnValue", "value", "manual"] - - ["android.content", "Intent", True, "getSerializableExtra", "(String)", "", "Argument[-1].SyntheticField[android.content.Intent.extras].MapValue", "ReturnValue", "value", "manual"] - - ["android.content", "Intent", True, "getStringArrayExtra", "(String)", "", "Argument[-1].SyntheticField[android.content.Intent.extras].MapValue", "ReturnValue", "value", "manual"] - - ["android.content", "Intent", True, "getStringArrayListExtra", "(String)", "", "Argument[-1].SyntheticField[android.content.Intent.extras].MapValue", "ReturnValue", "value", "manual"] - - ["android.content", "Intent", True, "getStringExtra", "(String)", "", "Argument[-1].SyntheticField[android.content.Intent.extras].MapValue", "ReturnValue", "value", "manual"] + - ["android.content", "Intent", True, "getParcelableArrayExtra", "(String)", "", "Argument[this].SyntheticField[android.content.Intent.extras].MapValue", "ReturnValue", "value", "manual"] + - ["android.content", "Intent", True, "getParcelableArrayListExtra", "(String)", "", "Argument[this].SyntheticField[android.content.Intent.extras].MapValue", "ReturnValue", "value", "manual"] + - ["android.content", "Intent", True, "getParcelableExtra", "(String)", "", "Argument[this].SyntheticField[android.content.Intent.extras].MapValue", "ReturnValue", "value", "manual"] + - ["android.content", "Intent", True, "getSerializableExtra", "(String)", "", "Argument[this].SyntheticField[android.content.Intent.extras].MapValue", "ReturnValue", "value", "manual"] + - ["android.content", "Intent", True, "getStringArrayExtra", "(String)", "", "Argument[this].SyntheticField[android.content.Intent.extras].MapValue", "ReturnValue", "value", "manual"] + - ["android.content", "Intent", True, "getStringArrayListExtra", "(String)", "", "Argument[this].SyntheticField[android.content.Intent.extras].MapValue", "ReturnValue", "value", "manual"] + - ["android.content", "Intent", True, "getStringExtra", "(String)", "", "Argument[this].SyntheticField[android.content.Intent.extras].MapValue", "ReturnValue", "value", "manual"] - ["android.content", "Intent", False, "parseUri", "", "", "Argument[0]", "ReturnValue.SyntheticField[android.content.Intent.data]", "taint", "manual"] - ["android.content", "Intent", True, "parseUri", "(String,int)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["android.content", "Intent", True, "putCharSequenceArrayListExtra", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.content", "Intent", True, "putCharSequenceArrayListExtra", "", "", "Argument[0]", "Argument[-1].SyntheticField[android.content.Intent.extras].MapKey", "value", "manual"] - - ["android.content", "Intent", True, "putCharSequenceArrayListExtra", "", "", "Argument[1]", "Argument[-1].SyntheticField[android.content.Intent.extras].MapValue", "value", "manual"] - - ["android.content", "Intent", True, "putExtra", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.content", "Intent", True, "putExtra", "", "", "Argument[0]", "Argument[-1].SyntheticField[android.content.Intent.extras].MapKey", "value", "manual"] - - ["android.content", "Intent", True, "putExtra", "", "", "Argument[1]", "Argument[-1].SyntheticField[android.content.Intent.extras].MapValue", "value", "manual"] - - ["android.content", "Intent", True, "putExtras", "(Bundle)", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.content", "Intent", True, "putExtras", "(Bundle)", "", "Argument[0].MapKey", "Argument[-1].SyntheticField[android.content.Intent.extras].MapKey", "value", "manual"] - - ["android.content", "Intent", True, "putExtras", "(Bundle)", "", "Argument[0].MapValue", "Argument[-1].SyntheticField[android.content.Intent.extras].MapValue", "value", "manual"] - - ["android.content", "Intent", True, "putExtras", "(Intent)", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.content", "Intent", True, "putExtras", "(Intent)", "", "Argument[0].SyntheticField[android.content.Intent.extras].MapKey", "Argument[-1].SyntheticField[android.content.Intent.extras].MapKey", "value", "manual"] - - ["android.content", "Intent", True, "putExtras", "(Intent)", "", "Argument[0].SyntheticField[android.content.Intent.extras].MapValue", "Argument[-1].SyntheticField[android.content.Intent.extras].MapValue", "value", "manual"] - - ["android.content", "Intent", True, "putIntegerArrayListExtra", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.content", "Intent", True, "putIntegerArrayListExtra", "", "", "Argument[0]", "Argument[-1].SyntheticField[android.content.Intent.extras].MapKey", "value", "manual"] - - ["android.content", "Intent", True, "putParcelableArrayListExtra", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.content", "Intent", True, "putParcelableArrayListExtra", "", "", "Argument[0]", "Argument[-1].SyntheticField[android.content.Intent.extras].MapKey", "value", "manual"] - - ["android.content", "Intent", True, "putParcelableArrayListExtra", "", "", "Argument[1]", "Argument[-1].SyntheticField[android.content.Intent.extras].MapValue", "value", "manual"] - - ["android.content", "Intent", True, "putStringArrayListExtra", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.content", "Intent", True, "putStringArrayListExtra", "", "", "Argument[0]", "Argument[-1].SyntheticField[android.content.Intent.extras].MapKey", "value", "manual"] - - ["android.content", "Intent", True, "putStringArrayListExtra", "", "", "Argument[1]", "Argument[-1].SyntheticField[android.content.Intent.extras].MapValue", "value", "manual"] - - ["android.content", "Intent", True, "replaceExtras", "(Bundle)", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.content", "Intent", True, "replaceExtras", "(Bundle)", "", "Argument[0].MapKey", "Argument[-1].SyntheticField[android.content.Intent.extras].MapKey", "value", "manual"] - - ["android.content", "Intent", True, "replaceExtras", "(Bundle)", "", "Argument[0].MapValue", "Argument[-1].SyntheticField[android.content.Intent.extras].MapValue", "value", "manual"] - - ["android.content", "Intent", True, "replaceExtras", "(Intent)", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.content", "Intent", True, "replaceExtras", "(Intent)", "", "Argument[0].SyntheticField[android.content.Intent.extras].MapKey", "Argument[-1].SyntheticField[android.content.Intent.extras].MapKey", "value", "manual"] - - ["android.content", "Intent", True, "replaceExtras", "(Intent)", "", "Argument[0].SyntheticField[android.content.Intent.extras].MapValue", "Argument[-1].SyntheticField[android.content.Intent.extras].MapValue", "value", "manual"] - - ["android.content", "Intent", True, "setAction", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.content", "Intent", True, "setClass", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.content", "Intent", True, "setClass", "", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["android.content", "Intent", True, "setClassName", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.content", "Intent", True, "setClassName", "(Context,String)", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["android.content", "Intent", True, "setClassName", "(String,String)", "", "Argument[0..1]", "Argument[-1]", "taint", "manual"] - - ["android.content", "Intent", True, "setComponent", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.content", "Intent", True, "setComponent", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["android.content", "Intent", True, "setData", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.content", "Intent", True, "setData", "", "", "Argument[0]", "Argument[-1].SyntheticField[android.content.Intent.data]", "value", "manual"] - - ["android.content", "Intent", True, "setDataAndNormalize", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.content", "Intent", True, "setDataAndNormalize", "", "", "Argument[0]", "Argument[-1].SyntheticField[android.content.Intent.data]", "value", "manual"] - - ["android.content", "Intent", True, "setDataAndType", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.content", "Intent", True, "setDataAndType", "", "", "Argument[0]", "Argument[-1].SyntheticField[android.content.Intent.data]", "value", "manual"] - - ["android.content", "Intent", True, "setDataAndTypeAndNormalize", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.content", "Intent", True, "setDataAndTypeAndNormalize", "", "", "Argument[0]", "Argument[-1].SyntheticField[android.content.Intent.data]", "value", "manual"] - - ["android.content", "Intent", True, "setFlags", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.content", "Intent", True, "setIdentifier", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.content", "Intent", True, "setPackage", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.content", "Intent", True, "setPackage", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["android.content", "Intent", True, "setType", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.content", "Intent", True, "setTypeAndNormalize", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.content", "SharedPreferences$Editor", True, "clear", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.content", "SharedPreferences$Editor", True, "putBoolean", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.content", "SharedPreferences$Editor", True, "putFloat", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.content", "SharedPreferences$Editor", True, "putInt", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.content", "SharedPreferences$Editor", True, "putLong", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.content", "SharedPreferences$Editor", True, "putString", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.content", "SharedPreferences$Editor", True, "putStringSet", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.content", "SharedPreferences$Editor", True, "remove", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] + - ["android.content", "Intent", True, "putCharSequenceArrayListExtra", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.content", "Intent", True, "putCharSequenceArrayListExtra", "", "", "Argument[0]", "Argument[this].SyntheticField[android.content.Intent.extras].MapKey", "value", "manual"] + - ["android.content", "Intent", True, "putCharSequenceArrayListExtra", "", "", "Argument[1]", "Argument[this].SyntheticField[android.content.Intent.extras].MapValue", "value", "manual"] + - ["android.content", "Intent", True, "putExtra", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.content", "Intent", True, "putExtra", "", "", "Argument[0]", "Argument[this].SyntheticField[android.content.Intent.extras].MapKey", "value", "manual"] + - ["android.content", "Intent", True, "putExtra", "", "", "Argument[1]", "Argument[this].SyntheticField[android.content.Intent.extras].MapValue", "value", "manual"] + - ["android.content", "Intent", True, "putExtras", "(Bundle)", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.content", "Intent", True, "putExtras", "(Bundle)", "", "Argument[0].MapKey", "Argument[this].SyntheticField[android.content.Intent.extras].MapKey", "value", "manual"] + - ["android.content", "Intent", True, "putExtras", "(Bundle)", "", "Argument[0].MapValue", "Argument[this].SyntheticField[android.content.Intent.extras].MapValue", "value", "manual"] + - ["android.content", "Intent", True, "putExtras", "(Intent)", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.content", "Intent", True, "putExtras", "(Intent)", "", "Argument[0].SyntheticField[android.content.Intent.extras].MapKey", "Argument[this].SyntheticField[android.content.Intent.extras].MapKey", "value", "manual"] + - ["android.content", "Intent", True, "putExtras", "(Intent)", "", "Argument[0].SyntheticField[android.content.Intent.extras].MapValue", "Argument[this].SyntheticField[android.content.Intent.extras].MapValue", "value", "manual"] + - ["android.content", "Intent", True, "putIntegerArrayListExtra", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.content", "Intent", True, "putIntegerArrayListExtra", "", "", "Argument[0]", "Argument[this].SyntheticField[android.content.Intent.extras].MapKey", "value", "manual"] + - ["android.content", "Intent", True, "putParcelableArrayListExtra", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.content", "Intent", True, "putParcelableArrayListExtra", "", "", "Argument[0]", "Argument[this].SyntheticField[android.content.Intent.extras].MapKey", "value", "manual"] + - ["android.content", "Intent", True, "putParcelableArrayListExtra", "", "", "Argument[1]", "Argument[this].SyntheticField[android.content.Intent.extras].MapValue", "value", "manual"] + - ["android.content", "Intent", True, "putStringArrayListExtra", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.content", "Intent", True, "putStringArrayListExtra", "", "", "Argument[0]", "Argument[this].SyntheticField[android.content.Intent.extras].MapKey", "value", "manual"] + - ["android.content", "Intent", True, "putStringArrayListExtra", "", "", "Argument[1]", "Argument[this].SyntheticField[android.content.Intent.extras].MapValue", "value", "manual"] + - ["android.content", "Intent", True, "replaceExtras", "(Bundle)", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.content", "Intent", True, "replaceExtras", "(Bundle)", "", "Argument[0].MapKey", "Argument[this].SyntheticField[android.content.Intent.extras].MapKey", "value", "manual"] + - ["android.content", "Intent", True, "replaceExtras", "(Bundle)", "", "Argument[0].MapValue", "Argument[this].SyntheticField[android.content.Intent.extras].MapValue", "value", "manual"] + - ["android.content", "Intent", True, "replaceExtras", "(Intent)", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.content", "Intent", True, "replaceExtras", "(Intent)", "", "Argument[0].SyntheticField[android.content.Intent.extras].MapKey", "Argument[this].SyntheticField[android.content.Intent.extras].MapKey", "value", "manual"] + - ["android.content", "Intent", True, "replaceExtras", "(Intent)", "", "Argument[0].SyntheticField[android.content.Intent.extras].MapValue", "Argument[this].SyntheticField[android.content.Intent.extras].MapValue", "value", "manual"] + - ["android.content", "Intent", True, "setAction", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.content", "Intent", True, "setClass", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.content", "Intent", True, "setClass", "", "", "Argument[1]", "Argument[this]", "taint", "manual"] + - ["android.content", "Intent", True, "setClassName", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.content", "Intent", True, "setClassName", "(Context,String)", "", "Argument[1]", "Argument[this]", "taint", "manual"] + - ["android.content", "Intent", True, "setClassName", "(String,String)", "", "Argument[0..1]", "Argument[this]", "taint", "manual"] + - ["android.content", "Intent", True, "setComponent", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.content", "Intent", True, "setComponent", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["android.content", "Intent", True, "setData", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.content", "Intent", True, "setData", "", "", "Argument[0]", "Argument[this].SyntheticField[android.content.Intent.data]", "value", "manual"] + - ["android.content", "Intent", True, "setDataAndNormalize", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.content", "Intent", True, "setDataAndNormalize", "", "", "Argument[0]", "Argument[this].SyntheticField[android.content.Intent.data]", "value", "manual"] + - ["android.content", "Intent", True, "setDataAndType", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.content", "Intent", True, "setDataAndType", "", "", "Argument[0]", "Argument[this].SyntheticField[android.content.Intent.data]", "value", "manual"] + - ["android.content", "Intent", True, "setDataAndTypeAndNormalize", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.content", "Intent", True, "setDataAndTypeAndNormalize", "", "", "Argument[0]", "Argument[this].SyntheticField[android.content.Intent.data]", "value", "manual"] + - ["android.content", "Intent", True, "setFlags", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.content", "Intent", True, "setIdentifier", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.content", "Intent", True, "setPackage", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.content", "Intent", True, "setPackage", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["android.content", "Intent", True, "setType", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.content", "Intent", True, "setTypeAndNormalize", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.content", "SharedPreferences$Editor", True, "clear", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.content", "SharedPreferences$Editor", True, "putBoolean", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.content", "SharedPreferences$Editor", True, "putFloat", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.content", "SharedPreferences$Editor", True, "putInt", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.content", "SharedPreferences$Editor", True, "putLong", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.content", "SharedPreferences$Editor", True, "putString", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.content", "SharedPreferences$Editor", True, "putStringSet", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.content", "SharedPreferences$Editor", True, "remove", "", "", "Argument[this]", "ReturnValue", "value", "manual"] diff --git a/java/ql/lib/ext/android.database.model.yml b/java/ql/lib/ext/android.database.model.yml index a7c6e6b1d9b..22157da6755 100644 --- a/java/ql/lib/ext/android.database.model.yml +++ b/java/ql/lib/ext/android.database.model.yml @@ -14,14 +14,14 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["android.database", "Cursor", True, "copyStringToBuffer", "", "", "Argument[-1]", "Argument[1]", "taint", "manual"] - - ["android.database", "Cursor", True, "getBlob", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["android.database", "Cursor", True, "getColumnName", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["android.database", "Cursor", True, "getColumnNames", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["android.database", "Cursor", True, "getExtras", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["android.database", "Cursor", True, "getNotificationUri", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["android.database", "Cursor", True, "getNotificationUris", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["android.database", "Cursor", True, "getString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["android.database", "Cursor", True, "respond", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["android.database", "Cursor", True, "copyStringToBuffer", "", "", "Argument[this]", "Argument[1]", "taint", "manual"] + - ["android.database", "Cursor", True, "getBlob", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["android.database", "Cursor", True, "getColumnName", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["android.database", "Cursor", True, "getColumnNames", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["android.database", "Cursor", True, "getExtras", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["android.database", "Cursor", True, "getNotificationUri", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["android.database", "Cursor", True, "getNotificationUris", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["android.database", "Cursor", True, "getString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["android.database", "Cursor", True, "respond", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["android.database", "DatabaseUtils", False, "appendSelectionArgs", "(String[],String[])", "", "Argument[0..1].ArrayElement", "ReturnValue.ArrayElement", "taint", "manual"] - ["android.database", "DatabaseUtils", False, "concatenateWhere", "(String,String)", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] diff --git a/java/ql/lib/ext/android.database.sqlite.model.yml b/java/ql/lib/ext/android.database.sqlite.model.yml index 4b775715409..05748ba2d73 100644 --- a/java/ql/lib/ext/android.database.sqlite.model.yml +++ b/java/ql/lib/ext/android.database.sqlite.model.yml @@ -38,41 +38,41 @@ extensions: - ["android.database.sqlite", "SQLiteDatabase", False, "update", "(String,ContentValues,String,String[])", "", "Argument[2]", "sql", "manual"] - ["android.database.sqlite", "SQLiteDatabase", False, "updateWithOnConflict", "(String,ContentValues,String,String[],int)", "", "Argument[0]", "sql", "manual"] - ["android.database.sqlite", "SQLiteDatabase", False, "updateWithOnConflict", "(String,ContentValues,String,String[],int)", "", "Argument[2]", "sql", "manual"] - - ["android.database.sqlite", "SQLiteQueryBuilder", True, "delete", "(SQLiteDatabase,String,String[])", "", "Argument[-1]", "sql", "manual"] + - ["android.database.sqlite", "SQLiteQueryBuilder", True, "delete", "(SQLiteDatabase,String,String[])", "", "Argument[this]", "sql", "manual"] - ["android.database.sqlite", "SQLiteQueryBuilder", True, "delete", "(SQLiteDatabase,String,String[])", "", "Argument[1]", "sql", "manual"] - - ["android.database.sqlite", "SQLiteQueryBuilder", True, "insert", "(SQLiteDatabase,ContentValues)", "", "Argument[-1]", "sql", "manual"] - - ["android.database.sqlite", "SQLiteQueryBuilder", True, "query", "(SQLiteDatabase,String[],String,String[],String,String,String)", "", "Argument[-1]", "sql", "manual"] + - ["android.database.sqlite", "SQLiteQueryBuilder", True, "insert", "(SQLiteDatabase,ContentValues)", "", "Argument[this]", "sql", "manual"] + - ["android.database.sqlite", "SQLiteQueryBuilder", True, "query", "(SQLiteDatabase,String[],String,String[],String,String,String)", "", "Argument[this]", "sql", "manual"] - ["android.database.sqlite", "SQLiteQueryBuilder", True, "query", "(SQLiteDatabase,String[],String,String[],String,String,String)", "", "Argument[1]", "sql", "manual"] - ["android.database.sqlite", "SQLiteQueryBuilder", True, "query", "(SQLiteDatabase,String[],String,String[],String,String,String)", "", "Argument[2]", "sql", "manual"] - ["android.database.sqlite", "SQLiteQueryBuilder", True, "query", "(SQLiteDatabase,String[],String,String[],String,String,String)", "", "Argument[4..6]", "sql", "manual"] - - ["android.database.sqlite", "SQLiteQueryBuilder", True, "query", "(SQLiteDatabase,String[],String,String[],String,String,String,String)", "", "Argument[-1]", "sql", "manual"] + - ["android.database.sqlite", "SQLiteQueryBuilder", True, "query", "(SQLiteDatabase,String[],String,String[],String,String,String,String)", "", "Argument[this]", "sql", "manual"] - ["android.database.sqlite", "SQLiteQueryBuilder", True, "query", "(SQLiteDatabase,String[],String,String[],String,String,String,String)", "", "Argument[1]", "sql", "manual"] - ["android.database.sqlite", "SQLiteQueryBuilder", True, "query", "(SQLiteDatabase,String[],String,String[],String,String,String,String)", "", "Argument[2]", "sql", "manual"] - ["android.database.sqlite", "SQLiteQueryBuilder", True, "query", "(SQLiteDatabase,String[],String,String[],String,String,String,String)", "", "Argument[4..7]", "sql", "manual"] - - ["android.database.sqlite", "SQLiteQueryBuilder", True, "query", "(SQLiteDatabase,String[],String,String[],String,String,String,String,CancellationSignal)", "", "Argument[-1]", "sql", "manual"] + - ["android.database.sqlite", "SQLiteQueryBuilder", True, "query", "(SQLiteDatabase,String[],String,String[],String,String,String,String,CancellationSignal)", "", "Argument[this]", "sql", "manual"] - ["android.database.sqlite", "SQLiteQueryBuilder", True, "query", "(SQLiteDatabase,String[],String,String[],String,String,String,String,CancellationSignal)", "", "Argument[1]", "sql", "manual"] - ["android.database.sqlite", "SQLiteQueryBuilder", True, "query", "(SQLiteDatabase,String[],String,String[],String,String,String,String,CancellationSignal)", "", "Argument[2]", "sql", "manual"] - ["android.database.sqlite", "SQLiteQueryBuilder", True, "query", "(SQLiteDatabase,String[],String,String[],String,String,String,String,CancellationSignal)", "", "Argument[4..7]", "sql", "manual"] - - ["android.database.sqlite", "SQLiteQueryBuilder", True, "update", "(SQLiteDatabase,ContentValues,String,String[])", "", "Argument[-1]", "sql", "manual"] + - ["android.database.sqlite", "SQLiteQueryBuilder", True, "update", "(SQLiteDatabase,ContentValues,String,String[])", "", "Argument[this]", "sql", "manual"] - ["android.database.sqlite", "SQLiteQueryBuilder", True, "update", "(SQLiteDatabase,ContentValues,String,String[])", "", "Argument[2]", "sql", "manual"] - addsTo: pack: codeql/java-all extensible: summaryModel data: - ["android.database.sqlite", "SQLiteQueryBuilder", True, "appendColumns", "(StringBuilder,String[])", "", "Argument[1].ArrayElement", "Argument[0]", "taint", "manual"] - - ["android.database.sqlite", "SQLiteQueryBuilder", True, "appendWhere", "(CharSequence)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["android.database.sqlite", "SQLiteQueryBuilder", True, "appendWhereStandalone", "(CharSequence)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["android.database.sqlite", "SQLiteQueryBuilder", True, "buildQuery", "(String[],String,String,String,String,String)", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["android.database.sqlite", "SQLiteQueryBuilder", True, "appendWhere", "(CharSequence)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["android.database.sqlite", "SQLiteQueryBuilder", True, "appendWhereStandalone", "(CharSequence)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["android.database.sqlite", "SQLiteQueryBuilder", True, "buildQuery", "(String[],String,String,String,String,String)", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["android.database.sqlite", "SQLiteQueryBuilder", True, "buildQuery", "(String[],String,String,String,String,String)", "", "Argument[0].ArrayElement", "ReturnValue", "taint", "manual"] - ["android.database.sqlite", "SQLiteQueryBuilder", True, "buildQuery", "(String[],String,String,String,String,String)", "", "Argument[1..5]", "ReturnValue", "taint", "manual"] - - ["android.database.sqlite", "SQLiteQueryBuilder", True, "buildQuery", "(String[],String,String[],String,String,String,String)", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["android.database.sqlite", "SQLiteQueryBuilder", True, "buildQuery", "(String[],String,String[],String,String,String,String)", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["android.database.sqlite", "SQLiteQueryBuilder", True, "buildQuery", "(String[],String,String[],String,String,String,String)", "", "Argument[0].ArrayElement", "ReturnValue", "taint", "manual"] - ["android.database.sqlite", "SQLiteQueryBuilder", True, "buildQuery", "(String[],String,String[],String,String,String,String)", "", "Argument[1]", "ReturnValue", "taint", "manual"] - ["android.database.sqlite", "SQLiteQueryBuilder", True, "buildQuery", "(String[],String,String[],String,String,String,String)", "", "Argument[3..6]", "ReturnValue", "taint", "manual"] - ["android.database.sqlite", "SQLiteQueryBuilder", True, "buildQueryString", "(boolean,String,String[],String,String,String,String,String)", "", "Argument[1]", "ReturnValue", "taint", "manual"] - ["android.database.sqlite", "SQLiteQueryBuilder", True, "buildQueryString", "(boolean,String,String[],String,String,String,String,String)", "", "Argument[2].ArrayElement", "ReturnValue", "taint", "manual"] - ["android.database.sqlite", "SQLiteQueryBuilder", True, "buildQueryString", "(boolean,String,String[],String,String,String,String,String)", "", "Argument[3..7]", "ReturnValue", "taint", "manual"] - - ["android.database.sqlite", "SQLiteQueryBuilder", True, "buildUnionQuery", "(String[],String,String)", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["android.database.sqlite", "SQLiteQueryBuilder", True, "buildUnionQuery", "(String[],String,String)", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["android.database.sqlite", "SQLiteQueryBuilder", True, "buildUnionQuery", "(String[],String,String)", "", "Argument[0].ArrayElement", "ReturnValue", "taint", "manual"] - ["android.database.sqlite", "SQLiteQueryBuilder", True, "buildUnionQuery", "(String[],String,String)", "", "Argument[1..2]", "ReturnValue", "taint", "manual"] - ["android.database.sqlite", "SQLiteQueryBuilder", True, "buildUnionSubQuery", "(String,String[],Set,int,String,String,String,String)", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] @@ -84,6 +84,6 @@ extensions: - ["android.database.sqlite", "SQLiteQueryBuilder", True, "buildUnionSubQuery", "(String,String[],Set,int,String,String,String[],String,String)", "", "Argument[2].Element", "ReturnValue", "taint", "manual"] - ["android.database.sqlite", "SQLiteQueryBuilder", True, "buildUnionSubQuery", "(String,String[],Set,int,String,String,String[],String,String)", "", "Argument[4..5]", "ReturnValue", "taint", "manual"] - ["android.database.sqlite", "SQLiteQueryBuilder", True, "buildUnionSubQuery", "(String,String[],Set,int,String,String,String[],String,String)", "", "Argument[7..8]", "ReturnValue", "taint", "manual"] - - ["android.database.sqlite", "SQLiteQueryBuilder", True, "setProjectionMap", "(Map)", "", "Argument[0].MapKey", "Argument[-1]", "taint", "manual"] - - ["android.database.sqlite", "SQLiteQueryBuilder", True, "setProjectionMap", "(Map)", "", "Argument[0].MapValue", "Argument[-1]", "taint", "manual"] - - ["android.database.sqlite", "SQLiteQueryBuilder", True, "setTables", "(String)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] + - ["android.database.sqlite", "SQLiteQueryBuilder", True, "setProjectionMap", "(Map)", "", "Argument[0].MapKey", "Argument[this]", "taint", "manual"] + - ["android.database.sqlite", "SQLiteQueryBuilder", True, "setProjectionMap", "(Map)", "", "Argument[0].MapValue", "Argument[this]", "taint", "manual"] + - ["android.database.sqlite", "SQLiteQueryBuilder", True, "setTables", "(String)", "", "Argument[0]", "Argument[this]", "taint", "manual"] diff --git a/java/ql/lib/ext/android.net.model.yml b/java/ql/lib/ext/android.net.model.yml index 2cda1efbc75..9094f95a38b 100644 --- a/java/ql/lib/ext/android.net.model.yml +++ b/java/ql/lib/ext/android.net.model.yml @@ -3,63 +3,63 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["android.net", "Uri", True, "buildUpon", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["android.net", "Uri", True, "buildUpon", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["android.net", "Uri", False, "decode", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["android.net", "Uri", False, "encode", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["android.net", "Uri", False, "fromFile", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["android.net", "Uri", False, "fromParts", "", "", "Argument[0..2]", "ReturnValue", "taint", "manual"] - - ["android.net", "Uri", True, "getAuthority", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["android.net", "Uri", True, "getEncodedAuthority", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["android.net", "Uri", True, "getEncodedFragment", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["android.net", "Uri", True, "getEncodedPath", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["android.net", "Uri", True, "getEncodedQuery", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["android.net", "Uri", True, "getEncodedSchemeSpecificPart", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["android.net", "Uri", True, "getEncodedUserInfo", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["android.net", "Uri", True, "getFragment", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["android.net", "Uri", True, "getHost", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["android.net", "Uri", True, "getLastPathSegment", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["android.net", "Uri", True, "getPath", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["android.net", "Uri", True, "getPathSegments", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["android.net", "Uri", True, "getQuery", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["android.net", "Uri", True, "getQueryParameter", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["android.net", "Uri", True, "getQueryParameterNames", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["android.net", "Uri", True, "getQueryParameters", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["android.net", "Uri", True, "getScheme", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["android.net", "Uri", True, "getSchemeSpecificPart", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["android.net", "Uri", True, "getUserInfo", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["android.net", "Uri", True, "normalizeScheme", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["android.net", "Uri", True, "getAuthority", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["android.net", "Uri", True, "getEncodedAuthority", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["android.net", "Uri", True, "getEncodedFragment", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["android.net", "Uri", True, "getEncodedPath", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["android.net", "Uri", True, "getEncodedQuery", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["android.net", "Uri", True, "getEncodedSchemeSpecificPart", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["android.net", "Uri", True, "getEncodedUserInfo", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["android.net", "Uri", True, "getFragment", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["android.net", "Uri", True, "getHost", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["android.net", "Uri", True, "getLastPathSegment", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["android.net", "Uri", True, "getPath", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["android.net", "Uri", True, "getPathSegments", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["android.net", "Uri", True, "getQuery", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["android.net", "Uri", True, "getQueryParameter", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["android.net", "Uri", True, "getQueryParameterNames", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["android.net", "Uri", True, "getQueryParameters", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["android.net", "Uri", True, "getScheme", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["android.net", "Uri", True, "getSchemeSpecificPart", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["android.net", "Uri", True, "getUserInfo", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["android.net", "Uri", True, "normalizeScheme", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["android.net", "Uri", False, "parse", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["android.net", "Uri", True, "toString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["android.net", "Uri", True, "toString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["android.net", "Uri", False, "withAppendedPath", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - ["android.net", "Uri", False, "writeToParcel", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] - - ["android.net", "Uri$Builder", False, "appendEncodedPath", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.net", "Uri$Builder", False, "appendEncodedPath", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["android.net", "Uri$Builder", False, "appendPath", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.net", "Uri$Builder", False, "appendPath", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["android.net", "Uri$Builder", False, "appendQueryParameter", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.net", "Uri$Builder", False, "appendQueryParameter", "", "", "Argument[0..1]", "Argument[-1]", "taint", "manual"] - - ["android.net", "Uri$Builder", False, "authority", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.net", "Uri$Builder", False, "authority", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["android.net", "Uri$Builder", False, "build", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["android.net", "Uri$Builder", False, "clearQuery", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.net", "Uri$Builder", False, "encodedAuthority", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.net", "Uri$Builder", False, "encodedAuthority", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["android.net", "Uri$Builder", False, "encodedFragment", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.net", "Uri$Builder", False, "encodedFragment", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["android.net", "Uri$Builder", False, "encodedOpaquePart", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.net", "Uri$Builder", False, "encodedOpaquePart", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["android.net", "Uri$Builder", False, "encodedPath", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.net", "Uri$Builder", False, "encodedPath", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["android.net", "Uri$Builder", False, "encodedQuery", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.net", "Uri$Builder", False, "encodedQuery", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["android.net", "Uri$Builder", False, "fragment", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.net", "Uri$Builder", False, "fragment", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["android.net", "Uri$Builder", False, "opaquePart", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.net", "Uri$Builder", False, "opaquePart", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["android.net", "Uri$Builder", False, "path", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.net", "Uri$Builder", False, "path", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["android.net", "Uri$Builder", False, "query", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.net", "Uri$Builder", False, "query", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["android.net", "Uri$Builder", False, "scheme", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["android.net", "Uri$Builder", False, "scheme", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["android.net", "Uri$Builder", False, "toString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["android.net", "Uri$Builder", False, "appendEncodedPath", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.net", "Uri$Builder", False, "appendEncodedPath", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["android.net", "Uri$Builder", False, "appendPath", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.net", "Uri$Builder", False, "appendPath", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["android.net", "Uri$Builder", False, "appendQueryParameter", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.net", "Uri$Builder", False, "appendQueryParameter", "", "", "Argument[0..1]", "Argument[this]", "taint", "manual"] + - ["android.net", "Uri$Builder", False, "authority", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.net", "Uri$Builder", False, "authority", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["android.net", "Uri$Builder", False, "build", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["android.net", "Uri$Builder", False, "clearQuery", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.net", "Uri$Builder", False, "encodedAuthority", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.net", "Uri$Builder", False, "encodedAuthority", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["android.net", "Uri$Builder", False, "encodedFragment", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.net", "Uri$Builder", False, "encodedFragment", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["android.net", "Uri$Builder", False, "encodedOpaquePart", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.net", "Uri$Builder", False, "encodedOpaquePart", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["android.net", "Uri$Builder", False, "encodedPath", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.net", "Uri$Builder", False, "encodedPath", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["android.net", "Uri$Builder", False, "encodedQuery", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.net", "Uri$Builder", False, "encodedQuery", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["android.net", "Uri$Builder", False, "fragment", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.net", "Uri$Builder", False, "fragment", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["android.net", "Uri$Builder", False, "opaquePart", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.net", "Uri$Builder", False, "opaquePart", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["android.net", "Uri$Builder", False, "path", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.net", "Uri$Builder", False, "path", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["android.net", "Uri$Builder", False, "query", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.net", "Uri$Builder", False, "query", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["android.net", "Uri$Builder", False, "scheme", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["android.net", "Uri$Builder", False, "scheme", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["android.net", "Uri$Builder", False, "toString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] diff --git a/java/ql/lib/ext/android.os.model.yml b/java/ql/lib/ext/android.os.model.yml index 847ac6ce27b..fc4822dd59f 100644 --- a/java/ql/lib/ext/android.os.model.yml +++ b/java/ql/lib/ext/android.os.model.yml @@ -9,126 +9,126 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["android.os", "BaseBundle", True, "get", "(String)", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] - - ["android.os", "BaseBundle", True, "getString", "(String)", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] - - ["android.os", "BaseBundle", True, "getString", "(String,String)", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] + - ["android.os", "BaseBundle", True, "get", "(String)", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["android.os", "BaseBundle", True, "getString", "(String)", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["android.os", "BaseBundle", True, "getString", "(String,String)", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] - ["android.os", "BaseBundle", True, "getString", "(String,String)", "", "Argument[1]", "ReturnValue", "value", "manual"] - - ["android.os", "BaseBundle", True, "getStringArray", "(String)", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] - - ["android.os", "BaseBundle", True, "keySet", "()", "", "Argument[-1].MapKey", "ReturnValue.Element", "value", "manual"] - - ["android.os", "BaseBundle", True, "putAll", "(PersistableBundle)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["android.os", "BaseBundle", True, "putAll", "(PersistableBundle)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["android.os", "BaseBundle", True, "putBoolean", "", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["android.os", "BaseBundle", True, "putBooleanArray", "", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["android.os", "BaseBundle", True, "putDouble", "", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["android.os", "BaseBundle", True, "putDoubleArray", "", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["android.os", "BaseBundle", True, "putInt", "", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["android.os", "BaseBundle", True, "putIntArray", "", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["android.os", "BaseBundle", True, "putLong", "", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["android.os", "BaseBundle", True, "putLongArray", "", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["android.os", "BaseBundle", True, "putString", "", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["android.os", "BaseBundle", True, "putString", "", "", "Argument[1]", "Argument[-1].MapValue", "value", "manual"] - - ["android.os", "BaseBundle", True, "putStringArray", "", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["android.os", "BaseBundle", True, "putStringArray", "", "", "Argument[1]", "Argument[-1].MapValue", "value", "manual"] - - ["android.os", "Bundle", False, "Bundle", "(Bundle)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["android.os", "Bundle", False, "Bundle", "(Bundle)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["android.os", "Bundle", False, "Bundle", "(PersistableBundle)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["android.os", "Bundle", False, "Bundle", "(PersistableBundle)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["android.os", "Bundle", True, "clone", "()", "", "Argument[-1].MapKey", "ReturnValue.MapKey", "value", "manual"] - - ["android.os", "Bundle", True, "clone", "()", "", "Argument[-1].MapValue", "ReturnValue.MapValue", "value", "manual"] + - ["android.os", "BaseBundle", True, "getStringArray", "(String)", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["android.os", "BaseBundle", True, "keySet", "()", "", "Argument[this].MapKey", "ReturnValue.Element", "value", "manual"] + - ["android.os", "BaseBundle", True, "putAll", "(PersistableBundle)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["android.os", "BaseBundle", True, "putAll", "(PersistableBundle)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["android.os", "BaseBundle", True, "putBoolean", "", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["android.os", "BaseBundle", True, "putBooleanArray", "", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["android.os", "BaseBundle", True, "putDouble", "", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["android.os", "BaseBundle", True, "putDoubleArray", "", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["android.os", "BaseBundle", True, "putInt", "", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["android.os", "BaseBundle", True, "putIntArray", "", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["android.os", "BaseBundle", True, "putLong", "", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["android.os", "BaseBundle", True, "putLongArray", "", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["android.os", "BaseBundle", True, "putString", "", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["android.os", "BaseBundle", True, "putString", "", "", "Argument[1]", "Argument[this].MapValue", "value", "manual"] + - ["android.os", "BaseBundle", True, "putStringArray", "", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["android.os", "BaseBundle", True, "putStringArray", "", "", "Argument[1]", "Argument[this].MapValue", "value", "manual"] + - ["android.os", "Bundle", False, "Bundle", "(Bundle)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["android.os", "Bundle", False, "Bundle", "(Bundle)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["android.os", "Bundle", False, "Bundle", "(PersistableBundle)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["android.os", "Bundle", False, "Bundle", "(PersistableBundle)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["android.os", "Bundle", True, "clone", "()", "", "Argument[this].MapKey", "ReturnValue.MapKey", "value", "manual"] + - ["android.os", "Bundle", True, "clone", "()", "", "Argument[this].MapValue", "ReturnValue.MapValue", "value", "manual"] # Model for Bundle.deepCopy is not fully precise, as some map values aren't copied by value - - ["android.os", "Bundle", True, "deepCopy", "()", "", "Argument[-1].MapKey", "ReturnValue.MapKey", "value", "manual"] - - ["android.os", "Bundle", True, "deepCopy", "()", "", "Argument[-1].MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["android.os", "Bundle", True, "getBinder", "(String)", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] - - ["android.os", "Bundle", True, "getBundle", "(String)", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] - - ["android.os", "Bundle", True, "getByteArray", "(String)", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] - - ["android.os", "Bundle", True, "getCharArray", "(String)", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] - - ["android.os", "Bundle", True, "getCharSequence", "(String)", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] - - ["android.os", "Bundle", True, "getCharSequence", "(String,CharSequence)", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] + - ["android.os", "Bundle", True, "deepCopy", "()", "", "Argument[this].MapKey", "ReturnValue.MapKey", "value", "manual"] + - ["android.os", "Bundle", True, "deepCopy", "()", "", "Argument[this].MapValue", "ReturnValue.MapValue", "value", "manual"] + - ["android.os", "Bundle", True, "getBinder", "(String)", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["android.os", "Bundle", True, "getBundle", "(String)", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["android.os", "Bundle", True, "getByteArray", "(String)", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["android.os", "Bundle", True, "getCharArray", "(String)", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["android.os", "Bundle", True, "getCharSequence", "(String)", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["android.os", "Bundle", True, "getCharSequence", "(String,CharSequence)", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] - ["android.os", "Bundle", True, "getCharSequence", "(String,CharSequence)", "", "Argument[1]", "ReturnValue", "value", "manual"] - - ["android.os", "Bundle", True, "getCharSequenceArray", "(String)", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] - - ["android.os", "Bundle", True, "getCharSequenceArrayList", "(String)", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] - - ["android.os", "Bundle", True, "getParcelable", "(String)", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] - - ["android.os", "Bundle", True, "getParcelableArray", "(String)", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] - - ["android.os", "Bundle", True, "getParcelableArrayList", "(String)", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] - - ["android.os", "Bundle", True, "getSerializable", "(String)", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] - - ["android.os", "Bundle", True, "getSparseParcelableArray", "(String)", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] - - ["android.os", "Bundle", True, "getStringArrayList", "(String)", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] - - ["android.os", "Bundle", True, "putAll", "(Bundle)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["android.os", "Bundle", True, "putAll", "(Bundle)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["android.os", "Bundle", True, "putBinder", "", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["android.os", "Bundle", True, "putBinder", "", "", "Argument[1]", "Argument[-1].MapValue", "value", "manual"] - - ["android.os", "Bundle", True, "putBundle", "", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["android.os", "Bundle", True, "putBundle", "", "", "Argument[1]", "Argument[-1].MapValue", "value", "manual"] - - ["android.os", "Bundle", True, "putByte", "", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["android.os", "Bundle", True, "putByteArray", "", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["android.os", "Bundle", True, "putByteArray", "", "", "Argument[1]", "Argument[-1].MapValue", "value", "manual"] - - ["android.os", "Bundle", True, "putChar", "", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["android.os", "Bundle", True, "putCharArray", "", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["android.os", "Bundle", True, "putCharArray", "", "", "Argument[1]", "Argument[-1].MapValue", "value", "manual"] - - ["android.os", "Bundle", True, "putCharSequence", "", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["android.os", "Bundle", True, "putCharSequence", "", "", "Argument[1]", "Argument[-1].MapValue", "value", "manual"] - - ["android.os", "Bundle", True, "putCharSequenceArray", "", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["android.os", "Bundle", True, "putCharSequenceArray", "", "", "Argument[1]", "Argument[-1].MapValue", "value", "manual"] - - ["android.os", "Bundle", True, "putCharSequenceArrayList", "", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["android.os", "Bundle", True, "putCharSequenceArrayList", "", "", "Argument[1]", "Argument[-1].MapValue", "value", "manual"] - - ["android.os", "Bundle", True, "putFloat", "", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["android.os", "Bundle", True, "putFloatArray", "", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["android.os", "Bundle", True, "putIntegerArrayList", "", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["android.os", "Bundle", True, "putParcelable", "", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["android.os", "Bundle", True, "putParcelable", "", "", "Argument[1]", "Argument[-1].MapValue", "value", "manual"] - - ["android.os", "Bundle", True, "putParcelableArray", "", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["android.os", "Bundle", True, "putParcelableArray", "", "", "Argument[1]", "Argument[-1].MapValue", "value", "manual"] - - ["android.os", "Bundle", True, "putParcelableArrayList", "", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["android.os", "Bundle", True, "putParcelableArrayList", "", "", "Argument[1]", "Argument[-1].MapValue", "value", "manual"] - - ["android.os", "Bundle", True, "putSerializable", "", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["android.os", "Bundle", True, "putSerializable", "", "", "Argument[1]", "Argument[-1].MapValue", "value", "manual"] - - ["android.os", "Bundle", True, "putShort", "", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["android.os", "Bundle", True, "putShortArray", "", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["android.os", "Bundle", True, "putSize", "", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["android.os", "Bundle", True, "putSizeF", "", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["android.os", "Bundle", True, "putSparseParcelableArray", "", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["android.os", "Bundle", True, "putSparseParcelableArray", "", "", "Argument[1]", "Argument[-1].MapValue", "value", "manual"] - - ["android.os", "Bundle", True, "putStringArrayList", "", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["android.os", "Bundle", True, "putStringArrayList", "", "", "Argument[1]", "Argument[-1].MapValue", "value", "manual"] - - ["android.os", "Bundle", True, "readFromParcel", "", "", "Argument[0]", "Argument[-1].MapKey", "taint", "manual"] - - ["android.os", "Bundle", True, "readFromParcel", "", "", "Argument[0]", "Argument[-1].MapValue", "taint", "manual"] - - ["android.os", "Parcel", False, "readArray", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["android.os", "Parcel", False, "readArrayList", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["android.os", "Parcel", False, "readBinderArray", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"] - - ["android.os", "Parcel", False, "readBinderList", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"] - - ["android.os", "Parcel", False, "readBoolean", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["android.os", "Parcel", False, "readBooleanArray", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"] - - ["android.os", "Parcel", False, "readBundle", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["android.os", "Parcel", False, "readByte", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["android.os", "Parcel", False, "readByteArray", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"] - - ["android.os", "Parcel", False, "readCharArray", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"] - - ["android.os", "Parcel", False, "readDouble", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["android.os", "Parcel", False, "readDoubleArray", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"] - - ["android.os", "Parcel", False, "readFileDescriptor", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["android.os", "Parcel", False, "readFloat", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["android.os", "Parcel", False, "readFloatArray", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"] - - ["android.os", "Parcel", False, "readHashMap", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["android.os", "Parcel", False, "readInt", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["android.os", "Parcel", False, "readIntArray", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"] - - ["android.os", "Parcel", False, "readList", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"] - - ["android.os", "Parcel", False, "readLong", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["android.os", "Parcel", False, "readLongArray", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"] - - ["android.os", "Parcel", False, "readMap", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"] - - ["android.os", "Parcel", False, "readParcelable", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["android.os", "Parcel", False, "readParcelableArray", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["android.os", "Parcel", False, "readParcelableList", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"] + - ["android.os", "Bundle", True, "getCharSequenceArray", "(String)", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["android.os", "Bundle", True, "getCharSequenceArrayList", "(String)", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["android.os", "Bundle", True, "getParcelable", "(String)", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["android.os", "Bundle", True, "getParcelableArray", "(String)", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["android.os", "Bundle", True, "getParcelableArrayList", "(String)", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["android.os", "Bundle", True, "getSerializable", "(String)", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["android.os", "Bundle", True, "getSparseParcelableArray", "(String)", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["android.os", "Bundle", True, "getStringArrayList", "(String)", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["android.os", "Bundle", True, "putAll", "(Bundle)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["android.os", "Bundle", True, "putAll", "(Bundle)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["android.os", "Bundle", True, "putBinder", "", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["android.os", "Bundle", True, "putBinder", "", "", "Argument[1]", "Argument[this].MapValue", "value", "manual"] + - ["android.os", "Bundle", True, "putBundle", "", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["android.os", "Bundle", True, "putBundle", "", "", "Argument[1]", "Argument[this].MapValue", "value", "manual"] + - ["android.os", "Bundle", True, "putByte", "", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["android.os", "Bundle", True, "putByteArray", "", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["android.os", "Bundle", True, "putByteArray", "", "", "Argument[1]", "Argument[this].MapValue", "value", "manual"] + - ["android.os", "Bundle", True, "putChar", "", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["android.os", "Bundle", True, "putCharArray", "", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["android.os", "Bundle", True, "putCharArray", "", "", "Argument[1]", "Argument[this].MapValue", "value", "manual"] + - ["android.os", "Bundle", True, "putCharSequence", "", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["android.os", "Bundle", True, "putCharSequence", "", "", "Argument[1]", "Argument[this].MapValue", "value", "manual"] + - ["android.os", "Bundle", True, "putCharSequenceArray", "", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["android.os", "Bundle", True, "putCharSequenceArray", "", "", "Argument[1]", "Argument[this].MapValue", "value", "manual"] + - ["android.os", "Bundle", True, "putCharSequenceArrayList", "", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["android.os", "Bundle", True, "putCharSequenceArrayList", "", "", "Argument[1]", "Argument[this].MapValue", "value", "manual"] + - ["android.os", "Bundle", True, "putFloat", "", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["android.os", "Bundle", True, "putFloatArray", "", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["android.os", "Bundle", True, "putIntegerArrayList", "", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["android.os", "Bundle", True, "putParcelable", "", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["android.os", "Bundle", True, "putParcelable", "", "", "Argument[1]", "Argument[this].MapValue", "value", "manual"] + - ["android.os", "Bundle", True, "putParcelableArray", "", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["android.os", "Bundle", True, "putParcelableArray", "", "", "Argument[1]", "Argument[this].MapValue", "value", "manual"] + - ["android.os", "Bundle", True, "putParcelableArrayList", "", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["android.os", "Bundle", True, "putParcelableArrayList", "", "", "Argument[1]", "Argument[this].MapValue", "value", "manual"] + - ["android.os", "Bundle", True, "putSerializable", "", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["android.os", "Bundle", True, "putSerializable", "", "", "Argument[1]", "Argument[this].MapValue", "value", "manual"] + - ["android.os", "Bundle", True, "putShort", "", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["android.os", "Bundle", True, "putShortArray", "", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["android.os", "Bundle", True, "putSize", "", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["android.os", "Bundle", True, "putSizeF", "", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["android.os", "Bundle", True, "putSparseParcelableArray", "", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["android.os", "Bundle", True, "putSparseParcelableArray", "", "", "Argument[1]", "Argument[this].MapValue", "value", "manual"] + - ["android.os", "Bundle", True, "putStringArrayList", "", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["android.os", "Bundle", True, "putStringArrayList", "", "", "Argument[1]", "Argument[this].MapValue", "value", "manual"] + - ["android.os", "Bundle", True, "readFromParcel", "", "", "Argument[0]", "Argument[this].MapKey", "taint", "manual"] + - ["android.os", "Bundle", True, "readFromParcel", "", "", "Argument[0]", "Argument[this].MapValue", "taint", "manual"] + - ["android.os", "Parcel", False, "readArray", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["android.os", "Parcel", False, "readArrayList", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["android.os", "Parcel", False, "readBinderArray", "", "", "Argument[this]", "Argument[0]", "taint", "manual"] + - ["android.os", "Parcel", False, "readBinderList", "", "", "Argument[this]", "Argument[0]", "taint", "manual"] + - ["android.os", "Parcel", False, "readBoolean", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["android.os", "Parcel", False, "readBooleanArray", "", "", "Argument[this]", "Argument[0]", "taint", "manual"] + - ["android.os", "Parcel", False, "readBundle", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["android.os", "Parcel", False, "readByte", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["android.os", "Parcel", False, "readByteArray", "", "", "Argument[this]", "Argument[0]", "taint", "manual"] + - ["android.os", "Parcel", False, "readCharArray", "", "", "Argument[this]", "Argument[0]", "taint", "manual"] + - ["android.os", "Parcel", False, "readDouble", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["android.os", "Parcel", False, "readDoubleArray", "", "", "Argument[this]", "Argument[0]", "taint", "manual"] + - ["android.os", "Parcel", False, "readFileDescriptor", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["android.os", "Parcel", False, "readFloat", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["android.os", "Parcel", False, "readFloatArray", "", "", "Argument[this]", "Argument[0]", "taint", "manual"] + - ["android.os", "Parcel", False, "readHashMap", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["android.os", "Parcel", False, "readInt", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["android.os", "Parcel", False, "readIntArray", "", "", "Argument[this]", "Argument[0]", "taint", "manual"] + - ["android.os", "Parcel", False, "readList", "", "", "Argument[this]", "Argument[0]", "taint", "manual"] + - ["android.os", "Parcel", False, "readLong", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["android.os", "Parcel", False, "readLongArray", "", "", "Argument[this]", "Argument[0]", "taint", "manual"] + - ["android.os", "Parcel", False, "readMap", "", "", "Argument[this]", "Argument[0]", "taint", "manual"] + - ["android.os", "Parcel", False, "readParcelable", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["android.os", "Parcel", False, "readParcelableArray", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["android.os", "Parcel", False, "readParcelableList", "", "", "Argument[this]", "Argument[0]", "taint", "manual"] - ["android.os", "Parcel", False, "readParcelableList", "", "", "Argument[0]", "ReturnValue", "value", "manual"] - - ["android.os", "Parcel", False, "readPersistableBundle", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["android.os", "Parcel", False, "readSerializable", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["android.os", "Parcel", False, "readSize", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["android.os", "Parcel", False, "readSizeF", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["android.os", "Parcel", False, "readSparseArray", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["android.os", "Parcel", False, "readSparseBooleanArray", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["android.os", "Parcel", False, "readString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["android.os", "Parcel", False, "readStringArray", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"] - - ["android.os", "Parcel", False, "readStringList", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"] - - ["android.os", "Parcel", False, "readStrongBinder", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["android.os", "Parcel", False, "readTypedArray", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"] - - ["android.os", "Parcel", False, "readTypedList", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"] - - ["android.os", "Parcel", False, "readTypedObject", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["android.os", "Parcel", False, "readValue", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["android.os", "Parcel", False, "readPersistableBundle", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["android.os", "Parcel", False, "readSerializable", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["android.os", "Parcel", False, "readSize", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["android.os", "Parcel", False, "readSizeF", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["android.os", "Parcel", False, "readSparseArray", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["android.os", "Parcel", False, "readSparseBooleanArray", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["android.os", "Parcel", False, "readString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["android.os", "Parcel", False, "readStringArray", "", "", "Argument[this]", "Argument[0]", "taint", "manual"] + - ["android.os", "Parcel", False, "readStringList", "", "", "Argument[this]", "Argument[0]", "taint", "manual"] + - ["android.os", "Parcel", False, "readStrongBinder", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["android.os", "Parcel", False, "readTypedArray", "", "", "Argument[this]", "Argument[0]", "taint", "manual"] + - ["android.os", "Parcel", False, "readTypedList", "", "", "Argument[this]", "Argument[0]", "taint", "manual"] + - ["android.os", "Parcel", False, "readTypedObject", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["android.os", "Parcel", False, "readValue", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] diff --git a/java/ql/lib/ext/android.widget.model.yml b/java/ql/lib/ext/android.widget.model.yml index 1b6c94993e0..ef4b015700a 100644 --- a/java/ql/lib/ext/android.widget.model.yml +++ b/java/ql/lib/ext/android.widget.model.yml @@ -8,4 +8,4 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["android.widget", "EditText", True, "getText", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["android.widget", "EditText", True, "getText", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] diff --git a/java/ql/lib/ext/androidx.core.app.model.yml b/java/ql/lib/ext/androidx.core.app.model.yml index dbf8c0fb082..2bb58605436 100644 --- a/java/ql/lib/ext/androidx.core.app.model.yml +++ b/java/ql/lib/ext/androidx.core.app.model.yml @@ -13,98 +13,98 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["androidx.core.app", "NotificationCompat$Action", True, "Action", "(IconCompat,CharSequence,PendingIntent)", "", "Argument[2]", "Argument[-1]", "taint", "manual"] - - ["androidx.core.app", "NotificationCompat$Action", True, "Action", "(int,CharSequence,PendingIntent)", "", "Argument[2]", "Argument[-1]", "taint", "manual"] - - ["androidx.core.app", "NotificationCompat$Action", True, "getExtras", "", "", "Argument[-1].SyntheticField[android.content.Intent.extras]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$Action$Builder", True, "Builder", "(Action)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["androidx.core.app", "NotificationCompat$Action$Builder", True, "Builder", "(IconCompat,CharSequence,PendingIntent)", "", "Argument[2]", "Argument[-1]", "taint", "manual"] - - ["androidx.core.app", "NotificationCompat$Action$Builder", True, "Builder", "(int,CharSequence,PendingIntent)", "", "Argument[2]", "Argument[-1]", "taint", "manual"] - - ["androidx.core.app", "NotificationCompat$Action$Builder", True, "addExtras", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$Action$Builder", True, "addExtras", "", "", "Argument[0].MapKey", "Argument[-1].SyntheticField[android.content.Intent.extras].MapKey", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$Action$Builder", True, "addExtras", "", "", "Argument[0].MapValue", "Argument[-1].SyntheticField[android.content.Intent.extras].MapValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$Action$Builder", True, "addRemoteInput", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$Action$Builder", True, "build", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["androidx.core.app", "NotificationCompat$Action$Builder", True, "build", "", "", "Argument[-1].SyntheticField[android.content.Intent.extras]", "ReturnValue.SyntheticField[android.content.Intent.extras]", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$Action$Builder", True, "extend", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$Action$Builder", True, "getExtras", "", "", "Argument[-1].SyntheticField[android.content.Intent.extras]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$Action$Builder", True, "setAllowGeneratedReplies", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$Action$Builder", True, "setAuthenticationRequired", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$Action$Builder", True, "setContextual", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$Action$Builder", True, "setSemanticAction", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$BigPictureStyle", True, "bigLargeIcon", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$BigPictureStyle", True, "bigPicture", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$BigPictureStyle", True, "setBigContentTitle", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$BigPictureStyle", True, "setContentDescription", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$BigPictureStyle", True, "setSummaryText", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$BigPictureStyle", True, "showBigPictureWhenCollapsed", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$BigTextStyle", True, "bigText", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$BigTextStyle", True, "setBigContentTitle", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$BigTextStyle", True, "setSummaryText", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$Builder", True, "addAction", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$Builder", True, "addAction", "(Action)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["androidx.core.app", "NotificationCompat$Builder", True, "addAction", "(int,CharSequence,PendingIntent)", "", "Argument[2]", "Argument[-1]", "taint", "manual"] - - ["androidx.core.app", "NotificationCompat$Builder", True, "addExtras", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$Builder", True, "addExtras", "", "", "Argument[0].MapKey", "Argument[-1].SyntheticField[android.content.Intent.extras].MapKey", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$Builder", True, "addExtras", "", "", "Argument[0].MapValue", "Argument[-1].SyntheticField[android.content.Intent.extras].MapValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$Builder", True, "addPerson", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$Builder", True, "build", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["androidx.core.app", "NotificationCompat$Builder", True, "build", "", "", "Argument[-1].SyntheticField[android.content.Intent.extras]", "ReturnValue.Field[android.app.Notification.extras]", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$Builder", True, "extend", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$Builder", True, "getExtras", "", "", "Argument[-1].SyntheticField[android.content.Intent.extras]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$Builder", True, "setActions", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$Builder", True, "setAutoCancel", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$Builder", True, "setBadgeIconType", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$Builder", True, "setBubbleMetadata", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$Builder", True, "setCategory", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$Builder", True, "setChannelId", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$Builder", True, "setChronometerCountDown", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$Builder", True, "setColor", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$Builder", True, "setColorized", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$Builder", True, "setContent", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$Builder", True, "setContentInfo", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$Builder", True, "setContentIntent", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$Builder", True, "setContentIntent", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["androidx.core.app", "NotificationCompat$Builder", True, "setContentText", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$Builder", True, "setContentTitle", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$Builder", True, "setCustomBigContentView", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$Builder", True, "setCustomHeadsUpContentView", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$Builder", True, "setDefaults", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$Builder", True, "setDeleteIntent", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$Builder", True, "setDeleteIntent", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["androidx.core.app", "NotificationCompat$Builder", True, "setExtras", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$Builder", True, "setExtras", "", "", "Argument[0]", "Argument[-1].SyntheticField[android.content.Intent.extras]", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$Builder", True, "setFlag", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$Builder", True, "setForegroundServiceBehavior", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$Builder", True, "setFullScreenIntent", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$Builder", True, "setGroup", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$Builder", True, "setGroupAlertBehavior", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$Builder", True, "setGroupSummary", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$Builder", True, "setLargeIcon", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$Builder", True, "setLights", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$Builder", True, "setLocalOnly", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$Builder", True, "setLocusId", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$Builder", True, "setNumber", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$Builder", True, "setOngoing", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$Builder", True, "setOnlyAlertOnce", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$Builder", True, "setPriority", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$Builder", True, "setProgress", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$Builder", True, "setPublicVersion", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$Builder", True, "setPublicVersion", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["androidx.core.app", "NotificationCompat$Builder", True, "setRemoteInputHistory", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$Builder", True, "setSettingsText", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$Builder", True, "setShortcutId", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$Builder", True, "setShowWhen", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$Builder", True, "setSmallIcon", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$Builder", True, "setSortKey", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$Builder", True, "setSound", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$Builder", True, "setStyle", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$Builder", True, "setSubText", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$Builder", True, "setTicker", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$Builder", True, "setTimeoutAfter", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$Builder", True, "setUsesChronometer", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$Builder", True, "setVibrate", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$Builder", True, "setVisibility", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$Builder", True, "setWhen", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$InboxStyle", True, "addLine", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$InboxStyle", True, "setBigContentTitle", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.core.app", "NotificationCompat$InboxStyle", True, "setSummaryText", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Action", True, "Action", "(IconCompat,CharSequence,PendingIntent)", "", "Argument[2]", "Argument[this]", "taint", "manual"] + - ["androidx.core.app", "NotificationCompat$Action", True, "Action", "(int,CharSequence,PendingIntent)", "", "Argument[2]", "Argument[this]", "taint", "manual"] + - ["androidx.core.app", "NotificationCompat$Action", True, "getExtras", "", "", "Argument[this].SyntheticField[android.content.Intent.extras]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Action$Builder", True, "Builder", "(Action)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["androidx.core.app", "NotificationCompat$Action$Builder", True, "Builder", "(IconCompat,CharSequence,PendingIntent)", "", "Argument[2]", "Argument[this]", "taint", "manual"] + - ["androidx.core.app", "NotificationCompat$Action$Builder", True, "Builder", "(int,CharSequence,PendingIntent)", "", "Argument[2]", "Argument[this]", "taint", "manual"] + - ["androidx.core.app", "NotificationCompat$Action$Builder", True, "addExtras", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Action$Builder", True, "addExtras", "", "", "Argument[0].MapKey", "Argument[this].SyntheticField[android.content.Intent.extras].MapKey", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Action$Builder", True, "addExtras", "", "", "Argument[0].MapValue", "Argument[this].SyntheticField[android.content.Intent.extras].MapValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Action$Builder", True, "addRemoteInput", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Action$Builder", True, "build", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["androidx.core.app", "NotificationCompat$Action$Builder", True, "build", "", "", "Argument[this].SyntheticField[android.content.Intent.extras]", "ReturnValue.SyntheticField[android.content.Intent.extras]", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Action$Builder", True, "extend", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Action$Builder", True, "getExtras", "", "", "Argument[this].SyntheticField[android.content.Intent.extras]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Action$Builder", True, "setAllowGeneratedReplies", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Action$Builder", True, "setAuthenticationRequired", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Action$Builder", True, "setContextual", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Action$Builder", True, "setSemanticAction", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$BigPictureStyle", True, "bigLargeIcon", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$BigPictureStyle", True, "bigPicture", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$BigPictureStyle", True, "setBigContentTitle", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$BigPictureStyle", True, "setContentDescription", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$BigPictureStyle", True, "setSummaryText", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$BigPictureStyle", True, "showBigPictureWhenCollapsed", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$BigTextStyle", True, "bigText", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$BigTextStyle", True, "setBigContentTitle", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$BigTextStyle", True, "setSummaryText", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Builder", True, "addAction", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Builder", True, "addAction", "(Action)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["androidx.core.app", "NotificationCompat$Builder", True, "addAction", "(int,CharSequence,PendingIntent)", "", "Argument[2]", "Argument[this]", "taint", "manual"] + - ["androidx.core.app", "NotificationCompat$Builder", True, "addExtras", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Builder", True, "addExtras", "", "", "Argument[0].MapKey", "Argument[this].SyntheticField[android.content.Intent.extras].MapKey", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Builder", True, "addExtras", "", "", "Argument[0].MapValue", "Argument[this].SyntheticField[android.content.Intent.extras].MapValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Builder", True, "addPerson", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Builder", True, "build", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["androidx.core.app", "NotificationCompat$Builder", True, "build", "", "", "Argument[this].SyntheticField[android.content.Intent.extras]", "ReturnValue.Field[android.app.Notification.extras]", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Builder", True, "extend", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Builder", True, "getExtras", "", "", "Argument[this].SyntheticField[android.content.Intent.extras]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Builder", True, "setActions", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Builder", True, "setAutoCancel", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Builder", True, "setBadgeIconType", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Builder", True, "setBubbleMetadata", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Builder", True, "setCategory", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Builder", True, "setChannelId", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Builder", True, "setChronometerCountDown", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Builder", True, "setColor", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Builder", True, "setColorized", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Builder", True, "setContent", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Builder", True, "setContentInfo", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Builder", True, "setContentIntent", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Builder", True, "setContentIntent", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["androidx.core.app", "NotificationCompat$Builder", True, "setContentText", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Builder", True, "setContentTitle", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Builder", True, "setCustomBigContentView", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Builder", True, "setCustomHeadsUpContentView", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Builder", True, "setDefaults", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Builder", True, "setDeleteIntent", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Builder", True, "setDeleteIntent", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["androidx.core.app", "NotificationCompat$Builder", True, "setExtras", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Builder", True, "setExtras", "", "", "Argument[0]", "Argument[this].SyntheticField[android.content.Intent.extras]", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Builder", True, "setFlag", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Builder", True, "setForegroundServiceBehavior", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Builder", True, "setFullScreenIntent", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Builder", True, "setGroup", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Builder", True, "setGroupAlertBehavior", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Builder", True, "setGroupSummary", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Builder", True, "setLargeIcon", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Builder", True, "setLights", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Builder", True, "setLocalOnly", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Builder", True, "setLocusId", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Builder", True, "setNumber", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Builder", True, "setOngoing", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Builder", True, "setOnlyAlertOnce", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Builder", True, "setPriority", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Builder", True, "setProgress", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Builder", True, "setPublicVersion", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Builder", True, "setPublicVersion", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["androidx.core.app", "NotificationCompat$Builder", True, "setRemoteInputHistory", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Builder", True, "setSettingsText", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Builder", True, "setShortcutId", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Builder", True, "setShowWhen", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Builder", True, "setSmallIcon", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Builder", True, "setSortKey", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Builder", True, "setSound", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Builder", True, "setStyle", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Builder", True, "setSubText", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Builder", True, "setTicker", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Builder", True, "setTimeoutAfter", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Builder", True, "setUsesChronometer", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Builder", True, "setVibrate", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Builder", True, "setVisibility", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$Builder", True, "setWhen", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$InboxStyle", True, "addLine", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$InboxStyle", True, "setBigContentTitle", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.core.app", "NotificationCompat$InboxStyle", True, "setSummaryText", "", "", "Argument[this]", "ReturnValue", "value", "manual"] diff --git a/java/ql/lib/ext/androidx.slice.builders.model.yml b/java/ql/lib/ext/androidx.slice.builders.model.yml index 8b84e7ec341..51056f83d96 100644 --- a/java/ql/lib/ext/androidx.slice.builders.model.yml +++ b/java/ql/lib/ext/androidx.slice.builders.model.yml @@ -3,91 +3,91 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["androidx.slice.builders", "ListBuilder", True, "addAction", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.slice.builders", "ListBuilder", True, "addAction", "", "", "Argument[0].SyntheticField[androidx.slice.Slice.action]", "Argument[-1].SyntheticField[androidx.slice.Slice.action]", "taint", "manual"] - - ["androidx.slice.builders", "ListBuilder", True, "addGridRow", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.slice.builders", "ListBuilder", True, "addGridRow", "", "", "Argument[0].SyntheticField[androidx.slice.Slice.action]", "Argument[-1].SyntheticField[androidx.slice.Slice.action]", "taint", "manual"] - - ["androidx.slice.builders", "ListBuilder", True, "addInputRange", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.slice.builders", "ListBuilder", True, "addInputRange", "", "", "Argument[0].SyntheticField[androidx.slice.Slice.action]", "Argument[-1].SyntheticField[androidx.slice.Slice.action]", "taint", "manual"] - - ["androidx.slice.builders", "ListBuilder", True, "addRange", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.slice.builders", "ListBuilder", True, "addRange", "", "", "Argument[0].SyntheticField[androidx.slice.Slice.action]", "Argument[-1].SyntheticField[androidx.slice.Slice.action]", "taint", "manual"] - - ["androidx.slice.builders", "ListBuilder", True, "addRating", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.slice.builders", "ListBuilder", True, "addRating", "", "", "Argument[0].SyntheticField[androidx.slice.Slice.action]", "Argument[-1].SyntheticField[androidx.slice.Slice.action]", "taint", "manual"] - - ["androidx.slice.builders", "ListBuilder", True, "addRow", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.slice.builders", "ListBuilder", True, "addRow", "", "", "Argument[0].SyntheticField[androidx.slice.Slice.action]", "Argument[-1].SyntheticField[androidx.slice.Slice.action]", "taint", "manual"] - - ["androidx.slice.builders", "ListBuilder", True, "addSelection", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.slice.builders", "ListBuilder", True, "addSelection", "", "", "Argument[0].SyntheticField[androidx.slice.Slice.action]", "Argument[-1].SyntheticField[androidx.slice.Slice.action]", "taint", "manual"] - - ["androidx.slice.builders", "ListBuilder", True, "build", "", "", "Argument[-1].SyntheticField[androidx.slice.Slice.action]", "ReturnValue", "taint", "manual"] - - ["androidx.slice.builders", "ListBuilder", True, "setAccentColor", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.slice.builders", "ListBuilder", True, "setHeader", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.slice.builders", "ListBuilder", True, "setHeader", "", "", "Argument[0].SyntheticField[androidx.slice.Slice.action]", "Argument[-1].SyntheticField[androidx.slice.Slice.action]", "taint", "manual"] - - ["androidx.slice.builders", "ListBuilder", True, "setHostExtras", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.slice.builders", "ListBuilder", True, "setIsError", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.slice.builders", "ListBuilder", True, "setKeywords", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.slice.builders", "ListBuilder", True, "setLayoutDirection", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.slice.builders", "ListBuilder", True, "setSeeMoreAction", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.slice.builders", "ListBuilder", True, "setSeeMoreAction", "(PendingIntent)", "", "Argument[0]", "Argument[-1].SyntheticField[androidx.slice.Slice.action]", "taint", "manual"] - - ["androidx.slice.builders", "ListBuilder", True, "setSeeMoreRow", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.slice.builders", "ListBuilder", True, "setSeeMoreRow", "", "", "Argument[0].SyntheticField[androidx.slice.Slice.action]", "Argument[-1].SyntheticField[androidx.slice.Slice.action]", "taint", "manual"] - - ["androidx.slice.builders", "ListBuilder$HeaderBuilder", True, "setContentDescription", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.slice.builders", "ListBuilder$HeaderBuilder", True, "setLayoutDirection", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.slice.builders", "ListBuilder$HeaderBuilder", True, "setPrimaryAction", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.slice.builders", "ListBuilder$HeaderBuilder", True, "setPrimaryAction", "", "", "Argument[0].SyntheticField[androidx.slice.Slice.action]", "Argument[-1].SyntheticField[androidx.slice.Slice.action]", "taint", "manual"] - - ["androidx.slice.builders", "ListBuilder$HeaderBuilder", True, "setSubtitle", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.slice.builders", "ListBuilder$HeaderBuilder", True, "setSummary", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.slice.builders", "ListBuilder$HeaderBuilder", True, "setTitle", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.slice.builders", "ListBuilder$InputRangeBuilder", True, "addEndItem", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.slice.builders", "ListBuilder$InputRangeBuilder", True, "addEndItem", "", "", "Argument[0].SyntheticField[androidx.slice.Slice.action]", "Argument[-1].SyntheticField[androidx.slice.Slice.action]", "taint", "manual"] - - ["androidx.slice.builders", "ListBuilder$InputRangeBuilder", True, "setContentDescription", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.slice.builders", "ListBuilder$InputRangeBuilder", True, "setInputAction", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.slice.builders", "ListBuilder$InputRangeBuilder", True, "setInputAction", "(PendingIntent)", "", "Argument[0]", "Argument[-1].SyntheticField[androidx.slice.Slice.action]", "taint", "manual"] - - ["androidx.slice.builders", "ListBuilder$InputRangeBuilder", True, "setLayoutDirection", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.slice.builders", "ListBuilder$InputRangeBuilder", True, "setMax", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.slice.builders", "ListBuilder$InputRangeBuilder", True, "setMin", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.slice.builders", "ListBuilder$InputRangeBuilder", True, "setPrimaryAction", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.slice.builders", "ListBuilder$InputRangeBuilder", True, "setPrimaryAction", "", "", "Argument[0].SyntheticField[androidx.slice.Slice.action]", "Argument[-1].SyntheticField[androidx.slice.Slice.action]", "taint", "manual"] - - ["androidx.slice.builders", "ListBuilder$InputRangeBuilder", True, "setSubtitle", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.slice.builders", "ListBuilder$InputRangeBuilder", True, "setThumb", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.slice.builders", "ListBuilder$InputRangeBuilder", True, "setTitle", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.slice.builders", "ListBuilder$InputRangeBuilder", True, "setTitleItem", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.slice.builders", "ListBuilder$InputRangeBuilder", True, "setValue", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.slice.builders", "ListBuilder$RangeBuilder", True, "setContentDescription", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.slice.builders", "ListBuilder$RangeBuilder", True, "setMax", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.slice.builders", "ListBuilder$RangeBuilder", True, "setMode", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.slice.builders", "ListBuilder$RangeBuilder", True, "setPrimaryAction", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.slice.builders", "ListBuilder$RangeBuilder", True, "setPrimaryAction", "", "", "Argument[0].SyntheticField[androidx.slice.Slice.action]", "Argument[-1].SyntheticField[androidx.slice.Slice.action]", "taint", "manual"] - - ["androidx.slice.builders", "ListBuilder$RangeBuilder", True, "setSubtitle", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.slice.builders", "ListBuilder$RangeBuilder", True, "setTitle", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.slice.builders", "ListBuilder$RangeBuilder", True, "setTitleItem", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.slice.builders", "ListBuilder$RangeBuilder", True, "setValue", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.slice.builders", "ListBuilder$RatingBuilder", True, "setContentDescription", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.slice.builders", "ListBuilder$RatingBuilder", True, "setInputAction", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.slice.builders", "ListBuilder$RatingBuilder", True, "setInputAction", "(PendingIntent)", "", "Argument[0]", "Argument[-1].SyntheticField[androidx.slice.Slice.action]", "taint", "manual"] - - ["androidx.slice.builders", "ListBuilder$RatingBuilder", True, "setMax", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.slice.builders", "ListBuilder$RatingBuilder", True, "setMin", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.slice.builders", "ListBuilder$RatingBuilder", True, "setPrimaryAction", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.slice.builders", "ListBuilder$RatingBuilder", True, "setPrimaryAction", "", "", "Argument[0].SyntheticField[androidx.slice.Slice.action]", "Argument[-1].SyntheticField[androidx.slice.Slice.action]", "taint", "manual"] - - ["androidx.slice.builders", "ListBuilder$RatingBuilder", True, "setSubtitle", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.slice.builders", "ListBuilder$RatingBuilder", True, "setTitle", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.slice.builders", "ListBuilder$RatingBuilder", True, "setTitleItem", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.slice.builders", "ListBuilder$RatingBuilder", True, "setValue", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.slice.builders", "ListBuilder$RowBuilder", True, "addEndItem", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.slice.builders", "ListBuilder$RowBuilder", True, "addEndItem", "(SliceAction)", "", "Argument[0].SyntheticField[androidx.slice.Slice.action]", "Argument[-1].SyntheticField[androidx.slice.Slice.action]", "taint", "manual"] - - ["androidx.slice.builders", "ListBuilder$RowBuilder", True, "addEndItem", "(SliceAction,boolean)", "", "Argument[0].SyntheticField[androidx.slice.Slice.action]", "Argument[-1].SyntheticField[androidx.slice.Slice.action]", "taint", "manual"] - - ["androidx.slice.builders", "ListBuilder$RowBuilder", True, "setContentDescription", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.slice.builders", "ListBuilder$RowBuilder", True, "setEndOfSection", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.slice.builders", "ListBuilder$RowBuilder", True, "setLayoutDirection", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.slice.builders", "ListBuilder$RowBuilder", True, "setPrimaryAction", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.slice.builders", "ListBuilder$RowBuilder", True, "setPrimaryAction", "", "", "Argument[0].SyntheticField[androidx.slice.Slice.action]", "Argument[-1].SyntheticField[androidx.slice.Slice.action]", "taint", "manual"] - - ["androidx.slice.builders", "ListBuilder$RowBuilder", True, "setSubtitle", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.slice.builders", "ListBuilder$RowBuilder", True, "setTitle", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.slice.builders", "ListBuilder$RowBuilder", True, "setTitleItem", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.slice.builders", "ListBuilder$RowBuilder", True, "setTitleItem", "(SliceAction)", "", "Argument[0].SyntheticField[androidx.slice.Slice.action]", "Argument[-1].SyntheticField[androidx.slice.Slice.action]", "taint", "manual"] - - ["androidx.slice.builders", "ListBuilder$RowBuilder", True, "setTitleItem", "(SliceAction,boolean)", "", "Argument[0].SyntheticField[androidx.slice.Slice.action]", "Argument[-1].SyntheticField[androidx.slice.Slice.action]", "taint", "manual"] + - ["androidx.slice.builders", "ListBuilder", True, "addAction", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.slice.builders", "ListBuilder", True, "addAction", "", "", "Argument[0].SyntheticField[androidx.slice.Slice.action]", "Argument[this].SyntheticField[androidx.slice.Slice.action]", "taint", "manual"] + - ["androidx.slice.builders", "ListBuilder", True, "addGridRow", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.slice.builders", "ListBuilder", True, "addGridRow", "", "", "Argument[0].SyntheticField[androidx.slice.Slice.action]", "Argument[this].SyntheticField[androidx.slice.Slice.action]", "taint", "manual"] + - ["androidx.slice.builders", "ListBuilder", True, "addInputRange", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.slice.builders", "ListBuilder", True, "addInputRange", "", "", "Argument[0].SyntheticField[androidx.slice.Slice.action]", "Argument[this].SyntheticField[androidx.slice.Slice.action]", "taint", "manual"] + - ["androidx.slice.builders", "ListBuilder", True, "addRange", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.slice.builders", "ListBuilder", True, "addRange", "", "", "Argument[0].SyntheticField[androidx.slice.Slice.action]", "Argument[this].SyntheticField[androidx.slice.Slice.action]", "taint", "manual"] + - ["androidx.slice.builders", "ListBuilder", True, "addRating", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.slice.builders", "ListBuilder", True, "addRating", "", "", "Argument[0].SyntheticField[androidx.slice.Slice.action]", "Argument[this].SyntheticField[androidx.slice.Slice.action]", "taint", "manual"] + - ["androidx.slice.builders", "ListBuilder", True, "addRow", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.slice.builders", "ListBuilder", True, "addRow", "", "", "Argument[0].SyntheticField[androidx.slice.Slice.action]", "Argument[this].SyntheticField[androidx.slice.Slice.action]", "taint", "manual"] + - ["androidx.slice.builders", "ListBuilder", True, "addSelection", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.slice.builders", "ListBuilder", True, "addSelection", "", "", "Argument[0].SyntheticField[androidx.slice.Slice.action]", "Argument[this].SyntheticField[androidx.slice.Slice.action]", "taint", "manual"] + - ["androidx.slice.builders", "ListBuilder", True, "build", "", "", "Argument[this].SyntheticField[androidx.slice.Slice.action]", "ReturnValue", "taint", "manual"] + - ["androidx.slice.builders", "ListBuilder", True, "setAccentColor", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.slice.builders", "ListBuilder", True, "setHeader", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.slice.builders", "ListBuilder", True, "setHeader", "", "", "Argument[0].SyntheticField[androidx.slice.Slice.action]", "Argument[this].SyntheticField[androidx.slice.Slice.action]", "taint", "manual"] + - ["androidx.slice.builders", "ListBuilder", True, "setHostExtras", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.slice.builders", "ListBuilder", True, "setIsError", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.slice.builders", "ListBuilder", True, "setKeywords", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.slice.builders", "ListBuilder", True, "setLayoutDirection", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.slice.builders", "ListBuilder", True, "setSeeMoreAction", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.slice.builders", "ListBuilder", True, "setSeeMoreAction", "(PendingIntent)", "", "Argument[0]", "Argument[this].SyntheticField[androidx.slice.Slice.action]", "taint", "manual"] + - ["androidx.slice.builders", "ListBuilder", True, "setSeeMoreRow", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.slice.builders", "ListBuilder", True, "setSeeMoreRow", "", "", "Argument[0].SyntheticField[androidx.slice.Slice.action]", "Argument[this].SyntheticField[androidx.slice.Slice.action]", "taint", "manual"] + - ["androidx.slice.builders", "ListBuilder$HeaderBuilder", True, "setContentDescription", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.slice.builders", "ListBuilder$HeaderBuilder", True, "setLayoutDirection", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.slice.builders", "ListBuilder$HeaderBuilder", True, "setPrimaryAction", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.slice.builders", "ListBuilder$HeaderBuilder", True, "setPrimaryAction", "", "", "Argument[0].SyntheticField[androidx.slice.Slice.action]", "Argument[this].SyntheticField[androidx.slice.Slice.action]", "taint", "manual"] + - ["androidx.slice.builders", "ListBuilder$HeaderBuilder", True, "setSubtitle", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.slice.builders", "ListBuilder$HeaderBuilder", True, "setSummary", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.slice.builders", "ListBuilder$HeaderBuilder", True, "setTitle", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.slice.builders", "ListBuilder$InputRangeBuilder", True, "addEndItem", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.slice.builders", "ListBuilder$InputRangeBuilder", True, "addEndItem", "", "", "Argument[0].SyntheticField[androidx.slice.Slice.action]", "Argument[this].SyntheticField[androidx.slice.Slice.action]", "taint", "manual"] + - ["androidx.slice.builders", "ListBuilder$InputRangeBuilder", True, "setContentDescription", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.slice.builders", "ListBuilder$InputRangeBuilder", True, "setInputAction", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.slice.builders", "ListBuilder$InputRangeBuilder", True, "setInputAction", "(PendingIntent)", "", "Argument[0]", "Argument[this].SyntheticField[androidx.slice.Slice.action]", "taint", "manual"] + - ["androidx.slice.builders", "ListBuilder$InputRangeBuilder", True, "setLayoutDirection", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.slice.builders", "ListBuilder$InputRangeBuilder", True, "setMax", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.slice.builders", "ListBuilder$InputRangeBuilder", True, "setMin", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.slice.builders", "ListBuilder$InputRangeBuilder", True, "setPrimaryAction", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.slice.builders", "ListBuilder$InputRangeBuilder", True, "setPrimaryAction", "", "", "Argument[0].SyntheticField[androidx.slice.Slice.action]", "Argument[this].SyntheticField[androidx.slice.Slice.action]", "taint", "manual"] + - ["androidx.slice.builders", "ListBuilder$InputRangeBuilder", True, "setSubtitle", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.slice.builders", "ListBuilder$InputRangeBuilder", True, "setThumb", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.slice.builders", "ListBuilder$InputRangeBuilder", True, "setTitle", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.slice.builders", "ListBuilder$InputRangeBuilder", True, "setTitleItem", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.slice.builders", "ListBuilder$InputRangeBuilder", True, "setValue", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.slice.builders", "ListBuilder$RangeBuilder", True, "setContentDescription", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.slice.builders", "ListBuilder$RangeBuilder", True, "setMax", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.slice.builders", "ListBuilder$RangeBuilder", True, "setMode", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.slice.builders", "ListBuilder$RangeBuilder", True, "setPrimaryAction", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.slice.builders", "ListBuilder$RangeBuilder", True, "setPrimaryAction", "", "", "Argument[0].SyntheticField[androidx.slice.Slice.action]", "Argument[this].SyntheticField[androidx.slice.Slice.action]", "taint", "manual"] + - ["androidx.slice.builders", "ListBuilder$RangeBuilder", True, "setSubtitle", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.slice.builders", "ListBuilder$RangeBuilder", True, "setTitle", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.slice.builders", "ListBuilder$RangeBuilder", True, "setTitleItem", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.slice.builders", "ListBuilder$RangeBuilder", True, "setValue", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.slice.builders", "ListBuilder$RatingBuilder", True, "setContentDescription", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.slice.builders", "ListBuilder$RatingBuilder", True, "setInputAction", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.slice.builders", "ListBuilder$RatingBuilder", True, "setInputAction", "(PendingIntent)", "", "Argument[0]", "Argument[this].SyntheticField[androidx.slice.Slice.action]", "taint", "manual"] + - ["androidx.slice.builders", "ListBuilder$RatingBuilder", True, "setMax", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.slice.builders", "ListBuilder$RatingBuilder", True, "setMin", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.slice.builders", "ListBuilder$RatingBuilder", True, "setPrimaryAction", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.slice.builders", "ListBuilder$RatingBuilder", True, "setPrimaryAction", "", "", "Argument[0].SyntheticField[androidx.slice.Slice.action]", "Argument[this].SyntheticField[androidx.slice.Slice.action]", "taint", "manual"] + - ["androidx.slice.builders", "ListBuilder$RatingBuilder", True, "setSubtitle", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.slice.builders", "ListBuilder$RatingBuilder", True, "setTitle", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.slice.builders", "ListBuilder$RatingBuilder", True, "setTitleItem", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.slice.builders", "ListBuilder$RatingBuilder", True, "setValue", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.slice.builders", "ListBuilder$RowBuilder", True, "addEndItem", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.slice.builders", "ListBuilder$RowBuilder", True, "addEndItem", "(SliceAction)", "", "Argument[0].SyntheticField[androidx.slice.Slice.action]", "Argument[this].SyntheticField[androidx.slice.Slice.action]", "taint", "manual"] + - ["androidx.slice.builders", "ListBuilder$RowBuilder", True, "addEndItem", "(SliceAction,boolean)", "", "Argument[0].SyntheticField[androidx.slice.Slice.action]", "Argument[this].SyntheticField[androidx.slice.Slice.action]", "taint", "manual"] + - ["androidx.slice.builders", "ListBuilder$RowBuilder", True, "setContentDescription", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.slice.builders", "ListBuilder$RowBuilder", True, "setEndOfSection", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.slice.builders", "ListBuilder$RowBuilder", True, "setLayoutDirection", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.slice.builders", "ListBuilder$RowBuilder", True, "setPrimaryAction", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.slice.builders", "ListBuilder$RowBuilder", True, "setPrimaryAction", "", "", "Argument[0].SyntheticField[androidx.slice.Slice.action]", "Argument[this].SyntheticField[androidx.slice.Slice.action]", "taint", "manual"] + - ["androidx.slice.builders", "ListBuilder$RowBuilder", True, "setSubtitle", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.slice.builders", "ListBuilder$RowBuilder", True, "setTitle", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.slice.builders", "ListBuilder$RowBuilder", True, "setTitleItem", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.slice.builders", "ListBuilder$RowBuilder", True, "setTitleItem", "(SliceAction)", "", "Argument[0].SyntheticField[androidx.slice.Slice.action]", "Argument[this].SyntheticField[androidx.slice.Slice.action]", "taint", "manual"] + - ["androidx.slice.builders", "ListBuilder$RowBuilder", True, "setTitleItem", "(SliceAction,boolean)", "", "Argument[0].SyntheticField[androidx.slice.Slice.action]", "Argument[this].SyntheticField[androidx.slice.Slice.action]", "taint", "manual"] - ["androidx.slice.builders", "SliceAction", True, "create", "(PendingIntent,IconCompat,int,CharSequence)", "", "Argument[0]", "ReturnValue.SyntheticField[androidx.slice.Slice.action]", "taint", "manual"] - ["androidx.slice.builders", "SliceAction", True, "createDeeplink", "(PendingIntent,IconCompat,int,CharSequence)", "", "Argument[0]", "ReturnValue.SyntheticField[androidx.slice.Slice.action]", "taint", "manual"] - ["androidx.slice.builders", "SliceAction", True, "createToggle", "(PendingIntent,CharSequence,boolean)", "", "Argument[0]", "ReturnValue.SyntheticField[androidx.slice.Slice.action]", "taint", "manual"] - - ["androidx.slice.builders", "SliceAction", True, "getAction", "", "", "Argument[-1].SyntheticField[androidx.slice.Slice.action]", "ReturnValue", "taint", "manual"] - - ["androidx.slice.builders", "SliceAction", True, "setChecked", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.slice.builders", "SliceAction", True, "setContentDescription", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["androidx.slice.builders", "SliceAction", True, "setPriority", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] + - ["androidx.slice.builders", "SliceAction", True, "getAction", "", "", "Argument[this].SyntheticField[androidx.slice.Slice.action]", "ReturnValue", "taint", "manual"] + - ["androidx.slice.builders", "SliceAction", True, "setChecked", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.slice.builders", "SliceAction", True, "setContentDescription", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["androidx.slice.builders", "SliceAction", True, "setPriority", "", "", "Argument[this]", "ReturnValue", "value", "manual"] diff --git a/java/ql/lib/ext/com.esotericsoftware.kryo.io.model.yml b/java/ql/lib/ext/com.esotericsoftware.kryo.io.model.yml index b98da490aba..d23bd6cc8b8 100644 --- a/java/ql/lib/ext/com.esotericsoftware.kryo.io.model.yml +++ b/java/ql/lib/ext/com.esotericsoftware.kryo.io.model.yml @@ -3,4 +3,4 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["com.esotericsoftware.kryo.io", "Input", False, "Input", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] + - ["com.esotericsoftware.kryo.io", "Input", False, "Input", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] diff --git a/java/ql/lib/ext/com.esotericsoftware.kryo5.io.model.yml b/java/ql/lib/ext/com.esotericsoftware.kryo5.io.model.yml index 78512602b9f..9f8a65ef544 100644 --- a/java/ql/lib/ext/com.esotericsoftware.kryo5.io.model.yml +++ b/java/ql/lib/ext/com.esotericsoftware.kryo5.io.model.yml @@ -3,4 +3,4 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["com.esotericsoftware.kryo5.io", "Input", False, "Input", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] + - ["com.esotericsoftware.kryo5.io", "Input", False, "Input", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] diff --git a/java/ql/lib/ext/com.google.common.base.model.yml b/java/ql/lib/ext/com.google.common.base.model.yml index 9d7e8491e81..b335b96fdde 100644 --- a/java/ql/lib/ext/com.google.common.base.model.yml +++ b/java/ql/lib/ext/com.google.common.base.model.yml @@ -4,9 +4,9 @@ extensions: extensible: sinkModel data: - ["com.google.common.base", "Splitter", False, "onPattern", "(String)", "", "Argument[0]", "regex-use[]", "manual"] - - ["com.google.common.base", "Splitter", False, "split", "(CharSequence)", "", "Argument[-1]", "regex-use[0]", "manual"] - - ["com.google.common.base", "Splitter", False, "splitToList", "(CharSequence)", "", "Argument[-1]", "regex-use[0]", "manual"] - - ["com.google.common.base", "Splitter$MapSplitter", False, "split", "(CharSequence)", "", "Argument[-1]", "regex-use[0]", "manual"] + - ["com.google.common.base", "Splitter", False, "split", "(CharSequence)", "", "Argument[this]", "regex-use[0]", "manual"] + - ["com.google.common.base", "Splitter", False, "splitToList", "(CharSequence)", "", "Argument[this]", "regex-use[0]", "manual"] + - ["com.google.common.base", "Splitter$MapSplitter", False, "split", "(CharSequence)", "", "Argument[this]", "regex-use[0]", "manual"] - addsTo: pack: codeql/java-all extensible: summaryModel @@ -21,62 +21,62 @@ extensions: - ["com.google.common.base", "Converter", True, "apply", "(Object)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["com.google.common.base", "Converter", True, "convert", "(Object)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["com.google.common.base", "Converter", True, "convertAll", "(Iterable)", "", "Argument[0].Element", "ReturnValue.Element", "taint", "manual"] - - ["com.google.common.base", "Joiner", False, "appendTo", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"] + - ["com.google.common.base", "Joiner", False, "appendTo", "", "", "Argument[this]", "Argument[0]", "taint", "manual"] - ["com.google.common.base", "Joiner", False, "appendTo", "", "", "Argument[0]", "ReturnValue", "value", "manual"] - - ["com.google.common.base", "Joiner", False, "appendTo", "(Appendable,Iterable)", "", "Argument[1].Element", "Argument[-1]", "taint", "manual"] - - ["com.google.common.base", "Joiner", False, "appendTo", "(Appendable,Iterator)", "", "Argument[1].Element", "Argument[-1]", "taint", "manual"] + - ["com.google.common.base", "Joiner", False, "appendTo", "(Appendable,Iterable)", "", "Argument[1].Element", "Argument[this]", "taint", "manual"] + - ["com.google.common.base", "Joiner", False, "appendTo", "(Appendable,Iterator)", "", "Argument[1].Element", "Argument[this]", "taint", "manual"] - ["com.google.common.base", "Joiner", False, "appendTo", "(Appendable,Object,Object,Object[])", "", "Argument[1..2]", "Argument[0]", "taint", "manual"] - ["com.google.common.base", "Joiner", False, "appendTo", "(Appendable,Object,Object,Object[])", "", "Argument[3].ArrayElement", "Argument[0]", "taint", "manual"] - - ["com.google.common.base", "Joiner", False, "appendTo", "(Appendable,Object[])", "", "Argument[1].ArrayElement", "Argument[-1]", "taint", "manual"] - - ["com.google.common.base", "Joiner", False, "appendTo", "(StringBuilder,Iterable)", "", "Argument[1].Element", "Argument[-1]", "taint", "manual"] - - ["com.google.common.base", "Joiner", False, "appendTo", "(StringBuilder,Iterator)", "", "Argument[1].Element", "Argument[-1]", "taint", "manual"] + - ["com.google.common.base", "Joiner", False, "appendTo", "(Appendable,Object[])", "", "Argument[1].ArrayElement", "Argument[this]", "taint", "manual"] + - ["com.google.common.base", "Joiner", False, "appendTo", "(StringBuilder,Iterable)", "", "Argument[1].Element", "Argument[this]", "taint", "manual"] + - ["com.google.common.base", "Joiner", False, "appendTo", "(StringBuilder,Iterator)", "", "Argument[1].Element", "Argument[this]", "taint", "manual"] - ["com.google.common.base", "Joiner", False, "appendTo", "(StringBuilder,Object,Object,Object[])", "", "Argument[1..2]", "Argument[0]", "taint", "manual"] - ["com.google.common.base", "Joiner", False, "appendTo", "(StringBuilder,Object,Object,Object[])", "", "Argument[3].ArrayElement", "Argument[0]", "taint", "manual"] - - ["com.google.common.base", "Joiner", False, "appendTo", "(StringBuilder,Object[])", "", "Argument[1].ArrayElement", "Argument[-1]", "taint", "manual"] + - ["com.google.common.base", "Joiner", False, "appendTo", "(StringBuilder,Object[])", "", "Argument[1].ArrayElement", "Argument[this]", "taint", "manual"] - ["com.google.common.base", "Joiner", False, "join", "", "", "Argument[-1..2]", "ReturnValue", "taint", "manual"] - ["com.google.common.base", "Joiner", False, "on", "(String)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["com.google.common.base", "Joiner", False, "skipNulls", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["com.google.common.base", "Joiner", False, "useForNull", "(String)", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["com.google.common.base", "Joiner", False, "skipNulls", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["com.google.common.base", "Joiner", False, "useForNull", "(String)", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["com.google.common.base", "Joiner", False, "useForNull", "(String)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["com.google.common.base", "Joiner", False, "withKeyValueSeparator", "(String)", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["com.google.common.base", "Joiner", False, "withKeyValueSeparator", "(String)", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["com.google.common.base", "Joiner", False, "withKeyValueSeparator", "(String)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["com.google.common.base", "Joiner", False, "withKeyValueSeparator", "(char)", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["com.google.common.base", "Joiner", False, "withKeyValueSeparator", "(char)", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["com.google.common.base", "Joiner$MapJoiner", False, "appendTo", "", "", "Argument[0]", "ReturnValue", "value", "manual"] - ["com.google.common.base", "Joiner$MapJoiner", False, "appendTo", "", "", "Argument[1]", "Argument[0]", "taint", "manual"] - - ["com.google.common.base", "Joiner$MapJoiner", False, "join", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["com.google.common.base", "Joiner$MapJoiner", False, "join", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["com.google.common.base", "Joiner$MapJoiner", False, "join", "(Iterable)", "", "Argument[0].Element.MapKey", "ReturnValue", "taint", "manual"] - ["com.google.common.base", "Joiner$MapJoiner", False, "join", "(Iterable)", "", "Argument[0].Element.MapValue", "ReturnValue", "taint", "manual"] - ["com.google.common.base", "Joiner$MapJoiner", False, "join", "(Iterator)", "", "Argument[0].Element.MapKey", "ReturnValue", "taint", "manual"] - ["com.google.common.base", "Joiner$MapJoiner", False, "join", "(Iterator)", "", "Argument[0].Element.MapValue", "ReturnValue", "taint", "manual"] - ["com.google.common.base", "Joiner$MapJoiner", False, "join", "(Map)", "", "Argument[0].MapKey", "ReturnValue", "taint", "manual"] - ["com.google.common.base", "Joiner$MapJoiner", False, "join", "(Map)", "", "Argument[0].MapValue", "ReturnValue", "taint", "manual"] - - ["com.google.common.base", "Joiner$MapJoiner", False, "useForNull", "(String)", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["com.google.common.base", "Joiner$MapJoiner", False, "useForNull", "(String)", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["com.google.common.base", "Joiner$MapJoiner", False, "useForNull", "(String)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["com.google.common.base", "MoreObjects", False, "firstNonNull", "(Object,Object)", "", "Argument[0..1]", "ReturnValue", "value", "manual"] - ["com.google.common.base", "MoreObjects", False, "toStringHelper", "(String)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["com.google.common.base", "MoreObjects$ToStringHelper", False, "add", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["com.google.common.base", "MoreObjects$ToStringHelper", False, "add", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] + - ["com.google.common.base", "MoreObjects$ToStringHelper", False, "add", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["com.google.common.base", "MoreObjects$ToStringHelper", False, "add", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] - ["com.google.common.base", "MoreObjects$ToStringHelper", False, "add", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["com.google.common.base", "MoreObjects$ToStringHelper", False, "add", "(String,Object)", "", "Argument[1]", "Argument[-1]", "taint", "manual"] + - ["com.google.common.base", "MoreObjects$ToStringHelper", False, "add", "(String,Object)", "", "Argument[1]", "Argument[this]", "taint", "manual"] - ["com.google.common.base", "MoreObjects$ToStringHelper", False, "add", "(String,Object)", "", "Argument[1]", "ReturnValue", "taint", "manual"] - - ["com.google.common.base", "MoreObjects$ToStringHelper", False, "addValue", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["com.google.common.base", "MoreObjects$ToStringHelper", False, "addValue", "(Object)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] + - ["com.google.common.base", "MoreObjects$ToStringHelper", False, "addValue", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["com.google.common.base", "MoreObjects$ToStringHelper", False, "addValue", "(Object)", "", "Argument[0]", "Argument[this]", "taint", "manual"] - ["com.google.common.base", "MoreObjects$ToStringHelper", False, "addValue", "(Object)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["com.google.common.base", "MoreObjects$ToStringHelper", False, "omitNullValues", "()", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["com.google.common.base", "MoreObjects$ToStringHelper", False, "toString", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["com.google.common.base", "Optional", True, "asSet", "()", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] + - ["com.google.common.base", "MoreObjects$ToStringHelper", False, "omitNullValues", "()", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["com.google.common.base", "MoreObjects$ToStringHelper", False, "toString", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["com.google.common.base", "Optional", True, "asSet", "()", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] - ["com.google.common.base", "Optional", True, "fromJavaUtil", "(Optional)", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["com.google.common.base", "Optional", True, "fromNullable", "(Object)", "", "Argument[0]", "ReturnValue.Element", "value", "manual"] - - ["com.google.common.base", "Optional", True, "get", "()", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] + - ["com.google.common.base", "Optional", True, "get", "()", "", "Argument[this].Element", "ReturnValue", "value", "manual"] - ["com.google.common.base", "Optional", True, "of", "(Object)", "", "Argument[0]", "ReturnValue.Element", "value", "manual"] - - ["com.google.common.base", "Optional", True, "or", "(Object)", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] + - ["com.google.common.base", "Optional", True, "or", "(Object)", "", "Argument[this].Element", "ReturnValue", "value", "manual"] - ["com.google.common.base", "Optional", True, "or", "(Object)", "", "Argument[0]", "ReturnValue", "value", "manual"] - ["com.google.common.base", "Optional", True, "or", "(Optional)", "", "Argument[-1..0].Element", "ReturnValue.Element", "value", "manual"] - - ["com.google.common.base", "Optional", True, "or", "(Supplier)", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] + - ["com.google.common.base", "Optional", True, "or", "(Supplier)", "", "Argument[this].Element", "ReturnValue", "value", "manual"] - ["com.google.common.base", "Optional", True, "or", "(Supplier)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["com.google.common.base", "Optional", True, "orNull", "()", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] + - ["com.google.common.base", "Optional", True, "orNull", "()", "", "Argument[this].Element", "ReturnValue", "value", "manual"] - ["com.google.common.base", "Optional", True, "presentInstances", "(Iterable)", "", "Argument[0].Element.Element", "ReturnValue.Element", "value", "manual"] - - ["com.google.common.base", "Optional", True, "toJavaUtil", "()", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] + - ["com.google.common.base", "Optional", True, "toJavaUtil", "()", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] - ["com.google.common.base", "Optional", True, "toJavaUtil", "(Optional)", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["com.google.common.base", "Preconditions", False, "checkNotNull", "", "", "Argument[0]", "ReturnValue", "value", "manual"] - ["com.google.common.base", "Splitter", False, "split", "(CharSequence)", "", "Argument[0]", "ReturnValue", "taint", "manual"] @@ -90,7 +90,7 @@ extensions: - ["com.google.common.base", "Strings", False, "padEnd", "(String,int,char)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["com.google.common.base", "Strings", False, "padStart", "(String,int,char)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["com.google.common.base", "Strings", False, "repeat", "(String,int)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["com.google.common.base", "Supplier", True, "get", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["com.google.common.base", "Supplier", True, "get", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["com.google.common.base", "Suppliers", False, "memoize", "(Supplier)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["com.google.common.base", "Suppliers", False, "memoizeWithExpiration", "(Supplier,long,TimeUnit)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["com.google.common.base", "Suppliers", False, "ofInstance", "(Object)", "", "Argument[0]", "ReturnValue", "taint", "manual"] diff --git a/java/ql/lib/ext/com.google.common.cache.model.yml b/java/ql/lib/ext/com.google.common.cache.model.yml index f5c88464208..11c229dee6b 100644 --- a/java/ql/lib/ext/com.google.common.cache.model.yml +++ b/java/ql/lib/ext/com.google.common.cache.model.yml @@ -3,22 +3,22 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["com.google.common.cache", "Cache", True, "asMap", "()", "", "Argument[-1].MapKey", "ReturnValue.MapKey", "value", "manual"] - - ["com.google.common.cache", "Cache", True, "asMap", "()", "", "Argument[-1].MapValue", "ReturnValue.MapValue", "value", "manual"] + - ["com.google.common.cache", "Cache", True, "asMap", "()", "", "Argument[this].MapKey", "ReturnValue.MapKey", "value", "manual"] + - ["com.google.common.cache", "Cache", True, "asMap", "()", "", "Argument[this].MapValue", "ReturnValue.MapValue", "value", "manual"] # Lambda flow from Argument[1] not implemented - - ["com.google.common.cache", "Cache", True, "get", "(Object,Callable)", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] + - ["com.google.common.cache", "Cache", True, "get", "(Object,Callable)", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] # The true flow to MapKey of ReturnValue for getAllPresent is the intersection of the these inputs, but intersections cannot be modeled fully accurately. - - ["com.google.common.cache", "Cache", True, "getAllPresent", "(Iterable)", "", "Argument[-1].MapKey", "ReturnValue.MapKey", "value", "manual"] - - ["com.google.common.cache", "Cache", True, "getAllPresent", "(Iterable)", "", "Argument[-1].MapValue", "ReturnValue.MapValue", "value", "manual"] + - ["com.google.common.cache", "Cache", True, "getAllPresent", "(Iterable)", "", "Argument[this].MapKey", "ReturnValue.MapKey", "value", "manual"] + - ["com.google.common.cache", "Cache", True, "getAllPresent", "(Iterable)", "", "Argument[this].MapValue", "ReturnValue.MapValue", "value", "manual"] - ["com.google.common.cache", "Cache", True, "getAllPresent", "(Iterable)", "", "Argument[0].Element", "ReturnValue.MapKey", "value", "manual"] - - ["com.google.common.cache", "Cache", True, "getIfPresent", "(Object)", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] - - ["com.google.common.cache", "Cache", True, "put", "(Object,Object)", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["com.google.common.cache", "Cache", True, "put", "(Object,Object)", "", "Argument[1]", "Argument[-1].MapValue", "value", "manual"] - - ["com.google.common.cache", "Cache", True, "putAll", "(Map)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["com.google.common.cache", "Cache", True, "putAll", "(Map)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["com.google.common.cache", "LoadingCache", True, "apply", "(Object)", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] - - ["com.google.common.cache", "LoadingCache", True, "get", "(Object)", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] - - ["com.google.common.cache", "LoadingCache", True, "getAll", "(Iterable)", "", "Argument[-1].MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["com.google.common.cache", "LoadingCache", True, "getAll", "(Iterable)", "", "Argument[0].Element", "Argument[-1].MapKey", "value", "manual"] + - ["com.google.common.cache", "Cache", True, "getIfPresent", "(Object)", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["com.google.common.cache", "Cache", True, "put", "(Object,Object)", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["com.google.common.cache", "Cache", True, "put", "(Object,Object)", "", "Argument[1]", "Argument[this].MapValue", "value", "manual"] + - ["com.google.common.cache", "Cache", True, "putAll", "(Map)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["com.google.common.cache", "Cache", True, "putAll", "(Map)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["com.google.common.cache", "LoadingCache", True, "apply", "(Object)", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["com.google.common.cache", "LoadingCache", True, "get", "(Object)", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["com.google.common.cache", "LoadingCache", True, "getAll", "(Iterable)", "", "Argument[this].MapValue", "ReturnValue.MapValue", "value", "manual"] + - ["com.google.common.cache", "LoadingCache", True, "getAll", "(Iterable)", "", "Argument[0].Element", "Argument[this].MapKey", "value", "manual"] - ["com.google.common.cache", "LoadingCache", True, "getAll", "(Iterable)", "", "Argument[0].Element", "ReturnValue.MapKey", "value", "manual"] - - ["com.google.common.cache", "LoadingCache", True, "getUnchecked", "(Object)", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] + - ["com.google.common.cache", "LoadingCache", True, "getUnchecked", "(Object)", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] diff --git a/java/ql/lib/ext/com.google.common.collect.model.yml b/java/ql/lib/ext/com.google.common.collect.model.yml index b6c067fe5e0..4f69139b04e 100644 --- a/java/ql/lib/ext/com.google.common.collect.model.yml +++ b/java/ql/lib/ext/com.google.common.collect.model.yml @@ -12,13 +12,13 @@ extensions: - ["com.google.common.collect", "ArrayTable", True, "create", "(Table)", "", "Argument[0].MapValue", "ReturnValue.MapValue", "value", "manual"] - ["com.google.common.collect", "ArrayTable", True, "create", "(Table)", "", "Argument[0].SyntheticField[com.google.common.collect.Table.columnKey]", "ReturnValue.SyntheticField[com.google.common.collect.Table.columnKey]", "value", "manual"] - ["com.google.common.collect", "ArrayTable", True, "create", "(Table)", "", "Argument[0].SyntheticField[com.google.common.collect.Table.rowKey]", "ReturnValue.SyntheticField[com.google.common.collect.Table.rowKey]", "value", "manual"] - - ["com.google.common.collect", "BiMap", True, "forcePut", "(Object,Object)", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["com.google.common.collect", "BiMap", True, "forcePut", "(Object,Object)", "", "Argument[1]", "Argument[-1].MapValue", "value", "manual"] - - ["com.google.common.collect", "BiMap", True, "inverse", "()", "", "Argument[-1].MapKey", "ReturnValue.MapValue", "value", "manual"] - - ["com.google.common.collect", "BiMap", True, "inverse", "()", "", "Argument[-1].MapValue", "ReturnValue.MapKey", "value", "manual"] - - ["com.google.common.collect", "ClassToInstanceMap", True, "getInstance", "(Class)", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] - - ["com.google.common.collect", "ClassToInstanceMap", True, "putInstance", "(Class,Object)", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] - - ["com.google.common.collect", "ClassToInstanceMap", True, "putInstance", "(Class,Object)", "", "Argument[1]", "Argument[-1].MapValue", "value", "manual"] + - ["com.google.common.collect", "BiMap", True, "forcePut", "(Object,Object)", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["com.google.common.collect", "BiMap", True, "forcePut", "(Object,Object)", "", "Argument[1]", "Argument[this].MapValue", "value", "manual"] + - ["com.google.common.collect", "BiMap", True, "inverse", "()", "", "Argument[this].MapKey", "ReturnValue.MapValue", "value", "manual"] + - ["com.google.common.collect", "BiMap", True, "inverse", "()", "", "Argument[this].MapValue", "ReturnValue.MapKey", "value", "manual"] + - ["com.google.common.collect", "ClassToInstanceMap", True, "getInstance", "(Class)", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["com.google.common.collect", "ClassToInstanceMap", True, "putInstance", "(Class,Object)", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["com.google.common.collect", "ClassToInstanceMap", True, "putInstance", "(Class,Object)", "", "Argument[1]", "Argument[this].MapValue", "value", "manual"] - ["com.google.common.collect", "Collections2", False, "filter", "(Collection,Predicate)", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["com.google.common.collect", "Collections2", False, "orderedPermutations", "(Iterable)", "", "Argument[0].Element", "ReturnValue.Element.Element", "value", "manual"] - ["com.google.common.collect", "Collections2", False, "orderedPermutations", "(Iterable,Comparator)", "", "Argument[0].Element", "ReturnValue.Element.Element", "value", "manual"] @@ -46,21 +46,21 @@ extensions: - ["com.google.common.collect", "ImmutableClassToInstanceMap", True, "copyOf", "(Map)", "", "Argument[0].MapValue", "ReturnValue.MapValue", "value", "manual"] - ["com.google.common.collect", "ImmutableClassToInstanceMap", True, "of", "(Class,Object)", "", "Argument[0]", "ReturnValue.MapKey", "value", "manual"] - ["com.google.common.collect", "ImmutableClassToInstanceMap", True, "of", "(Class,Object)", "", "Argument[1]", "ReturnValue.MapValue", "value", "manual"] - - ["com.google.common.collect", "ImmutableCollection", True, "asList", "()", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["com.google.common.collect", "ImmutableCollection$Builder", True, "add", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["com.google.common.collect", "ImmutableCollection$Builder", True, "add", "(Object)", "", "Argument[0]", "Argument[-1].Element", "value", "manual"] - - ["com.google.common.collect", "ImmutableCollection$Builder", True, "add", "(Object[])", "", "Argument[0].ArrayElement", "Argument[-1].Element", "value", "manual"] - - ["com.google.common.collect", "ImmutableCollection$Builder", True, "addAll", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["com.google.common.collect", "ImmutableCollection$Builder", True, "addAll", "(Iterable)", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["com.google.common.collect", "ImmutableCollection$Builder", True, "addAll", "(Iterator)", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["com.google.common.collect", "ImmutableCollection$Builder", True, "build", "()", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] + - ["com.google.common.collect", "ImmutableCollection", True, "asList", "()", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["com.google.common.collect", "ImmutableCollection$Builder", True, "add", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["com.google.common.collect", "ImmutableCollection$Builder", True, "add", "(Object)", "", "Argument[0]", "Argument[this].Element", "value", "manual"] + - ["com.google.common.collect", "ImmutableCollection$Builder", True, "add", "(Object[])", "", "Argument[0].ArrayElement", "Argument[this].Element", "value", "manual"] + - ["com.google.common.collect", "ImmutableCollection$Builder", True, "addAll", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["com.google.common.collect", "ImmutableCollection$Builder", True, "addAll", "(Iterable)", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["com.google.common.collect", "ImmutableCollection$Builder", True, "addAll", "(Iterator)", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["com.google.common.collect", "ImmutableCollection$Builder", True, "build", "()", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] - ["com.google.common.collect", "ImmutableList", True, "copyOf", "(Collection)", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["com.google.common.collect", "ImmutableList", True, "copyOf", "(Iterable)", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["com.google.common.collect", "ImmutableList", True, "copyOf", "(Iterator)", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["com.google.common.collect", "ImmutableList", True, "copyOf", "(Object[])", "", "Argument[0].ArrayElement", "ReturnValue.Element", "value", "manual"] - ["com.google.common.collect", "ImmutableList", True, "of", "", "", "Argument[0..11]", "ReturnValue.Element", "value", "manual"] - ["com.google.common.collect", "ImmutableList", True, "of", "", "", "Argument[12].ArrayElement", "ReturnValue.Element", "value", "manual"] - - ["com.google.common.collect", "ImmutableList", True, "reverse", "()", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] + - ["com.google.common.collect", "ImmutableList", True, "reverse", "()", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] - ["com.google.common.collect", "ImmutableList", True, "sortedCopyOf", "(Comparator,Iterable)", "", "Argument[1].Element", "ReturnValue.Element", "value", "manual"] - ["com.google.common.collect", "ImmutableList", True, "sortedCopyOf", "(Iterable)", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["com.google.common.collect", "ImmutableListMultimap", True, "of", "", "", "Argument[0]", "ReturnValue.MapKey", "value", "manual"] @@ -87,25 +87,25 @@ extensions: - ["com.google.common.collect", "ImmutableMap", True, "of", "", "", "Argument[7]", "ReturnValue.MapValue", "value", "manual"] - ["com.google.common.collect", "ImmutableMap", True, "of", "", "", "Argument[8]", "ReturnValue.MapKey", "value", "manual"] - ["com.google.common.collect", "ImmutableMap", True, "of", "", "", "Argument[9]", "ReturnValue.MapValue", "value", "manual"] - - ["com.google.common.collect", "ImmutableMap$Builder", True, "build", "()", "", "Argument[-1].MapKey", "ReturnValue.MapKey", "value", "manual"] - - ["com.google.common.collect", "ImmutableMap$Builder", True, "build", "()", "", "Argument[-1].MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["com.google.common.collect", "ImmutableMap$Builder", True, "orderEntriesByValue", "(Comparator)", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["com.google.common.collect", "ImmutableMap$Builder", True, "put", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["com.google.common.collect", "ImmutableMap$Builder", True, "put", "(Entry)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["com.google.common.collect", "ImmutableMap$Builder", True, "put", "(Entry)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["com.google.common.collect", "ImmutableMap$Builder", True, "put", "(Object,Object)", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["com.google.common.collect", "ImmutableMap$Builder", True, "put", "(Object,Object)", "", "Argument[1]", "Argument[-1].MapValue", "value", "manual"] - - ["com.google.common.collect", "ImmutableMap$Builder", True, "putAll", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["com.google.common.collect", "ImmutableMap$Builder", True, "putAll", "(Iterable)", "", "Argument[0].Element.MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["com.google.common.collect", "ImmutableMap$Builder", True, "putAll", "(Iterable)", "", "Argument[0].Element.MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["com.google.common.collect", "ImmutableMap$Builder", True, "putAll", "(Map)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["com.google.common.collect", "ImmutableMap$Builder", True, "putAll", "(Map)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] + - ["com.google.common.collect", "ImmutableMap$Builder", True, "build", "()", "", "Argument[this].MapKey", "ReturnValue.MapKey", "value", "manual"] + - ["com.google.common.collect", "ImmutableMap$Builder", True, "build", "()", "", "Argument[this].MapValue", "ReturnValue.MapValue", "value", "manual"] + - ["com.google.common.collect", "ImmutableMap$Builder", True, "orderEntriesByValue", "(Comparator)", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["com.google.common.collect", "ImmutableMap$Builder", True, "put", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["com.google.common.collect", "ImmutableMap$Builder", True, "put", "(Entry)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["com.google.common.collect", "ImmutableMap$Builder", True, "put", "(Entry)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["com.google.common.collect", "ImmutableMap$Builder", True, "put", "(Object,Object)", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["com.google.common.collect", "ImmutableMap$Builder", True, "put", "(Object,Object)", "", "Argument[1]", "Argument[this].MapValue", "value", "manual"] + - ["com.google.common.collect", "ImmutableMap$Builder", True, "putAll", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["com.google.common.collect", "ImmutableMap$Builder", True, "putAll", "(Iterable)", "", "Argument[0].Element.MapKey", "Argument[this].MapKey", "value", "manual"] + - ["com.google.common.collect", "ImmutableMap$Builder", True, "putAll", "(Iterable)", "", "Argument[0].Element.MapValue", "Argument[this].MapValue", "value", "manual"] + - ["com.google.common.collect", "ImmutableMap$Builder", True, "putAll", "(Map)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["com.google.common.collect", "ImmutableMap$Builder", True, "putAll", "(Map)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] - ["com.google.common.collect", "ImmutableMultimap", True, "copyOf", "(Iterable)", "", "Argument[0].Element.MapKey", "ReturnValue.MapKey", "value", "manual"] - ["com.google.common.collect", "ImmutableMultimap", True, "copyOf", "(Iterable)", "", "Argument[0].Element.MapValue", "ReturnValue.MapValue", "value", "manual"] - ["com.google.common.collect", "ImmutableMultimap", True, "copyOf", "(Multimap)", "", "Argument[0].MapKey", "ReturnValue.MapKey", "value", "manual"] - ["com.google.common.collect", "ImmutableMultimap", True, "copyOf", "(Multimap)", "", "Argument[0].MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["com.google.common.collect", "ImmutableMultimap", True, "inverse", "()", "", "Argument[-1].MapKey", "ReturnValue.MapValue", "value", "manual"] - - ["com.google.common.collect", "ImmutableMultimap", True, "inverse", "()", "", "Argument[-1].MapValue", "ReturnValue.MapKey", "value", "manual"] + - ["com.google.common.collect", "ImmutableMultimap", True, "inverse", "()", "", "Argument[this].MapKey", "ReturnValue.MapValue", "value", "manual"] + - ["com.google.common.collect", "ImmutableMultimap", True, "inverse", "()", "", "Argument[this].MapValue", "ReturnValue.MapKey", "value", "manual"] - ["com.google.common.collect", "ImmutableMultimap", True, "of", "", "", "Argument[0]", "ReturnValue.MapKey", "value", "manual"] - ["com.google.common.collect", "ImmutableMultimap", True, "of", "", "", "Argument[1]", "ReturnValue.MapValue", "value", "manual"] - ["com.google.common.collect", "ImmutableMultimap", True, "of", "", "", "Argument[2]", "ReturnValue.MapKey", "value", "manual"] @@ -116,32 +116,32 @@ extensions: - ["com.google.common.collect", "ImmutableMultimap", True, "of", "", "", "Argument[7]", "ReturnValue.MapValue", "value", "manual"] - ["com.google.common.collect", "ImmutableMultimap", True, "of", "", "", "Argument[8]", "ReturnValue.MapKey", "value", "manual"] - ["com.google.common.collect", "ImmutableMultimap", True, "of", "", "", "Argument[9]", "ReturnValue.MapValue", "value", "manual"] - - ["com.google.common.collect", "ImmutableMultimap$Builder", True, "build", "()", "", "Argument[-1].MapKey", "ReturnValue.MapKey", "value", "manual"] - - ["com.google.common.collect", "ImmutableMultimap$Builder", True, "build", "()", "", "Argument[-1].MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["com.google.common.collect", "ImmutableMultimap$Builder", True, "orderKeysBy", "(Comparator)", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["com.google.common.collect", "ImmutableMultimap$Builder", True, "orderValuesBy", "(Comparator)", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["com.google.common.collect", "ImmutableMultimap$Builder", True, "put", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["com.google.common.collect", "ImmutableMultimap$Builder", True, "put", "(Entry)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["com.google.common.collect", "ImmutableMultimap$Builder", True, "put", "(Entry)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["com.google.common.collect", "ImmutableMultimap$Builder", True, "put", "(Object,Object)", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["com.google.common.collect", "ImmutableMultimap$Builder", True, "put", "(Object,Object)", "", "Argument[1]", "Argument[-1].MapValue", "value", "manual"] - - ["com.google.common.collect", "ImmutableMultimap$Builder", True, "putAll", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["com.google.common.collect", "ImmutableMultimap$Builder", True, "putAll", "(Iterable)", "", "Argument[0].Element.MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["com.google.common.collect", "ImmutableMultimap$Builder", True, "putAll", "(Iterable)", "", "Argument[0].Element.MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["com.google.common.collect", "ImmutableMultimap$Builder", True, "putAll", "(Multimap)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["com.google.common.collect", "ImmutableMultimap$Builder", True, "putAll", "(Multimap)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["com.google.common.collect", "ImmutableMultimap$Builder", True, "putAll", "(Object,Iterable)", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["com.google.common.collect", "ImmutableMultimap$Builder", True, "putAll", "(Object,Iterable)", "", "Argument[1].Element", "Argument[-1].MapValue", "value", "manual"] - - ["com.google.common.collect", "ImmutableMultimap$Builder", True, "putAll", "(Object,Object[])", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["com.google.common.collect", "ImmutableMultimap$Builder", True, "putAll", "(Object,Object[])", "", "Argument[1].ArrayElement", "Argument[-1].MapValue", "value", "manual"] + - ["com.google.common.collect", "ImmutableMultimap$Builder", True, "build", "()", "", "Argument[this].MapKey", "ReturnValue.MapKey", "value", "manual"] + - ["com.google.common.collect", "ImmutableMultimap$Builder", True, "build", "()", "", "Argument[this].MapValue", "ReturnValue.MapValue", "value", "manual"] + - ["com.google.common.collect", "ImmutableMultimap$Builder", True, "orderKeysBy", "(Comparator)", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["com.google.common.collect", "ImmutableMultimap$Builder", True, "orderValuesBy", "(Comparator)", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["com.google.common.collect", "ImmutableMultimap$Builder", True, "put", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["com.google.common.collect", "ImmutableMultimap$Builder", True, "put", "(Entry)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["com.google.common.collect", "ImmutableMultimap$Builder", True, "put", "(Entry)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["com.google.common.collect", "ImmutableMultimap$Builder", True, "put", "(Object,Object)", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["com.google.common.collect", "ImmutableMultimap$Builder", True, "put", "(Object,Object)", "", "Argument[1]", "Argument[this].MapValue", "value", "manual"] + - ["com.google.common.collect", "ImmutableMultimap$Builder", True, "putAll", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["com.google.common.collect", "ImmutableMultimap$Builder", True, "putAll", "(Iterable)", "", "Argument[0].Element.MapKey", "Argument[this].MapKey", "value", "manual"] + - ["com.google.common.collect", "ImmutableMultimap$Builder", True, "putAll", "(Iterable)", "", "Argument[0].Element.MapValue", "Argument[this].MapValue", "value", "manual"] + - ["com.google.common.collect", "ImmutableMultimap$Builder", True, "putAll", "(Multimap)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["com.google.common.collect", "ImmutableMultimap$Builder", True, "putAll", "(Multimap)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["com.google.common.collect", "ImmutableMultimap$Builder", True, "putAll", "(Object,Iterable)", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["com.google.common.collect", "ImmutableMultimap$Builder", True, "putAll", "(Object,Iterable)", "", "Argument[1].Element", "Argument[this].MapValue", "value", "manual"] + - ["com.google.common.collect", "ImmutableMultimap$Builder", True, "putAll", "(Object,Object[])", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["com.google.common.collect", "ImmutableMultimap$Builder", True, "putAll", "(Object,Object[])", "", "Argument[1].ArrayElement", "Argument[this].MapValue", "value", "manual"] - ["com.google.common.collect", "ImmutableMultiset", True, "copyOf", "(Iterable)", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["com.google.common.collect", "ImmutableMultiset", True, "copyOf", "(Iterator)", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["com.google.common.collect", "ImmutableMultiset", True, "copyOf", "(Object[])", "", "Argument[0].ArrayElement", "ReturnValue.Element", "value", "manual"] - ["com.google.common.collect", "ImmutableMultiset", True, "of", "", "", "Argument[0..5]", "ReturnValue.Element", "value", "manual"] - ["com.google.common.collect", "ImmutableMultiset", True, "of", "", "", "Argument[6].ArrayElement", "ReturnValue.Element", "value", "manual"] - - ["com.google.common.collect", "ImmutableMultiset$Builder", True, "addCopies", "(Object,int)", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["com.google.common.collect", "ImmutableMultiset$Builder", True, "addCopies", "(Object,int)", "", "Argument[0]", "Argument[-1].Element", "value", "manual"] - - ["com.google.common.collect", "ImmutableMultiset$Builder", True, "setCount", "(Object,int)", "", "Argument[0]", "Argument[-1].Element", "value", "manual"] + - ["com.google.common.collect", "ImmutableMultiset$Builder", True, "addCopies", "(Object,int)", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["com.google.common.collect", "ImmutableMultiset$Builder", True, "addCopies", "(Object,int)", "", "Argument[0]", "Argument[this].Element", "value", "manual"] + - ["com.google.common.collect", "ImmutableMultiset$Builder", True, "setCount", "(Object,int)", "", "Argument[0]", "Argument[this].Element", "value", "manual"] - ["com.google.common.collect", "ImmutableSet", True, "copyOf", "(Collection)", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["com.google.common.collect", "ImmutableSet", True, "copyOf", "(Iterable)", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["com.google.common.collect", "ImmutableSet", True, "copyOf", "(Iterator)", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] @@ -202,23 +202,23 @@ extensions: - ["com.google.common.collect", "ImmutableTable", True, "of", "(Object,Object,Object)", "", "Argument[0]", "ReturnValue.SyntheticField[com.google.common.collect.Table.rowKey]", "value", "manual"] - ["com.google.common.collect", "ImmutableTable", True, "of", "(Object,Object,Object)", "", "Argument[1]", "ReturnValue.SyntheticField[com.google.common.collect.Table.columnKey]", "value", "manual"] - ["com.google.common.collect", "ImmutableTable", True, "of", "(Object,Object,Object)", "", "Argument[2]", "ReturnValue.MapValue", "value", "manual"] - - ["com.google.common.collect", "ImmutableTable$Builder", True, "build", "()", "", "Argument[-1].MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["com.google.common.collect", "ImmutableTable$Builder", True, "build", "()", "", "Argument[-1].SyntheticField[com.google.common.collect.Table.columnKey]", "ReturnValue.SyntheticField[com.google.common.collect.Table.columnKey]", "value", "manual"] - - ["com.google.common.collect", "ImmutableTable$Builder", True, "build", "()", "", "Argument[-1].SyntheticField[com.google.common.collect.Table.rowKey]", "ReturnValue.SyntheticField[com.google.common.collect.Table.rowKey]", "value", "manual"] - - ["com.google.common.collect", "ImmutableTable$Builder", True, "orderColumnsBy", "(Comparator)", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["com.google.common.collect", "ImmutableTable$Builder", True, "orderRowsBy", "(Comparator)", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["com.google.common.collect", "ImmutableTable$Builder", True, "put", "(Cell)", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["com.google.common.collect", "ImmutableTable$Builder", True, "put", "(Cell)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["com.google.common.collect", "ImmutableTable$Builder", True, "put", "(Cell)", "", "Argument[0].SyntheticField[com.google.common.collect.Table.columnKey]", "Argument[-1].SyntheticField[com.google.common.collect.Table.columnKey]", "value", "manual"] - - ["com.google.common.collect", "ImmutableTable$Builder", True, "put", "(Cell)", "", "Argument[0].SyntheticField[com.google.common.collect.Table.rowKey]", "Argument[-1].SyntheticField[com.google.common.collect.Table.rowKey]", "value", "manual"] - - ["com.google.common.collect", "ImmutableTable$Builder", True, "put", "(Object,Object,Object)", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["com.google.common.collect", "ImmutableTable$Builder", True, "put", "(Object,Object,Object)", "", "Argument[0]", "Argument[-1].SyntheticField[com.google.common.collect.Table.rowKey]", "value", "manual"] - - ["com.google.common.collect", "ImmutableTable$Builder", True, "put", "(Object,Object,Object)", "", "Argument[1]", "Argument[-1].SyntheticField[com.google.common.collect.Table.columnKey]", "value", "manual"] - - ["com.google.common.collect", "ImmutableTable$Builder", True, "put", "(Object,Object,Object)", "", "Argument[2]", "Argument[-1].MapValue", "value", "manual"] - - ["com.google.common.collect", "ImmutableTable$Builder", True, "putAll", "(Table)", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["com.google.common.collect", "ImmutableTable$Builder", True, "putAll", "(Table)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["com.google.common.collect", "ImmutableTable$Builder", True, "putAll", "(Table)", "", "Argument[0].SyntheticField[com.google.common.collect.Table.columnKey]", "Argument[-1].SyntheticField[com.google.common.collect.Table.columnKey]", "value", "manual"] - - ["com.google.common.collect", "ImmutableTable$Builder", True, "putAll", "(Table)", "", "Argument[0].SyntheticField[com.google.common.collect.Table.rowKey]", "Argument[-1].SyntheticField[com.google.common.collect.Table.rowKey]", "value", "manual"] + - ["com.google.common.collect", "ImmutableTable$Builder", True, "build", "()", "", "Argument[this].MapValue", "ReturnValue.MapValue", "value", "manual"] + - ["com.google.common.collect", "ImmutableTable$Builder", True, "build", "()", "", "Argument[this].SyntheticField[com.google.common.collect.Table.columnKey]", "ReturnValue.SyntheticField[com.google.common.collect.Table.columnKey]", "value", "manual"] + - ["com.google.common.collect", "ImmutableTable$Builder", True, "build", "()", "", "Argument[this].SyntheticField[com.google.common.collect.Table.rowKey]", "ReturnValue.SyntheticField[com.google.common.collect.Table.rowKey]", "value", "manual"] + - ["com.google.common.collect", "ImmutableTable$Builder", True, "orderColumnsBy", "(Comparator)", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["com.google.common.collect", "ImmutableTable$Builder", True, "orderRowsBy", "(Comparator)", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["com.google.common.collect", "ImmutableTable$Builder", True, "put", "(Cell)", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["com.google.common.collect", "ImmutableTable$Builder", True, "put", "(Cell)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["com.google.common.collect", "ImmutableTable$Builder", True, "put", "(Cell)", "", "Argument[0].SyntheticField[com.google.common.collect.Table.columnKey]", "Argument[this].SyntheticField[com.google.common.collect.Table.columnKey]", "value", "manual"] + - ["com.google.common.collect", "ImmutableTable$Builder", True, "put", "(Cell)", "", "Argument[0].SyntheticField[com.google.common.collect.Table.rowKey]", "Argument[this].SyntheticField[com.google.common.collect.Table.rowKey]", "value", "manual"] + - ["com.google.common.collect", "ImmutableTable$Builder", True, "put", "(Object,Object,Object)", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["com.google.common.collect", "ImmutableTable$Builder", True, "put", "(Object,Object,Object)", "", "Argument[0]", "Argument[this].SyntheticField[com.google.common.collect.Table.rowKey]", "value", "manual"] + - ["com.google.common.collect", "ImmutableTable$Builder", True, "put", "(Object,Object,Object)", "", "Argument[1]", "Argument[this].SyntheticField[com.google.common.collect.Table.columnKey]", "value", "manual"] + - ["com.google.common.collect", "ImmutableTable$Builder", True, "put", "(Object,Object,Object)", "", "Argument[2]", "Argument[this].MapValue", "value", "manual"] + - ["com.google.common.collect", "ImmutableTable$Builder", True, "putAll", "(Table)", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["com.google.common.collect", "ImmutableTable$Builder", True, "putAll", "(Table)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["com.google.common.collect", "ImmutableTable$Builder", True, "putAll", "(Table)", "", "Argument[0].SyntheticField[com.google.common.collect.Table.columnKey]", "Argument[this].SyntheticField[com.google.common.collect.Table.columnKey]", "value", "manual"] + - ["com.google.common.collect", "ImmutableTable$Builder", True, "putAll", "(Table)", "", "Argument[0].SyntheticField[com.google.common.collect.Table.rowKey]", "Argument[this].SyntheticField[com.google.common.collect.Table.rowKey]", "value", "manual"] - ["com.google.common.collect", "Iterables", False, "addAll", "(Collection,Iterable)", "", "Argument[1].Element", "Argument[0].Element", "value", "manual"] - ["com.google.common.collect", "Iterables", False, "concat", "(Iterable)", "", "Argument[0].Element.Element", "ReturnValue.Element", "value", "manual"] - ["com.google.common.collect", "Iterables", False, "concat", "(Iterable,Iterable)", "", "Argument[0..1].Element", "ReturnValue.Element", "value", "manual"] @@ -310,20 +310,20 @@ extensions: - ["com.google.common.collect", "Lists", False, "newLinkedList", "(Iterable)", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["com.google.common.collect", "Lists", False, "partition", "(List,int)", "", "Argument[0].Element", "ReturnValue.Element.Element", "value", "manual"] - ["com.google.common.collect", "Lists", False, "reverse", "(List)", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - - ["com.google.common.collect", "MapDifference", True, "entriesDiffering", "()", "", "Argument[-1].SyntheticField[com.google.common.collect.MapDifference.left].MapKey", "ReturnValue.MapKey", "value", "manual"] - - ["com.google.common.collect", "MapDifference", True, "entriesDiffering", "()", "", "Argument[-1].SyntheticField[com.google.common.collect.MapDifference.left].MapValue", "ReturnValue.MapValue.SyntheticField[com.google.common.collect.MapDifference.left]", "value", "manual"] - - ["com.google.common.collect", "MapDifference", True, "entriesDiffering", "()", "", "Argument[-1].SyntheticField[com.google.common.collect.MapDifference.right].MapKey", "ReturnValue.MapKey", "value", "manual"] - - ["com.google.common.collect", "MapDifference", True, "entriesDiffering", "()", "", "Argument[-1].SyntheticField[com.google.common.collect.MapDifference.right].MapValue", "ReturnValue.MapValue.SyntheticField[com.google.common.collect.MapDifference.right]", "value", "manual"] - - ["com.google.common.collect", "MapDifference", True, "entriesInCommon", "()", "", "Argument[-1].SyntheticField[com.google.common.collect.MapDifference.left].MapKey", "ReturnValue.MapKey", "value", "manual"] - - ["com.google.common.collect", "MapDifference", True, "entriesInCommon", "()", "", "Argument[-1].SyntheticField[com.google.common.collect.MapDifference.left].MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["com.google.common.collect", "MapDifference", True, "entriesInCommon", "()", "", "Argument[-1].SyntheticField[com.google.common.collect.MapDifference.right].MapKey", "ReturnValue.MapKey", "value", "manual"] - - ["com.google.common.collect", "MapDifference", True, "entriesInCommon", "()", "", "Argument[-1].SyntheticField[com.google.common.collect.MapDifference.right].MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["com.google.common.collect", "MapDifference", True, "entriesOnlyOnLeft", "()", "", "Argument[-1].SyntheticField[com.google.common.collect.MapDifference.left].MapKey", "ReturnValue.MapKey", "value", "manual"] - - ["com.google.common.collect", "MapDifference", True, "entriesOnlyOnLeft", "()", "", "Argument[-1].SyntheticField[com.google.common.collect.MapDifference.left].MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["com.google.common.collect", "MapDifference", True, "entriesOnlyOnRight", "()", "", "Argument[-1].SyntheticField[com.google.common.collect.MapDifference.right].MapKey", "ReturnValue.MapKey", "value", "manual"] - - ["com.google.common.collect", "MapDifference", True, "entriesOnlyOnRight", "()", "", "Argument[-1].SyntheticField[com.google.common.collect.MapDifference.right].MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["com.google.common.collect", "MapDifference$ValueDifference", True, "leftValue", "()", "", "Argument[-1].SyntheticField[com.google.common.collect.MapDifference.left]", "ReturnValue", "value", "manual"] - - ["com.google.common.collect", "MapDifference$ValueDifference", True, "rightValue", "()", "", "Argument[-1].SyntheticField[com.google.common.collect.MapDifference.right]", "ReturnValue", "value", "manual"] + - ["com.google.common.collect", "MapDifference", True, "entriesDiffering", "()", "", "Argument[this].SyntheticField[com.google.common.collect.MapDifference.left].MapKey", "ReturnValue.MapKey", "value", "manual"] + - ["com.google.common.collect", "MapDifference", True, "entriesDiffering", "()", "", "Argument[this].SyntheticField[com.google.common.collect.MapDifference.left].MapValue", "ReturnValue.MapValue.SyntheticField[com.google.common.collect.MapDifference.left]", "value", "manual"] + - ["com.google.common.collect", "MapDifference", True, "entriesDiffering", "()", "", "Argument[this].SyntheticField[com.google.common.collect.MapDifference.right].MapKey", "ReturnValue.MapKey", "value", "manual"] + - ["com.google.common.collect", "MapDifference", True, "entriesDiffering", "()", "", "Argument[this].SyntheticField[com.google.common.collect.MapDifference.right].MapValue", "ReturnValue.MapValue.SyntheticField[com.google.common.collect.MapDifference.right]", "value", "manual"] + - ["com.google.common.collect", "MapDifference", True, "entriesInCommon", "()", "", "Argument[this].SyntheticField[com.google.common.collect.MapDifference.left].MapKey", "ReturnValue.MapKey", "value", "manual"] + - ["com.google.common.collect", "MapDifference", True, "entriesInCommon", "()", "", "Argument[this].SyntheticField[com.google.common.collect.MapDifference.left].MapValue", "ReturnValue.MapValue", "value", "manual"] + - ["com.google.common.collect", "MapDifference", True, "entriesInCommon", "()", "", "Argument[this].SyntheticField[com.google.common.collect.MapDifference.right].MapKey", "ReturnValue.MapKey", "value", "manual"] + - ["com.google.common.collect", "MapDifference", True, "entriesInCommon", "()", "", "Argument[this].SyntheticField[com.google.common.collect.MapDifference.right].MapValue", "ReturnValue.MapValue", "value", "manual"] + - ["com.google.common.collect", "MapDifference", True, "entriesOnlyOnLeft", "()", "", "Argument[this].SyntheticField[com.google.common.collect.MapDifference.left].MapKey", "ReturnValue.MapKey", "value", "manual"] + - ["com.google.common.collect", "MapDifference", True, "entriesOnlyOnLeft", "()", "", "Argument[this].SyntheticField[com.google.common.collect.MapDifference.left].MapValue", "ReturnValue.MapValue", "value", "manual"] + - ["com.google.common.collect", "MapDifference", True, "entriesOnlyOnRight", "()", "", "Argument[this].SyntheticField[com.google.common.collect.MapDifference.right].MapKey", "ReturnValue.MapKey", "value", "manual"] + - ["com.google.common.collect", "MapDifference", True, "entriesOnlyOnRight", "()", "", "Argument[this].SyntheticField[com.google.common.collect.MapDifference.right].MapValue", "ReturnValue.MapValue", "value", "manual"] + - ["com.google.common.collect", "MapDifference$ValueDifference", True, "leftValue", "()", "", "Argument[this].SyntheticField[com.google.common.collect.MapDifference.left]", "ReturnValue", "value", "manual"] + - ["com.google.common.collect", "MapDifference$ValueDifference", True, "rightValue", "()", "", "Argument[this].SyntheticField[com.google.common.collect.MapDifference.right]", "ReturnValue", "value", "manual"] - ["com.google.common.collect", "Maps", False, "asMap", "(NavigableSet,Function)", "", "Argument[0].Element", "ReturnValue.MapKey", "value", "manual"] - ["com.google.common.collect", "Maps", False, "asMap", "(Set,Function)", "", "Argument[0].Element", "ReturnValue.MapKey", "value", "manual"] - ["com.google.common.collect", "Maps", False, "asMap", "(SortedSet,Function)", "", "Argument[0].Element", "ReturnValue.MapKey", "value", "manual"] @@ -371,24 +371,24 @@ extensions: - ["com.google.common.collect", "Maps", False, "unmodifiableBiMap", "(BiMap)", "", "Argument[0].MapValue", "ReturnValue.MapValue", "value", "manual"] - ["com.google.common.collect", "Maps", False, "unmodifiableNavigableMap", "(NavigableMap)", "", "Argument[0].MapKey", "ReturnValue.MapKey", "value", "manual"] - ["com.google.common.collect", "Maps", False, "unmodifiableNavigableMap", "(NavigableMap)", "", "Argument[0].MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["com.google.common.collect", "Multimap", True, "asMap", "()", "", "Argument[-1].MapKey", "ReturnValue.MapKey", "value", "manual"] - - ["com.google.common.collect", "Multimap", True, "asMap", "()", "", "Argument[-1].MapValue", "ReturnValue.MapValue.Element", "value", "manual"] - - ["com.google.common.collect", "Multimap", True, "entries", "()", "", "Argument[-1].MapKey", "ReturnValue.Element.MapKey", "value", "manual"] - - ["com.google.common.collect", "Multimap", True, "entries", "()", "", "Argument[-1].MapValue", "ReturnValue.Element.MapValue", "value", "manual"] - - ["com.google.common.collect", "Multimap", True, "get", "(Object)", "", "Argument[-1].MapValue", "ReturnValue.Element", "value", "manual"] - - ["com.google.common.collect", "Multimap", True, "keySet", "()", "", "Argument[-1].MapKey", "ReturnValue.Element", "value", "manual"] - - ["com.google.common.collect", "Multimap", True, "keys", "()", "", "Argument[-1].MapKey", "ReturnValue.Element", "value", "manual"] - - ["com.google.common.collect", "Multimap", True, "put", "(Object,Object)", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["com.google.common.collect", "Multimap", True, "put", "(Object,Object)", "", "Argument[1]", "Argument[-1].MapValue", "value", "manual"] - - ["com.google.common.collect", "Multimap", True, "putAll", "(Multimap)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["com.google.common.collect", "Multimap", True, "putAll", "(Multimap)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["com.google.common.collect", "Multimap", True, "putAll", "(Object,Iterable)", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["com.google.common.collect", "Multimap", True, "putAll", "(Object,Iterable)", "", "Argument[1].Element", "Argument[-1].MapValue", "value", "manual"] - - ["com.google.common.collect", "Multimap", True, "removeAll", "(Object)", "", "Argument[-1].MapValue", "ReturnValue.Element", "value", "manual"] - - ["com.google.common.collect", "Multimap", True, "replaceValues", "(Object,Iterable)", "", "Argument[-1].MapValue", "ReturnValue.Element", "value", "manual"] - - ["com.google.common.collect", "Multimap", True, "replaceValues", "(Object,Iterable)", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["com.google.common.collect", "Multimap", True, "replaceValues", "(Object,Iterable)", "", "Argument[1].Element", "Argument[-1].MapValue", "value", "manual"] - - ["com.google.common.collect", "Multimap", True, "values", "()", "", "Argument[-1].MapValue", "ReturnValue.Element", "value", "manual"] + - ["com.google.common.collect", "Multimap", True, "asMap", "()", "", "Argument[this].MapKey", "ReturnValue.MapKey", "value", "manual"] + - ["com.google.common.collect", "Multimap", True, "asMap", "()", "", "Argument[this].MapValue", "ReturnValue.MapValue.Element", "value", "manual"] + - ["com.google.common.collect", "Multimap", True, "entries", "()", "", "Argument[this].MapKey", "ReturnValue.Element.MapKey", "value", "manual"] + - ["com.google.common.collect", "Multimap", True, "entries", "()", "", "Argument[this].MapValue", "ReturnValue.Element.MapValue", "value", "manual"] + - ["com.google.common.collect", "Multimap", True, "get", "(Object)", "", "Argument[this].MapValue", "ReturnValue.Element", "value", "manual"] + - ["com.google.common.collect", "Multimap", True, "keySet", "()", "", "Argument[this].MapKey", "ReturnValue.Element", "value", "manual"] + - ["com.google.common.collect", "Multimap", True, "keys", "()", "", "Argument[this].MapKey", "ReturnValue.Element", "value", "manual"] + - ["com.google.common.collect", "Multimap", True, "put", "(Object,Object)", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["com.google.common.collect", "Multimap", True, "put", "(Object,Object)", "", "Argument[1]", "Argument[this].MapValue", "value", "manual"] + - ["com.google.common.collect", "Multimap", True, "putAll", "(Multimap)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["com.google.common.collect", "Multimap", True, "putAll", "(Multimap)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["com.google.common.collect", "Multimap", True, "putAll", "(Object,Iterable)", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["com.google.common.collect", "Multimap", True, "putAll", "(Object,Iterable)", "", "Argument[1].Element", "Argument[this].MapValue", "value", "manual"] + - ["com.google.common.collect", "Multimap", True, "removeAll", "(Object)", "", "Argument[this].MapValue", "ReturnValue.Element", "value", "manual"] + - ["com.google.common.collect", "Multimap", True, "replaceValues", "(Object,Iterable)", "", "Argument[this].MapValue", "ReturnValue.Element", "value", "manual"] + - ["com.google.common.collect", "Multimap", True, "replaceValues", "(Object,Iterable)", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["com.google.common.collect", "Multimap", True, "replaceValues", "(Object,Iterable)", "", "Argument[1].Element", "Argument[this].MapValue", "value", "manual"] + - ["com.google.common.collect", "Multimap", True, "values", "()", "", "Argument[this].MapValue", "ReturnValue.Element", "value", "manual"] - ["com.google.common.collect", "Multimaps", False, "asMap", "(ListMultimap)", "", "Argument[0].MapKey", "ReturnValue.MapKey", "value", "manual"] - ["com.google.common.collect", "Multimaps", False, "asMap", "(ListMultimap)", "", "Argument[0].MapValue", "ReturnValue.MapValue.Element", "value", "manual"] - ["com.google.common.collect", "Multimaps", False, "asMap", "(Multimap)", "", "Argument[0].MapKey", "ReturnValue.MapKey", "value", "manual"] @@ -448,12 +448,12 @@ extensions: - ["com.google.common.collect", "Multimaps", False, "unmodifiableSetMultimap", "(SetMultimap)", "", "Argument[0].MapValue", "ReturnValue.MapValue", "value", "manual"] - ["com.google.common.collect", "Multimaps", False, "unmodifiableSortedSetMultimap", "(SortedSetMultimap)", "", "Argument[0].MapKey", "ReturnValue.MapKey", "value", "manual"] - ["com.google.common.collect", "Multimaps", False, "unmodifiableSortedSetMultimap", "(SortedSetMultimap)", "", "Argument[0].MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["com.google.common.collect", "Multiset", True, "add", "(Object,int)", "", "Argument[0]", "Argument[-1].Element", "value", "manual"] - - ["com.google.common.collect", "Multiset", True, "elementSet", "()", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["com.google.common.collect", "Multiset", True, "entrySet", "()", "", "Argument[-1].Element", "ReturnValue.Element.Element", "value", "manual"] - - ["com.google.common.collect", "Multiset", True, "setCount", "(Object,int)", "", "Argument[0]", "Argument[-1].Element", "value", "manual"] - - ["com.google.common.collect", "Multiset", True, "setCount", "(Object,int,int)", "", "Argument[0]", "Argument[-1].Element", "value", "manual"] - - ["com.google.common.collect", "Multiset$Entry", True, "getElement", "()", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] + - ["com.google.common.collect", "Multiset", True, "add", "(Object,int)", "", "Argument[0]", "Argument[this].Element", "value", "manual"] + - ["com.google.common.collect", "Multiset", True, "elementSet", "()", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["com.google.common.collect", "Multiset", True, "entrySet", "()", "", "Argument[this].Element", "ReturnValue.Element.Element", "value", "manual"] + - ["com.google.common.collect", "Multiset", True, "setCount", "(Object,int)", "", "Argument[0]", "Argument[this].Element", "value", "manual"] + - ["com.google.common.collect", "Multiset", True, "setCount", "(Object,int,int)", "", "Argument[0]", "Argument[this].Element", "value", "manual"] + - ["com.google.common.collect", "Multiset$Entry", True, "getElement", "()", "", "Argument[this].Element", "ReturnValue", "value", "manual"] - ["com.google.common.collect", "Multisets", False, "copyHighestCountFirst", "(Multiset)", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["com.google.common.collect", "Multisets", False, "difference", "(Multiset,Multiset)", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["com.google.common.collect", "Multisets", False, "filter", "(Multiset,Predicate)", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] @@ -503,35 +503,35 @@ extensions: - ["com.google.common.collect", "Sets", False, "synchronizedNavigableSet", "(NavigableSet)", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["com.google.common.collect", "Sets", False, "union", "(Set,Set)", "", "Argument[0..1].Element", "ReturnValue.Element", "value", "manual"] - ["com.google.common.collect", "Sets", False, "unmodifiableNavigableSet", "(NavigableSet)", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - - ["com.google.common.collect", "Sets$SetView", True, "copyInto", "(Set)", "", "Argument[-1].Element", "Argument[0].Element", "value", "manual"] - - ["com.google.common.collect", "Sets$SetView", True, "immutableCopy", "()", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["com.google.common.collect", "Table", True, "cellSet", "()", "", "Argument[-1].MapValue", "ReturnValue.Element.MapValue", "value", "manual"] - - ["com.google.common.collect", "Table", True, "cellSet", "()", "", "Argument[-1].SyntheticField[com.google.common.collect.Table.columnKey]", "ReturnValue.Element.SyntheticField[com.google.common.collect.Table.columnKey]", "value", "manual"] - - ["com.google.common.collect", "Table", True, "cellSet", "()", "", "Argument[-1].SyntheticField[com.google.common.collect.Table.rowKey]", "ReturnValue.Element.SyntheticField[com.google.common.collect.Table.rowKey]", "value", "manual"] - - ["com.google.common.collect", "Table", True, "column", "(Object)", "", "Argument[-1].MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["com.google.common.collect", "Table", True, "column", "(Object)", "", "Argument[-1].SyntheticField[com.google.common.collect.Table.rowKey]", "ReturnValue.MapKey", "value", "manual"] - - ["com.google.common.collect", "Table", True, "columnKeySet", "()", "", "Argument[-1].SyntheticField[com.google.common.collect.Table.columnKey]", "ReturnValue.Element", "value", "manual"] - - ["com.google.common.collect", "Table", True, "columnMap", "()", "", "Argument[-1].MapValue", "ReturnValue.MapValue.MapValue", "value", "manual"] - - ["com.google.common.collect", "Table", True, "columnMap", "()", "", "Argument[-1].SyntheticField[com.google.common.collect.Table.columnKey]", "ReturnValue.MapKey", "value", "manual"] - - ["com.google.common.collect", "Table", True, "columnMap", "()", "", "Argument[-1].SyntheticField[com.google.common.collect.Table.rowKey]", "ReturnValue.MapValue.MapKey", "value", "manual"] - - ["com.google.common.collect", "Table", True, "get", "(Object,Object)", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] - - ["com.google.common.collect", "Table", True, "put", "(Object,Object,Object)", "", "Argument[0]", "Argument[-1].SyntheticField[com.google.common.collect.Table.rowKey]", "value", "manual"] - - ["com.google.common.collect", "Table", True, "put", "(Object,Object,Object)", "", "Argument[1]", "Argument[-1].SyntheticField[com.google.common.collect.Table.columnKey]", "value", "manual"] - - ["com.google.common.collect", "Table", True, "put", "(Object,Object,Object)", "", "Argument[2]", "Argument[-1].MapValue", "value", "manual"] - - ["com.google.common.collect", "Table", True, "putAll", "(Table)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["com.google.common.collect", "Table", True, "putAll", "(Table)", "", "Argument[0].SyntheticField[com.google.common.collect.Table.columnKey]", "Argument[-1].SyntheticField[com.google.common.collect.Table.columnKey]", "value", "manual"] - - ["com.google.common.collect", "Table", True, "putAll", "(Table)", "", "Argument[0].SyntheticField[com.google.common.collect.Table.rowKey]", "Argument[-1].SyntheticField[com.google.common.collect.Table.rowKey]", "value", "manual"] - - ["com.google.common.collect", "Table", True, "remove", "(Object,Object)", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] - - ["com.google.common.collect", "Table", True, "row", "(Object)", "", "Argument[-1].MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["com.google.common.collect", "Table", True, "row", "(Object)", "", "Argument[-1].SyntheticField[com.google.common.collect.Table.columnKey]", "ReturnValue.MapKey", "value", "manual"] - - ["com.google.common.collect", "Table", True, "rowKeySet", "()", "", "Argument[-1].SyntheticField[com.google.common.collect.Table.rowKey]", "ReturnValue.Element", "value", "manual"] - - ["com.google.common.collect", "Table", True, "rowMap", "()", "", "Argument[-1].MapValue", "ReturnValue.MapValue.MapValue", "value", "manual"] - - ["com.google.common.collect", "Table", True, "rowMap", "()", "", "Argument[-1].SyntheticField[com.google.common.collect.Table.columnKey]", "ReturnValue.MapValue.MapKey", "value", "manual"] - - ["com.google.common.collect", "Table", True, "rowMap", "()", "", "Argument[-1].SyntheticField[com.google.common.collect.Table.rowKey]", "ReturnValue.MapKey", "value", "manual"] - - ["com.google.common.collect", "Table", True, "values", "()", "", "Argument[-1].MapValue", "ReturnValue.Element", "value", "manual"] - - ["com.google.common.collect", "Table$Cell", True, "getColumnKey", "()", "", "Argument[-1].SyntheticField[com.google.common.collect.Table.columnKey]", "ReturnValue", "value", "manual"] - - ["com.google.common.collect", "Table$Cell", True, "getRowKey", "()", "", "Argument[-1].SyntheticField[com.google.common.collect.Table.rowKey]", "ReturnValue", "value", "manual"] - - ["com.google.common.collect", "Table$Cell", True, "getValue", "()", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] + - ["com.google.common.collect", "Sets$SetView", True, "copyInto", "(Set)", "", "Argument[this].Element", "Argument[0].Element", "value", "manual"] + - ["com.google.common.collect", "Sets$SetView", True, "immutableCopy", "()", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["com.google.common.collect", "Table", True, "cellSet", "()", "", "Argument[this].MapValue", "ReturnValue.Element.MapValue", "value", "manual"] + - ["com.google.common.collect", "Table", True, "cellSet", "()", "", "Argument[this].SyntheticField[com.google.common.collect.Table.columnKey]", "ReturnValue.Element.SyntheticField[com.google.common.collect.Table.columnKey]", "value", "manual"] + - ["com.google.common.collect", "Table", True, "cellSet", "()", "", "Argument[this].SyntheticField[com.google.common.collect.Table.rowKey]", "ReturnValue.Element.SyntheticField[com.google.common.collect.Table.rowKey]", "value", "manual"] + - ["com.google.common.collect", "Table", True, "column", "(Object)", "", "Argument[this].MapValue", "ReturnValue.MapValue", "value", "manual"] + - ["com.google.common.collect", "Table", True, "column", "(Object)", "", "Argument[this].SyntheticField[com.google.common.collect.Table.rowKey]", "ReturnValue.MapKey", "value", "manual"] + - ["com.google.common.collect", "Table", True, "columnKeySet", "()", "", "Argument[this].SyntheticField[com.google.common.collect.Table.columnKey]", "ReturnValue.Element", "value", "manual"] + - ["com.google.common.collect", "Table", True, "columnMap", "()", "", "Argument[this].MapValue", "ReturnValue.MapValue.MapValue", "value", "manual"] + - ["com.google.common.collect", "Table", True, "columnMap", "()", "", "Argument[this].SyntheticField[com.google.common.collect.Table.columnKey]", "ReturnValue.MapKey", "value", "manual"] + - ["com.google.common.collect", "Table", True, "columnMap", "()", "", "Argument[this].SyntheticField[com.google.common.collect.Table.rowKey]", "ReturnValue.MapValue.MapKey", "value", "manual"] + - ["com.google.common.collect", "Table", True, "get", "(Object,Object)", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["com.google.common.collect", "Table", True, "put", "(Object,Object,Object)", "", "Argument[0]", "Argument[this].SyntheticField[com.google.common.collect.Table.rowKey]", "value", "manual"] + - ["com.google.common.collect", "Table", True, "put", "(Object,Object,Object)", "", "Argument[1]", "Argument[this].SyntheticField[com.google.common.collect.Table.columnKey]", "value", "manual"] + - ["com.google.common.collect", "Table", True, "put", "(Object,Object,Object)", "", "Argument[2]", "Argument[this].MapValue", "value", "manual"] + - ["com.google.common.collect", "Table", True, "putAll", "(Table)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["com.google.common.collect", "Table", True, "putAll", "(Table)", "", "Argument[0].SyntheticField[com.google.common.collect.Table.columnKey]", "Argument[this].SyntheticField[com.google.common.collect.Table.columnKey]", "value", "manual"] + - ["com.google.common.collect", "Table", True, "putAll", "(Table)", "", "Argument[0].SyntheticField[com.google.common.collect.Table.rowKey]", "Argument[this].SyntheticField[com.google.common.collect.Table.rowKey]", "value", "manual"] + - ["com.google.common.collect", "Table", True, "remove", "(Object,Object)", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["com.google.common.collect", "Table", True, "row", "(Object)", "", "Argument[this].MapValue", "ReturnValue.MapValue", "value", "manual"] + - ["com.google.common.collect", "Table", True, "row", "(Object)", "", "Argument[this].SyntheticField[com.google.common.collect.Table.columnKey]", "ReturnValue.MapKey", "value", "manual"] + - ["com.google.common.collect", "Table", True, "rowKeySet", "()", "", "Argument[this].SyntheticField[com.google.common.collect.Table.rowKey]", "ReturnValue.Element", "value", "manual"] + - ["com.google.common.collect", "Table", True, "rowMap", "()", "", "Argument[this].MapValue", "ReturnValue.MapValue.MapValue", "value", "manual"] + - ["com.google.common.collect", "Table", True, "rowMap", "()", "", "Argument[this].SyntheticField[com.google.common.collect.Table.columnKey]", "ReturnValue.MapValue.MapKey", "value", "manual"] + - ["com.google.common.collect", "Table", True, "rowMap", "()", "", "Argument[this].SyntheticField[com.google.common.collect.Table.rowKey]", "ReturnValue.MapKey", "value", "manual"] + - ["com.google.common.collect", "Table", True, "values", "()", "", "Argument[this].MapValue", "ReturnValue.Element", "value", "manual"] + - ["com.google.common.collect", "Table$Cell", True, "getColumnKey", "()", "", "Argument[this].SyntheticField[com.google.common.collect.Table.columnKey]", "ReturnValue", "value", "manual"] + - ["com.google.common.collect", "Table$Cell", True, "getRowKey", "()", "", "Argument[this].SyntheticField[com.google.common.collect.Table.rowKey]", "ReturnValue", "value", "manual"] + - ["com.google.common.collect", "Table$Cell", True, "getValue", "()", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] - ["com.google.common.collect", "Tables", False, "immutableCell", "(Object,Object,Object)", "", "Argument[0]", "ReturnValue.SyntheticField[com.google.common.collect.Table.rowKey]", "value", "manual"] - ["com.google.common.collect", "Tables", False, "immutableCell", "(Object,Object,Object)", "", "Argument[1]", "ReturnValue.SyntheticField[com.google.common.collect.Table.columnKey]", "value", "manual"] - ["com.google.common.collect", "Tables", False, "immutableCell", "(Object,Object,Object)", "", "Argument[2]", "ReturnValue.MapValue", "value", "manual"] diff --git a/java/ql/lib/ext/com.google.common.io.model.yml b/java/ql/lib/ext/com.google.common.io.model.yml index d08a5604338..a1252ed0014 100644 --- a/java/ql/lib/ext/com.google.common.io.model.yml +++ b/java/ql/lib/ext/com.google.common.io.model.yml @@ -13,44 +13,44 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["com.google.common.io", "BaseEncoding", True, "decode", "(CharSequence)", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["com.google.common.io", "BaseEncoding", True, "decode", "(CharSequence)", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["com.google.common.io", "BaseEncoding", True, "decode", "(CharSequence)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["com.google.common.io", "BaseEncoding", True, "decodingSource", "(CharSource)", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["com.google.common.io", "BaseEncoding", True, "decodingSource", "(CharSource)", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["com.google.common.io", "BaseEncoding", True, "decodingSource", "(CharSource)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["com.google.common.io", "BaseEncoding", True, "decodingStream", "(Reader)", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["com.google.common.io", "BaseEncoding", True, "decodingStream", "(Reader)", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["com.google.common.io", "BaseEncoding", True, "decodingStream", "(Reader)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["com.google.common.io", "BaseEncoding", True, "encode", "(byte[])", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["com.google.common.io", "BaseEncoding", True, "encode", "(byte[])", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["com.google.common.io", "BaseEncoding", True, "encode", "(byte[])", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["com.google.common.io", "BaseEncoding", True, "encode", "(byte[],int,int)", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["com.google.common.io", "BaseEncoding", True, "encode", "(byte[],int,int)", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["com.google.common.io", "BaseEncoding", True, "encode", "(byte[],int,int)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["com.google.common.io", "BaseEncoding", True, "lowerCase", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["com.google.common.io", "BaseEncoding", True, "omitPadding", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["com.google.common.io", "BaseEncoding", True, "upperCase", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["com.google.common.io", "BaseEncoding", True, "withPadChar", "(char)", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["com.google.common.io", "BaseEncoding", True, "lowerCase", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["com.google.common.io", "BaseEncoding", True, "omitPadding", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["com.google.common.io", "BaseEncoding", True, "upperCase", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["com.google.common.io", "BaseEncoding", True, "withPadChar", "(char)", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["com.google.common.io", "BaseEncoding", True, "withSeparator", "(String,int)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["com.google.common.io", "ByteArrayDataOutput", True, "toByteArray", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["com.google.common.io", "ByteArrayDataOutput", True, "write", "(byte[])", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["com.google.common.io", "ByteArrayDataOutput", True, "write", "(byte[],int,int)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["com.google.common.io", "ByteArrayDataOutput", True, "write", "(int)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["com.google.common.io", "ByteArrayDataOutput", True, "writeByte", "(int)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["com.google.common.io", "ByteArrayDataOutput", True, "writeBytes", "(String)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["com.google.common.io", "ByteArrayDataOutput", True, "writeChar", "(int)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["com.google.common.io", "ByteArrayDataOutput", True, "writeChars", "(String)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["com.google.common.io", "ByteArrayDataOutput", True, "writeDouble", "(double)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["com.google.common.io", "ByteArrayDataOutput", True, "writeFloat", "(float)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["com.google.common.io", "ByteArrayDataOutput", True, "writeInt", "(int)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["com.google.common.io", "ByteArrayDataOutput", True, "writeLong", "(long)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["com.google.common.io", "ByteArrayDataOutput", True, "writeShort", "(int)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["com.google.common.io", "ByteArrayDataOutput", True, "writeUTF", "(String)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["com.google.common.io", "ByteSource", True, "asCharSource", "(Charset)", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["com.google.common.io", "ByteArrayDataOutput", True, "toByteArray", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["com.google.common.io", "ByteArrayDataOutput", True, "write", "(byte[])", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["com.google.common.io", "ByteArrayDataOutput", True, "write", "(byte[],int,int)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["com.google.common.io", "ByteArrayDataOutput", True, "write", "(int)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["com.google.common.io", "ByteArrayDataOutput", True, "writeByte", "(int)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["com.google.common.io", "ByteArrayDataOutput", True, "writeBytes", "(String)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["com.google.common.io", "ByteArrayDataOutput", True, "writeChar", "(int)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["com.google.common.io", "ByteArrayDataOutput", True, "writeChars", "(String)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["com.google.common.io", "ByteArrayDataOutput", True, "writeDouble", "(double)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["com.google.common.io", "ByteArrayDataOutput", True, "writeFloat", "(float)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["com.google.common.io", "ByteArrayDataOutput", True, "writeInt", "(int)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["com.google.common.io", "ByteArrayDataOutput", True, "writeLong", "(long)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["com.google.common.io", "ByteArrayDataOutput", True, "writeShort", "(int)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["com.google.common.io", "ByteArrayDataOutput", True, "writeUTF", "(String)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["com.google.common.io", "ByteSource", True, "asCharSource", "(Charset)", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["com.google.common.io", "ByteSource", True, "concat", "(ByteSource[])", "", "Argument[0].ArrayElement", "ReturnValue", "taint", "manual"] - ["com.google.common.io", "ByteSource", True, "concat", "(Iterable)", "", "Argument[0].Element", "ReturnValue", "taint", "manual"] - ["com.google.common.io", "ByteSource", True, "concat", "(Iterator)", "", "Argument[0].Element", "ReturnValue", "taint", "manual"] - - ["com.google.common.io", "ByteSource", True, "copyTo", "(OutputStream)", "", "Argument[-1]", "Argument[0]", "taint", "manual"] - - ["com.google.common.io", "ByteSource", True, "openBufferedStream", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["com.google.common.io", "ByteSource", True, "openStream", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["com.google.common.io", "ByteSource", True, "read", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["com.google.common.io", "ByteSource", True, "slice", "(long,long)", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["com.google.common.io", "ByteSource", True, "copyTo", "(OutputStream)", "", "Argument[this]", "Argument[0]", "taint", "manual"] + - ["com.google.common.io", "ByteSource", True, "openBufferedStream", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["com.google.common.io", "ByteSource", True, "openStream", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["com.google.common.io", "ByteSource", True, "read", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["com.google.common.io", "ByteSource", True, "slice", "(long,long)", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["com.google.common.io", "ByteSource", True, "wrap", "(byte[])", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["com.google.common.io", "ByteStreams", False, "copy", "(InputStream,OutputStream)", "", "Argument[0]", "Argument[1]", "taint", "manual"] - ["com.google.common.io", "ByteStreams", False, "copy", "(ReadableByteChannel,WritableByteChannel)", "", "Argument[0]", "Argument[1]", "taint", "manual"] @@ -63,17 +63,17 @@ extensions: - ["com.google.common.io", "ByteStreams", False, "readFully", "(InputStream,byte[])", "", "Argument[0]", "Argument[1]", "taint", "manual"] - ["com.google.common.io", "ByteStreams", False, "readFully", "(InputStream,byte[],int,int)", "", "Argument[0]", "Argument[1]", "taint", "manual"] - ["com.google.common.io", "ByteStreams", False, "toByteArray", "(InputStream)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["com.google.common.io", "CharSource", True, "asByteSource", "(Charset)", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["com.google.common.io", "CharSource", True, "asByteSource", "(Charset)", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["com.google.common.io", "CharSource", True, "concat", "(CharSource[])", "", "Argument[0].ArrayElement", "ReturnValue", "taint", "manual"] - ["com.google.common.io", "CharSource", True, "concat", "(Iterable)", "", "Argument[0].Element", "ReturnValue", "taint", "manual"] - ["com.google.common.io", "CharSource", True, "concat", "(Iterator)", "", "Argument[0].Element", "ReturnValue", "taint", "manual"] - - ["com.google.common.io", "CharSource", True, "copyTo", "(Appendable)", "", "Argument[-1]", "Argument[0]", "taint", "manual"] - - ["com.google.common.io", "CharSource", True, "lines", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["com.google.common.io", "CharSource", True, "openBufferedStream", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["com.google.common.io", "CharSource", True, "openStream", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["com.google.common.io", "CharSource", True, "read", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["com.google.common.io", "CharSource", True, "readFirstLine", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["com.google.common.io", "CharSource", True, "readLines", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["com.google.common.io", "CharSource", True, "copyTo", "(Appendable)", "", "Argument[this]", "Argument[0]", "taint", "manual"] + - ["com.google.common.io", "CharSource", True, "lines", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["com.google.common.io", "CharSource", True, "openBufferedStream", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["com.google.common.io", "CharSource", True, "openStream", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["com.google.common.io", "CharSource", True, "read", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["com.google.common.io", "CharSource", True, "readFirstLine", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["com.google.common.io", "CharSource", True, "readLines", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["com.google.common.io", "CharSource", True, "wrap", "(CharSequence)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["com.google.common.io", "CharStreams", False, "copy", "(Readable,Appendable)", "", "Argument[0]", "Argument[1]", "taint", "manual"] - ["com.google.common.io", "CharStreams", False, "readLines", "(Readable)", "", "Argument[0]", "ReturnValue", "taint", "manual"] @@ -82,7 +82,7 @@ extensions: - ["com.google.common.io", "Files", False, "getFileExtension", "(String)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["com.google.common.io", "Files", False, "getNameWithoutExtension", "(String)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["com.google.common.io", "Files", False, "simplifyPath", "(String)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["com.google.common.io", "LineReader", False, "LineReader", "(Readable)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["com.google.common.io", "LineReader", True, "readLine", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["com.google.common.io", "LineReader", False, "LineReader", "(Readable)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["com.google.common.io", "LineReader", True, "readLine", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["com.google.common.io", "MoreFiles", False, "getFileExtension", "(Path)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["com.google.common.io", "MoreFiles", False, "getNameWithoutExtension", "(Path)", "", "Argument[0]", "ReturnValue", "taint", "manual"] diff --git a/java/ql/lib/ext/com.rabbitmq.client.impl.model.yml b/java/ql/lib/ext/com.rabbitmq.client.impl.model.yml index 9f0e9906e79..07b5e7773ba 100644 --- a/java/ql/lib/ext/com.rabbitmq.client.impl.model.yml +++ b/java/ql/lib/ext/com.rabbitmq.client.impl.model.yml @@ -12,4 +12,4 @@ extensions: data: - ["com.rabbitmq.client.impl", "Frame", False, "fromBodyFragment", "(int,byte[],int,int)", "", "Argument[1]", "ReturnValue", "taint", "manual"] - ["com.rabbitmq.client.impl", "Frame", False, "readFrom", "(DataInputStream)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["com.rabbitmq.client.impl", "Frame", True, "writeTo", "(DataOutputStream)", "", "Argument[-1]", "Argument[0]", "taint", "manual"] + - ["com.rabbitmq.client.impl", "Frame", True, "writeTo", "(DataOutputStream)", "", "Argument[this]", "Argument[0]", "taint", "manual"] diff --git a/java/ql/lib/ext/com.rabbitmq.client.model.yml b/java/ql/lib/ext/com.rabbitmq.client.model.yml index ec313e8ef74..79f47d90e8d 100644 --- a/java/ql/lib/ext/com.rabbitmq.client.model.yml +++ b/java/ql/lib/ext/com.rabbitmq.client.model.yml @@ -25,7 +25,7 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["com.rabbitmq.client", "GetResponse", True, "GetResponse", "", "", "Argument[2]", "Argument[-1]", "taint", "manual"] - - ["com.rabbitmq.client", "GetResponse", True, "getBody", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["com.rabbitmq.client", "QueueingConsumer$Delivery", True, "getBody", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["com.rabbitmq.client", "RpcClient$Response", True, "getBody", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["com.rabbitmq.client", "GetResponse", True, "GetResponse", "", "", "Argument[2]", "Argument[this]", "taint", "manual"] + - ["com.rabbitmq.client", "GetResponse", True, "getBody", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["com.rabbitmq.client", "QueueingConsumer$Delivery", True, "getBody", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["com.rabbitmq.client", "RpcClient$Response", True, "getBody", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] diff --git a/java/ql/lib/ext/experimental/android.webkit.model.yml b/java/ql/lib/ext/experimental/android.webkit.model.yml index ce70ae7e87b..93ab7d355d6 100644 --- a/java/ql/lib/ext/experimental/android.webkit.model.yml +++ b/java/ql/lib/ext/experimental/android.webkit.model.yml @@ -3,4 +3,4 @@ extensions: pack: codeql/java-all extensible: experimentalSummaryModel data: - - ["android.webkit", "WebResourceRequest", False, "getUrl", "", "", "Argument[-1]", "ReturnValue", "taint", "manual", "android-web-resource-response"] + - ["android.webkit", "WebResourceRequest", False, "getUrl", "", "", "Argument[this]", "ReturnValue", "taint", "manual", "android-web-resource-response"] diff --git a/java/ql/lib/ext/experimental/com.auth0.jwt.interfaces.model.yml b/java/ql/lib/ext/experimental/com.auth0.jwt.interfaces.model.yml index 6032a9c8a18..02210f281f0 100644 --- a/java/ql/lib/ext/experimental/com.auth0.jwt.interfaces.model.yml +++ b/java/ql/lib/ext/experimental/com.auth0.jwt.interfaces.model.yml @@ -3,17 +3,17 @@ extensions: pack: codeql/java-all extensible: experimentalSummaryModel data: - - ["com.auth0.jwt.interfaces", "Verification", True, "acceptExpiresAt", "", "", "Argument[-1]", "ReturnValue", "value", "manual", "hardcoded-jwt-key"] - - ["com.auth0.jwt.interfaces", "Verification", True, "acceptIssuedAt", "", "", "Argument[-1]", "ReturnValue", "value", "manual", "hardcoded-jwt-key"] - - ["com.auth0.jwt.interfaces", "Verification", True, "acceptLeeway", "", "", "Argument[-1]", "ReturnValue", "value", "manual", "hardcoded-jwt-key"] - - ["com.auth0.jwt.interfaces", "Verification", True, "acceptNotBefore", "", "", "Argument[-1]", "ReturnValue", "value", "manual", "hardcoded-jwt-key"] - - ["com.auth0.jwt.interfaces", "Verification", True, "build", "", "", "Argument[-1]", "ReturnValue", "taint", "manual", "hardcoded-jwt-key"] - - ["com.auth0.jwt.interfaces", "Verification", True, "ignoreIssuedAt", "", "", "Argument[-1]", "ReturnValue", "value", "manual", "hardcoded-jwt-key"] - - ["com.auth0.jwt.interfaces", "Verification", True, "withAnyOfAudience", "", "", "Argument[-1]", "ReturnValue", "value", "manual", "hardcoded-jwt-key"] - - ["com.auth0.jwt.interfaces", "Verification", True, "withArrayClaim", "", "", "Argument[-1]", "ReturnValue", "value", "manual", "hardcoded-jwt-key"] - - ["com.auth0.jwt.interfaces", "Verification", True, "withAudience", "", "", "Argument[-1]", "ReturnValue", "value", "manual", "hardcoded-jwt-key"] - - ["com.auth0.jwt.interfaces", "Verification", True, "withClaim", "", "", "Argument[-1]", "ReturnValue", "value", "manual", "hardcoded-jwt-key"] - - ["com.auth0.jwt.interfaces", "Verification", True, "withClaimPresence", "", "", "Argument[-1]", "ReturnValue", "value", "manual", "hardcoded-jwt-key"] - - ["com.auth0.jwt.interfaces", "Verification", True, "withIssuer", "", "", "Argument[-1]", "ReturnValue", "value", "manual", "hardcoded-jwt-key"] - - ["com.auth0.jwt.interfaces", "Verification", True, "withJWTId", "", "", "Argument[-1]", "ReturnValue", "value", "manual", "hardcoded-jwt-key"] - - ["com.auth0.jwt.interfaces", "Verification", True, "withSubject", "", "", "Argument[-1]", "ReturnValue", "value", "manual", "hardcoded-jwt-key"] + - ["com.auth0.jwt.interfaces", "Verification", True, "acceptExpiresAt", "", "", "Argument[this]", "ReturnValue", "value", "manual", "hardcoded-jwt-key"] + - ["com.auth0.jwt.interfaces", "Verification", True, "acceptIssuedAt", "", "", "Argument[this]", "ReturnValue", "value", "manual", "hardcoded-jwt-key"] + - ["com.auth0.jwt.interfaces", "Verification", True, "acceptLeeway", "", "", "Argument[this]", "ReturnValue", "value", "manual", "hardcoded-jwt-key"] + - ["com.auth0.jwt.interfaces", "Verification", True, "acceptNotBefore", "", "", "Argument[this]", "ReturnValue", "value", "manual", "hardcoded-jwt-key"] + - ["com.auth0.jwt.interfaces", "Verification", True, "build", "", "", "Argument[this]", "ReturnValue", "taint", "manual", "hardcoded-jwt-key"] + - ["com.auth0.jwt.interfaces", "Verification", True, "ignoreIssuedAt", "", "", "Argument[this]", "ReturnValue", "value", "manual", "hardcoded-jwt-key"] + - ["com.auth0.jwt.interfaces", "Verification", True, "withAnyOfAudience", "", "", "Argument[this]", "ReturnValue", "value", "manual", "hardcoded-jwt-key"] + - ["com.auth0.jwt.interfaces", "Verification", True, "withArrayClaim", "", "", "Argument[this]", "ReturnValue", "value", "manual", "hardcoded-jwt-key"] + - ["com.auth0.jwt.interfaces", "Verification", True, "withAudience", "", "", "Argument[this]", "ReturnValue", "value", "manual", "hardcoded-jwt-key"] + - ["com.auth0.jwt.interfaces", "Verification", True, "withClaim", "", "", "Argument[this]", "ReturnValue", "value", "manual", "hardcoded-jwt-key"] + - ["com.auth0.jwt.interfaces", "Verification", True, "withClaimPresence", "", "", "Argument[this]", "ReturnValue", "value", "manual", "hardcoded-jwt-key"] + - ["com.auth0.jwt.interfaces", "Verification", True, "withIssuer", "", "", "Argument[this]", "ReturnValue", "value", "manual", "hardcoded-jwt-key"] + - ["com.auth0.jwt.interfaces", "Verification", True, "withJWTId", "", "", "Argument[this]", "ReturnValue", "value", "manual", "hardcoded-jwt-key"] + - ["com.auth0.jwt.interfaces", "Verification", True, "withSubject", "", "", "Argument[this]", "ReturnValue", "value", "manual", "hardcoded-jwt-key"] diff --git a/java/ql/lib/ext/experimental/io.undertow.server.handlers.resource.model.yml b/java/ql/lib/ext/experimental/io.undertow.server.handlers.resource.model.yml index 12267dcd845..5c86c75522c 100644 --- a/java/ql/lib/ext/experimental/io.undertow.server.handlers.resource.model.yml +++ b/java/ql/lib/ext/experimental/io.undertow.server.handlers.resource.model.yml @@ -3,6 +3,6 @@ extensions: pack: codeql/java-all extensible: experimentalSummaryModel data: - - ["io.undertow.server.handlers.resource", "Resource", True, "getFile", "", "", "Argument[-1]", "ReturnValue", "taint", "manual", "unsafe-url-forward"] - - ["io.undertow.server.handlers.resource", "Resource", True, "getFilePath", "", "", "Argument[-1]", "ReturnValue", "taint", "manual", "unsafe-url-forward"] - - ["io.undertow.server.handlers.resource", "Resource", True, "getPath", "", "", "Argument[-1]", "ReturnValue", "taint", "manual", "unsafe-url-forward"] + - ["io.undertow.server.handlers.resource", "Resource", True, "getFile", "", "", "Argument[this]", "ReturnValue", "taint", "manual", "unsafe-url-forward"] + - ["io.undertow.server.handlers.resource", "Resource", True, "getFilePath", "", "", "Argument[this]", "ReturnValue", "taint", "manual", "unsafe-url-forward"] + - ["io.undertow.server.handlers.resource", "Resource", True, "getPath", "", "", "Argument[this]", "ReturnValue", "taint", "manual", "unsafe-url-forward"] diff --git a/java/ql/lib/ext/experimental/java.io.model.yml b/java/ql/lib/ext/experimental/java.io.model.yml index 8d6d98ff47d..a544af22be1 100644 --- a/java/ql/lib/ext/experimental/java.io.model.yml +++ b/java/ql/lib/ext/experimental/java.io.model.yml @@ -3,4 +3,4 @@ extensions: pack: codeql/java-all extensible: experimentalSummaryModel data: - - ["java.io", "FileInputStream", True, "FileInputStream", "", "", "Argument[0]", "Argument[-1]", "taint", "manual", "android-web-resource-response"] + - ["java.io", "FileInputStream", True, "FileInputStream", "", "", "Argument[0]", "Argument[this]", "taint", "manual", "android-web-resource-response"] diff --git a/java/ql/lib/ext/experimental/java.nio.file.model.yml b/java/ql/lib/ext/experimental/java.nio.file.model.yml index d1d0d8d3d6e..4fb6657913e 100644 --- a/java/ql/lib/ext/experimental/java.nio.file.model.yml +++ b/java/ql/lib/ext/experimental/java.nio.file.model.yml @@ -3,7 +3,7 @@ extensions: pack: codeql/java-all extensible: experimentalSummaryModel data: - - ["java.nio.file", "Path", True, "normalize", "", "", "Argument[-1]", "ReturnValue", "taint", "manual", "unsafe-url-forward"] + - ["java.nio.file", "Path", True, "normalize", "", "", "Argument[this]", "ReturnValue", "taint", "manual", "unsafe-url-forward"] - ["java.nio.file", "Path", True, "resolve", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual", "unsafe-url-forward"] - - ["java.nio.file", "Path", True, "toString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual", "unsafe-url-forward"] + - ["java.nio.file", "Path", True, "toString", "", "", "Argument[this]", "ReturnValue", "taint", "manual", "unsafe-url-forward"] - ["java.nio.file", "Paths", True, "get", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual", "unsafe-url-forward"] diff --git a/java/ql/lib/ext/experimental/org.apache.logging.log4j.message.model.yml b/java/ql/lib/ext/experimental/org.apache.logging.log4j.message.model.yml index 71839d3abbe..d45e44f78ee 100644 --- a/java/ql/lib/ext/experimental/org.apache.logging.log4j.message.model.yml +++ b/java/ql/lib/ext/experimental/org.apache.logging.log4j.message.model.yml @@ -3,7 +3,7 @@ extensions: pack: codeql/java-all extensible: experimentalSummaryModel data: - - ["org.apache.logging.log4j.message", "MapMessage", True, "put", "", "", "Argument[1]", "Argument[-1]", "taint", "manual", "log4j-injection"] - - ["org.apache.logging.log4j.message", "MapMessage", True, "putAll", "", "", "Argument[0].MapValue", "Argument[-1]", "taint", "manual", "log4j-injection"] - - ["org.apache.logging.log4j.message", "MapMessage", True, "with", "", "", "Argument[-1]", "ReturnValue", "value", "manual", "log4j-injection"] - - ["org.apache.logging.log4j.message", "MapMessage", True, "with", "", "", "Argument[1]", "Argument[-1]", "taint", "manual", "log4j-injection"] + - ["org.apache.logging.log4j.message", "MapMessage", True, "put", "", "", "Argument[1]", "Argument[this]", "taint", "manual", "log4j-injection"] + - ["org.apache.logging.log4j.message", "MapMessage", True, "putAll", "", "", "Argument[0].MapValue", "Argument[this]", "taint", "manual", "log4j-injection"] + - ["org.apache.logging.log4j.message", "MapMessage", True, "with", "", "", "Argument[this]", "ReturnValue", "value", "manual", "log4j-injection"] + - ["org.apache.logging.log4j.message", "MapMessage", True, "with", "", "", "Argument[1]", "Argument[this]", "taint", "manual", "log4j-injection"] diff --git a/java/ql/lib/ext/experimental/org.springframework.core.io.model.yml b/java/ql/lib/ext/experimental/org.springframework.core.io.model.yml index 1d4d808cdcd..e929260f21b 100644 --- a/java/ql/lib/ext/experimental/org.springframework.core.io.model.yml +++ b/java/ql/lib/ext/experimental/org.springframework.core.io.model.yml @@ -3,14 +3,14 @@ extensions: pack: codeql/java-all extensible: experimentalSinkModel data: - - ["org.springframework.core.io", "ClassPathResource", True, "getFilename", "", "", "Argument[-1]", "get-resource", "manual", "unsafe-url-forward"] - - ["org.springframework.core.io", "ClassPathResource", True, "getPath", "", "", "Argument[-1]", "get-resource", "manual", "unsafe-url-forward"] - - ["org.springframework.core.io", "ClassPathResource", True, "getURL", "", "", "Argument[-1]", "get-resource", "manual", "unsafe-url-forward"] - - ["org.springframework.core.io", "ClassPathResource", True, "resolveURL", "", "", "Argument[-1]", "get-resource", "manual", "unsafe-url-forward"] + - ["org.springframework.core.io", "ClassPathResource", True, "getFilename", "", "", "Argument[this]", "get-resource", "manual", "unsafe-url-forward"] + - ["org.springframework.core.io", "ClassPathResource", True, "getPath", "", "", "Argument[this]", "get-resource", "manual", "unsafe-url-forward"] + - ["org.springframework.core.io", "ClassPathResource", True, "getURL", "", "", "Argument[this]", "get-resource", "manual", "unsafe-url-forward"] + - ["org.springframework.core.io", "ClassPathResource", True, "resolveURL", "", "", "Argument[this]", "get-resource", "manual", "unsafe-url-forward"] - addsTo: pack: codeql/java-all extensible: experimentalSummaryModel data: - - ["org.springframework.core.io", "ClassPathResource", False, "ClassPathResource", "", "", "Argument[0]", "Argument[-1]", "taint", "manual", "unsafe-url-forward"] + - ["org.springframework.core.io", "ClassPathResource", False, "ClassPathResource", "", "", "Argument[0]", "Argument[this]", "taint", "manual", "unsafe-url-forward"] - ["org.springframework.core.io", "Resource", True, "createRelative", "", "", "Argument[0]", "ReturnValue", "taint", "manual", "unsafe-url-forward"] - ["org.springframework.core.io", "ResourceLoader", True, "getResource", "", "", "Argument[0]", "ReturnValue", "taint", "manual", "unsafe-url-forward"] diff --git a/java/ql/lib/ext/flexjson.model.yml b/java/ql/lib/ext/flexjson.model.yml index 59249214262..b0c9456cfe0 100644 --- a/java/ql/lib/ext/flexjson.model.yml +++ b/java/ql/lib/ext/flexjson.model.yml @@ -3,4 +3,4 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["flexjson", "JSONDeserializer", True, "use", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] + - ["flexjson", "JSONDeserializer", True, "use", "", "", "Argument[this]", "ReturnValue", "value", "manual"] diff --git a/java/ql/lib/ext/generated/kotlinstdlib.model.yml b/java/ql/lib/ext/generated/kotlinstdlib.model.yml index be3ee65d162..bd5f019db2e 100644 --- a/java/ql/lib/ext/generated/kotlinstdlib.model.yml +++ b/java/ql/lib/ext/generated/kotlinstdlib.model.yml @@ -24,18 +24,18 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["kotlin.collections", "AbstractCollection", true, "toString", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin.collections", "ArrayDeque", false, "ArrayDeque", "(Collection)", "", "Argument[0].Element", "Argument[-1]", "taint", "generated"] - - ["kotlin.collections", "ArrayDeque", false, "addFirst", "(Object)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["kotlin.collections", "ArrayDeque", false, "addLast", "(Object)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["kotlin.collections", "ArrayDeque", false, "first", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin.collections", "ArrayDeque", false, "firstOrNull", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin.collections", "ArrayDeque", false, "last", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin.collections", "ArrayDeque", false, "lastOrNull", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin.collections", "ArrayDeque", false, "removeFirst", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin.collections", "ArrayDeque", false, "removeFirstOrNull", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin.collections", "ArrayDeque", false, "removeLast", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin.collections", "ArrayDeque", false, "removeLastOrNull", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] + - ["kotlin.collections", "AbstractCollection", true, "toString", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin.collections", "ArrayDeque", false, "ArrayDeque", "(Collection)", "", "Argument[0].Element", "Argument[this]", "taint", "generated"] + - ["kotlin.collections", "ArrayDeque", false, "addFirst", "(Object)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["kotlin.collections", "ArrayDeque", false, "addLast", "(Object)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["kotlin.collections", "ArrayDeque", false, "first", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin.collections", "ArrayDeque", false, "firstOrNull", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin.collections", "ArrayDeque", false, "last", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin.collections", "ArrayDeque", false, "lastOrNull", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin.collections", "ArrayDeque", false, "removeFirst", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin.collections", "ArrayDeque", false, "removeFirstOrNull", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin.collections", "ArrayDeque", false, "removeLast", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin.collections", "ArrayDeque", false, "removeLastOrNull", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] - ["kotlin.collections", "ArraysKt", false, "asList", "(Object[])", "", "Argument[0].ArrayElement", "ReturnValue", "taint", "generated"] - ["kotlin.collections", "ArraysKt", false, "associateByTo", "(Object[],Map,Function1)", "", "Argument[1].Element", "ReturnValue", "taint", "generated"] - ["kotlin.collections", "ArraysKt", false, "associateByTo", "(Object[],Map,Function1,Function1)", "", "Argument[1].Element", "ReturnValue", "taint", "generated"] @@ -733,11 +733,11 @@ extensions: - ["kotlin.collections", "GroupingKt", false, "foldTo", "(Grouping,Map,Function2,Function3)", "", "Argument[1].Element", "ReturnValue", "taint", "generated"] - ["kotlin.collections", "GroupingKt", false, "foldTo", "(Grouping,Map,Object,Function2)", "", "Argument[1].Element", "ReturnValue", "taint", "generated"] - ["kotlin.collections", "GroupingKt", false, "reduceTo", "(Grouping,Map,Function3)", "", "Argument[1].Element", "ReturnValue", "taint", "generated"] - - ["kotlin.collections", "IndexedValue", false, "IndexedValue", "(int,Object)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["kotlin.collections", "IndexedValue", false, "component2", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] + - ["kotlin.collections", "IndexedValue", false, "IndexedValue", "(int,Object)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["kotlin.collections", "IndexedValue", false, "component2", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] - ["kotlin.collections", "IndexedValue", false, "copy", "(int,Object)", "", "Argument[1]", "ReturnValue", "taint", "generated"] - - ["kotlin.collections", "IndexedValue", false, "getValue", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin.collections", "IndexedValue", false, "toString", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] + - ["kotlin.collections", "IndexedValue", false, "getValue", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin.collections", "IndexedValue", false, "toString", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] - ["kotlin.collections", "MapAccessorsKt", false, "getValue", "(Map,Object,KProperty)", "", "Argument[0].Element", "ReturnValue", "taint", "generated"] - ["kotlin.collections", "MapAccessorsKt", false, "getVar", "(Map,Object,KProperty)", "", "Argument[0].Element", "ReturnValue", "taint", "generated"] - ["kotlin.collections", "MapAccessorsKt", false, "setValue", "(Map,Object,KProperty,Object)", "", "Argument[2]", "Argument[0].Element", "taint", "generated"] @@ -1021,24 +1021,24 @@ extensions: - ["kotlin.comparisons", "ComparisonsKt", false, "minOf", "(Object,Object,Object,Comparator)", "", "Argument[2]", "ReturnValue", "taint", "generated"] - ["kotlin.comparisons", "ComparisonsKt", false, "minOf", "(Object,Object[],Comparator)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["kotlin.comparisons", "ComparisonsKt", false, "reversed", "(Comparator)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - - ["kotlin.coroutines", "AbstractCoroutineContextElement", true, "AbstractCoroutineContextElement", "(Key)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["kotlin.coroutines", "AbstractCoroutineContextKey", true, "AbstractCoroutineContextKey", "(Key,Function1)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["kotlin.coroutines", "AbstractCoroutineContextKey", true, "AbstractCoroutineContextKey", "(Key,Function1)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["kotlin.coroutines", "CoroutineContext", true, "fold", "(Object,Function2)", "", "Argument[-1]", "ReturnValue", "taint", "generated"] + - ["kotlin.coroutines", "AbstractCoroutineContextElement", true, "AbstractCoroutineContextElement", "(Key)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["kotlin.coroutines", "AbstractCoroutineContextKey", true, "AbstractCoroutineContextKey", "(Key,Function1)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["kotlin.coroutines", "AbstractCoroutineContextKey", true, "AbstractCoroutineContextKey", "(Key,Function1)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["kotlin.coroutines", "CoroutineContext", true, "fold", "(Object,Function2)", "", "Argument[this]", "ReturnValue", "taint", "generated"] - ["kotlin.coroutines", "CoroutineContext", true, "fold", "(Object,Function2)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - - ["kotlin.coroutines", "CoroutineContext", true, "get", "(Key)", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin.coroutines", "CoroutineContext", true, "minusKey", "(Key)", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin.coroutines", "CoroutineContext", true, "minusKey", "(Key)", "", "Argument[-1]", "ReturnValue", "value", "generated"] - - ["kotlin.coroutines", "CoroutineContext", true, "plus", "(CoroutineContext)", "", "Argument[-1]", "ReturnValue", "taint", "generated"] + - ["kotlin.coroutines", "CoroutineContext", true, "get", "(Key)", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin.coroutines", "CoroutineContext", true, "minusKey", "(Key)", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin.coroutines", "CoroutineContext", true, "minusKey", "(Key)", "", "Argument[this]", "ReturnValue", "value", "generated"] + - ["kotlin.coroutines", "CoroutineContext", true, "plus", "(CoroutineContext)", "", "Argument[this]", "ReturnValue", "taint", "generated"] - ["kotlin.coroutines", "CoroutineContext", true, "plus", "(CoroutineContext)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - - ["kotlin.coroutines", "CoroutineContext$Element", true, "getKey", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] + - ["kotlin.coroutines", "CoroutineContext$Element", true, "getKey", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] - ["kotlin.coroutines", "CoroutineContextImplKt", false, "getPolymorphicElement", "(Element,Key)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["kotlin.coroutines", "CoroutineContextImplKt", false, "minusPolymorphicKey", "(Element,Key)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["kotlin.coroutines.intrinsics", "IntrinsicsKt", false, "intercepted", "(Continuation)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - - ["kotlin.coroutines.jvm.internal", "CoroutineStackFrame", true, "getCallerFrame", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin.io", "AccessDeniedException", false, "AccessDeniedException", "(File,File,String)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["kotlin.io", "AccessDeniedException", false, "AccessDeniedException", "(File,File,String)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["kotlin.io", "AccessDeniedException", false, "AccessDeniedException", "(File,File,String)", "", "Argument[2]", "Argument[-1]", "taint", "generated"] + - ["kotlin.coroutines.jvm.internal", "CoroutineStackFrame", true, "getCallerFrame", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin.io", "AccessDeniedException", false, "AccessDeniedException", "(File,File,String)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["kotlin.io", "AccessDeniedException", false, "AccessDeniedException", "(File,File,String)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["kotlin.io", "AccessDeniedException", false, "AccessDeniedException", "(File,File,String)", "", "Argument[2]", "Argument[this]", "taint", "generated"] - ["kotlin.io", "ByteStreamsKt", false, "buffered", "(InputStream,int)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["kotlin.io", "ByteStreamsKt", false, "buffered", "(OutputStream,int)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["kotlin.io", "ByteStreamsKt", false, "bufferedReader", "(InputStream,Charset)", "", "Argument[0]", "ReturnValue", "taint", "generated"] @@ -1050,21 +1050,21 @@ extensions: - ["kotlin.io", "ByteStreamsKt", false, "readBytes", "(InputStream,int)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["kotlin.io", "ByteStreamsKt", false, "reader", "(InputStream,Charset)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["kotlin.io", "CloseableKt", false, "use", "(Closeable,Function1)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - - ["kotlin.io", "FileAlreadyExistsException", false, "FileAlreadyExistsException", "(File,File,String)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["kotlin.io", "FileAlreadyExistsException", false, "FileAlreadyExistsException", "(File,File,String)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["kotlin.io", "FileAlreadyExistsException", false, "FileAlreadyExistsException", "(File,File,String)", "", "Argument[2]", "Argument[-1]", "taint", "generated"] - - ["kotlin.io", "FileSystemException", true, "FileSystemException", "(File,File,String)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["kotlin.io", "FileSystemException", true, "FileSystemException", "(File,File,String)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["kotlin.io", "FileSystemException", true, "FileSystemException", "(File,File,String)", "", "Argument[2]", "Argument[-1]", "taint", "generated"] - - ["kotlin.io", "FileSystemException", true, "getFile", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin.io", "FileSystemException", true, "getOther", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin.io", "FileSystemException", true, "getReason", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin.io", "FileTreeWalk", false, "maxDepth", "(int)", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin.io", "FileTreeWalk", false, "onEnter", "(Function1)", "", "Argument[-1]", "ReturnValue", "taint", "generated"] + - ["kotlin.io", "FileAlreadyExistsException", false, "FileAlreadyExistsException", "(File,File,String)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["kotlin.io", "FileAlreadyExistsException", false, "FileAlreadyExistsException", "(File,File,String)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["kotlin.io", "FileAlreadyExistsException", false, "FileAlreadyExistsException", "(File,File,String)", "", "Argument[2]", "Argument[this]", "taint", "generated"] + - ["kotlin.io", "FileSystemException", true, "FileSystemException", "(File,File,String)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["kotlin.io", "FileSystemException", true, "FileSystemException", "(File,File,String)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["kotlin.io", "FileSystemException", true, "FileSystemException", "(File,File,String)", "", "Argument[2]", "Argument[this]", "taint", "generated"] + - ["kotlin.io", "FileSystemException", true, "getFile", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin.io", "FileSystemException", true, "getOther", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin.io", "FileSystemException", true, "getReason", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin.io", "FileTreeWalk", false, "maxDepth", "(int)", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin.io", "FileTreeWalk", false, "onEnter", "(Function1)", "", "Argument[this]", "ReturnValue", "taint", "generated"] - ["kotlin.io", "FileTreeWalk", false, "onEnter", "(Function1)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - - ["kotlin.io", "FileTreeWalk", false, "onFail", "(Function2)", "", "Argument[-1]", "ReturnValue", "taint", "generated"] + - ["kotlin.io", "FileTreeWalk", false, "onFail", "(Function2)", "", "Argument[this]", "ReturnValue", "taint", "generated"] - ["kotlin.io", "FileTreeWalk", false, "onFail", "(Function2)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - - ["kotlin.io", "FileTreeWalk", false, "onLeave", "(Function1)", "", "Argument[-1]", "ReturnValue", "taint", "generated"] + - ["kotlin.io", "FileTreeWalk", false, "onLeave", "(Function1)", "", "Argument[this]", "ReturnValue", "taint", "generated"] - ["kotlin.io", "FileTreeWalk", false, "onLeave", "(Function1)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["kotlin.io", "FilesKt", false, "copyTo", "(File,File,boolean,int)", "", "Argument[1]", "ReturnValue", "taint", "generated"] - ["kotlin.io", "FilesKt", false, "relativeToOrSelf", "(File,File)", "", "Argument[0]", "ReturnValue", "taint", "generated"] @@ -1075,9 +1075,9 @@ extensions: - ["kotlin.io", "FilesKt", false, "walk", "(File,FileWalkDirection)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["kotlin.io", "FilesKt", false, "walkBottomUp", "(File)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["kotlin.io", "FilesKt", false, "walkTopDown", "(File)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - - ["kotlin.io", "NoSuchFileException", false, "NoSuchFileException", "(File,File,String)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["kotlin.io", "NoSuchFileException", false, "NoSuchFileException", "(File,File,String)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["kotlin.io", "NoSuchFileException", false, "NoSuchFileException", "(File,File,String)", "", "Argument[2]", "Argument[-1]", "taint", "generated"] + - ["kotlin.io", "NoSuchFileException", false, "NoSuchFileException", "(File,File,String)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["kotlin.io", "NoSuchFileException", false, "NoSuchFileException", "(File,File,String)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["kotlin.io", "NoSuchFileException", false, "NoSuchFileException", "(File,File,String)", "", "Argument[2]", "Argument[this]", "taint", "generated"] - ["kotlin.io", "TextStreamsKt", false, "buffered", "(Reader,int)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["kotlin.io", "TextStreamsKt", false, "buffered", "(Writer,int)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["kotlin.io", "TextStreamsKt", false, "copyTo", "(Reader,Writer,int)", "", "Argument[0]", "Argument[1]", "taint", "generated"] @@ -1086,104 +1086,104 @@ extensions: - ["kotlin.io", "TextStreamsKt", false, "readText", "(Reader)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["kotlin.io", "TextStreamsKt", false, "reader", "(String)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["kotlin.io", "TextStreamsKt", false, "useLines", "(Reader,Function1)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - - ["kotlin.jvm.internal", "AdaptedFunctionReference", true, "AdaptedFunctionReference", "(int,Class,String,String,int)", "", "Argument[2]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "AdaptedFunctionReference", true, "AdaptedFunctionReference", "(int,Class,String,String,int)", "", "Argument[3]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "AdaptedFunctionReference", true, "AdaptedFunctionReference", "(int,Object,Class,String,String,int)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "AdaptedFunctionReference", true, "AdaptedFunctionReference", "(int,Object,Class,String,String,int)", "", "Argument[3]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "AdaptedFunctionReference", true, "AdaptedFunctionReference", "(int,Object,Class,String,String,int)", "", "Argument[4]", "Argument[-1]", "taint", "generated"] + - ["kotlin.jvm.internal", "AdaptedFunctionReference", true, "AdaptedFunctionReference", "(int,Class,String,String,int)", "", "Argument[2]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "AdaptedFunctionReference", true, "AdaptedFunctionReference", "(int,Class,String,String,int)", "", "Argument[3]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "AdaptedFunctionReference", true, "AdaptedFunctionReference", "(int,Object,Class,String,String,int)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "AdaptedFunctionReference", true, "AdaptedFunctionReference", "(int,Object,Class,String,String,int)", "", "Argument[3]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "AdaptedFunctionReference", true, "AdaptedFunctionReference", "(int,Object,Class,String,String,int)", "", "Argument[4]", "Argument[this]", "taint", "generated"] - ["kotlin.jvm.internal", "ArrayIteratorKt", false, "iterator", "(Object[])", "", "Argument[0].ArrayElement", "ReturnValue", "taint", "generated"] - ["kotlin.jvm.internal", "ArrayIteratorsKt", false, "iterator", "(byte[])", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["kotlin.jvm.internal", "ArrayIteratorsKt", false, "iterator", "(char[])", "", "Argument[0]", "ReturnValue", "taint", "generated"] - - ["kotlin.jvm.internal", "ByteSpreadBuilder", false, "toArray", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin.jvm.internal", "CallableReference", true, "compute", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin.jvm.internal", "CallableReference", true, "getBoundReceiver", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin.jvm.internal", "CallableReference", true, "getSignature", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin.jvm.internal", "CharSpreadBuilder", false, "toArray", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin.jvm.internal", "ClassReference$Companion", false, "getClassQualifiedName", "(Class)", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin.jvm.internal", "ClassReference$Companion", false, "getClassSimpleName", "(Class)", "", "Argument[-1]", "ReturnValue", "taint", "generated"] + - ["kotlin.jvm.internal", "ByteSpreadBuilder", false, "toArray", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin.jvm.internal", "CallableReference", true, "compute", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin.jvm.internal", "CallableReference", true, "getBoundReceiver", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin.jvm.internal", "CallableReference", true, "getSignature", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin.jvm.internal", "CharSpreadBuilder", false, "toArray", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin.jvm.internal", "ClassReference$Companion", false, "getClassQualifiedName", "(Class)", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin.jvm.internal", "ClassReference$Companion", false, "getClassSimpleName", "(Class)", "", "Argument[this]", "ReturnValue", "taint", "generated"] - ["kotlin.jvm.internal", "CollectionToArray", false, "toArray", "(Collection)", "", "Argument[0].Element", "ReturnValue", "taint", "generated"] - ["kotlin.jvm.internal", "CollectionToArray", false, "toArray", "(Collection,Object[])", "", "Argument[0].Element", "ReturnValue", "taint", "generated"] - - ["kotlin.jvm.internal", "FunctionReference", true, "FunctionReference", "(int,Object)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "FunctionReference", true, "FunctionReference", "(int,Object,Class,String,String,int)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "FunctionReference", true, "FunctionReference", "(int,Object,Class,String,String,int)", "", "Argument[3]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "FunctionReference", true, "FunctionReference", "(int,Object,Class,String,String,int)", "", "Argument[4]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "FunctionReference", true, "toString", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin.jvm.internal", "FunctionReferenceImpl", true, "FunctionReferenceImpl", "(int,Class,String,String,int)", "", "Argument[2]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "FunctionReferenceImpl", true, "FunctionReferenceImpl", "(int,Class,String,String,int)", "", "Argument[3]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "FunctionReferenceImpl", true, "FunctionReferenceImpl", "(int,KDeclarationContainer,String,String)", "", "Argument[2]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "FunctionReferenceImpl", true, "FunctionReferenceImpl", "(int,KDeclarationContainer,String,String)", "", "Argument[3]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "FunctionReferenceImpl", true, "FunctionReferenceImpl", "(int,Object,Class,String,String,int)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "FunctionReferenceImpl", true, "FunctionReferenceImpl", "(int,Object,Class,String,String,int)", "", "Argument[3]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "FunctionReferenceImpl", true, "FunctionReferenceImpl", "(int,Object,Class,String,String,int)", "", "Argument[4]", "Argument[-1]", "taint", "generated"] + - ["kotlin.jvm.internal", "FunctionReference", true, "FunctionReference", "(int,Object)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "FunctionReference", true, "FunctionReference", "(int,Object,Class,String,String,int)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "FunctionReference", true, "FunctionReference", "(int,Object,Class,String,String,int)", "", "Argument[3]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "FunctionReference", true, "FunctionReference", "(int,Object,Class,String,String,int)", "", "Argument[4]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "FunctionReference", true, "toString", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin.jvm.internal", "FunctionReferenceImpl", true, "FunctionReferenceImpl", "(int,Class,String,String,int)", "", "Argument[2]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "FunctionReferenceImpl", true, "FunctionReferenceImpl", "(int,Class,String,String,int)", "", "Argument[3]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "FunctionReferenceImpl", true, "FunctionReferenceImpl", "(int,KDeclarationContainer,String,String)", "", "Argument[2]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "FunctionReferenceImpl", true, "FunctionReferenceImpl", "(int,KDeclarationContainer,String,String)", "", "Argument[3]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "FunctionReferenceImpl", true, "FunctionReferenceImpl", "(int,Object,Class,String,String,int)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "FunctionReferenceImpl", true, "FunctionReferenceImpl", "(int,Object,Class,String,String,int)", "", "Argument[3]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "FunctionReferenceImpl", true, "FunctionReferenceImpl", "(int,Object,Class,String,String,int)", "", "Argument[4]", "Argument[this]", "taint", "generated"] - ["kotlin.jvm.internal", "Intrinsics", true, "stringPlus", "(String,Object)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["kotlin.jvm.internal", "Intrinsics", true, "stringPlus", "(String,Object)", "", "Argument[1]", "ReturnValue", "taint", "generated"] - - ["kotlin.jvm.internal", "MutablePropertyReference", true, "MutablePropertyReference", "(Object)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "MutablePropertyReference", true, "MutablePropertyReference", "(Object,Class,String,String,int)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "MutablePropertyReference", true, "MutablePropertyReference", "(Object,Class,String,String,int)", "", "Argument[2]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "MutablePropertyReference", true, "MutablePropertyReference", "(Object,Class,String,String,int)", "", "Argument[3]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "MutablePropertyReference0", true, "MutablePropertyReference0", "(Object)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "MutablePropertyReference0", true, "MutablePropertyReference0", "(Object,Class,String,String,int)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "MutablePropertyReference0", true, "MutablePropertyReference0", "(Object,Class,String,String,int)", "", "Argument[2]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "MutablePropertyReference0", true, "MutablePropertyReference0", "(Object,Class,String,String,int)", "", "Argument[3]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "MutablePropertyReference0Impl", true, "MutablePropertyReference0Impl", "(Class,String,String,int)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "MutablePropertyReference0Impl", true, "MutablePropertyReference0Impl", "(Class,String,String,int)", "", "Argument[2]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "MutablePropertyReference0Impl", true, "MutablePropertyReference0Impl", "(KDeclarationContainer,String,String)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "MutablePropertyReference0Impl", true, "MutablePropertyReference0Impl", "(KDeclarationContainer,String,String)", "", "Argument[2]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "MutablePropertyReference0Impl", true, "MutablePropertyReference0Impl", "(Object,Class,String,String,int)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "MutablePropertyReference0Impl", true, "MutablePropertyReference0Impl", "(Object,Class,String,String,int)", "", "Argument[2]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "MutablePropertyReference0Impl", true, "MutablePropertyReference0Impl", "(Object,Class,String,String,int)", "", "Argument[3]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "MutablePropertyReference1", true, "MutablePropertyReference1", "(Object)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "MutablePropertyReference1", true, "MutablePropertyReference1", "(Object,Class,String,String,int)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "MutablePropertyReference1", true, "MutablePropertyReference1", "(Object,Class,String,String,int)", "", "Argument[2]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "MutablePropertyReference1", true, "MutablePropertyReference1", "(Object,Class,String,String,int)", "", "Argument[3]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "MutablePropertyReference1Impl", true, "MutablePropertyReference1Impl", "(Class,String,String,int)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "MutablePropertyReference1Impl", true, "MutablePropertyReference1Impl", "(Class,String,String,int)", "", "Argument[2]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "MutablePropertyReference1Impl", true, "MutablePropertyReference1Impl", "(KDeclarationContainer,String,String)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "MutablePropertyReference1Impl", true, "MutablePropertyReference1Impl", "(KDeclarationContainer,String,String)", "", "Argument[2]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "MutablePropertyReference1Impl", true, "MutablePropertyReference1Impl", "(Object,Class,String,String,int)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "MutablePropertyReference1Impl", true, "MutablePropertyReference1Impl", "(Object,Class,String,String,int)", "", "Argument[2]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "MutablePropertyReference1Impl", true, "MutablePropertyReference1Impl", "(Object,Class,String,String,int)", "", "Argument[3]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "MutablePropertyReference2", true, "MutablePropertyReference2", "(Class,String,String,int)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "MutablePropertyReference2", true, "MutablePropertyReference2", "(Class,String,String,int)", "", "Argument[2]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "MutablePropertyReference2Impl", true, "MutablePropertyReference2Impl", "(Class,String,String,int)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "MutablePropertyReference2Impl", true, "MutablePropertyReference2Impl", "(Class,String,String,int)", "", "Argument[2]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "MutablePropertyReference2Impl", true, "MutablePropertyReference2Impl", "(KDeclarationContainer,String,String)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "MutablePropertyReference2Impl", true, "MutablePropertyReference2Impl", "(KDeclarationContainer,String,String)", "", "Argument[2]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "PackageReference", false, "PackageReference", "(Class,String)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "PrimitiveSpreadBuilder", true, "addSpread", "(Object)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "PropertyReference", true, "PropertyReference", "(Object)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "PropertyReference", true, "PropertyReference", "(Object,Class,String,String,int)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "PropertyReference", true, "PropertyReference", "(Object,Class,String,String,int)", "", "Argument[2]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "PropertyReference", true, "PropertyReference", "(Object,Class,String,String,int)", "", "Argument[3]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "PropertyReference", true, "toString", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin.jvm.internal", "PropertyReference0", true, "PropertyReference0", "(Object)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "PropertyReference0", true, "PropertyReference0", "(Object,Class,String,String,int)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "PropertyReference0", true, "PropertyReference0", "(Object,Class,String,String,int)", "", "Argument[2]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "PropertyReference0", true, "PropertyReference0", "(Object,Class,String,String,int)", "", "Argument[3]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "PropertyReference0Impl", true, "PropertyReference0Impl", "(Class,String,String,int)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "PropertyReference0Impl", true, "PropertyReference0Impl", "(Class,String,String,int)", "", "Argument[2]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "PropertyReference0Impl", true, "PropertyReference0Impl", "(KDeclarationContainer,String,String)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "PropertyReference0Impl", true, "PropertyReference0Impl", "(KDeclarationContainer,String,String)", "", "Argument[2]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "PropertyReference0Impl", true, "PropertyReference0Impl", "(Object,Class,String,String,int)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "PropertyReference0Impl", true, "PropertyReference0Impl", "(Object,Class,String,String,int)", "", "Argument[2]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "PropertyReference0Impl", true, "PropertyReference0Impl", "(Object,Class,String,String,int)", "", "Argument[3]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "PropertyReference1", true, "PropertyReference1", "(Object)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "PropertyReference1", true, "PropertyReference1", "(Object,Class,String,String,int)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "PropertyReference1", true, "PropertyReference1", "(Object,Class,String,String,int)", "", "Argument[2]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "PropertyReference1", true, "PropertyReference1", "(Object,Class,String,String,int)", "", "Argument[3]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "PropertyReference1Impl", true, "PropertyReference1Impl", "(Class,String,String,int)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "PropertyReference1Impl", true, "PropertyReference1Impl", "(Class,String,String,int)", "", "Argument[2]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "PropertyReference1Impl", true, "PropertyReference1Impl", "(KDeclarationContainer,String,String)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "PropertyReference1Impl", true, "PropertyReference1Impl", "(KDeclarationContainer,String,String)", "", "Argument[2]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "PropertyReference1Impl", true, "PropertyReference1Impl", "(Object,Class,String,String,int)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "PropertyReference1Impl", true, "PropertyReference1Impl", "(Object,Class,String,String,int)", "", "Argument[2]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "PropertyReference1Impl", true, "PropertyReference1Impl", "(Object,Class,String,String,int)", "", "Argument[3]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "PropertyReference2", true, "PropertyReference2", "(Class,String,String,int)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "PropertyReference2", true, "PropertyReference2", "(Class,String,String,int)", "", "Argument[2]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "PropertyReference2Impl", true, "PropertyReference2Impl", "(Class,String,String,int)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "PropertyReference2Impl", true, "PropertyReference2Impl", "(Class,String,String,int)", "", "Argument[2]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "PropertyReference2Impl", true, "PropertyReference2Impl", "(KDeclarationContainer,String,String)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "PropertyReference2Impl", true, "PropertyReference2Impl", "(KDeclarationContainer,String,String)", "", "Argument[2]", "Argument[-1]", "taint", "generated"] + - ["kotlin.jvm.internal", "MutablePropertyReference", true, "MutablePropertyReference", "(Object)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "MutablePropertyReference", true, "MutablePropertyReference", "(Object,Class,String,String,int)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "MutablePropertyReference", true, "MutablePropertyReference", "(Object,Class,String,String,int)", "", "Argument[2]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "MutablePropertyReference", true, "MutablePropertyReference", "(Object,Class,String,String,int)", "", "Argument[3]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "MutablePropertyReference0", true, "MutablePropertyReference0", "(Object)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "MutablePropertyReference0", true, "MutablePropertyReference0", "(Object,Class,String,String,int)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "MutablePropertyReference0", true, "MutablePropertyReference0", "(Object,Class,String,String,int)", "", "Argument[2]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "MutablePropertyReference0", true, "MutablePropertyReference0", "(Object,Class,String,String,int)", "", "Argument[3]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "MutablePropertyReference0Impl", true, "MutablePropertyReference0Impl", "(Class,String,String,int)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "MutablePropertyReference0Impl", true, "MutablePropertyReference0Impl", "(Class,String,String,int)", "", "Argument[2]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "MutablePropertyReference0Impl", true, "MutablePropertyReference0Impl", "(KDeclarationContainer,String,String)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "MutablePropertyReference0Impl", true, "MutablePropertyReference0Impl", "(KDeclarationContainer,String,String)", "", "Argument[2]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "MutablePropertyReference0Impl", true, "MutablePropertyReference0Impl", "(Object,Class,String,String,int)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "MutablePropertyReference0Impl", true, "MutablePropertyReference0Impl", "(Object,Class,String,String,int)", "", "Argument[2]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "MutablePropertyReference0Impl", true, "MutablePropertyReference0Impl", "(Object,Class,String,String,int)", "", "Argument[3]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "MutablePropertyReference1", true, "MutablePropertyReference1", "(Object)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "MutablePropertyReference1", true, "MutablePropertyReference1", "(Object,Class,String,String,int)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "MutablePropertyReference1", true, "MutablePropertyReference1", "(Object,Class,String,String,int)", "", "Argument[2]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "MutablePropertyReference1", true, "MutablePropertyReference1", "(Object,Class,String,String,int)", "", "Argument[3]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "MutablePropertyReference1Impl", true, "MutablePropertyReference1Impl", "(Class,String,String,int)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "MutablePropertyReference1Impl", true, "MutablePropertyReference1Impl", "(Class,String,String,int)", "", "Argument[2]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "MutablePropertyReference1Impl", true, "MutablePropertyReference1Impl", "(KDeclarationContainer,String,String)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "MutablePropertyReference1Impl", true, "MutablePropertyReference1Impl", "(KDeclarationContainer,String,String)", "", "Argument[2]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "MutablePropertyReference1Impl", true, "MutablePropertyReference1Impl", "(Object,Class,String,String,int)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "MutablePropertyReference1Impl", true, "MutablePropertyReference1Impl", "(Object,Class,String,String,int)", "", "Argument[2]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "MutablePropertyReference1Impl", true, "MutablePropertyReference1Impl", "(Object,Class,String,String,int)", "", "Argument[3]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "MutablePropertyReference2", true, "MutablePropertyReference2", "(Class,String,String,int)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "MutablePropertyReference2", true, "MutablePropertyReference2", "(Class,String,String,int)", "", "Argument[2]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "MutablePropertyReference2Impl", true, "MutablePropertyReference2Impl", "(Class,String,String,int)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "MutablePropertyReference2Impl", true, "MutablePropertyReference2Impl", "(Class,String,String,int)", "", "Argument[2]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "MutablePropertyReference2Impl", true, "MutablePropertyReference2Impl", "(KDeclarationContainer,String,String)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "MutablePropertyReference2Impl", true, "MutablePropertyReference2Impl", "(KDeclarationContainer,String,String)", "", "Argument[2]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "PackageReference", false, "PackageReference", "(Class,String)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "PrimitiveSpreadBuilder", true, "addSpread", "(Object)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "PropertyReference", true, "PropertyReference", "(Object)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "PropertyReference", true, "PropertyReference", "(Object,Class,String,String,int)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "PropertyReference", true, "PropertyReference", "(Object,Class,String,String,int)", "", "Argument[2]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "PropertyReference", true, "PropertyReference", "(Object,Class,String,String,int)", "", "Argument[3]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "PropertyReference", true, "toString", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin.jvm.internal", "PropertyReference0", true, "PropertyReference0", "(Object)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "PropertyReference0", true, "PropertyReference0", "(Object,Class,String,String,int)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "PropertyReference0", true, "PropertyReference0", "(Object,Class,String,String,int)", "", "Argument[2]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "PropertyReference0", true, "PropertyReference0", "(Object,Class,String,String,int)", "", "Argument[3]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "PropertyReference0Impl", true, "PropertyReference0Impl", "(Class,String,String,int)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "PropertyReference0Impl", true, "PropertyReference0Impl", "(Class,String,String,int)", "", "Argument[2]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "PropertyReference0Impl", true, "PropertyReference0Impl", "(KDeclarationContainer,String,String)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "PropertyReference0Impl", true, "PropertyReference0Impl", "(KDeclarationContainer,String,String)", "", "Argument[2]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "PropertyReference0Impl", true, "PropertyReference0Impl", "(Object,Class,String,String,int)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "PropertyReference0Impl", true, "PropertyReference0Impl", "(Object,Class,String,String,int)", "", "Argument[2]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "PropertyReference0Impl", true, "PropertyReference0Impl", "(Object,Class,String,String,int)", "", "Argument[3]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "PropertyReference1", true, "PropertyReference1", "(Object)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "PropertyReference1", true, "PropertyReference1", "(Object,Class,String,String,int)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "PropertyReference1", true, "PropertyReference1", "(Object,Class,String,String,int)", "", "Argument[2]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "PropertyReference1", true, "PropertyReference1", "(Object,Class,String,String,int)", "", "Argument[3]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "PropertyReference1Impl", true, "PropertyReference1Impl", "(Class,String,String,int)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "PropertyReference1Impl", true, "PropertyReference1Impl", "(Class,String,String,int)", "", "Argument[2]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "PropertyReference1Impl", true, "PropertyReference1Impl", "(KDeclarationContainer,String,String)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "PropertyReference1Impl", true, "PropertyReference1Impl", "(KDeclarationContainer,String,String)", "", "Argument[2]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "PropertyReference1Impl", true, "PropertyReference1Impl", "(Object,Class,String,String,int)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "PropertyReference1Impl", true, "PropertyReference1Impl", "(Object,Class,String,String,int)", "", "Argument[2]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "PropertyReference1Impl", true, "PropertyReference1Impl", "(Object,Class,String,String,int)", "", "Argument[3]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "PropertyReference2", true, "PropertyReference2", "(Class,String,String,int)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "PropertyReference2", true, "PropertyReference2", "(Class,String,String,int)", "", "Argument[2]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "PropertyReference2Impl", true, "PropertyReference2Impl", "(Class,String,String,int)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "PropertyReference2Impl", true, "PropertyReference2Impl", "(Class,String,String,int)", "", "Argument[2]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "PropertyReference2Impl", true, "PropertyReference2Impl", "(KDeclarationContainer,String,String)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "PropertyReference2Impl", true, "PropertyReference2Impl", "(KDeclarationContainer,String,String)", "", "Argument[2]", "Argument[this]", "taint", "generated"] - ["kotlin.jvm.internal", "Reflection", true, "function", "(FunctionReference)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["kotlin.jvm.internal", "Reflection", true, "getOrCreateKotlinPackage", "(Class,String)", "", "Argument[1]", "ReturnValue", "taint", "generated"] - ["kotlin.jvm.internal", "Reflection", true, "mutableCollectionType", "(KType)", "", "Argument[0]", "ReturnValue", "taint", "generated"] @@ -1224,10 +1224,10 @@ extensions: - ["kotlin.jvm.internal", "ReflectionFactory", true, "typeOf", "(KClassifier,List,boolean)", "", "Argument[1].Element", "ReturnValue", "taint", "generated"] - ["kotlin.jvm.internal", "ReflectionFactory", true, "typeParameter", "(Object,String,KVariance,boolean)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["kotlin.jvm.internal", "ReflectionFactory", true, "typeParameter", "(Object,String,KVariance,boolean)", "", "Argument[1]", "ReturnValue", "taint", "generated"] - - ["kotlin.jvm.internal", "SpreadBuilder", true, "add", "(Object)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "SpreadBuilder", true, "addSpread", "(Object)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "SpreadBuilder", true, "toArray", "(Object[])", "", "Argument[-1]", "Argument[0].ArrayElement", "taint", "generated"] - - ["kotlin.jvm.internal", "SpreadBuilder", true, "toArray", "(Object[])", "", "Argument[-1]", "ReturnValue", "taint", "generated"] + - ["kotlin.jvm.internal", "SpreadBuilder", true, "add", "(Object)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "SpreadBuilder", true, "addSpread", "(Object)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "SpreadBuilder", true, "toArray", "(Object[])", "", "Argument[this]", "Argument[0].ArrayElement", "taint", "generated"] + - ["kotlin.jvm.internal", "SpreadBuilder", true, "toArray", "(Object[])", "", "Argument[this]", "ReturnValue", "taint", "generated"] - ["kotlin.jvm.internal", "TypeIntrinsics", true, "asMutableCollection", "(Object)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["kotlin.jvm.internal", "TypeIntrinsics", true, "asMutableCollection", "(Object,String)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["kotlin.jvm.internal", "TypeIntrinsics", true, "asMutableIterable", "(Object)", "", "Argument[0]", "ReturnValue", "taint", "generated"] @@ -1254,25 +1254,25 @@ extensions: - ["kotlin.jvm.internal", "TypeIntrinsics", true, "castToMap", "(Object)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["kotlin.jvm.internal", "TypeIntrinsics", true, "castToMapEntry", "(Object)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["kotlin.jvm.internal", "TypeIntrinsics", true, "castToSet", "(Object)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - - ["kotlin.jvm.internal", "TypeParameterReference", false, "TypeParameterReference", "(Object,String,KVariance,boolean)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "TypeParameterReference", false, "TypeParameterReference", "(Object,String,KVariance,boolean)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "TypeParameterReference", false, "setUpperBounds", "(List)", "", "Argument[0].Element", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "TypeReference", false, "TypeReference", "(KClassifier,List,KType,int)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "TypeReference", false, "TypeReference", "(KClassifier,List,KType,int)", "", "Argument[1].Element", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "TypeReference", false, "TypeReference", "(KClassifier,List,KType,int)", "", "Argument[2]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "TypeReference", false, "TypeReference", "(KClassifier,List,boolean)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "TypeReference", false, "TypeReference", "(KClassifier,List,boolean)", "", "Argument[1].Element", "Argument[-1]", "taint", "generated"] - - ["kotlin.jvm.internal", "TypeReference", false, "toString", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin.properties", "ObservableProperty", true, "ObservableProperty", "(Object)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] + - ["kotlin.jvm.internal", "TypeParameterReference", false, "TypeParameterReference", "(Object,String,KVariance,boolean)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "TypeParameterReference", false, "TypeParameterReference", "(Object,String,KVariance,boolean)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "TypeParameterReference", false, "setUpperBounds", "(List)", "", "Argument[0].Element", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "TypeReference", false, "TypeReference", "(KClassifier,List,KType,int)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "TypeReference", false, "TypeReference", "(KClassifier,List,KType,int)", "", "Argument[1].Element", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "TypeReference", false, "TypeReference", "(KClassifier,List,KType,int)", "", "Argument[2]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "TypeReference", false, "TypeReference", "(KClassifier,List,boolean)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "TypeReference", false, "TypeReference", "(KClassifier,List,boolean)", "", "Argument[1].Element", "Argument[this]", "taint", "generated"] + - ["kotlin.jvm.internal", "TypeReference", false, "toString", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin.properties", "ObservableProperty", true, "ObservableProperty", "(Object)", "", "Argument[0]", "Argument[this]", "taint", "generated"] - ["kotlin.random", "PlatformRandomKt", false, "asJavaRandom", "(Random)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["kotlin.random", "PlatformRandomKt", false, "asKotlinRandom", "(Random)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["kotlin.random", "Random", true, "nextBytes", "(byte[])", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["kotlin.random", "Random", true, "nextBytes", "(byte[],int,int)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["kotlin.random", "URandomKt", false, "nextUBytes", "(Random,UByteArray)", "", "Argument[1].Element", "ReturnValue", "taint", "generated"] - ["kotlin.random", "URandomKt", false, "nextUBytes", "(Random,UByteArray,int,int)", "", "Argument[1].Element", "ReturnValue", "taint", "generated"] - - ["kotlin.ranges", "CharRange$Companion", false, "getEMPTY", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin.ranges", "IntRange$Companion", false, "getEMPTY", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin.ranges", "LongRange$Companion", false, "getEMPTY", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] + - ["kotlin.ranges", "CharRange$Companion", false, "getEMPTY", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin.ranges", "IntRange$Companion", false, "getEMPTY", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin.ranges", "LongRange$Companion", false, "getEMPTY", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] - ["kotlin.ranges", "RangesKt", false, "coerceAtLeast", "(Comparable,Comparable)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["kotlin.ranges", "RangesKt", false, "coerceAtLeast", "(Comparable,Comparable)", "", "Argument[1]", "ReturnValue", "taint", "generated"] - ["kotlin.ranges", "RangesKt", false, "coerceAtMost", "(Comparable,Comparable)", "", "Argument[0]", "ReturnValue", "taint", "generated"] @@ -1286,28 +1286,28 @@ extensions: - ["kotlin.ranges", "RangesKt", false, "rangeTo", "(Comparable,Comparable)", "", "Argument[1]", "ReturnValue", "taint", "generated"] - ["kotlin.ranges", "RangesKt", false, "rangeUntil", "(Comparable,Comparable)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["kotlin.ranges", "RangesKt", false, "rangeUntil", "(Comparable,Comparable)", "", "Argument[1]", "ReturnValue", "taint", "generated"] - - ["kotlin.ranges", "UIntRange$Companion", false, "getEMPTY", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin.ranges", "ULongRange$Companion", false, "getEMPTY", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] + - ["kotlin.ranges", "UIntRange$Companion", false, "getEMPTY", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin.ranges", "ULongRange$Companion", false, "getEMPTY", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] - ["kotlin.reflect", "KClasses", false, "cast", "(KClass,Object)", "", "Argument[1]", "ReturnValue", "taint", "generated"] - ["kotlin.reflect", "KClasses", false, "safeCast", "(KClass,Object)", "", "Argument[1]", "ReturnValue", "taint", "generated"] - - ["kotlin.reflect", "KType", true, "getArguments", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin.reflect", "KType", true, "getClassifier", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin.reflect", "KTypeParameter", true, "getName", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin.reflect", "KTypeParameter", true, "getUpperBounds", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin.reflect", "KTypeProjection", false, "KTypeProjection", "(KVariance,KType)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["kotlin.reflect", "KTypeProjection", false, "component2", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] + - ["kotlin.reflect", "KType", true, "getArguments", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin.reflect", "KType", true, "getClassifier", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin.reflect", "KTypeParameter", true, "getName", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin.reflect", "KTypeParameter", true, "getUpperBounds", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin.reflect", "KTypeProjection", false, "KTypeProjection", "(KVariance,KType)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["kotlin.reflect", "KTypeProjection", false, "component2", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] - ["kotlin.reflect", "KTypeProjection", false, "contravariant", "(KType)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["kotlin.reflect", "KTypeProjection", false, "copy", "(KVariance,KType)", "", "Argument[1]", "ReturnValue", "taint", "generated"] - ["kotlin.reflect", "KTypeProjection", false, "covariant", "(KType)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - - ["kotlin.reflect", "KTypeProjection", false, "getType", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] + - ["kotlin.reflect", "KTypeProjection", false, "getType", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] - ["kotlin.reflect", "KTypeProjection", false, "invariant", "(KType)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - - ["kotlin.reflect", "KTypeProjection", false, "toString", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] + - ["kotlin.reflect", "KTypeProjection", false, "toString", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] - ["kotlin.reflect", "KTypeProjection$Companion", false, "contravariant", "(KType)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["kotlin.reflect", "KTypeProjection$Companion", false, "covariant", "(KType)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["kotlin.reflect", "KTypeProjection$Companion", false, "invariant", "(KType)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["kotlin.reflect", "TypesJVMKt", false, "getJavaType", "(KType)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - - ["kotlin.reflect", "WildcardTypeImpl$Companion", false, "getSTAR", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin.sequences", "SequenceScope", true, "yieldAll", "(Sequence)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] + - ["kotlin.reflect", "WildcardTypeImpl$Companion", false, "getSTAR", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin.sequences", "SequenceScope", true, "yieldAll", "(Sequence)", "", "Argument[0]", "Argument[this]", "taint", "generated"] - ["kotlin.sequences", "SequencesKt", false, "asSequence", "(Sequence)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["kotlin.sequences", "SequencesKt", false, "associateBy", "(Sequence,Function1)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["kotlin.sequences", "SequencesKt", false, "associateByTo", "(Sequence,Map,Function1)", "", "Argument[0]", "Argument[1].Element", "taint", "generated"] @@ -1471,40 +1471,40 @@ extensions: - ["kotlin.sequences", "SequencesKt", false, "zip", "(Sequence,Sequence,Function2)", "", "Argument[1]", "ReturnValue", "taint", "generated"] - ["kotlin.sequences", "SequencesKt", false, "zip", "(Sequence,Sequence,Function2)", "", "Argument[2]", "ReturnValue", "taint", "generated"] - ["kotlin.text", "CharsKt", false, "plus", "(char,String)", "", "Argument[1]", "ReturnValue", "taint", "generated"] - - ["kotlin.text", "MatchGroup", false, "MatchGroup", "(String,IntRange)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["kotlin.text", "MatchGroup", false, "MatchGroup", "(String,IntRange)", "", "Argument[1].Element", "Argument[-1]", "taint", "generated"] - - ["kotlin.text", "MatchGroup", false, "component1", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin.text", "MatchGroup", false, "component2", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] + - ["kotlin.text", "MatchGroup", false, "MatchGroup", "(String,IntRange)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["kotlin.text", "MatchGroup", false, "MatchGroup", "(String,IntRange)", "", "Argument[1].Element", "Argument[this]", "taint", "generated"] + - ["kotlin.text", "MatchGroup", false, "component1", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin.text", "MatchGroup", false, "component2", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] - ["kotlin.text", "MatchGroup", false, "copy", "(String,IntRange)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["kotlin.text", "MatchGroup", false, "copy", "(String,IntRange)", "", "Argument[1].Element", "ReturnValue", "taint", "generated"] - - ["kotlin.text", "MatchGroup", false, "getRange", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin.text", "MatchGroup", false, "getValue", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin.text", "MatchGroup", false, "toString", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin.text", "MatchResult", true, "getDestructured", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin.text", "MatchResult", true, "getGroupValues", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin.text", "MatchResult", true, "getGroups", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin.text", "MatchResult", true, "next", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin.text", "MatchResult$Destructured", false, "component1", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin.text", "MatchResult$Destructured", false, "component10", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin.text", "MatchResult$Destructured", false, "component2", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin.text", "MatchResult$Destructured", false, "component3", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin.text", "MatchResult$Destructured", false, "component4", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin.text", "MatchResult$Destructured", false, "component5", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin.text", "MatchResult$Destructured", false, "component6", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin.text", "MatchResult$Destructured", false, "component7", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin.text", "MatchResult$Destructured", false, "component8", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin.text", "MatchResult$Destructured", false, "component9", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin.text", "MatchResult$Destructured", false, "getMatch", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin.text", "MatchResult$Destructured", false, "toList", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] + - ["kotlin.text", "MatchGroup", false, "getRange", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin.text", "MatchGroup", false, "getValue", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin.text", "MatchGroup", false, "toString", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin.text", "MatchResult", true, "getDestructured", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin.text", "MatchResult", true, "getGroupValues", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin.text", "MatchResult", true, "getGroups", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin.text", "MatchResult", true, "next", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin.text", "MatchResult$Destructured", false, "component1", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin.text", "MatchResult$Destructured", false, "component10", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin.text", "MatchResult$Destructured", false, "component2", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin.text", "MatchResult$Destructured", false, "component3", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin.text", "MatchResult$Destructured", false, "component4", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin.text", "MatchResult$Destructured", false, "component5", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin.text", "MatchResult$Destructured", false, "component6", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin.text", "MatchResult$Destructured", false, "component7", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin.text", "MatchResult$Destructured", false, "component8", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin.text", "MatchResult$Destructured", false, "component9", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin.text", "MatchResult$Destructured", false, "getMatch", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin.text", "MatchResult$Destructured", false, "toList", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] - ["kotlin.text", "Regex", false, "find", "(CharSequence,int)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - - ["kotlin.text", "Regex", false, "getOptions", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] + - ["kotlin.text", "Regex", false, "getOptions", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] - ["kotlin.text", "Regex", false, "matchEntire", "(CharSequence)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["kotlin.text", "Regex", false, "replace", "(CharSequence,Function1)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["kotlin.text", "Regex", false, "replace", "(CharSequence,String)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["kotlin.text", "Regex", false, "replace", "(CharSequence,String)", "", "Argument[1]", "ReturnValue", "taint", "generated"] - ["kotlin.text", "Regex", false, "replaceFirst", "(CharSequence,String)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["kotlin.text", "Regex", false, "replaceFirst", "(CharSequence,String)", "", "Argument[1]", "ReturnValue", "taint", "generated"] - - ["kotlin.text", "Regex", false, "toPattern", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] + - ["kotlin.text", "Regex", false, "toPattern", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] - ["kotlin.text", "Regex$Companion", false, "escape", "(String)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["kotlin.text", "StringsKt", false, "String", "(StringBuffer)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["kotlin.text", "StringsKt", false, "String", "(StringBuilder)", "", "Argument[0]", "ReturnValue", "taint", "generated"] @@ -1763,54 +1763,54 @@ extensions: - ["kotlin.text", "StringsKt", false, "trimStart", "(CharSequence,char[])", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["kotlin.text", "StringsKt", false, "uppercase", "(String)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["kotlin.text", "StringsKt", false, "uppercase", "(String,Locale)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - - ["kotlin.time", "Duration", false, "div", "(double)", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin.time", "Duration", false, "div", "(int)", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin.time", "Duration", false, "getAbsoluteValue", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin.time", "Duration", false, "minus", "(Duration)", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin.time", "Duration", false, "plus", "(Duration)", "", "Argument[-1]", "ReturnValue", "value", "generated"] - - ["kotlin.time", "Duration", false, "times", "(double)", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin.time", "Duration", false, "times", "(int)", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin.time", "Duration$Companion", false, "getINFINITE", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin.time", "Duration$Companion", false, "getZERO", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] + - ["kotlin.time", "Duration", false, "div", "(double)", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin.time", "Duration", false, "div", "(int)", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin.time", "Duration", false, "getAbsoluteValue", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin.time", "Duration", false, "minus", "(Duration)", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin.time", "Duration", false, "plus", "(Duration)", "", "Argument[this]", "ReturnValue", "value", "generated"] + - ["kotlin.time", "Duration", false, "times", "(double)", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin.time", "Duration", false, "times", "(int)", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin.time", "Duration$Companion", false, "getINFINITE", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin.time", "Duration$Companion", false, "getZERO", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] - ["kotlin.time", "DurationKt", false, "times", "(double,Duration)", "", "Argument[1]", "ReturnValue", "taint", "generated"] - ["kotlin.time", "DurationKt", false, "times", "(int,Duration)", "", "Argument[1]", "ReturnValue", "taint", "generated"] - - ["kotlin.time", "TimeMark", true, "minus", "(Duration)", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin.time", "TimeMark", true, "plus", "(Duration)", "", "Argument[-1]", "ReturnValue", "taint", "generated"] + - ["kotlin.time", "TimeMark", true, "minus", "(Duration)", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin.time", "TimeMark", true, "plus", "(Duration)", "", "Argument[this]", "ReturnValue", "taint", "generated"] - ["kotlin.time", "TimeMark", true, "plus", "(Duration)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - - ["kotlin.time", "TimeSource", true, "markNow", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin.time", "TimedValue", false, "TimedValue", "(Object,Duration)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["kotlin.time", "TimedValue", false, "TimedValue", "(Object,Duration)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["kotlin.time", "TimedValue", false, "component1", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin.time", "TimedValue", false, "component2", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] + - ["kotlin.time", "TimeSource", true, "markNow", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin.time", "TimedValue", false, "TimedValue", "(Object,Duration)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["kotlin.time", "TimedValue", false, "TimedValue", "(Object,Duration)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["kotlin.time", "TimedValue", false, "component1", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin.time", "TimedValue", false, "component2", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] - ["kotlin.time", "TimedValue", false, "copy", "(Object,Duration)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["kotlin.time", "TimedValue", false, "copy", "(Object,Duration)", "", "Argument[1]", "ReturnValue", "taint", "generated"] - - ["kotlin.time", "TimedValue", false, "getDuration", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin.time", "TimedValue", false, "getValue", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin.time", "TimedValue", false, "toString", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin", "DeepRecursiveFunction", false, "DeepRecursiveFunction", "(SuspendFunction2)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["kotlin", "KotlinVersion$Companion", false, "getCURRENT", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] + - ["kotlin.time", "TimedValue", false, "getDuration", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin.time", "TimedValue", false, "getValue", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin.time", "TimedValue", false, "toString", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin", "DeepRecursiveFunction", false, "DeepRecursiveFunction", "(SuspendFunction2)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["kotlin", "KotlinVersion$Companion", false, "getCURRENT", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] - ["kotlin", "LazyKt", false, "getValue", "(Lazy,Object,KProperty)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["kotlin", "LazyKt", false, "lazy", "(Function0)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["kotlin", "LazyKt", false, "lazy", "(LazyThreadSafetyMode,Function0)", "", "Argument[1]", "ReturnValue", "taint", "generated"] - ["kotlin", "LazyKt", false, "lazy", "(Object,Function0)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["kotlin", "LazyKt", false, "lazy", "(Object,Function0)", "", "Argument[1]", "ReturnValue", "taint", "generated"] - ["kotlin", "LazyKt", false, "lazyOf", "(Object)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - - ["kotlin", "Pair", false, "Pair", "(Object,Object)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["kotlin", "Pair", false, "Pair", "(Object,Object)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["kotlin", "Pair", false, "component1", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin", "Pair", false, "component2", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] + - ["kotlin", "Pair", false, "Pair", "(Object,Object)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["kotlin", "Pair", false, "Pair", "(Object,Object)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["kotlin", "Pair", false, "component1", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin", "Pair", false, "component2", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] - ["kotlin", "Pair", false, "copy", "(Object,Object)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["kotlin", "Pair", false, "copy", "(Object,Object)", "", "Argument[1]", "ReturnValue", "taint", "generated"] - - ["kotlin", "Pair", false, "getFirst", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin", "Pair", false, "getSecond", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin", "Pair", false, "toString", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] + - ["kotlin", "Pair", false, "getFirst", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin", "Pair", false, "getSecond", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin", "Pair", false, "toString", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] - ["kotlin", "PreconditionsKt", false, "checkNotNull", "(Object)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["kotlin", "PreconditionsKt", false, "checkNotNull", "(Object,Function0)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["kotlin", "PreconditionsKt", false, "requireNotNull", "(Object)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["kotlin", "PreconditionsKt", false, "requireNotNull", "(Object,Function0)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - - ["kotlin", "Result", false, "exceptionOrNull", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin", "Result", false, "getOrNull", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin", "Result", false, "toString", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] + - ["kotlin", "Result", false, "exceptionOrNull", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin", "Result", false, "getOrNull", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin", "Result", false, "toString", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] - ["kotlin", "Result$Companion", false, "failure", "(Throwable)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["kotlin", "Result$Companion", false, "success", "(Object)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["kotlin", "ResultKt", false, "fold", "(Result,Function1,Function1)", "", "Argument[0]", "ReturnValue", "taint", "generated"] @@ -1832,30 +1832,30 @@ extensions: - ["kotlin", "StandardKt", false, "takeUnless", "(Object,Function1)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["kotlin", "StandardKt", false, "with", "(Object,Function1)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["kotlin", "SuspendKt", false, "suspend", "(SuspendFunction0)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - - ["kotlin", "Triple", false, "Triple", "(Object,Object,Object)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["kotlin", "Triple", false, "Triple", "(Object,Object,Object)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["kotlin", "Triple", false, "Triple", "(Object,Object,Object)", "", "Argument[2]", "Argument[-1]", "taint", "generated"] - - ["kotlin", "Triple", false, "component1", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin", "Triple", false, "component2", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin", "Triple", false, "component3", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] + - ["kotlin", "Triple", false, "Triple", "(Object,Object,Object)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["kotlin", "Triple", false, "Triple", "(Object,Object,Object)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["kotlin", "Triple", false, "Triple", "(Object,Object,Object)", "", "Argument[2]", "Argument[this]", "taint", "generated"] + - ["kotlin", "Triple", false, "component1", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin", "Triple", false, "component2", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin", "Triple", false, "component3", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] - ["kotlin", "Triple", false, "copy", "(Object,Object,Object)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["kotlin", "Triple", false, "copy", "(Object,Object,Object)", "", "Argument[1]", "ReturnValue", "taint", "generated"] - ["kotlin", "Triple", false, "copy", "(Object,Object,Object)", "", "Argument[2]", "ReturnValue", "taint", "generated"] - - ["kotlin", "Triple", false, "getFirst", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin", "Triple", false, "getSecond", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin", "Triple", false, "getThird", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["kotlin", "Triple", false, "toString", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] + - ["kotlin", "Triple", false, "getFirst", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin", "Triple", false, "getSecond", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin", "Triple", false, "getThird", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["kotlin", "Triple", false, "toString", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] - ["kotlin", "TuplesKt", false, "to", "(Object,Object)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["kotlin", "TuplesKt", false, "to", "(Object,Object)", "", "Argument[1]", "ReturnValue", "taint", "generated"] - ["kotlin", "TuplesKt", false, "toList", "(Pair)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["kotlin", "TuplesKt", false, "toList", "(Triple)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - - ["kotlin", "UByte", false, "toUByte", "()", "", "Argument[-1]", "ReturnValue", "value", "generated"] + - ["kotlin", "UByte", false, "toUByte", "()", "", "Argument[this]", "ReturnValue", "value", "generated"] - ["kotlin", "UByteArrayKt", false, "ubyteArrayOf", "(UByteArray)", "", "Argument[0].Element", "ReturnValue", "taint", "generated"] - - ["kotlin", "UInt", false, "toUInt", "()", "", "Argument[-1]", "ReturnValue", "value", "generated"] + - ["kotlin", "UInt", false, "toUInt", "()", "", "Argument[this]", "ReturnValue", "value", "generated"] - ["kotlin", "UIntArrayKt", false, "uintArrayOf", "(UIntArray)", "", "Argument[0].Element", "ReturnValue", "taint", "generated"] - - ["kotlin", "ULong", false, "toULong", "()", "", "Argument[-1]", "ReturnValue", "value", "generated"] + - ["kotlin", "ULong", false, "toULong", "()", "", "Argument[this]", "ReturnValue", "value", "generated"] - ["kotlin", "ULongArrayKt", false, "ulongArrayOf", "(ULongArray)", "", "Argument[0].Element", "ReturnValue", "taint", "generated"] - - ["kotlin", "UShort", false, "toUShort", "()", "", "Argument[-1]", "ReturnValue", "value", "generated"] + - ["kotlin", "UShort", false, "toUShort", "()", "", "Argument[this]", "ReturnValue", "value", "generated"] - ["kotlin", "UShortArrayKt", false, "ushortArrayOf", "(UShortArray)", "", "Argument[0].Element", "ReturnValue", "taint", "generated"] diff --git a/java/ql/lib/ext/generated/org.apache.commons.io.model.yml b/java/ql/lib/ext/generated/org.apache.commons.io.model.yml index c2b6697d812..069f7d71a2b 100644 --- a/java/ql/lib/ext/generated/org.apache.commons.io.model.yml +++ b/java/ql/lib/ext/generated/org.apache.commons.io.model.yml @@ -17,7 +17,7 @@ extensions: - ["org.apache.commons.io.filefilter", "FileFilterUtils", true, "filter", "(IOFileFilter,File[])", "", "Argument[1]", "create-file", "generated"] - ["org.apache.commons.io.filefilter", "FileFilterUtils", true, "filterList", "(IOFileFilter,File[])", "", "Argument[1]", "create-file", "generated"] - ["org.apache.commons.io.filefilter", "FileFilterUtils", true, "filterSet", "(IOFileFilter,File[])", "", "Argument[1]", "create-file", "generated"] - - ["org.apache.commons.io.input", "Tailer$Tailable", true, "getRandomAccess", "(String)", "", "Argument[-1]", "create-file", "generated"] + - ["org.apache.commons.io.input", "Tailer$Tailable", true, "getRandomAccess", "(String)", "", "Argument[this]", "create-file", "generated"] - ["org.apache.commons.io.input", "XmlStreamReader", true, "XmlStreamReader", "(URL)", "", "Argument[0]", "open-url", "generated"] - ["org.apache.commons.io.output", "DeferredFileOutputStream", true, "writeTo", "(OutputStream)", "", "Argument[0]", "create-file", "generated"] - ["org.apache.commons.io.output", "FileWriterWithEncoding", true, "FileWriterWithEncoding", "(File,Charset)", "", "Argument[0]", "create-file", "generated"] @@ -120,56 +120,56 @@ extensions: data: - ["org.apache.commons.io.charset", "CharsetDecoders", true, "toCharsetDecoder", "(CharsetDecoder)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["org.apache.commons.io.charset", "CharsetEncoders", true, "toCharsetEncoder", "(CharsetEncoder)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.comparator", "CompositeFileComparator", true, "CompositeFileComparator", "(Comparator[])", "", "Argument[0].ArrayElement", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.comparator", "CompositeFileComparator", true, "CompositeFileComparator", "(Iterable)", "", "Argument[0].Element", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.comparator", "CompositeFileComparator", true, "toString", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.file.spi", "FileSystemProviders", true, "getFileSystemProvider", "(String)", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.file.spi", "FileSystemProviders", true, "getFileSystemProvider", "(URI)", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.file.spi", "FileSystemProviders", true, "getFileSystemProvider", "(URL)", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.file", "AccumulatorPathVisitor", true, "AccumulatorPathVisitor", "(PathCounters)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.file", "AccumulatorPathVisitor", true, "AccumulatorPathVisitor", "(PathCounters,PathFilter,PathFilter)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.file", "AccumulatorPathVisitor", true, "AccumulatorPathVisitor", "(PathCounters,PathFilter,PathFilter)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.file", "AccumulatorPathVisitor", true, "AccumulatorPathVisitor", "(PathCounters,PathFilter,PathFilter)", "", "Argument[2]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.file", "AccumulatorPathVisitor", true, "getDirList", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.file", "AccumulatorPathVisitor", true, "getFileList", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.comparator", "CompositeFileComparator", true, "CompositeFileComparator", "(Comparator[])", "", "Argument[0].ArrayElement", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.comparator", "CompositeFileComparator", true, "CompositeFileComparator", "(Iterable)", "", "Argument[0].Element", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.comparator", "CompositeFileComparator", true, "toString", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.file.spi", "FileSystemProviders", true, "getFileSystemProvider", "(String)", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.file.spi", "FileSystemProviders", true, "getFileSystemProvider", "(URI)", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.file.spi", "FileSystemProviders", true, "getFileSystemProvider", "(URL)", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.file", "AccumulatorPathVisitor", true, "AccumulatorPathVisitor", "(PathCounters)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.file", "AccumulatorPathVisitor", true, "AccumulatorPathVisitor", "(PathCounters,PathFilter,PathFilter)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.file", "AccumulatorPathVisitor", true, "AccumulatorPathVisitor", "(PathCounters,PathFilter,PathFilter)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.file", "AccumulatorPathVisitor", true, "AccumulatorPathVisitor", "(PathCounters,PathFilter,PathFilter)", "", "Argument[2]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.file", "AccumulatorPathVisitor", true, "getDirList", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.file", "AccumulatorPathVisitor", true, "getFileList", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] - ["org.apache.commons.io.file", "AccumulatorPathVisitor", true, "withBigIntegerCounters", "(PathFilter,PathFilter)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["org.apache.commons.io.file", "AccumulatorPathVisitor", true, "withBigIntegerCounters", "(PathFilter,PathFilter)", "", "Argument[1]", "ReturnValue", "taint", "generated"] - ["org.apache.commons.io.file", "AccumulatorPathVisitor", true, "withLongCounters", "(PathFilter,PathFilter)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["org.apache.commons.io.file", "AccumulatorPathVisitor", true, "withLongCounters", "(PathFilter,PathFilter)", "", "Argument[1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.file", "CleaningPathVisitor", true, "CleaningPathVisitor", "(PathCounters,DeleteOption[],String[])", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.file", "CleaningPathVisitor", true, "CleaningPathVisitor", "(PathCounters,DeleteOption[],String[])", "", "Argument[2].ArrayElement", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.file", "CleaningPathVisitor", true, "CleaningPathVisitor", "(PathCounters,String[])", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.file", "CleaningPathVisitor", true, "CleaningPathVisitor", "(PathCounters,String[])", "", "Argument[1].ArrayElement", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.file", "CopyDirectoryVisitor", true, "CopyDirectoryVisitor", "(PathCounters,Path,Path,CopyOption[])", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.file", "CopyDirectoryVisitor", true, "CopyDirectoryVisitor", "(PathCounters,Path,Path,CopyOption[])", "", "Argument[1].Element", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.file", "CopyDirectoryVisitor", true, "CopyDirectoryVisitor", "(PathCounters,Path,Path,CopyOption[])", "", "Argument[2].Element", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.file", "CopyDirectoryVisitor", true, "CopyDirectoryVisitor", "(PathCounters,Path,Path,CopyOption[])", "", "Argument[3].ArrayElement", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.file", "CopyDirectoryVisitor", true, "CopyDirectoryVisitor", "(PathCounters,PathFilter,PathFilter,Path,Path,CopyOption[])", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.file", "CopyDirectoryVisitor", true, "CopyDirectoryVisitor", "(PathCounters,PathFilter,PathFilter,Path,Path,CopyOption[])", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.file", "CopyDirectoryVisitor", true, "CopyDirectoryVisitor", "(PathCounters,PathFilter,PathFilter,Path,Path,CopyOption[])", "", "Argument[2]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.file", "CopyDirectoryVisitor", true, "CopyDirectoryVisitor", "(PathCounters,PathFilter,PathFilter,Path,Path,CopyOption[])", "", "Argument[3].Element", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.file", "CopyDirectoryVisitor", true, "CopyDirectoryVisitor", "(PathCounters,PathFilter,PathFilter,Path,Path,CopyOption[])", "", "Argument[4].Element", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.file", "CopyDirectoryVisitor", true, "CopyDirectoryVisitor", "(PathCounters,PathFilter,PathFilter,Path,Path,CopyOption[])", "", "Argument[5].ArrayElement", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.file", "CopyDirectoryVisitor", true, "getCopyOptions", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.file", "CopyDirectoryVisitor", true, "getSourceDirectory", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.file", "CopyDirectoryVisitor", true, "getTargetDirectory", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.file", "Counters$PathCounters", true, "getByteCounter", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.file", "Counters$PathCounters", true, "getDirectoryCounter", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.file", "Counters$PathCounters", true, "getFileCounter", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.file", "CountingPathVisitor", true, "CountingPathVisitor", "(PathCounters)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.file", "CountingPathVisitor", true, "CountingPathVisitor", "(PathCounters,PathFilter,PathFilter)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.file", "CountingPathVisitor", true, "CountingPathVisitor", "(PathCounters,PathFilter,PathFilter)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.file", "CountingPathVisitor", true, "CountingPathVisitor", "(PathCounters,PathFilter,PathFilter)", "", "Argument[2]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.file", "CountingPathVisitor", true, "getPathCounters", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.file", "DeletingPathVisitor", true, "DeletingPathVisitor", "(PathCounters,DeleteOption[],String[])", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.file", "DeletingPathVisitor", true, "DeletingPathVisitor", "(PathCounters,DeleteOption[],String[])", "", "Argument[2].ArrayElement", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.file", "DeletingPathVisitor", true, "DeletingPathVisitor", "(PathCounters,LinkOption[],DeleteOption[],String[])", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.file", "DeletingPathVisitor", true, "DeletingPathVisitor", "(PathCounters,LinkOption[],DeleteOption[],String[])", "", "Argument[1].ArrayElement", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.file", "DeletingPathVisitor", true, "DeletingPathVisitor", "(PathCounters,LinkOption[],DeleteOption[],String[])", "", "Argument[3].ArrayElement", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.file", "DeletingPathVisitor", true, "DeletingPathVisitor", "(PathCounters,String[])", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.file", "DeletingPathVisitor", true, "DeletingPathVisitor", "(PathCounters,String[])", "", "Argument[1].ArrayElement", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.file", "DirectoryStreamFilter", true, "DirectoryStreamFilter", "(PathFilter)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.file", "DirectoryStreamFilter", true, "getPathFilter", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.file", "CleaningPathVisitor", true, "CleaningPathVisitor", "(PathCounters,DeleteOption[],String[])", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.file", "CleaningPathVisitor", true, "CleaningPathVisitor", "(PathCounters,DeleteOption[],String[])", "", "Argument[2].ArrayElement", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.file", "CleaningPathVisitor", true, "CleaningPathVisitor", "(PathCounters,String[])", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.file", "CleaningPathVisitor", true, "CleaningPathVisitor", "(PathCounters,String[])", "", "Argument[1].ArrayElement", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.file", "CopyDirectoryVisitor", true, "CopyDirectoryVisitor", "(PathCounters,Path,Path,CopyOption[])", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.file", "CopyDirectoryVisitor", true, "CopyDirectoryVisitor", "(PathCounters,Path,Path,CopyOption[])", "", "Argument[1].Element", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.file", "CopyDirectoryVisitor", true, "CopyDirectoryVisitor", "(PathCounters,Path,Path,CopyOption[])", "", "Argument[2].Element", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.file", "CopyDirectoryVisitor", true, "CopyDirectoryVisitor", "(PathCounters,Path,Path,CopyOption[])", "", "Argument[3].ArrayElement", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.file", "CopyDirectoryVisitor", true, "CopyDirectoryVisitor", "(PathCounters,PathFilter,PathFilter,Path,Path,CopyOption[])", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.file", "CopyDirectoryVisitor", true, "CopyDirectoryVisitor", "(PathCounters,PathFilter,PathFilter,Path,Path,CopyOption[])", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.file", "CopyDirectoryVisitor", true, "CopyDirectoryVisitor", "(PathCounters,PathFilter,PathFilter,Path,Path,CopyOption[])", "", "Argument[2]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.file", "CopyDirectoryVisitor", true, "CopyDirectoryVisitor", "(PathCounters,PathFilter,PathFilter,Path,Path,CopyOption[])", "", "Argument[3].Element", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.file", "CopyDirectoryVisitor", true, "CopyDirectoryVisitor", "(PathCounters,PathFilter,PathFilter,Path,Path,CopyOption[])", "", "Argument[4].Element", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.file", "CopyDirectoryVisitor", true, "CopyDirectoryVisitor", "(PathCounters,PathFilter,PathFilter,Path,Path,CopyOption[])", "", "Argument[5].ArrayElement", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.file", "CopyDirectoryVisitor", true, "getCopyOptions", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.file", "CopyDirectoryVisitor", true, "getSourceDirectory", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.file", "CopyDirectoryVisitor", true, "getTargetDirectory", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.file", "Counters$PathCounters", true, "getByteCounter", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.file", "Counters$PathCounters", true, "getDirectoryCounter", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.file", "Counters$PathCounters", true, "getFileCounter", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.file", "CountingPathVisitor", true, "CountingPathVisitor", "(PathCounters)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.file", "CountingPathVisitor", true, "CountingPathVisitor", "(PathCounters,PathFilter,PathFilter)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.file", "CountingPathVisitor", true, "CountingPathVisitor", "(PathCounters,PathFilter,PathFilter)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.file", "CountingPathVisitor", true, "CountingPathVisitor", "(PathCounters,PathFilter,PathFilter)", "", "Argument[2]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.file", "CountingPathVisitor", true, "getPathCounters", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.file", "DeletingPathVisitor", true, "DeletingPathVisitor", "(PathCounters,DeleteOption[],String[])", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.file", "DeletingPathVisitor", true, "DeletingPathVisitor", "(PathCounters,DeleteOption[],String[])", "", "Argument[2].ArrayElement", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.file", "DeletingPathVisitor", true, "DeletingPathVisitor", "(PathCounters,LinkOption[],DeleteOption[],String[])", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.file", "DeletingPathVisitor", true, "DeletingPathVisitor", "(PathCounters,LinkOption[],DeleteOption[],String[])", "", "Argument[1].ArrayElement", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.file", "DeletingPathVisitor", true, "DeletingPathVisitor", "(PathCounters,LinkOption[],DeleteOption[],String[])", "", "Argument[3].ArrayElement", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.file", "DeletingPathVisitor", true, "DeletingPathVisitor", "(PathCounters,String[])", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.file", "DeletingPathVisitor", true, "DeletingPathVisitor", "(PathCounters,String[])", "", "Argument[1].ArrayElement", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.file", "DirectoryStreamFilter", true, "DirectoryStreamFilter", "(PathFilter)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.file", "DirectoryStreamFilter", true, "getPathFilter", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] - ["org.apache.commons.io.file", "PathUtils", false, "copyFile", "(URL,Path,CopyOption[])", "", "Argument[1].Element", "ReturnValue", "taint", "generated"] - ["org.apache.commons.io.file", "PathUtils", false, "copyFileToDirectory", "(URL,Path,CopyOption[])", "", "Argument[1].Element", "ReturnValue", "taint", "generated"] - ["org.apache.commons.io.file", "PathUtils", false, "setReadOnly", "(Path,boolean,LinkOption[])", "", "Argument[0].Element", "ReturnValue", "taint", "generated"] @@ -178,22 +178,22 @@ extensions: - ["org.apache.commons.io.file", "PathUtils", false, "visitFileTree", "(FileVisitor,String,String[])", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["org.apache.commons.io.file", "PathUtils", false, "visitFileTree", "(FileVisitor,URI)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["org.apache.commons.io.file", "PathUtils", false, "writeString", "(Path,CharSequence,Charset,OpenOption[])", "", "Argument[0].Element", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.filefilter", "AgeFileFilter", true, "AgeFileFilter", "(Instant)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.filefilter", "AgeFileFilter", true, "AgeFileFilter", "(Instant,boolean)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.filefilter", "AgeFileFilter", true, "toString", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.filefilter", "AndFileFilter", true, "AndFileFilter", "(IOFileFilter,IOFileFilter)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.filefilter", "AndFileFilter", true, "AndFileFilter", "(IOFileFilter,IOFileFilter)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.filefilter", "AndFileFilter", true, "AndFileFilter", "(IOFileFilter[])", "", "Argument[0].ArrayElement", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.filefilter", "AndFileFilter", true, "AndFileFilter", "(List)", "", "Argument[0].Element", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.filefilter", "AndFileFilter", true, "addFileFilter", "(IOFileFilter[])", "", "Argument[0].ArrayElement", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.filefilter", "AndFileFilter", true, "toString", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.filefilter", "ConditionalFileFilter", true, "addFileFilter", "(IOFileFilter)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.filefilter", "ConditionalFileFilter", true, "getFileFilters", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.filefilter", "ConditionalFileFilter", true, "setFileFilters", "(List)", "", "Argument[0].Element", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.filefilter", "DelegateFileFilter", true, "DelegateFileFilter", "(FileFilter)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.filefilter", "DelegateFileFilter", true, "DelegateFileFilter", "(FilenameFilter)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.filefilter", "DelegateFileFilter", true, "toString", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.filefilter", "FileEqualsFileFilter", true, "FileEqualsFileFilter", "(File)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] + - ["org.apache.commons.io.filefilter", "AgeFileFilter", true, "AgeFileFilter", "(Instant)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.filefilter", "AgeFileFilter", true, "AgeFileFilter", "(Instant,boolean)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.filefilter", "AgeFileFilter", true, "toString", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.filefilter", "AndFileFilter", true, "AndFileFilter", "(IOFileFilter,IOFileFilter)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.filefilter", "AndFileFilter", true, "AndFileFilter", "(IOFileFilter,IOFileFilter)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.filefilter", "AndFileFilter", true, "AndFileFilter", "(IOFileFilter[])", "", "Argument[0].ArrayElement", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.filefilter", "AndFileFilter", true, "AndFileFilter", "(List)", "", "Argument[0].Element", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.filefilter", "AndFileFilter", true, "addFileFilter", "(IOFileFilter[])", "", "Argument[0].ArrayElement", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.filefilter", "AndFileFilter", true, "toString", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.filefilter", "ConditionalFileFilter", true, "addFileFilter", "(IOFileFilter)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.filefilter", "ConditionalFileFilter", true, "getFileFilters", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.filefilter", "ConditionalFileFilter", true, "setFileFilters", "(List)", "", "Argument[0].Element", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.filefilter", "DelegateFileFilter", true, "DelegateFileFilter", "(FileFilter)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.filefilter", "DelegateFileFilter", true, "DelegateFileFilter", "(FilenameFilter)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.filefilter", "DelegateFileFilter", true, "toString", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.filefilter", "FileEqualsFileFilter", true, "FileEqualsFileFilter", "(File)", "", "Argument[0]", "Argument[this]", "taint", "generated"] - ["org.apache.commons.io.filefilter", "FileFilterUtils", true, "and", "(IOFileFilter[])", "", "Argument[0].ArrayElement", "ReturnValue", "taint", "generated"] - ["org.apache.commons.io.filefilter", "FileFilterUtils", true, "andFileFilter", "(IOFileFilter,IOFileFilter)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["org.apache.commons.io.filefilter", "FileFilterUtils", true, "andFileFilter", "(IOFileFilter,IOFileFilter)", "", "Argument[1]", "ReturnValue", "taint", "generated"] @@ -218,138 +218,138 @@ extensions: - ["org.apache.commons.io.filefilter", "FileFilterUtils", true, "suffixFileFilter", "(String)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["org.apache.commons.io.filefilter", "FileFilterUtils", true, "suffixFileFilter", "(String,IOCase)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["org.apache.commons.io.filefilter", "FileFilterUtils", true, "toList", "(IOFileFilter[])", "", "Argument[0].ArrayElement", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.filefilter", "IOFileFilter", true, "and", "(IOFileFilter)", "", "Argument[-1]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.filefilter", "IOFileFilter", true, "and", "(IOFileFilter)", "", "Argument[this]", "ReturnValue", "taint", "generated"] - ["org.apache.commons.io.filefilter", "IOFileFilter", true, "and", "(IOFileFilter)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.filefilter", "IOFileFilter", true, "negate", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.filefilter", "IOFileFilter", true, "or", "(IOFileFilter)", "", "Argument[-1]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.filefilter", "IOFileFilter", true, "negate", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.filefilter", "IOFileFilter", true, "or", "(IOFileFilter)", "", "Argument[this]", "ReturnValue", "taint", "generated"] - ["org.apache.commons.io.filefilter", "IOFileFilter", true, "or", "(IOFileFilter)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.filefilter", "MagicNumberFileFilter", true, "MagicNumberFileFilter", "(String)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.filefilter", "MagicNumberFileFilter", true, "MagicNumberFileFilter", "(String,long)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.filefilter", "MagicNumberFileFilter", true, "MagicNumberFileFilter", "(byte[])", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.filefilter", "MagicNumberFileFilter", true, "MagicNumberFileFilter", "(byte[],long)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.filefilter", "MagicNumberFileFilter", true, "toString", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.filefilter", "NameFileFilter", true, "NameFileFilter", "(List)", "", "Argument[0].Element", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.filefilter", "NameFileFilter", true, "NameFileFilter", "(List,IOCase)", "", "Argument[0].Element", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.filefilter", "NameFileFilter", true, "NameFileFilter", "(String)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.filefilter", "NameFileFilter", true, "NameFileFilter", "(String,IOCase)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.filefilter", "NameFileFilter", true, "NameFileFilter", "(String[])", "", "Argument[0].ArrayElement", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.filefilter", "NameFileFilter", true, "NameFileFilter", "(String[],IOCase)", "", "Argument[0].ArrayElement", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.filefilter", "NameFileFilter", true, "toString", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.filefilter", "NotFileFilter", true, "NotFileFilter", "(IOFileFilter)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.filefilter", "NotFileFilter", true, "toString", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.filefilter", "OrFileFilter", true, "OrFileFilter", "(IOFileFilter,IOFileFilter)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.filefilter", "OrFileFilter", true, "OrFileFilter", "(IOFileFilter,IOFileFilter)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.filefilter", "OrFileFilter", true, "OrFileFilter", "(IOFileFilter[])", "", "Argument[0].ArrayElement", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.filefilter", "OrFileFilter", true, "OrFileFilter", "(List)", "", "Argument[0].Element", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.filefilter", "OrFileFilter", true, "addFileFilter", "(IOFileFilter[])", "", "Argument[0].ArrayElement", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.filefilter", "OrFileFilter", true, "toString", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.filefilter", "PathEqualsFileFilter", true, "PathEqualsFileFilter", "(Path)", "", "Argument[0].Element", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.filefilter", "PathVisitorFileFilter", true, "PathVisitorFileFilter", "(PathVisitor)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.filefilter", "PrefixFileFilter", true, "PrefixFileFilter", "(List)", "", "Argument[0].Element", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.filefilter", "PrefixFileFilter", true, "PrefixFileFilter", "(List,IOCase)", "", "Argument[0].Element", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.filefilter", "PrefixFileFilter", true, "PrefixFileFilter", "(String)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.filefilter", "PrefixFileFilter", true, "PrefixFileFilter", "(String,IOCase)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.filefilter", "PrefixFileFilter", true, "PrefixFileFilter", "(String[])", "", "Argument[0].ArrayElement", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.filefilter", "PrefixFileFilter", true, "PrefixFileFilter", "(String[],IOCase)", "", "Argument[0].ArrayElement", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.filefilter", "PrefixFileFilter", true, "toString", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.filefilter", "RegexFileFilter", true, "RegexFileFilter", "(Pattern)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.filefilter", "RegexFileFilter", true, "RegexFileFilter", "(Pattern,Function)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.filefilter", "RegexFileFilter", true, "RegexFileFilter", "(Pattern,Function)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.filefilter", "RegexFileFilter", true, "toString", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.filefilter", "SuffixFileFilter", true, "SuffixFileFilter", "(List)", "", "Argument[0].Element", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.filefilter", "SuffixFileFilter", true, "SuffixFileFilter", "(List,IOCase)", "", "Argument[0].Element", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.filefilter", "SuffixFileFilter", true, "SuffixFileFilter", "(String)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.filefilter", "SuffixFileFilter", true, "SuffixFileFilter", "(String,IOCase)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.filefilter", "SuffixFileFilter", true, "SuffixFileFilter", "(String[])", "", "Argument[0].ArrayElement", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.filefilter", "SuffixFileFilter", true, "SuffixFileFilter", "(String[],IOCase)", "", "Argument[0].ArrayElement", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.filefilter", "SuffixFileFilter", true, "toString", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.filefilter", "WildcardFileFilter", true, "WildcardFileFilter", "(List)", "", "Argument[0].Element", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.filefilter", "WildcardFileFilter", true, "WildcardFileFilter", "(List,IOCase)", "", "Argument[0].Element", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.filefilter", "WildcardFileFilter", true, "WildcardFileFilter", "(String)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.filefilter", "WildcardFileFilter", true, "WildcardFileFilter", "(String,IOCase)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.filefilter", "WildcardFileFilter", true, "WildcardFileFilter", "(String[])", "", "Argument[0].ArrayElement", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.filefilter", "WildcardFileFilter", true, "WildcardFileFilter", "(String[],IOCase)", "", "Argument[0].ArrayElement", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.filefilter", "WildcardFileFilter", true, "toString", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.filefilter", "WildcardFilter", true, "WildcardFilter", "(List)", "", "Argument[0].Element", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.filefilter", "WildcardFilter", true, "WildcardFilter", "(String)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.filefilter", "WildcardFilter", true, "WildcardFilter", "(String[])", "", "Argument[0].ArrayElement", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input.buffer", "CircularBufferInputStream", true, "CircularBufferInputStream", "(InputStream)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input.buffer", "CircularBufferInputStream", true, "CircularBufferInputStream", "(InputStream,int)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input.buffer", "PeekableInputStream", true, "PeekableInputStream", "(InputStream)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input.buffer", "PeekableInputStream", true, "PeekableInputStream", "(InputStream,int)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "BOMInputStream", true, "BOMInputStream", "(InputStream,ByteOrderMark[])", "", "Argument[1].ArrayElement", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "BOMInputStream", true, "BOMInputStream", "(InputStream,boolean,ByteOrderMark[])", "", "Argument[2].ArrayElement", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "BOMInputStream", true, "getBOM", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.input", "BOMInputStream", true, "getBOMCharsetName", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.input", "BoundedInputStream", true, "BoundedInputStream", "(InputStream)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "BoundedInputStream", true, "BoundedInputStream", "(InputStream,long)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "BoundedReader", true, "BoundedReader", "(Reader,int)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "BrokenInputStream", true, "BrokenInputStream", "(Supplier)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "BrokenReader", true, "BrokenReader", "(Supplier)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "CharSequenceReader", true, "CharSequenceReader", "(CharSequence)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "CharSequenceReader", true, "CharSequenceReader", "(CharSequence,int)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "CharSequenceReader", true, "CharSequenceReader", "(CharSequence,int,int)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "CharSequenceReader", true, "toString", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.input", "CharacterFilterReader", true, "CharacterFilterReader", "(Reader,IntPredicate)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "CircularInputStream", true, "CircularInputStream", "(byte[],long)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "ClassLoaderObjectInputStream", true, "ClassLoaderObjectInputStream", "(ClassLoader,InputStream)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "ClassLoaderObjectInputStream", true, "ClassLoaderObjectInputStream", "(ClassLoader,InputStream)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] + - ["org.apache.commons.io.filefilter", "MagicNumberFileFilter", true, "MagicNumberFileFilter", "(String)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.filefilter", "MagicNumberFileFilter", true, "MagicNumberFileFilter", "(String,long)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.filefilter", "MagicNumberFileFilter", true, "MagicNumberFileFilter", "(byte[])", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.filefilter", "MagicNumberFileFilter", true, "MagicNumberFileFilter", "(byte[],long)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.filefilter", "MagicNumberFileFilter", true, "toString", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.filefilter", "NameFileFilter", true, "NameFileFilter", "(List)", "", "Argument[0].Element", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.filefilter", "NameFileFilter", true, "NameFileFilter", "(List,IOCase)", "", "Argument[0].Element", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.filefilter", "NameFileFilter", true, "NameFileFilter", "(String)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.filefilter", "NameFileFilter", true, "NameFileFilter", "(String,IOCase)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.filefilter", "NameFileFilter", true, "NameFileFilter", "(String[])", "", "Argument[0].ArrayElement", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.filefilter", "NameFileFilter", true, "NameFileFilter", "(String[],IOCase)", "", "Argument[0].ArrayElement", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.filefilter", "NameFileFilter", true, "toString", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.filefilter", "NotFileFilter", true, "NotFileFilter", "(IOFileFilter)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.filefilter", "NotFileFilter", true, "toString", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.filefilter", "OrFileFilter", true, "OrFileFilter", "(IOFileFilter,IOFileFilter)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.filefilter", "OrFileFilter", true, "OrFileFilter", "(IOFileFilter,IOFileFilter)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.filefilter", "OrFileFilter", true, "OrFileFilter", "(IOFileFilter[])", "", "Argument[0].ArrayElement", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.filefilter", "OrFileFilter", true, "OrFileFilter", "(List)", "", "Argument[0].Element", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.filefilter", "OrFileFilter", true, "addFileFilter", "(IOFileFilter[])", "", "Argument[0].ArrayElement", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.filefilter", "OrFileFilter", true, "toString", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.filefilter", "PathEqualsFileFilter", true, "PathEqualsFileFilter", "(Path)", "", "Argument[0].Element", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.filefilter", "PathVisitorFileFilter", true, "PathVisitorFileFilter", "(PathVisitor)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.filefilter", "PrefixFileFilter", true, "PrefixFileFilter", "(List)", "", "Argument[0].Element", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.filefilter", "PrefixFileFilter", true, "PrefixFileFilter", "(List,IOCase)", "", "Argument[0].Element", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.filefilter", "PrefixFileFilter", true, "PrefixFileFilter", "(String)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.filefilter", "PrefixFileFilter", true, "PrefixFileFilter", "(String,IOCase)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.filefilter", "PrefixFileFilter", true, "PrefixFileFilter", "(String[])", "", "Argument[0].ArrayElement", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.filefilter", "PrefixFileFilter", true, "PrefixFileFilter", "(String[],IOCase)", "", "Argument[0].ArrayElement", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.filefilter", "PrefixFileFilter", true, "toString", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.filefilter", "RegexFileFilter", true, "RegexFileFilter", "(Pattern)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.filefilter", "RegexFileFilter", true, "RegexFileFilter", "(Pattern,Function)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.filefilter", "RegexFileFilter", true, "RegexFileFilter", "(Pattern,Function)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.filefilter", "RegexFileFilter", true, "toString", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.filefilter", "SuffixFileFilter", true, "SuffixFileFilter", "(List)", "", "Argument[0].Element", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.filefilter", "SuffixFileFilter", true, "SuffixFileFilter", "(List,IOCase)", "", "Argument[0].Element", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.filefilter", "SuffixFileFilter", true, "SuffixFileFilter", "(String)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.filefilter", "SuffixFileFilter", true, "SuffixFileFilter", "(String,IOCase)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.filefilter", "SuffixFileFilter", true, "SuffixFileFilter", "(String[])", "", "Argument[0].ArrayElement", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.filefilter", "SuffixFileFilter", true, "SuffixFileFilter", "(String[],IOCase)", "", "Argument[0].ArrayElement", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.filefilter", "SuffixFileFilter", true, "toString", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.filefilter", "WildcardFileFilter", true, "WildcardFileFilter", "(List)", "", "Argument[0].Element", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.filefilter", "WildcardFileFilter", true, "WildcardFileFilter", "(List,IOCase)", "", "Argument[0].Element", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.filefilter", "WildcardFileFilter", true, "WildcardFileFilter", "(String)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.filefilter", "WildcardFileFilter", true, "WildcardFileFilter", "(String,IOCase)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.filefilter", "WildcardFileFilter", true, "WildcardFileFilter", "(String[])", "", "Argument[0].ArrayElement", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.filefilter", "WildcardFileFilter", true, "WildcardFileFilter", "(String[],IOCase)", "", "Argument[0].ArrayElement", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.filefilter", "WildcardFileFilter", true, "toString", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.filefilter", "WildcardFilter", true, "WildcardFilter", "(List)", "", "Argument[0].Element", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.filefilter", "WildcardFilter", true, "WildcardFilter", "(String)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.filefilter", "WildcardFilter", true, "WildcardFilter", "(String[])", "", "Argument[0].ArrayElement", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input.buffer", "CircularBufferInputStream", true, "CircularBufferInputStream", "(InputStream)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input.buffer", "CircularBufferInputStream", true, "CircularBufferInputStream", "(InputStream,int)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input.buffer", "PeekableInputStream", true, "PeekableInputStream", "(InputStream)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input.buffer", "PeekableInputStream", true, "PeekableInputStream", "(InputStream,int)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "BOMInputStream", true, "BOMInputStream", "(InputStream,ByteOrderMark[])", "", "Argument[1].ArrayElement", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "BOMInputStream", true, "BOMInputStream", "(InputStream,boolean,ByteOrderMark[])", "", "Argument[2].ArrayElement", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "BOMInputStream", true, "getBOM", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.input", "BOMInputStream", true, "getBOMCharsetName", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.input", "BoundedInputStream", true, "BoundedInputStream", "(InputStream)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "BoundedInputStream", true, "BoundedInputStream", "(InputStream,long)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "BoundedReader", true, "BoundedReader", "(Reader,int)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "BrokenInputStream", true, "BrokenInputStream", "(Supplier)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "BrokenReader", true, "BrokenReader", "(Supplier)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "CharSequenceReader", true, "CharSequenceReader", "(CharSequence)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "CharSequenceReader", true, "CharSequenceReader", "(CharSequence,int)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "CharSequenceReader", true, "CharSequenceReader", "(CharSequence,int,int)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "CharSequenceReader", true, "toString", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.input", "CharacterFilterReader", true, "CharacterFilterReader", "(Reader,IntPredicate)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "CircularInputStream", true, "CircularInputStream", "(byte[],long)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "ClassLoaderObjectInputStream", true, "ClassLoaderObjectInputStream", "(ClassLoader,InputStream)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "ClassLoaderObjectInputStream", true, "ClassLoaderObjectInputStream", "(ClassLoader,InputStream)", "", "Argument[1]", "Argument[this]", "taint", "generated"] - ["org.apache.commons.io.input", "CloseShieldInputStream", true, "wrap", "(InputStream)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.input", "InfiniteCircularInputStream", true, "InfiniteCircularInputStream", "(byte[])", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "MessageDigestCalculatingInputStream$MessageDigestMaintainingObserver", true, "MessageDigestMaintainingObserver", "(MessageDigest)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "MessageDigestCalculatingInputStream", true, "MessageDigestCalculatingInputStream", "(InputStream,MessageDigest)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "MessageDigestCalculatingInputStream", true, "getMessageDigest", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.input", "ObservableInputStream", true, "ObservableInputStream", "(InputStream,Observer[])", "", "Argument[1].ArrayElement", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "ObservableInputStream", true, "add", "(Observer)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "ObservableInputStream", true, "getObservers", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.input", "RandomAccessFileInputStream", true, "RandomAccessFileInputStream", "(RandomAccessFile)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "RandomAccessFileInputStream", true, "RandomAccessFileInputStream", "(RandomAccessFile,boolean)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "RandomAccessFileInputStream", true, "getRandomAccessFile", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.input", "ReadAheadInputStream", true, "ReadAheadInputStream", "(InputStream,int)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "ReadAheadInputStream", true, "ReadAheadInputStream", "(InputStream,int,ExecutorService)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "ReadAheadInputStream", true, "ReadAheadInputStream", "(InputStream,int,ExecutorService)", "", "Argument[2]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "ReaderInputStream", true, "ReaderInputStream", "(Reader)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "ReaderInputStream", true, "ReaderInputStream", "(Reader,Charset)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "ReaderInputStream", true, "ReaderInputStream", "(Reader,Charset,int)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "ReaderInputStream", true, "ReaderInputStream", "(Reader,CharsetEncoder)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "ReaderInputStream", true, "ReaderInputStream", "(Reader,CharsetEncoder)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "ReaderInputStream", true, "ReaderInputStream", "(Reader,CharsetEncoder,int)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "ReaderInputStream", true, "ReaderInputStream", "(Reader,CharsetEncoder,int)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "ReaderInputStream", true, "ReaderInputStream", "(Reader,String)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "ReaderInputStream", true, "ReaderInputStream", "(Reader,String,int)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "ReversedLinesFileReader", true, "readLine", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.input", "ReversedLinesFileReader", true, "readLines", "(int)", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.input", "ReversedLinesFileReader", true, "toString", "(int)", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.input", "SequenceReader", true, "SequenceReader", "(Iterable)", "", "Argument[0].Element", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "SequenceReader", true, "SequenceReader", "(Reader[])", "", "Argument[0].ArrayElement", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "Tailer$Builder", true, "Builder", "(File,TailerListener)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "Tailer$Builder", true, "Builder", "(File,TailerListener)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "Tailer$Builder", true, "Builder", "(Path,TailerListener)", "", "Argument[0].Element", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "Tailer$Builder", true, "Builder", "(Path,TailerListener)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "Tailer$Builder", true, "Builder", "(Tailable,TailerListener)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "Tailer$Builder", true, "Builder", "(Tailable,TailerListener)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "Tailer$Builder", true, "build", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.input", "Tailer$Builder", true, "withBufferSize", "(int)", "", "Argument[-1]", "ReturnValue", "value", "generated"] - - ["org.apache.commons.io.input", "Tailer$Builder", true, "withCharset", "(Charset)", "", "Argument[-1]", "ReturnValue", "value", "generated"] - - ["org.apache.commons.io.input", "Tailer$Builder", true, "withDelayDuration", "(Duration)", "", "Argument[-1]", "ReturnValue", "value", "generated"] - - ["org.apache.commons.io.input", "Tailer$Builder", true, "withDelayDuration", "(Duration)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "Tailer$Builder", true, "withReOpen", "(boolean)", "", "Argument[-1]", "ReturnValue", "value", "generated"] - - ["org.apache.commons.io.input", "Tailer$Builder", true, "withStartThread", "(boolean)", "", "Argument[-1]", "ReturnValue", "value", "generated"] - - ["org.apache.commons.io.input", "Tailer$Builder", true, "withTailFromEnd", "(boolean)", "", "Argument[-1]", "ReturnValue", "value", "generated"] - - ["org.apache.commons.io.input", "Tailer", true, "Tailer", "(File,Charset,TailerListener,long,boolean,boolean,int)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "Tailer", true, "Tailer", "(File,Charset,TailerListener,long,boolean,boolean,int)", "", "Argument[2]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "Tailer", true, "Tailer", "(File,TailerListener)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "Tailer", true, "Tailer", "(File,TailerListener)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "Tailer", true, "Tailer", "(File,TailerListener,long)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "Tailer", true, "Tailer", "(File,TailerListener,long)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "Tailer", true, "Tailer", "(File,TailerListener,long,boolean)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "Tailer", true, "Tailer", "(File,TailerListener,long,boolean)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "Tailer", true, "Tailer", "(File,TailerListener,long,boolean,boolean)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "Tailer", true, "Tailer", "(File,TailerListener,long,boolean,boolean)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "Tailer", true, "Tailer", "(File,TailerListener,long,boolean,boolean,int)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "Tailer", true, "Tailer", "(File,TailerListener,long,boolean,boolean,int)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "Tailer", true, "Tailer", "(File,TailerListener,long,boolean,int)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "Tailer", true, "Tailer", "(File,TailerListener,long,boolean,int)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] + - ["org.apache.commons.io.input", "InfiniteCircularInputStream", true, "InfiniteCircularInputStream", "(byte[])", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "MessageDigestCalculatingInputStream$MessageDigestMaintainingObserver", true, "MessageDigestMaintainingObserver", "(MessageDigest)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "MessageDigestCalculatingInputStream", true, "MessageDigestCalculatingInputStream", "(InputStream,MessageDigest)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "MessageDigestCalculatingInputStream", true, "getMessageDigest", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.input", "ObservableInputStream", true, "ObservableInputStream", "(InputStream,Observer[])", "", "Argument[1].ArrayElement", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "ObservableInputStream", true, "add", "(Observer)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "ObservableInputStream", true, "getObservers", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.input", "RandomAccessFileInputStream", true, "RandomAccessFileInputStream", "(RandomAccessFile)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "RandomAccessFileInputStream", true, "RandomAccessFileInputStream", "(RandomAccessFile,boolean)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "RandomAccessFileInputStream", true, "getRandomAccessFile", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.input", "ReadAheadInputStream", true, "ReadAheadInputStream", "(InputStream,int)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "ReadAheadInputStream", true, "ReadAheadInputStream", "(InputStream,int,ExecutorService)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "ReadAheadInputStream", true, "ReadAheadInputStream", "(InputStream,int,ExecutorService)", "", "Argument[2]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "ReaderInputStream", true, "ReaderInputStream", "(Reader)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "ReaderInputStream", true, "ReaderInputStream", "(Reader,Charset)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "ReaderInputStream", true, "ReaderInputStream", "(Reader,Charset,int)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "ReaderInputStream", true, "ReaderInputStream", "(Reader,CharsetEncoder)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "ReaderInputStream", true, "ReaderInputStream", "(Reader,CharsetEncoder)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "ReaderInputStream", true, "ReaderInputStream", "(Reader,CharsetEncoder,int)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "ReaderInputStream", true, "ReaderInputStream", "(Reader,CharsetEncoder,int)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "ReaderInputStream", true, "ReaderInputStream", "(Reader,String)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "ReaderInputStream", true, "ReaderInputStream", "(Reader,String,int)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "ReversedLinesFileReader", true, "readLine", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.input", "ReversedLinesFileReader", true, "readLines", "(int)", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.input", "ReversedLinesFileReader", true, "toString", "(int)", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.input", "SequenceReader", true, "SequenceReader", "(Iterable)", "", "Argument[0].Element", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "SequenceReader", true, "SequenceReader", "(Reader[])", "", "Argument[0].ArrayElement", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "Tailer$Builder", true, "Builder", "(File,TailerListener)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "Tailer$Builder", true, "Builder", "(File,TailerListener)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "Tailer$Builder", true, "Builder", "(Path,TailerListener)", "", "Argument[0].Element", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "Tailer$Builder", true, "Builder", "(Path,TailerListener)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "Tailer$Builder", true, "Builder", "(Tailable,TailerListener)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "Tailer$Builder", true, "Builder", "(Tailable,TailerListener)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "Tailer$Builder", true, "build", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.input", "Tailer$Builder", true, "withBufferSize", "(int)", "", "Argument[this]", "ReturnValue", "value", "generated"] + - ["org.apache.commons.io.input", "Tailer$Builder", true, "withCharset", "(Charset)", "", "Argument[this]", "ReturnValue", "value", "generated"] + - ["org.apache.commons.io.input", "Tailer$Builder", true, "withDelayDuration", "(Duration)", "", "Argument[this]", "ReturnValue", "value", "generated"] + - ["org.apache.commons.io.input", "Tailer$Builder", true, "withDelayDuration", "(Duration)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "Tailer$Builder", true, "withReOpen", "(boolean)", "", "Argument[this]", "ReturnValue", "value", "generated"] + - ["org.apache.commons.io.input", "Tailer$Builder", true, "withStartThread", "(boolean)", "", "Argument[this]", "ReturnValue", "value", "generated"] + - ["org.apache.commons.io.input", "Tailer$Builder", true, "withTailFromEnd", "(boolean)", "", "Argument[this]", "ReturnValue", "value", "generated"] + - ["org.apache.commons.io.input", "Tailer", true, "Tailer", "(File,Charset,TailerListener,long,boolean,boolean,int)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "Tailer", true, "Tailer", "(File,Charset,TailerListener,long,boolean,boolean,int)", "", "Argument[2]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "Tailer", true, "Tailer", "(File,TailerListener)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "Tailer", true, "Tailer", "(File,TailerListener)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "Tailer", true, "Tailer", "(File,TailerListener,long)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "Tailer", true, "Tailer", "(File,TailerListener,long)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "Tailer", true, "Tailer", "(File,TailerListener,long,boolean)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "Tailer", true, "Tailer", "(File,TailerListener,long,boolean)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "Tailer", true, "Tailer", "(File,TailerListener,long,boolean,boolean)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "Tailer", true, "Tailer", "(File,TailerListener,long,boolean,boolean)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "Tailer", true, "Tailer", "(File,TailerListener,long,boolean,boolean,int)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "Tailer", true, "Tailer", "(File,TailerListener,long,boolean,boolean,int)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "Tailer", true, "Tailer", "(File,TailerListener,long,boolean,int)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "Tailer", true, "Tailer", "(File,TailerListener,long,boolean,int)", "", "Argument[1]", "Argument[this]", "taint", "generated"] - ["org.apache.commons.io.input", "Tailer", true, "create", "(File,Charset,TailerListener,long,boolean,boolean,int)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["org.apache.commons.io.input", "Tailer", true, "create", "(File,Charset,TailerListener,long,boolean,boolean,int)", "", "Argument[2]", "ReturnValue", "taint", "generated"] - ["org.apache.commons.io.input", "Tailer", true, "create", "(File,TailerListener)", "", "Argument[0]", "ReturnValue", "taint", "generated"] @@ -364,163 +364,163 @@ extensions: - ["org.apache.commons.io.input", "Tailer", true, "create", "(File,TailerListener,long,boolean,boolean,int)", "", "Argument[1]", "ReturnValue", "taint", "generated"] - ["org.apache.commons.io.input", "Tailer", true, "create", "(File,TailerListener,long,boolean,int)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["org.apache.commons.io.input", "Tailer", true, "create", "(File,TailerListener,long,boolean,int)", "", "Argument[1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.input", "Tailer", true, "getDelayDuration", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.input", "Tailer", true, "getFile", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.input", "Tailer", true, "getTailable", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.input", "TeeInputStream", true, "TeeInputStream", "(InputStream,OutputStream)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "TeeInputStream", true, "TeeInputStream", "(InputStream,OutputStream,boolean)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "TeeReader", true, "TeeReader", "(Reader,Writer)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "TeeReader", true, "TeeReader", "(Reader,Writer,boolean)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "TimestampedObserver", true, "getCloseInstant", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.input", "TimestampedObserver", true, "getOpenInstant", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.input", "TimestampedObserver", true, "toString", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.input", "UncheckedBufferedReader", true, "UncheckedBufferedReader", "(Reader)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "UncheckedBufferedReader", true, "UncheckedBufferedReader", "(Reader,int)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] + - ["org.apache.commons.io.input", "Tailer", true, "getDelayDuration", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.input", "Tailer", true, "getFile", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.input", "Tailer", true, "getTailable", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.input", "TeeInputStream", true, "TeeInputStream", "(InputStream,OutputStream)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "TeeInputStream", true, "TeeInputStream", "(InputStream,OutputStream,boolean)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "TeeReader", true, "TeeReader", "(Reader,Writer)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "TeeReader", true, "TeeReader", "(Reader,Writer,boolean)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "TimestampedObserver", true, "getCloseInstant", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.input", "TimestampedObserver", true, "getOpenInstant", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.input", "TimestampedObserver", true, "toString", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.input", "UncheckedBufferedReader", true, "UncheckedBufferedReader", "(Reader)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "UncheckedBufferedReader", true, "UncheckedBufferedReader", "(Reader,int)", "", "Argument[0]", "Argument[this]", "taint", "generated"] - ["org.apache.commons.io.input", "UncheckedBufferedReader", true, "on", "(Reader)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["org.apache.commons.io.input", "UncheckedFilterInputStream", true, "on", "(InputStream)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.input", "UnixLineEndingInputStream", true, "UnixLineEndingInputStream", "(InputStream,boolean)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "UnsynchronizedByteArrayInputStream", true, "UnsynchronizedByteArrayInputStream", "(byte[])", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "UnsynchronizedByteArrayInputStream", true, "UnsynchronizedByteArrayInputStream", "(byte[],int)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "UnsynchronizedByteArrayInputStream", true, "UnsynchronizedByteArrayInputStream", "(byte[],int,int)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "WindowsLineEndingInputStream", true, "WindowsLineEndingInputStream", "(InputStream,boolean)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "XmlStreamReader", true, "XmlStreamReader", "(InputStream)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "XmlStreamReader", true, "XmlStreamReader", "(InputStream,String)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "XmlStreamReader", true, "XmlStreamReader", "(InputStream,String)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "XmlStreamReader", true, "XmlStreamReader", "(InputStream,String,boolean)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "XmlStreamReader", true, "XmlStreamReader", "(InputStream,String,boolean)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "XmlStreamReader", true, "XmlStreamReader", "(InputStream,String,boolean,String)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "XmlStreamReader", true, "XmlStreamReader", "(InputStream,String,boolean,String)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "XmlStreamReader", true, "XmlStreamReader", "(InputStream,String,boolean,String)", "", "Argument[3]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "XmlStreamReader", true, "XmlStreamReader", "(InputStream,boolean)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "XmlStreamReader", true, "XmlStreamReader", "(InputStream,boolean,String)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "XmlStreamReader", true, "XmlStreamReader", "(InputStream,boolean,String)", "", "Argument[2]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "XmlStreamReader", true, "XmlStreamReader", "(URLConnection,String)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "XmlStreamReader", true, "getDefaultEncoding", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.input", "XmlStreamReader", true, "getEncoding", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.input", "XmlStreamReaderException", true, "XmlStreamReaderException", "(String,String,String,String)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "XmlStreamReaderException", true, "XmlStreamReaderException", "(String,String,String,String)", "", "Argument[2]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "XmlStreamReaderException", true, "XmlStreamReaderException", "(String,String,String,String)", "", "Argument[3]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "XmlStreamReaderException", true, "XmlStreamReaderException", "(String,String,String,String,String,String)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "XmlStreamReaderException", true, "XmlStreamReaderException", "(String,String,String,String,String,String)", "", "Argument[2]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "XmlStreamReaderException", true, "XmlStreamReaderException", "(String,String,String,String,String,String)", "", "Argument[3]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "XmlStreamReaderException", true, "XmlStreamReaderException", "(String,String,String,String,String,String)", "", "Argument[4]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "XmlStreamReaderException", true, "XmlStreamReaderException", "(String,String,String,String,String,String)", "", "Argument[5]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.input", "XmlStreamReaderException", true, "getBomEncoding", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.input", "XmlStreamReaderException", true, "getContentTypeEncoding", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.input", "XmlStreamReaderException", true, "getContentTypeMime", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.input", "XmlStreamReaderException", true, "getXmlEncoding", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.input", "XmlStreamReaderException", true, "getXmlGuessEncoding", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.monitor", "FileAlterationMonitor", false, "FileAlterationMonitor", "(long,Collection)", "", "Argument[1].Element", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.monitor", "FileAlterationMonitor", false, "FileAlterationMonitor", "(long,FileAlterationObserver[])", "", "Argument[1].ArrayElement", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.monitor", "FileAlterationMonitor", false, "addObserver", "(FileAlterationObserver)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.monitor", "FileAlterationMonitor", false, "getObservers", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.monitor", "FileAlterationMonitor", false, "setThreadFactory", "(ThreadFactory)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.monitor", "FileAlterationObserver", true, "FileAlterationObserver", "(File)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.monitor", "FileAlterationObserver", true, "FileAlterationObserver", "(File,FileFilter)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.monitor", "FileAlterationObserver", true, "FileAlterationObserver", "(File,FileFilter)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.monitor", "FileAlterationObserver", true, "FileAlterationObserver", "(File,FileFilter,IOCase)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.monitor", "FileAlterationObserver", true, "FileAlterationObserver", "(File,FileFilter,IOCase)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.monitor", "FileAlterationObserver", true, "FileAlterationObserver", "(String)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.monitor", "FileAlterationObserver", true, "FileAlterationObserver", "(String,FileFilter)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.monitor", "FileAlterationObserver", true, "FileAlterationObserver", "(String,FileFilter)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.monitor", "FileAlterationObserver", true, "FileAlterationObserver", "(String,FileFilter,IOCase)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.monitor", "FileAlterationObserver", true, "FileAlterationObserver", "(String,FileFilter,IOCase)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.monitor", "FileAlterationObserver", true, "addListener", "(FileAlterationListener)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.monitor", "FileAlterationObserver", true, "getDirectory", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.monitor", "FileAlterationObserver", true, "getFileFilter", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.monitor", "FileAlterationObserver", true, "getListeners", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.monitor", "FileAlterationObserver", true, "toString", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.monitor", "FileEntry", true, "FileEntry", "(File)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.monitor", "FileEntry", true, "FileEntry", "(FileEntry,File)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.monitor", "FileEntry", true, "FileEntry", "(FileEntry,File)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.monitor", "FileEntry", true, "getChildren", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.monitor", "FileEntry", true, "getFile", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.monitor", "FileEntry", true, "getLastModifiedFileTime", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.monitor", "FileEntry", true, "getName", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.monitor", "FileEntry", true, "getParent", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.monitor", "FileEntry", true, "newChildInstance", "(File)", "", "Argument[-1]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.input", "UnixLineEndingInputStream", true, "UnixLineEndingInputStream", "(InputStream,boolean)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "UnsynchronizedByteArrayInputStream", true, "UnsynchronizedByteArrayInputStream", "(byte[])", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "UnsynchronizedByteArrayInputStream", true, "UnsynchronizedByteArrayInputStream", "(byte[],int)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "UnsynchronizedByteArrayInputStream", true, "UnsynchronizedByteArrayInputStream", "(byte[],int,int)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "WindowsLineEndingInputStream", true, "WindowsLineEndingInputStream", "(InputStream,boolean)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "XmlStreamReader", true, "XmlStreamReader", "(InputStream)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "XmlStreamReader", true, "XmlStreamReader", "(InputStream,String)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "XmlStreamReader", true, "XmlStreamReader", "(InputStream,String)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "XmlStreamReader", true, "XmlStreamReader", "(InputStream,String,boolean)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "XmlStreamReader", true, "XmlStreamReader", "(InputStream,String,boolean)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "XmlStreamReader", true, "XmlStreamReader", "(InputStream,String,boolean,String)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "XmlStreamReader", true, "XmlStreamReader", "(InputStream,String,boolean,String)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "XmlStreamReader", true, "XmlStreamReader", "(InputStream,String,boolean,String)", "", "Argument[3]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "XmlStreamReader", true, "XmlStreamReader", "(InputStream,boolean)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "XmlStreamReader", true, "XmlStreamReader", "(InputStream,boolean,String)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "XmlStreamReader", true, "XmlStreamReader", "(InputStream,boolean,String)", "", "Argument[2]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "XmlStreamReader", true, "XmlStreamReader", "(URLConnection,String)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "XmlStreamReader", true, "getDefaultEncoding", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.input", "XmlStreamReader", true, "getEncoding", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.input", "XmlStreamReaderException", true, "XmlStreamReaderException", "(String,String,String,String)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "XmlStreamReaderException", true, "XmlStreamReaderException", "(String,String,String,String)", "", "Argument[2]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "XmlStreamReaderException", true, "XmlStreamReaderException", "(String,String,String,String)", "", "Argument[3]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "XmlStreamReaderException", true, "XmlStreamReaderException", "(String,String,String,String,String,String)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "XmlStreamReaderException", true, "XmlStreamReaderException", "(String,String,String,String,String,String)", "", "Argument[2]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "XmlStreamReaderException", true, "XmlStreamReaderException", "(String,String,String,String,String,String)", "", "Argument[3]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "XmlStreamReaderException", true, "XmlStreamReaderException", "(String,String,String,String,String,String)", "", "Argument[4]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "XmlStreamReaderException", true, "XmlStreamReaderException", "(String,String,String,String,String,String)", "", "Argument[5]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.input", "XmlStreamReaderException", true, "getBomEncoding", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.input", "XmlStreamReaderException", true, "getContentTypeEncoding", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.input", "XmlStreamReaderException", true, "getContentTypeMime", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.input", "XmlStreamReaderException", true, "getXmlEncoding", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.input", "XmlStreamReaderException", true, "getXmlGuessEncoding", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.monitor", "FileAlterationMonitor", false, "FileAlterationMonitor", "(long,Collection)", "", "Argument[1].Element", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.monitor", "FileAlterationMonitor", false, "FileAlterationMonitor", "(long,FileAlterationObserver[])", "", "Argument[1].ArrayElement", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.monitor", "FileAlterationMonitor", false, "addObserver", "(FileAlterationObserver)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.monitor", "FileAlterationMonitor", false, "getObservers", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.monitor", "FileAlterationMonitor", false, "setThreadFactory", "(ThreadFactory)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.monitor", "FileAlterationObserver", true, "FileAlterationObserver", "(File)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.monitor", "FileAlterationObserver", true, "FileAlterationObserver", "(File,FileFilter)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.monitor", "FileAlterationObserver", true, "FileAlterationObserver", "(File,FileFilter)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.monitor", "FileAlterationObserver", true, "FileAlterationObserver", "(File,FileFilter,IOCase)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.monitor", "FileAlterationObserver", true, "FileAlterationObserver", "(File,FileFilter,IOCase)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.monitor", "FileAlterationObserver", true, "FileAlterationObserver", "(String)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.monitor", "FileAlterationObserver", true, "FileAlterationObserver", "(String,FileFilter)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.monitor", "FileAlterationObserver", true, "FileAlterationObserver", "(String,FileFilter)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.monitor", "FileAlterationObserver", true, "FileAlterationObserver", "(String,FileFilter,IOCase)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.monitor", "FileAlterationObserver", true, "FileAlterationObserver", "(String,FileFilter,IOCase)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.monitor", "FileAlterationObserver", true, "addListener", "(FileAlterationListener)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.monitor", "FileAlterationObserver", true, "getDirectory", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.monitor", "FileAlterationObserver", true, "getFileFilter", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.monitor", "FileAlterationObserver", true, "getListeners", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.monitor", "FileAlterationObserver", true, "toString", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.monitor", "FileEntry", true, "FileEntry", "(File)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.monitor", "FileEntry", true, "FileEntry", "(FileEntry,File)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.monitor", "FileEntry", true, "FileEntry", "(FileEntry,File)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.monitor", "FileEntry", true, "getChildren", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.monitor", "FileEntry", true, "getFile", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.monitor", "FileEntry", true, "getLastModifiedFileTime", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.monitor", "FileEntry", true, "getName", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.monitor", "FileEntry", true, "getParent", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.monitor", "FileEntry", true, "newChildInstance", "(File)", "", "Argument[this]", "ReturnValue", "taint", "generated"] - ["org.apache.commons.io.monitor", "FileEntry", true, "newChildInstance", "(File)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.monitor", "FileEntry", true, "setChildren", "(FileEntry[])", "", "Argument[0].ArrayElement", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.monitor", "FileEntry", true, "setLastModified", "(FileTime)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.monitor", "FileEntry", true, "setName", "(String)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.output", "AbstractByteArrayOutputStream", true, "toByteArray", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.output", "AbstractByteArrayOutputStream", true, "toString", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.output", "AbstractByteArrayOutputStream", true, "toString", "(Charset)", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.output", "AbstractByteArrayOutputStream", true, "toString", "(String)", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.output", "AbstractByteArrayOutputStream", true, "write", "(InputStream)", "", "Argument[-1]", "Argument[0]", "taint", "generated"] - - ["org.apache.commons.io.output", "AbstractByteArrayOutputStream", true, "write", "(InputStream)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.output", "AbstractByteArrayOutputStream", true, "writeTo", "(OutputStream)", "", "Argument[-1]", "Argument[0]", "taint", "generated"] - - ["org.apache.commons.io.output", "AppendableOutputStream", true, "AppendableOutputStream", "(Appendable)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.output", "AppendableOutputStream", true, "getAppendable", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.output", "AppendableWriter", true, "AppendableWriter", "(Appendable)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.output", "AppendableWriter", true, "getAppendable", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.output", "BrokenOutputStream", true, "BrokenOutputStream", "(Supplier)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.output", "BrokenWriter", true, "BrokenWriter", "(Supplier)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.output", "ChunkedOutputStream", true, "ChunkedOutputStream", "(OutputStream)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.output", "ChunkedOutputStream", true, "ChunkedOutputStream", "(OutputStream,int)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.output", "CloseShieldOutputStream", true, "CloseShieldOutputStream", "(OutputStream)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] + - ["org.apache.commons.io.monitor", "FileEntry", true, "setChildren", "(FileEntry[])", "", "Argument[0].ArrayElement", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.monitor", "FileEntry", true, "setLastModified", "(FileTime)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.monitor", "FileEntry", true, "setName", "(String)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.output", "AbstractByteArrayOutputStream", true, "toByteArray", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.output", "AbstractByteArrayOutputStream", true, "toString", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.output", "AbstractByteArrayOutputStream", true, "toString", "(Charset)", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.output", "AbstractByteArrayOutputStream", true, "toString", "(String)", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.output", "AbstractByteArrayOutputStream", true, "write", "(InputStream)", "", "Argument[this]", "Argument[0]", "taint", "generated"] + - ["org.apache.commons.io.output", "AbstractByteArrayOutputStream", true, "write", "(InputStream)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.output", "AbstractByteArrayOutputStream", true, "writeTo", "(OutputStream)", "", "Argument[this]", "Argument[0]", "taint", "generated"] + - ["org.apache.commons.io.output", "AppendableOutputStream", true, "AppendableOutputStream", "(Appendable)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.output", "AppendableOutputStream", true, "getAppendable", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.output", "AppendableWriter", true, "AppendableWriter", "(Appendable)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.output", "AppendableWriter", true, "getAppendable", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.output", "BrokenOutputStream", true, "BrokenOutputStream", "(Supplier)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.output", "BrokenWriter", true, "BrokenWriter", "(Supplier)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.output", "ChunkedOutputStream", true, "ChunkedOutputStream", "(OutputStream)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.output", "ChunkedOutputStream", true, "ChunkedOutputStream", "(OutputStream,int)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.output", "CloseShieldOutputStream", true, "CloseShieldOutputStream", "(OutputStream)", "", "Argument[0]", "Argument[this]", "taint", "generated"] - ["org.apache.commons.io.output", "CloseShieldOutputStream", true, "wrap", "(OutputStream)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.output", "CountingOutputStream", true, "CountingOutputStream", "(OutputStream)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.output", "DeferredFileOutputStream", true, "DeferredFileOutputStream", "(int,File)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.output", "DeferredFileOutputStream", true, "DeferredFileOutputStream", "(int,String,String,File)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.output", "DeferredFileOutputStream", true, "DeferredFileOutputStream", "(int,String,String,File)", "", "Argument[2]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.output", "DeferredFileOutputStream", true, "DeferredFileOutputStream", "(int,String,String,File)", "", "Argument[3]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.output", "DeferredFileOutputStream", true, "DeferredFileOutputStream", "(int,int,File)", "", "Argument[2]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.output", "DeferredFileOutputStream", true, "DeferredFileOutputStream", "(int,int,String,String,File)", "", "Argument[2]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.output", "DeferredFileOutputStream", true, "DeferredFileOutputStream", "(int,int,String,String,File)", "", "Argument[3]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.output", "DeferredFileOutputStream", true, "DeferredFileOutputStream", "(int,int,String,String,File)", "", "Argument[4]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.output", "DeferredFileOutputStream", true, "getData", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.output", "DeferredFileOutputStream", true, "getFile", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.output", "DeferredFileOutputStream", true, "writeTo", "(OutputStream)", "", "Argument[-1]", "Argument[0]", "taint", "generated"] - - ["org.apache.commons.io.output", "LockableFileWriter", true, "LockableFileWriter", "(File,Charset,boolean,String)", "", "Argument[3]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.output", "LockableFileWriter", true, "LockableFileWriter", "(File,String,boolean,String)", "", "Argument[3]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.output", "LockableFileWriter", true, "LockableFileWriter", "(File,boolean,String)", "", "Argument[2]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.output", "LockableFileWriter", true, "LockableFileWriter", "(String,boolean,String)", "", "Argument[2]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.output", "ProxyCollectionWriter", true, "ProxyCollectionWriter", "(Collection)", "", "Argument[0].Element", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.output", "ProxyCollectionWriter", true, "ProxyCollectionWriter", "(Writer[])", "", "Argument[0].ArrayElement", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.output", "ProxyOutputStream", true, "ProxyOutputStream", "(OutputStream)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.output", "StringBuilderWriter", true, "StringBuilderWriter", "(StringBuilder)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.output", "StringBuilderWriter", true, "getBuilder", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.output", "StringBuilderWriter", true, "toString", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.output", "TaggedOutputStream", true, "TaggedOutputStream", "(OutputStream)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.output", "TeeOutputStream", true, "TeeOutputStream", "(OutputStream,OutputStream)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.output", "TeeOutputStream", true, "TeeOutputStream", "(OutputStream,OutputStream)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.output", "TeeWriter", true, "TeeWriter", "(Collection)", "", "Argument[0].Element", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.output", "TeeWriter", true, "TeeWriter", "(Writer[])", "", "Argument[0].ArrayElement", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.output", "ThresholdingOutputStream", true, "ThresholdingOutputStream", "(int,IOConsumer,IOFunction)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.output", "ThresholdingOutputStream", true, "ThresholdingOutputStream", "(int,IOConsumer,IOFunction)", "", "Argument[2]", "Argument[-1]", "taint", "generated"] + - ["org.apache.commons.io.output", "CountingOutputStream", true, "CountingOutputStream", "(OutputStream)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.output", "DeferredFileOutputStream", true, "DeferredFileOutputStream", "(int,File)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.output", "DeferredFileOutputStream", true, "DeferredFileOutputStream", "(int,String,String,File)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.output", "DeferredFileOutputStream", true, "DeferredFileOutputStream", "(int,String,String,File)", "", "Argument[2]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.output", "DeferredFileOutputStream", true, "DeferredFileOutputStream", "(int,String,String,File)", "", "Argument[3]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.output", "DeferredFileOutputStream", true, "DeferredFileOutputStream", "(int,int,File)", "", "Argument[2]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.output", "DeferredFileOutputStream", true, "DeferredFileOutputStream", "(int,int,String,String,File)", "", "Argument[2]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.output", "DeferredFileOutputStream", true, "DeferredFileOutputStream", "(int,int,String,String,File)", "", "Argument[3]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.output", "DeferredFileOutputStream", true, "DeferredFileOutputStream", "(int,int,String,String,File)", "", "Argument[4]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.output", "DeferredFileOutputStream", true, "getData", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.output", "DeferredFileOutputStream", true, "getFile", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.output", "DeferredFileOutputStream", true, "writeTo", "(OutputStream)", "", "Argument[this]", "Argument[0]", "taint", "generated"] + - ["org.apache.commons.io.output", "LockableFileWriter", true, "LockableFileWriter", "(File,Charset,boolean,String)", "", "Argument[3]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.output", "LockableFileWriter", true, "LockableFileWriter", "(File,String,boolean,String)", "", "Argument[3]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.output", "LockableFileWriter", true, "LockableFileWriter", "(File,boolean,String)", "", "Argument[2]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.output", "LockableFileWriter", true, "LockableFileWriter", "(String,boolean,String)", "", "Argument[2]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.output", "ProxyCollectionWriter", true, "ProxyCollectionWriter", "(Collection)", "", "Argument[0].Element", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.output", "ProxyCollectionWriter", true, "ProxyCollectionWriter", "(Writer[])", "", "Argument[0].ArrayElement", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.output", "ProxyOutputStream", true, "ProxyOutputStream", "(OutputStream)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.output", "StringBuilderWriter", true, "StringBuilderWriter", "(StringBuilder)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.output", "StringBuilderWriter", true, "getBuilder", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.output", "StringBuilderWriter", true, "toString", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.output", "TaggedOutputStream", true, "TaggedOutputStream", "(OutputStream)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.output", "TeeOutputStream", true, "TeeOutputStream", "(OutputStream,OutputStream)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.output", "TeeOutputStream", true, "TeeOutputStream", "(OutputStream,OutputStream)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.output", "TeeWriter", true, "TeeWriter", "(Collection)", "", "Argument[0].Element", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.output", "TeeWriter", true, "TeeWriter", "(Writer[])", "", "Argument[0].ArrayElement", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.output", "ThresholdingOutputStream", true, "ThresholdingOutputStream", "(int,IOConsumer,IOFunction)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.output", "ThresholdingOutputStream", true, "ThresholdingOutputStream", "(int,IOConsumer,IOFunction)", "", "Argument[2]", "Argument[this]", "taint", "generated"] - ["org.apache.commons.io.output", "UncheckedAppendable", true, "on", "(Appendable)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.output", "UncheckedFilterOutputStream", true, "UncheckedFilterOutputStream", "(OutputStream)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] + - ["org.apache.commons.io.output", "UncheckedFilterOutputStream", true, "UncheckedFilterOutputStream", "(OutputStream)", "", "Argument[0]", "Argument[this]", "taint", "generated"] - ["org.apache.commons.io.output", "UncheckedFilterOutputStream", true, "on", "(OutputStream)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.output", "WriterOutputStream", true, "WriterOutputStream", "(Writer)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.output", "WriterOutputStream", true, "WriterOutputStream", "(Writer,Charset)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.output", "WriterOutputStream", true, "WriterOutputStream", "(Writer,Charset,int,boolean)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.output", "WriterOutputStream", true, "WriterOutputStream", "(Writer,CharsetDecoder)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.output", "WriterOutputStream", true, "WriterOutputStream", "(Writer,CharsetDecoder)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.output", "WriterOutputStream", true, "WriterOutputStream", "(Writer,CharsetDecoder,int,boolean)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.output", "WriterOutputStream", true, "WriterOutputStream", "(Writer,CharsetDecoder,int,boolean)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.output", "WriterOutputStream", true, "WriterOutputStream", "(Writer,String)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.output", "WriterOutputStream", true, "WriterOutputStream", "(Writer,String,int,boolean)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.output", "XmlStreamWriter", true, "XmlStreamWriter", "(File,String)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.output", "XmlStreamWriter", true, "XmlStreamWriter", "(OutputStream)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.output", "XmlStreamWriter", true, "XmlStreamWriter", "(OutputStream,String)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.output", "XmlStreamWriter", true, "XmlStreamWriter", "(OutputStream,String)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.output", "XmlStreamWriter", true, "getDefaultEncoding", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.output", "XmlStreamWriter", true, "getEncoding", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io.serialization", "ValidatingObjectInputStream", true, "ValidatingObjectInputStream", "(InputStream)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.serialization", "ValidatingObjectInputStream", true, "accept", "(ClassNameMatcher)", "", "Argument[-1]", "ReturnValue", "value", "generated"] - - ["org.apache.commons.io.serialization", "ValidatingObjectInputStream", true, "accept", "(ClassNameMatcher)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.serialization", "ValidatingObjectInputStream", true, "accept", "(Class[])", "", "Argument[-1]", "ReturnValue", "value", "generated"] - - ["org.apache.commons.io.serialization", "ValidatingObjectInputStream", true, "accept", "(Pattern)", "", "Argument[-1]", "ReturnValue", "value", "generated"] - - ["org.apache.commons.io.serialization", "ValidatingObjectInputStream", true, "accept", "(String[])", "", "Argument[-1]", "ReturnValue", "value", "generated"] - - ["org.apache.commons.io.serialization", "ValidatingObjectInputStream", true, "reject", "(ClassNameMatcher)", "", "Argument[-1]", "ReturnValue", "value", "generated"] - - ["org.apache.commons.io.serialization", "ValidatingObjectInputStream", true, "reject", "(ClassNameMatcher)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io.serialization", "ValidatingObjectInputStream", true, "reject", "(Class[])", "", "Argument[-1]", "ReturnValue", "value", "generated"] - - ["org.apache.commons.io.serialization", "ValidatingObjectInputStream", true, "reject", "(Pattern)", "", "Argument[-1]", "ReturnValue", "value", "generated"] - - ["org.apache.commons.io.serialization", "ValidatingObjectInputStream", true, "reject", "(String[])", "", "Argument[-1]", "ReturnValue", "value", "generated"] - - ["org.apache.commons.io", "ByteOrderMark", true, "ByteOrderMark", "(String,int[])", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io", "ByteOrderMark", true, "getCharsetName", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io", "ByteOrderMark", true, "toString", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.output", "WriterOutputStream", true, "WriterOutputStream", "(Writer)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.output", "WriterOutputStream", true, "WriterOutputStream", "(Writer,Charset)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.output", "WriterOutputStream", true, "WriterOutputStream", "(Writer,Charset,int,boolean)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.output", "WriterOutputStream", true, "WriterOutputStream", "(Writer,CharsetDecoder)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.output", "WriterOutputStream", true, "WriterOutputStream", "(Writer,CharsetDecoder)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.output", "WriterOutputStream", true, "WriterOutputStream", "(Writer,CharsetDecoder,int,boolean)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.output", "WriterOutputStream", true, "WriterOutputStream", "(Writer,CharsetDecoder,int,boolean)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.output", "WriterOutputStream", true, "WriterOutputStream", "(Writer,String)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.output", "WriterOutputStream", true, "WriterOutputStream", "(Writer,String,int,boolean)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.output", "XmlStreamWriter", true, "XmlStreamWriter", "(File,String)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.output", "XmlStreamWriter", true, "XmlStreamWriter", "(OutputStream)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.output", "XmlStreamWriter", true, "XmlStreamWriter", "(OutputStream,String)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.output", "XmlStreamWriter", true, "XmlStreamWriter", "(OutputStream,String)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.output", "XmlStreamWriter", true, "getDefaultEncoding", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.output", "XmlStreamWriter", true, "getEncoding", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io.serialization", "ValidatingObjectInputStream", true, "ValidatingObjectInputStream", "(InputStream)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.serialization", "ValidatingObjectInputStream", true, "accept", "(ClassNameMatcher)", "", "Argument[this]", "ReturnValue", "value", "generated"] + - ["org.apache.commons.io.serialization", "ValidatingObjectInputStream", true, "accept", "(ClassNameMatcher)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.serialization", "ValidatingObjectInputStream", true, "accept", "(Class[])", "", "Argument[this]", "ReturnValue", "value", "generated"] + - ["org.apache.commons.io.serialization", "ValidatingObjectInputStream", true, "accept", "(Pattern)", "", "Argument[this]", "ReturnValue", "value", "generated"] + - ["org.apache.commons.io.serialization", "ValidatingObjectInputStream", true, "accept", "(String[])", "", "Argument[this]", "ReturnValue", "value", "generated"] + - ["org.apache.commons.io.serialization", "ValidatingObjectInputStream", true, "reject", "(ClassNameMatcher)", "", "Argument[this]", "ReturnValue", "value", "generated"] + - ["org.apache.commons.io.serialization", "ValidatingObjectInputStream", true, "reject", "(ClassNameMatcher)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io.serialization", "ValidatingObjectInputStream", true, "reject", "(Class[])", "", "Argument[this]", "ReturnValue", "value", "generated"] + - ["org.apache.commons.io.serialization", "ValidatingObjectInputStream", true, "reject", "(Pattern)", "", "Argument[this]", "ReturnValue", "value", "generated"] + - ["org.apache.commons.io.serialization", "ValidatingObjectInputStream", true, "reject", "(String[])", "", "Argument[this]", "ReturnValue", "value", "generated"] + - ["org.apache.commons.io", "ByteOrderMark", true, "ByteOrderMark", "(String,int[])", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io", "ByteOrderMark", true, "getCharsetName", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io", "ByteOrderMark", true, "toString", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] - ["org.apache.commons.io", "CopyUtils", true, "copy", "(InputStream,OutputStream)", "", "Argument[0]", "Argument[1]", "taint", "generated"] - ["org.apache.commons.io", "CopyUtils", true, "copy", "(InputStream,Writer)", "", "Argument[0]", "Argument[1]", "taint", "generated"] - ["org.apache.commons.io", "CopyUtils", true, "copy", "(InputStream,Writer,String)", "", "Argument[0]", "Argument[1]", "taint", "generated"] @@ -529,11 +529,11 @@ extensions: - ["org.apache.commons.io", "CopyUtils", true, "copy", "(byte[],OutputStream)", "", "Argument[0]", "Argument[1]", "taint", "generated"] - ["org.apache.commons.io", "CopyUtils", true, "copy", "(byte[],Writer)", "", "Argument[0]", "Argument[1]", "taint", "generated"] - ["org.apache.commons.io", "CopyUtils", true, "copy", "(byte[],Writer,String)", "", "Argument[0]", "Argument[1]", "taint", "generated"] - - ["org.apache.commons.io", "DirectoryWalker$CancelException", true, "CancelException", "(File,int)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io", "DirectoryWalker$CancelException", true, "CancelException", "(String,File,int)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io", "DirectoryWalker$CancelException", true, "getFile", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io", "FileCleaningTracker", true, "getDeleteFailures", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io", "FileDeleteStrategy", true, "toString", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io", "DirectoryWalker$CancelException", true, "CancelException", "(File,int)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io", "DirectoryWalker$CancelException", true, "CancelException", "(String,File,int)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io", "DirectoryWalker$CancelException", true, "getFile", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io", "FileCleaningTracker", true, "getDeleteFailures", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io", "FileDeleteStrategy", true, "toString", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] - ["org.apache.commons.io", "FileSystem", false, "normalizeSeparators", "(String)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["org.apache.commons.io", "FileSystem", false, "toLegalFileName", "(String,char)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["org.apache.commons.io", "FileUtils", true, "checksum", "(File,Checksum)", "", "Argument[1]", "ReturnValue", "taint", "generated"] @@ -561,11 +561,11 @@ extensions: - ["org.apache.commons.io", "FilenameUtils", true, "separatorsToSystem", "(String)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["org.apache.commons.io", "FilenameUtils", true, "separatorsToUnix", "(String)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["org.apache.commons.io", "FilenameUtils", true, "separatorsToWindows", "(String)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io", "IOExceptionList", true, "IOExceptionList", "(List)", "", "Argument[0].Element", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io", "IOExceptionList", true, "IOExceptionList", "(String,List)", "", "Argument[1].Element", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io", "IOExceptionList", true, "getCause", "(int)", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io", "IOExceptionList", true, "getCauseList", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io", "IOExceptionList", true, "getCauseList", "(Class)", "", "Argument[-1]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io", "IOExceptionList", true, "IOExceptionList", "(List)", "", "Argument[0].Element", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io", "IOExceptionList", true, "IOExceptionList", "(String,List)", "", "Argument[1].Element", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io", "IOExceptionList", true, "getCause", "(int)", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io", "IOExceptionList", true, "getCauseList", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io", "IOExceptionList", true, "getCauseList", "(Class)", "", "Argument[this]", "ReturnValue", "taint", "generated"] - ["org.apache.commons.io", "IOUtils", true, "buffer", "(InputStream)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["org.apache.commons.io", "IOUtils", true, "buffer", "(InputStream,int)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["org.apache.commons.io", "IOUtils", true, "buffer", "(OutputStream)", "", "Argument[0]", "ReturnValue", "taint", "generated"] @@ -667,10 +667,10 @@ extensions: - ["org.apache.commons.io", "IOUtils", true, "writeLines", "(Collection,String,OutputStream,String)", "", "Argument[1]", "Argument[2]", "taint", "generated"] - ["org.apache.commons.io", "IOUtils", true, "writeLines", "(Collection,String,Writer)", "", "Argument[1]", "Argument[2]", "taint", "generated"] - ["org.apache.commons.io", "IOUtils", true, "writer", "(Appendable)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io", "LineIterator", true, "LineIterator", "(Reader)", "", "Argument[0]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io", "LineIterator", true, "nextLine", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] - - ["org.apache.commons.io", "TaggedIOException", true, "TaggedIOException", "(IOException,Serializable)", "", "Argument[1]", "Argument[-1]", "taint", "generated"] - - ["org.apache.commons.io", "TaggedIOException", true, "getTag", "()", "", "Argument[-1]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io", "LineIterator", true, "LineIterator", "(Reader)", "", "Argument[0]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io", "LineIterator", true, "nextLine", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] + - ["org.apache.commons.io", "TaggedIOException", true, "TaggedIOException", "(IOException,Serializable)", "", "Argument[1]", "Argument[this]", "taint", "generated"] + - ["org.apache.commons.io", "TaggedIOException", true, "getTag", "()", "", "Argument[this]", "ReturnValue", "taint", "generated"] - ["org.apache.commons.io", "UncheckedIO", true, "apply", "(IOFunction,Object)", "", "Argument[1]", "ReturnValue", "taint", "generated"] - ["org.apache.commons.io", "UncheckedIO", true, "apply", "(IOTriFunction,Object,Object,Object)", "", "Argument[1]", "ReturnValue", "taint", "generated"] diff --git a/java/ql/lib/ext/jakarta.json.model.yml b/java/ql/lib/ext/jakarta.json.model.yml index 3d4d35ca4f0..b70a7eee072 100644 --- a/java/ql/lib/ext/jakarta.json.model.yml +++ b/java/ql/lib/ext/jakarta.json.model.yml @@ -19,109 +19,109 @@ extensions: - ["jakarta.json", "Json", False, "createWriter", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["jakarta.json", "Json", False, "decodePointer", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["jakarta.json", "Json", False, "encodePointer", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["jakarta.json", "JsonArray", False, "getBoolean", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["jakarta.json", "JsonArray", False, "getBoolean", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["jakarta.json", "JsonArray", False, "getBoolean", "", "", "Argument[1]", "ReturnValue", "value", "manual"] - - ["jakarta.json", "JsonArray", False, "getInt", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["jakarta.json", "JsonArray", False, "getInt", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["jakarta.json", "JsonArray", False, "getInt", "", "", "Argument[1]", "ReturnValue", "value", "manual"] - - ["jakarta.json", "JsonArray", False, "getJsonArray", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["jakarta.json", "JsonArray", False, "getJsonNumber", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["jakarta.json", "JsonArray", False, "getJsonObject", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["jakarta.json", "JsonArray", False, "getJsonString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["jakarta.json", "JsonArray", False, "getString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["jakarta.json", "JsonArray", False, "getJsonArray", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["jakarta.json", "JsonArray", False, "getJsonNumber", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["jakarta.json", "JsonArray", False, "getJsonObject", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["jakarta.json", "JsonArray", False, "getJsonString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["jakarta.json", "JsonArray", False, "getString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["jakarta.json", "JsonArray", False, "getString", "", "", "Argument[1]", "ReturnValue", "value", "manual"] - - ["jakarta.json", "JsonArray", False, "getValuesAs", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["jakarta.json", "JsonArrayBuilder", False, "add", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["jakarta.json", "JsonArrayBuilder", False, "add", "(BigDecimal)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["jakarta.json", "JsonArrayBuilder", False, "add", "(BigInteger)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["jakarta.json", "JsonArrayBuilder", False, "add", "(JsonArrayBuilder)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["jakarta.json", "JsonArrayBuilder", False, "add", "(JsonObjectBuilder)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["jakarta.json", "JsonArrayBuilder", False, "add", "(JsonValue)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["jakarta.json", "JsonArrayBuilder", False, "add", "(String)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["jakarta.json", "JsonArrayBuilder", False, "add", "(boolean)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["jakarta.json", "JsonArrayBuilder", False, "add", "(double)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["jakarta.json", "JsonArrayBuilder", False, "add", "(int)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["jakarta.json", "JsonArrayBuilder", False, "add", "(int,BigDecimal)", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["jakarta.json", "JsonArrayBuilder", False, "add", "(int,BigInteger)", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["jakarta.json", "JsonArrayBuilder", False, "add", "(int,JsonArrayBuilder)", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["jakarta.json", "JsonArrayBuilder", False, "add", "(int,JsonObjectBuilder)", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["jakarta.json", "JsonArrayBuilder", False, "add", "(int,JsonValue)", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["jakarta.json", "JsonArrayBuilder", False, "add", "(int,String)", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["jakarta.json", "JsonArrayBuilder", False, "add", "(int,boolean)", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["jakarta.json", "JsonArrayBuilder", False, "add", "(int,double)", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["jakarta.json", "JsonArrayBuilder", False, "add", "(int,int)", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["jakarta.json", "JsonArrayBuilder", False, "add", "(int,long)", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["jakarta.json", "JsonArrayBuilder", False, "add", "(long)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["jakarta.json", "JsonArrayBuilder", False, "addAll", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["jakarta.json", "JsonArrayBuilder", False, "addAll", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["jakarta.json", "JsonArrayBuilder", False, "addNull", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["jakarta.json", "JsonArrayBuilder", False, "build", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["jakarta.json", "JsonArrayBuilder", False, "remove", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["jakarta.json", "JsonArrayBuilder", False, "set", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["jakarta.json", "JsonArrayBuilder", False, "set", "", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["jakarta.json", "JsonArrayBuilder", False, "setNull", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["jakarta.json", "JsonMergePatch", False, "apply", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["jakarta.json", "JsonArray", False, "getValuesAs", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["jakarta.json", "JsonArrayBuilder", False, "add", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["jakarta.json", "JsonArrayBuilder", False, "add", "(BigDecimal)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["jakarta.json", "JsonArrayBuilder", False, "add", "(BigInteger)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["jakarta.json", "JsonArrayBuilder", False, "add", "(JsonArrayBuilder)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["jakarta.json", "JsonArrayBuilder", False, "add", "(JsonObjectBuilder)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["jakarta.json", "JsonArrayBuilder", False, "add", "(JsonValue)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["jakarta.json", "JsonArrayBuilder", False, "add", "(String)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["jakarta.json", "JsonArrayBuilder", False, "add", "(boolean)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["jakarta.json", "JsonArrayBuilder", False, "add", "(double)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["jakarta.json", "JsonArrayBuilder", False, "add", "(int)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["jakarta.json", "JsonArrayBuilder", False, "add", "(int,BigDecimal)", "", "Argument[1]", "Argument[this]", "taint", "manual"] + - ["jakarta.json", "JsonArrayBuilder", False, "add", "(int,BigInteger)", "", "Argument[1]", "Argument[this]", "taint", "manual"] + - ["jakarta.json", "JsonArrayBuilder", False, "add", "(int,JsonArrayBuilder)", "", "Argument[1]", "Argument[this]", "taint", "manual"] + - ["jakarta.json", "JsonArrayBuilder", False, "add", "(int,JsonObjectBuilder)", "", "Argument[1]", "Argument[this]", "taint", "manual"] + - ["jakarta.json", "JsonArrayBuilder", False, "add", "(int,JsonValue)", "", "Argument[1]", "Argument[this]", "taint", "manual"] + - ["jakarta.json", "JsonArrayBuilder", False, "add", "(int,String)", "", "Argument[1]", "Argument[this]", "taint", "manual"] + - ["jakarta.json", "JsonArrayBuilder", False, "add", "(int,boolean)", "", "Argument[1]", "Argument[this]", "taint", "manual"] + - ["jakarta.json", "JsonArrayBuilder", False, "add", "(int,double)", "", "Argument[1]", "Argument[this]", "taint", "manual"] + - ["jakarta.json", "JsonArrayBuilder", False, "add", "(int,int)", "", "Argument[1]", "Argument[this]", "taint", "manual"] + - ["jakarta.json", "JsonArrayBuilder", False, "add", "(int,long)", "", "Argument[1]", "Argument[this]", "taint", "manual"] + - ["jakarta.json", "JsonArrayBuilder", False, "add", "(long)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["jakarta.json", "JsonArrayBuilder", False, "addAll", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["jakarta.json", "JsonArrayBuilder", False, "addAll", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["jakarta.json", "JsonArrayBuilder", False, "addNull", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["jakarta.json", "JsonArrayBuilder", False, "build", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["jakarta.json", "JsonArrayBuilder", False, "remove", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["jakarta.json", "JsonArrayBuilder", False, "set", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["jakarta.json", "JsonArrayBuilder", False, "set", "", "", "Argument[1]", "Argument[this]", "taint", "manual"] + - ["jakarta.json", "JsonArrayBuilder", False, "setNull", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["jakarta.json", "JsonMergePatch", False, "apply", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["jakarta.json", "JsonMergePatch", False, "apply", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["jakarta.json", "JsonMergePatch", False, "toJsonValue", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["jakarta.json", "JsonNumber", False, "bigDecimalValue", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["jakarta.json", "JsonNumber", False, "bigIntegerValue", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["jakarta.json", "JsonNumber", False, "bigIntegerValueExact", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["jakarta.json", "JsonNumber", False, "doubleValue", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["jakarta.json", "JsonNumber", False, "intValue", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["jakarta.json", "JsonNumber", False, "intValueExact", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["jakarta.json", "JsonNumber", False, "longValue", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["jakarta.json", "JsonNumber", False, "longValueExact", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["jakarta.json", "JsonNumber", False, "numberValue", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["jakarta.json", "JsonObject", False, "getBoolean", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["jakarta.json", "JsonMergePatch", False, "toJsonValue", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["jakarta.json", "JsonNumber", False, "bigDecimalValue", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["jakarta.json", "JsonNumber", False, "bigIntegerValue", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["jakarta.json", "JsonNumber", False, "bigIntegerValueExact", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["jakarta.json", "JsonNumber", False, "doubleValue", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["jakarta.json", "JsonNumber", False, "intValue", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["jakarta.json", "JsonNumber", False, "intValueExact", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["jakarta.json", "JsonNumber", False, "longValue", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["jakarta.json", "JsonNumber", False, "longValueExact", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["jakarta.json", "JsonNumber", False, "numberValue", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["jakarta.json", "JsonObject", False, "getBoolean", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["jakarta.json", "JsonObject", False, "getBoolean", "", "", "Argument[1]", "ReturnValue", "value", "manual"] - - ["jakarta.json", "JsonObject", False, "getInt", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["jakarta.json", "JsonObject", False, "getInt", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["jakarta.json", "JsonObject", False, "getInt", "", "", "Argument[1]", "ReturnValue", "value", "manual"] - - ["jakarta.json", "JsonObject", False, "getJsonArray", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["jakarta.json", "JsonObject", False, "getJsonNumber", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["jakarta.json", "JsonObject", False, "getJsonObject", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["jakarta.json", "JsonObject", False, "getJsonString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["jakarta.json", "JsonObject", False, "getString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["jakarta.json", "JsonObject", False, "getJsonArray", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["jakarta.json", "JsonObject", False, "getJsonNumber", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["jakarta.json", "JsonObject", False, "getJsonObject", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["jakarta.json", "JsonObject", False, "getJsonString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["jakarta.json", "JsonObject", False, "getString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["jakarta.json", "JsonObject", False, "getString", "", "", "Argument[1]", "ReturnValue", "value", "manual"] - - ["jakarta.json", "JsonObjectBuilder", False, "add", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["jakarta.json", "JsonObjectBuilder", False, "add", "", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["jakarta.json", "JsonObjectBuilder", False, "addAll", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] + - ["jakarta.json", "JsonObjectBuilder", False, "add", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["jakarta.json", "JsonObjectBuilder", False, "add", "", "", "Argument[1]", "Argument[this]", "taint", "manual"] + - ["jakarta.json", "JsonObjectBuilder", False, "addAll", "", "", "Argument[this]", "ReturnValue", "value", "manual"] - ["jakarta.json", "JsonObjectBuilder", False, "addAll", "", "", "Argument[0]", "ReturnValue", "value", "manual"] - - ["jakarta.json", "JsonObjectBuilder", False, "addNull", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["jakarta.json", "JsonObjectBuilder", False, "build", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["jakarta.json", "JsonObjectBuilder", False, "remove", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["jakarta.json", "JsonPatch", False, "apply", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["jakarta.json", "JsonObjectBuilder", False, "addNull", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["jakarta.json", "JsonObjectBuilder", False, "build", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["jakarta.json", "JsonObjectBuilder", False, "remove", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["jakarta.json", "JsonPatch", False, "apply", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["jakarta.json", "JsonPatch", False, "apply", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["jakarta.json", "JsonPatch", False, "toJsonArray", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["jakarta.json", "JsonPatchBuilder", False, "add", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] + - ["jakarta.json", "JsonPatch", False, "toJsonArray", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["jakarta.json", "JsonPatchBuilder", False, "add", "", "", "Argument[this]", "ReturnValue", "value", "manual"] - ["jakarta.json", "JsonPatchBuilder", False, "add", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["jakarta.json", "JsonPatchBuilder", False, "build", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["jakarta.json", "JsonPatchBuilder", False, "copy", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] + - ["jakarta.json", "JsonPatchBuilder", False, "build", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["jakarta.json", "JsonPatchBuilder", False, "copy", "", "", "Argument[this]", "ReturnValue", "value", "manual"] - ["jakarta.json", "JsonPatchBuilder", False, "copy", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["jakarta.json", "JsonPatchBuilder", False, "move", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] + - ["jakarta.json", "JsonPatchBuilder", False, "move", "", "", "Argument[this]", "ReturnValue", "value", "manual"] - ["jakarta.json", "JsonPatchBuilder", False, "move", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["jakarta.json", "JsonPatchBuilder", False, "remove", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] + - ["jakarta.json", "JsonPatchBuilder", False, "remove", "", "", "Argument[this]", "ReturnValue", "value", "manual"] - ["jakarta.json", "JsonPatchBuilder", False, "remove", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["jakarta.json", "JsonPatchBuilder", False, "replace", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] + - ["jakarta.json", "JsonPatchBuilder", False, "replace", "", "", "Argument[this]", "ReturnValue", "value", "manual"] - ["jakarta.json", "JsonPatchBuilder", False, "replace", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["jakarta.json", "JsonPatchBuilder", False, "test", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] + - ["jakarta.json", "JsonPatchBuilder", False, "test", "", "", "Argument[this]", "ReturnValue", "value", "manual"] - ["jakarta.json", "JsonPatchBuilder", False, "test", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["jakarta.json", "JsonPointer", False, "add", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["jakarta.json", "JsonPointer", False, "add", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["jakarta.json", "JsonPointer", False, "add", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - ["jakarta.json", "JsonPointer", False, "getValue", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["jakarta.json", "JsonPointer", False, "remove", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["jakarta.json", "JsonPointer", False, "replace", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["jakarta.json", "JsonPointer", False, "toString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["jakarta.json", "JsonReader", False, "read", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["jakarta.json", "JsonReader", False, "readArray", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["jakarta.json", "JsonReader", False, "readObject", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["jakarta.json", "JsonReader", False, "readValue", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["jakarta.json", "JsonPointer", False, "toString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["jakarta.json", "JsonReader", False, "read", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["jakarta.json", "JsonReader", False, "readArray", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["jakarta.json", "JsonReader", False, "readObject", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["jakarta.json", "JsonReader", False, "readValue", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["jakarta.json", "JsonReaderFactory", False, "createReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["jakarta.json", "JsonString", False, "getChars", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["jakarta.json", "JsonString", False, "getString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["jakarta.json", "JsonStructure", True, "getValue", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["jakarta.json", "JsonValue", True, "asJsonArray", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["jakarta.json", "JsonValue", True, "asJsonObject", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["jakarta.json", "JsonValue", True, "toString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["jakarta.json", "JsonWriter", False, "write", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["jakarta.json", "JsonWriter", False, "writeArray", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["jakarta.json", "JsonWriter", False, "writeObject", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["jakarta.json", "JsonWriterFactory", False, "createWriter", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"] + - ["jakarta.json", "JsonString", False, "getChars", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["jakarta.json", "JsonString", False, "getString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["jakarta.json", "JsonStructure", True, "getValue", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["jakarta.json", "JsonValue", True, "asJsonArray", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["jakarta.json", "JsonValue", True, "asJsonObject", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["jakarta.json", "JsonValue", True, "toString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["jakarta.json", "JsonWriter", False, "write", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["jakarta.json", "JsonWriter", False, "writeArray", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["jakarta.json", "JsonWriter", False, "writeObject", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["jakarta.json", "JsonWriterFactory", False, "createWriter", "", "", "Argument[this]", "Argument[0]", "taint", "manual"] diff --git a/java/ql/lib/ext/jakarta.ws.rs.core.model.yml b/java/ql/lib/ext/jakarta.ws.rs.core.model.yml index 593128bd953..a13bb2189d1 100644 --- a/java/ql/lib/ext/jakarta.ws.rs.core.model.yml +++ b/java/ql/lib/ext/jakarta.ws.rs.core.model.yml @@ -9,63 +9,63 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["jakarta.ws.rs.core", "AbstractMultivaluedMap", False, "AbstractMultivaluedMap", "", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["jakarta.ws.rs.core", "AbstractMultivaluedMap", False, "AbstractMultivaluedMap", "", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["jakarta.ws.rs.core", "Cookie", False, "Cookie", "", "", "Argument[0..4]", "Argument[-1]", "taint", "manual"] - - ["jakarta.ws.rs.core", "Cookie", True, "getDomain", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["jakarta.ws.rs.core", "Cookie", True, "getName", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["jakarta.ws.rs.core", "Cookie", True, "getPath", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["jakarta.ws.rs.core", "Cookie", True, "getValue", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["jakarta.ws.rs.core", "Cookie", True, "getVersion", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["jakarta.ws.rs.core", "Cookie", True, "toString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["jakarta.ws.rs.core", "AbstractMultivaluedMap", False, "AbstractMultivaluedMap", "", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["jakarta.ws.rs.core", "AbstractMultivaluedMap", False, "AbstractMultivaluedMap", "", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["jakarta.ws.rs.core", "Cookie", False, "Cookie", "", "", "Argument[0..4]", "Argument[this]", "taint", "manual"] + - ["jakarta.ws.rs.core", "Cookie", True, "getDomain", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["jakarta.ws.rs.core", "Cookie", True, "getName", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["jakarta.ws.rs.core", "Cookie", True, "getPath", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["jakarta.ws.rs.core", "Cookie", True, "getValue", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["jakarta.ws.rs.core", "Cookie", True, "getVersion", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["jakarta.ws.rs.core", "Cookie", True, "toString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["jakarta.ws.rs.core", "Cookie", False, "valueOf", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["jakarta.ws.rs.core", "Form", False, "Form", "", "", "Argument[0..1]", "Argument[-1]", "taint", "manual"] - - ["jakarta.ws.rs.core", "Form", False, "Form", "", "", "Argument[0].MapKey", "Argument[-1]", "taint", "manual"] - - ["jakarta.ws.rs.core", "Form", False, "Form", "", "", "Argument[0].MapValue.Element", "Argument[-1]", "taint", "manual"] - - ["jakarta.ws.rs.core", "Form", True, "asMap", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["jakarta.ws.rs.core", "Form", True, "param", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["jakarta.ws.rs.core", "Form", True, "param", "", "", "Argument[0..1]", "Argument[-1]", "taint", "manual"] - - ["jakarta.ws.rs.core", "GenericEntity", False, "GenericEntity", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["jakarta.ws.rs.core", "GenericEntity", True, "getEntity", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["jakarta.ws.rs.core", "Form", False, "Form", "", "", "Argument[0..1]", "Argument[this]", "taint", "manual"] + - ["jakarta.ws.rs.core", "Form", False, "Form", "", "", "Argument[0].MapKey", "Argument[this]", "taint", "manual"] + - ["jakarta.ws.rs.core", "Form", False, "Form", "", "", "Argument[0].MapValue.Element", "Argument[this]", "taint", "manual"] + - ["jakarta.ws.rs.core", "Form", True, "asMap", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["jakarta.ws.rs.core", "Form", True, "param", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["jakarta.ws.rs.core", "Form", True, "param", "", "", "Argument[0..1]", "Argument[this]", "taint", "manual"] + - ["jakarta.ws.rs.core", "GenericEntity", False, "GenericEntity", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["jakarta.ws.rs.core", "GenericEntity", True, "getEntity", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] # Methods that Date have to be syntax-checked, but those returning MediaType # or Locale are assumed potentially dangerous, as these types do not generally check that the # input data is recognised, only that it conforms to the expected syntax. - - ["jakarta.ws.rs.core", "HttpHeaders", True, "getAcceptableLanguages", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["jakarta.ws.rs.core", "HttpHeaders", True, "getAcceptableMediaTypes", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["jakarta.ws.rs.core", "HttpHeaders", True, "getCookies", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["jakarta.ws.rs.core", "HttpHeaders", True, "getHeaderString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["jakarta.ws.rs.core", "HttpHeaders", True, "getLanguage", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["jakarta.ws.rs.core", "HttpHeaders", True, "getMediaType", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["jakarta.ws.rs.core", "HttpHeaders", True, "getRequestHeader", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["jakarta.ws.rs.core", "HttpHeaders", True, "getRequestHeaders", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["jakarta.ws.rs.core", "MediaType", False, "MediaType", "", "", "Argument[0..2]", "Argument[-1]", "taint", "manual"] - - ["jakarta.ws.rs.core", "MediaType", True, "getParameters", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["jakarta.ws.rs.core", "MediaType", True, "getSubtype", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["jakarta.ws.rs.core", "MediaType", True, "getType", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["jakarta.ws.rs.core", "HttpHeaders", True, "getAcceptableLanguages", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["jakarta.ws.rs.core", "HttpHeaders", True, "getAcceptableMediaTypes", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["jakarta.ws.rs.core", "HttpHeaders", True, "getCookies", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["jakarta.ws.rs.core", "HttpHeaders", True, "getHeaderString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["jakarta.ws.rs.core", "HttpHeaders", True, "getLanguage", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["jakarta.ws.rs.core", "HttpHeaders", True, "getMediaType", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["jakarta.ws.rs.core", "HttpHeaders", True, "getRequestHeader", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["jakarta.ws.rs.core", "HttpHeaders", True, "getRequestHeaders", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["jakarta.ws.rs.core", "MediaType", False, "MediaType", "", "", "Argument[0..2]", "Argument[this]", "taint", "manual"] + - ["jakarta.ws.rs.core", "MediaType", True, "getParameters", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["jakarta.ws.rs.core", "MediaType", True, "getSubtype", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["jakarta.ws.rs.core", "MediaType", True, "getType", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["jakarta.ws.rs.core", "MediaType", False, "valueOf", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["jakarta.ws.rs.core", "MediaType", True, "withCharset", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["jakarta.ws.rs.core", "MultivaluedHashMap", False, "MultivaluedHashMap", "(Map)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["jakarta.ws.rs.core", "MultivaluedHashMap", False, "MultivaluedHashMap", "(Map)", "", "Argument[0].MapValue", "Argument[-1].MapValue.Element", "value", "manual"] - - ["jakarta.ws.rs.core", "MultivaluedHashMap", False, "MultivaluedHashMap", "(MultivaluedMap)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["jakarta.ws.rs.core", "MultivaluedHashMap", False, "MultivaluedHashMap", "(MultivaluedMap)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["jakarta.ws.rs.core", "MultivaluedMap", True, "add", "", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["jakarta.ws.rs.core", "MultivaluedMap", True, "add", "", "", "Argument[1]", "Argument[-1].MapValue.Element", "value", "manual"] - - ["jakarta.ws.rs.core", "MultivaluedMap", True, "addAll", "", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["jakarta.ws.rs.core", "MultivaluedMap", True, "addAll", "(Object,List)", "", "Argument[1].Element", "Argument[-1].MapValue.Element", "value", "manual"] - - ["jakarta.ws.rs.core", "MultivaluedMap", True, "addAll", "(Object,Object[])", "", "Argument[1].ArrayElement", "Argument[-1].MapValue.Element", "value", "manual"] - - ["jakarta.ws.rs.core", "MultivaluedMap", True, "addFirst", "", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["jakarta.ws.rs.core", "MultivaluedMap", True, "addFirst", "", "", "Argument[1]", "Argument[-1].MapValue.Element", "value", "manual"] - - ["jakarta.ws.rs.core", "MultivaluedMap", True, "getFirst", "", "", "Argument[-1].MapValue.Element", "ReturnValue", "value", "manual"] - - ["jakarta.ws.rs.core", "MultivaluedMap", True, "putSingle", "", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["jakarta.ws.rs.core", "MultivaluedMap", True, "putSingle", "", "", "Argument[1]", "Argument[-1].MapValue.Element", "value", "manual"] - - ["jakarta.ws.rs.core", "NewCookie", False, "NewCookie", "", "", "Argument[0..9]", "Argument[-1]", "taint", "manual"] - - ["jakarta.ws.rs.core", "NewCookie", True, "getComment", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["jakarta.ws.rs.core", "NewCookie", True, "getExpiry", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["jakarta.ws.rs.core", "NewCookie", True, "getMaxAge", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["jakarta.ws.rs.core", "NewCookie", True, "toCookie", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["jakarta.ws.rs.core", "MediaType", True, "withCharset", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["jakarta.ws.rs.core", "MultivaluedHashMap", False, "MultivaluedHashMap", "(Map)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["jakarta.ws.rs.core", "MultivaluedHashMap", False, "MultivaluedHashMap", "(Map)", "", "Argument[0].MapValue", "Argument[this].MapValue.Element", "value", "manual"] + - ["jakarta.ws.rs.core", "MultivaluedHashMap", False, "MultivaluedHashMap", "(MultivaluedMap)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["jakarta.ws.rs.core", "MultivaluedHashMap", False, "MultivaluedHashMap", "(MultivaluedMap)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["jakarta.ws.rs.core", "MultivaluedMap", True, "add", "", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["jakarta.ws.rs.core", "MultivaluedMap", True, "add", "", "", "Argument[1]", "Argument[this].MapValue.Element", "value", "manual"] + - ["jakarta.ws.rs.core", "MultivaluedMap", True, "addAll", "", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["jakarta.ws.rs.core", "MultivaluedMap", True, "addAll", "(Object,List)", "", "Argument[1].Element", "Argument[this].MapValue.Element", "value", "manual"] + - ["jakarta.ws.rs.core", "MultivaluedMap", True, "addAll", "(Object,Object[])", "", "Argument[1].ArrayElement", "Argument[this].MapValue.Element", "value", "manual"] + - ["jakarta.ws.rs.core", "MultivaluedMap", True, "addFirst", "", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["jakarta.ws.rs.core", "MultivaluedMap", True, "addFirst", "", "", "Argument[1]", "Argument[this].MapValue.Element", "value", "manual"] + - ["jakarta.ws.rs.core", "MultivaluedMap", True, "getFirst", "", "", "Argument[this].MapValue.Element", "ReturnValue", "value", "manual"] + - ["jakarta.ws.rs.core", "MultivaluedMap", True, "putSingle", "", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["jakarta.ws.rs.core", "MultivaluedMap", True, "putSingle", "", "", "Argument[1]", "Argument[this].MapValue.Element", "value", "manual"] + - ["jakarta.ws.rs.core", "NewCookie", False, "NewCookie", "", "", "Argument[0..9]", "Argument[this]", "taint", "manual"] + - ["jakarta.ws.rs.core", "NewCookie", True, "getComment", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["jakarta.ws.rs.core", "NewCookie", True, "getExpiry", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["jakarta.ws.rs.core", "NewCookie", True, "getMaxAge", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["jakarta.ws.rs.core", "NewCookie", True, "toCookie", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["jakarta.ws.rs.core", "NewCookie", False, "valueOf", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["jakarta.ws.rs.core", "PathSegment", True, "getMatrixParameters", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["jakarta.ws.rs.core", "PathSegment", True, "getPath", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["jakarta.ws.rs.core", "PathSegment", True, "getMatrixParameters", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["jakarta.ws.rs.core", "PathSegment", True, "getPath", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] # The returned ResponseBuilder gains taint from a tainted entity or existing Response - ["jakarta.ws.rs.core", "Response", False, "accepted", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["jakarta.ws.rs.core", "Response", False, "fromResponse", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] @@ -73,95 +73,95 @@ extensions: # Becomes tainted by a tainted entity, but not by metadata, headers etc # Build() method returns taint # Almost all methods are fluent, and so preserve value - - ["jakarta.ws.rs.core", "Response$ResponseBuilder", True, "allow", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["jakarta.ws.rs.core", "Response$ResponseBuilder", True, "build", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["jakarta.ws.rs.core", "Response$ResponseBuilder", True, "cacheControl", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["jakarta.ws.rs.core", "Response$ResponseBuilder", True, "clone", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["jakarta.ws.rs.core", "Response$ResponseBuilder", True, "contentLocation", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["jakarta.ws.rs.core", "Response$ResponseBuilder", True, "cookie", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["jakarta.ws.rs.core", "Response$ResponseBuilder", True, "encoding", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["jakarta.ws.rs.core", "Response$ResponseBuilder", True, "entity", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["jakarta.ws.rs.core", "Response$ResponseBuilder", True, "entity", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["jakarta.ws.rs.core", "Response$ResponseBuilder", True, "expires", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["jakarta.ws.rs.core", "Response$ResponseBuilder", True, "header", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["jakarta.ws.rs.core", "Response$ResponseBuilder", True, "language", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["jakarta.ws.rs.core", "Response$ResponseBuilder", True, "lastModified", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["jakarta.ws.rs.core", "Response$ResponseBuilder", True, "link", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["jakarta.ws.rs.core", "Response$ResponseBuilder", True, "links", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["jakarta.ws.rs.core", "Response$ResponseBuilder", True, "location", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["jakarta.ws.rs.core", "Response$ResponseBuilder", True, "replaceAll", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["jakarta.ws.rs.core", "Response$ResponseBuilder", True, "status", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["jakarta.ws.rs.core", "Response$ResponseBuilder", True, "tag", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["jakarta.ws.rs.core", "Response$ResponseBuilder", True, "type", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["jakarta.ws.rs.core", "Response$ResponseBuilder", True, "variant", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["jakarta.ws.rs.core", "Response$ResponseBuilder", True, "variants", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["jakarta.ws.rs.core", "UriBuilder", True, "build", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["jakarta.ws.rs.core", "Response$ResponseBuilder", True, "allow", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["jakarta.ws.rs.core", "Response$ResponseBuilder", True, "build", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["jakarta.ws.rs.core", "Response$ResponseBuilder", True, "cacheControl", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["jakarta.ws.rs.core", "Response$ResponseBuilder", True, "clone", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["jakarta.ws.rs.core", "Response$ResponseBuilder", True, "contentLocation", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["jakarta.ws.rs.core", "Response$ResponseBuilder", True, "cookie", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["jakarta.ws.rs.core", "Response$ResponseBuilder", True, "encoding", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["jakarta.ws.rs.core", "Response$ResponseBuilder", True, "entity", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["jakarta.ws.rs.core", "Response$ResponseBuilder", True, "entity", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["jakarta.ws.rs.core", "Response$ResponseBuilder", True, "expires", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["jakarta.ws.rs.core", "Response$ResponseBuilder", True, "header", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["jakarta.ws.rs.core", "Response$ResponseBuilder", True, "language", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["jakarta.ws.rs.core", "Response$ResponseBuilder", True, "lastModified", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["jakarta.ws.rs.core", "Response$ResponseBuilder", True, "link", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["jakarta.ws.rs.core", "Response$ResponseBuilder", True, "links", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["jakarta.ws.rs.core", "Response$ResponseBuilder", True, "location", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["jakarta.ws.rs.core", "Response$ResponseBuilder", True, "replaceAll", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["jakarta.ws.rs.core", "Response$ResponseBuilder", True, "status", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["jakarta.ws.rs.core", "Response$ResponseBuilder", True, "tag", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["jakarta.ws.rs.core", "Response$ResponseBuilder", True, "type", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["jakarta.ws.rs.core", "Response$ResponseBuilder", True, "variant", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["jakarta.ws.rs.core", "Response$ResponseBuilder", True, "variants", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["jakarta.ws.rs.core", "UriBuilder", True, "build", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["jakarta.ws.rs.core", "UriBuilder", True, "build", "", "", "Argument[0].ArrayElement", "ReturnValue", "taint", "manual"] - - ["jakarta.ws.rs.core", "UriBuilder", True, "buildFromEncoded", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["jakarta.ws.rs.core", "UriBuilder", True, "buildFromEncoded", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["jakarta.ws.rs.core", "UriBuilder", True, "buildFromEncoded", "", "", "Argument[0].ArrayElement", "ReturnValue", "taint", "manual"] - - ["jakarta.ws.rs.core", "UriBuilder", True, "buildFromEncodedMap", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["jakarta.ws.rs.core", "UriBuilder", True, "buildFromEncodedMap", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["jakarta.ws.rs.core", "UriBuilder", True, "buildFromEncodedMap", "", "", "Argument[0].MapKey", "ReturnValue", "taint", "manual"] - ["jakarta.ws.rs.core", "UriBuilder", True, "buildFromEncodedMap", "", "", "Argument[0].MapValue", "ReturnValue", "taint", "manual"] - - ["jakarta.ws.rs.core", "UriBuilder", True, "buildFromMap", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["jakarta.ws.rs.core", "UriBuilder", True, "buildFromMap", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["jakarta.ws.rs.core", "UriBuilder", True, "buildFromMap", "", "", "Argument[0].MapKey", "ReturnValue", "taint", "manual"] - ["jakarta.ws.rs.core", "UriBuilder", True, "buildFromMap", "", "", "Argument[0].MapValue", "ReturnValue", "taint", "manual"] - - ["jakarta.ws.rs.core", "UriBuilder", True, "clone", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["jakarta.ws.rs.core", "UriBuilder", True, "fragment", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] + - ["jakarta.ws.rs.core", "UriBuilder", True, "clone", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["jakarta.ws.rs.core", "UriBuilder", True, "fragment", "", "", "Argument[this]", "ReturnValue", "value", "manual"] - ["jakarta.ws.rs.core", "UriBuilder", True, "fragment", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["jakarta.ws.rs.core", "UriBuilder", False, "fromLink", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["jakarta.ws.rs.core", "UriBuilder", False, "fromPath", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["jakarta.ws.rs.core", "UriBuilder", False, "fromUri", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["jakarta.ws.rs.core", "UriBuilder", True, "host", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] + - ["jakarta.ws.rs.core", "UriBuilder", True, "host", "", "", "Argument[this]", "ReturnValue", "value", "manual"] - ["jakarta.ws.rs.core", "UriBuilder", True, "host", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["jakarta.ws.rs.core", "UriBuilder", True, "matrixParam", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] + - ["jakarta.ws.rs.core", "UriBuilder", True, "matrixParam", "", "", "Argument[this]", "ReturnValue", "value", "manual"] - ["jakarta.ws.rs.core", "UriBuilder", True, "matrixParam", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["jakarta.ws.rs.core", "UriBuilder", True, "matrixParam", "", "", "Argument[1].ArrayElement", "ReturnValue", "taint", "manual"] - - ["jakarta.ws.rs.core", "UriBuilder", True, "path", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] + - ["jakarta.ws.rs.core", "UriBuilder", True, "path", "", "", "Argument[this]", "ReturnValue", "value", "manual"] - ["jakarta.ws.rs.core", "UriBuilder", True, "path", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["jakarta.ws.rs.core", "UriBuilder", True, "queryParam", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] + - ["jakarta.ws.rs.core", "UriBuilder", True, "queryParam", "", "", "Argument[this]", "ReturnValue", "value", "manual"] - ["jakarta.ws.rs.core", "UriBuilder", True, "queryParam", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["jakarta.ws.rs.core", "UriBuilder", True, "queryParam", "", "", "Argument[1].ArrayElement", "ReturnValue", "taint", "manual"] - - ["jakarta.ws.rs.core", "UriBuilder", True, "replaceMatrix", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] + - ["jakarta.ws.rs.core", "UriBuilder", True, "replaceMatrix", "", "", "Argument[this]", "ReturnValue", "value", "manual"] - ["jakarta.ws.rs.core", "UriBuilder", True, "replaceMatrix", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["jakarta.ws.rs.core", "UriBuilder", True, "replaceMatrixParam", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] + - ["jakarta.ws.rs.core", "UriBuilder", True, "replaceMatrixParam", "", "", "Argument[this]", "ReturnValue", "value", "manual"] - ["jakarta.ws.rs.core", "UriBuilder", True, "replaceMatrixParam", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["jakarta.ws.rs.core", "UriBuilder", True, "replaceMatrixParam", "", "", "Argument[1].ArrayElement", "ReturnValue", "taint", "manual"] - - ["jakarta.ws.rs.core", "UriBuilder", True, "replacePath", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] + - ["jakarta.ws.rs.core", "UriBuilder", True, "replacePath", "", "", "Argument[this]", "ReturnValue", "value", "manual"] - ["jakarta.ws.rs.core", "UriBuilder", True, "replacePath", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["jakarta.ws.rs.core", "UriBuilder", True, "replaceQuery", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] + - ["jakarta.ws.rs.core", "UriBuilder", True, "replaceQuery", "", "", "Argument[this]", "ReturnValue", "value", "manual"] - ["jakarta.ws.rs.core", "UriBuilder", True, "replaceQuery", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["jakarta.ws.rs.core", "UriBuilder", True, "replaceQueryParam", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] + - ["jakarta.ws.rs.core", "UriBuilder", True, "replaceQueryParam", "", "", "Argument[this]", "ReturnValue", "value", "manual"] - ["jakarta.ws.rs.core", "UriBuilder", True, "replaceQueryParam", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["jakarta.ws.rs.core", "UriBuilder", True, "replaceQueryParam", "", "", "Argument[1].ArrayElement", "ReturnValue", "taint", "manual"] - - ["jakarta.ws.rs.core", "UriBuilder", True, "resolveTemplate", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] + - ["jakarta.ws.rs.core", "UriBuilder", True, "resolveTemplate", "", "", "Argument[this]", "ReturnValue", "value", "manual"] - ["jakarta.ws.rs.core", "UriBuilder", True, "resolveTemplate", "", "", "Argument[0..2]", "ReturnValue", "taint", "manual"] - - ["jakarta.ws.rs.core", "UriBuilder", True, "resolveTemplateFromEncoded", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] + - ["jakarta.ws.rs.core", "UriBuilder", True, "resolveTemplateFromEncoded", "", "", "Argument[this]", "ReturnValue", "value", "manual"] - ["jakarta.ws.rs.core", "UriBuilder", True, "resolveTemplateFromEncoded", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["jakarta.ws.rs.core", "UriBuilder", True, "resolveTemplates", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] + - ["jakarta.ws.rs.core", "UriBuilder", True, "resolveTemplates", "", "", "Argument[this]", "ReturnValue", "value", "manual"] - ["jakarta.ws.rs.core", "UriBuilder", True, "resolveTemplates", "", "", "Argument[0].MapKey", "ReturnValue", "taint", "manual"] - ["jakarta.ws.rs.core", "UriBuilder", True, "resolveTemplates", "", "", "Argument[0].MapValue", "ReturnValue", "taint", "manual"] - - ["jakarta.ws.rs.core", "UriBuilder", True, "resolveTemplatesFromEncoded", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] + - ["jakarta.ws.rs.core", "UriBuilder", True, "resolveTemplatesFromEncoded", "", "", "Argument[this]", "ReturnValue", "value", "manual"] - ["jakarta.ws.rs.core", "UriBuilder", True, "resolveTemplatesFromEncoded", "", "", "Argument[0].MapKey", "ReturnValue", "taint", "manual"] - ["jakarta.ws.rs.core", "UriBuilder", True, "resolveTemplatesFromEncoded", "", "", "Argument[0].MapValue", "ReturnValue", "taint", "manual"] - - ["jakarta.ws.rs.core", "UriBuilder", True, "scheme", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] + - ["jakarta.ws.rs.core", "UriBuilder", True, "scheme", "", "", "Argument[this]", "ReturnValue", "value", "manual"] - ["jakarta.ws.rs.core", "UriBuilder", True, "scheme", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["jakarta.ws.rs.core", "UriBuilder", True, "schemeSpecificPart", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] + - ["jakarta.ws.rs.core", "UriBuilder", True, "schemeSpecificPart", "", "", "Argument[this]", "ReturnValue", "value", "manual"] - ["jakarta.ws.rs.core", "UriBuilder", True, "schemeSpecificPart", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["jakarta.ws.rs.core", "UriBuilder", True, "segment", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] + - ["jakarta.ws.rs.core", "UriBuilder", True, "segment", "", "", "Argument[this]", "ReturnValue", "value", "manual"] - ["jakarta.ws.rs.core", "UriBuilder", True, "segment", "", "", "Argument[0].ArrayElement", "ReturnValue", "taint", "manual"] - - ["jakarta.ws.rs.core", "UriBuilder", True, "toTemplate", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["jakarta.ws.rs.core", "UriBuilder", True, "uri", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] + - ["jakarta.ws.rs.core", "UriBuilder", True, "toTemplate", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["jakarta.ws.rs.core", "UriBuilder", True, "uri", "", "", "Argument[this]", "ReturnValue", "value", "manual"] - ["jakarta.ws.rs.core", "UriBuilder", True, "uri", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["jakarta.ws.rs.core", "UriBuilder", True, "userInfo", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] + - ["jakarta.ws.rs.core", "UriBuilder", True, "userInfo", "", "", "Argument[this]", "ReturnValue", "value", "manual"] - ["jakarta.ws.rs.core", "UriBuilder", True, "userInfo", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["jakarta.ws.rs.core", "UriInfo", True, "getAbsolutePath", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["jakarta.ws.rs.core", "UriInfo", True, "getAbsolutePathBuilder", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["jakarta.ws.rs.core", "UriInfo", True, "getPath", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["jakarta.ws.rs.core", "UriInfo", True, "getPathParameters", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["jakarta.ws.rs.core", "UriInfo", True, "getPathSegments", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["jakarta.ws.rs.core", "UriInfo", True, "getQueryParameters", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["jakarta.ws.rs.core", "UriInfo", True, "getRequestUri", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["jakarta.ws.rs.core", "UriInfo", True, "getRequestUriBuilder", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["jakarta.ws.rs.core", "UriInfo", True, "getAbsolutePath", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["jakarta.ws.rs.core", "UriInfo", True, "getAbsolutePathBuilder", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["jakarta.ws.rs.core", "UriInfo", True, "getPath", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["jakarta.ws.rs.core", "UriInfo", True, "getPathParameters", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["jakarta.ws.rs.core", "UriInfo", True, "getPathSegments", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["jakarta.ws.rs.core", "UriInfo", True, "getQueryParameters", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["jakarta.ws.rs.core", "UriInfo", True, "getRequestUri", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["jakarta.ws.rs.core", "UriInfo", True, "getRequestUriBuilder", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["jakarta.ws.rs.core", "UriInfo", True, "relativize", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["jakarta.ws.rs.core", "UriInfo", True, "resolve", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["jakarta.ws.rs.core", "UriInfo", True, "resolve", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["jakarta.ws.rs.core", "UriInfo", True, "resolve", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] diff --git a/java/ql/lib/ext/java.beans.model.yml b/java/ql/lib/ext/java.beans.model.yml index 0d24c372fb0..b9d06ea5694 100644 --- a/java/ql/lib/ext/java.beans.model.yml +++ b/java/ql/lib/ext/java.beans.model.yml @@ -3,4 +3,4 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["java.beans", "XMLDecoder", False, "XMLDecoder", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] + - ["java.beans", "XMLDecoder", False, "XMLDecoder", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] diff --git a/java/ql/lib/ext/java.io.model.yml b/java/ql/lib/ext/java.io.model.yml index 2e6e8897ca1..4ba64033fa4 100644 --- a/java/ql/lib/ext/java.io.model.yml +++ b/java/ql/lib/ext/java.io.model.yml @@ -49,46 +49,46 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["java.io", "BufferedInputStream", False, "BufferedInputStream", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["java.io", "BufferedReader", False, "BufferedReader", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["java.io", "BufferedReader", True, "readLine", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["java.io", "ByteArrayInputStream", False, "ByteArrayInputStream", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["java.io", "ByteArrayOutputStream", False, "toByteArray", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["java.io", "ByteArrayOutputStream", False, "toString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["java.io", "ByteArrayOutputStream", False, "writeTo", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"] - - ["java.io", "CharArrayReader", False, "CharArrayReader", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["java.io", "CharArrayWriter", True, "toCharArray", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["java.io", "DataInput", True, "readFully", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"] - - ["java.io", "DataInput", True, "readLine", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["java.io", "DataInput", True, "readUTF", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["java.io", "DataInputStream", False, "DataInputStream", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["java.io", "File", False, "File", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["java.io", "File", False, "File", "", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["java.io", "File", True, "getAbsoluteFile", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["java.io", "File", True, "getAbsolutePath", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["java.io", "File", True, "getCanonicalFile", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["java.io", "File", True, "getCanonicalPath", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["java.io", "File", True, "getName", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["java.io", "File", True, "toPath", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["java.io", "File", True, "toString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["java.io", "File", True, "toURI", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["java.io", "FilterOutputStream", True, "FilterOutputStream", "(OutputStream)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["java.io", "InputStream", True, "read", "(byte[])", "", "Argument[-1]", "Argument[0]", "taint", "manual"] - - ["java.io", "InputStream", True, "read", "(byte[],int,int)", "", "Argument[-1]", "Argument[0]", "taint", "manual"] - - ["java.io", "InputStream", True, "readAllBytes", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["java.io", "InputStream", True, "readNBytes", "(byte[],int,int)", "", "Argument[-1]", "Argument[0]", "taint", "manual"] - - ["java.io", "InputStream", True, "readNBytes", "(int)", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["java.io", "InputStream", True, "transferTo", "(OutputStream)", "", "Argument[-1]", "Argument[0]", "taint", "manual"] - - ["java.io", "InputStreamReader", False, "InputStreamReader", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["java.io", "IOException", False, "IOException", "(String)", "", "Argument[0]", "Argument[-1].SyntheticField[java.lang.Throwable.message]", "value", "manual"] - - ["java.io", "ObjectInput", True, "read", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"] - - ["java.io", "ObjectInputStream", False, "ObjectInputStream", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["java.io", "OutputStream", True, "write", "(byte[])", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["java.io", "OutputStream", True, "write", "(byte[],int,int)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["java.io", "OutputStream", True, "write", "(int)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["java.io", "Reader", True, "read", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"] - - ["java.io", "StringReader", False, "StringReader", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["java.io", "Writer", True, "write", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] + - ["java.io", "BufferedInputStream", False, "BufferedInputStream", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["java.io", "BufferedReader", False, "BufferedReader", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["java.io", "BufferedReader", True, "readLine", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["java.io", "ByteArrayInputStream", False, "ByteArrayInputStream", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["java.io", "ByteArrayOutputStream", False, "toByteArray", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["java.io", "ByteArrayOutputStream", False, "toString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["java.io", "ByteArrayOutputStream", False, "writeTo", "", "", "Argument[this]", "Argument[0]", "taint", "manual"] + - ["java.io", "CharArrayReader", False, "CharArrayReader", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["java.io", "CharArrayWriter", True, "toCharArray", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["java.io", "DataInput", True, "readFully", "", "", "Argument[this]", "Argument[0]", "taint", "manual"] + - ["java.io", "DataInput", True, "readLine", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["java.io", "DataInput", True, "readUTF", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["java.io", "DataInputStream", False, "DataInputStream", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["java.io", "File", False, "File", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["java.io", "File", False, "File", "", "", "Argument[1]", "Argument[this]", "taint", "manual"] + - ["java.io", "File", True, "getAbsoluteFile", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["java.io", "File", True, "getAbsolutePath", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["java.io", "File", True, "getCanonicalFile", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["java.io", "File", True, "getCanonicalPath", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["java.io", "File", True, "getName", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["java.io", "File", True, "toPath", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["java.io", "File", True, "toString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["java.io", "File", True, "toURI", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["java.io", "FilterOutputStream", True, "FilterOutputStream", "(OutputStream)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["java.io", "InputStream", True, "read", "(byte[])", "", "Argument[this]", "Argument[0]", "taint", "manual"] + - ["java.io", "InputStream", True, "read", "(byte[],int,int)", "", "Argument[this]", "Argument[0]", "taint", "manual"] + - ["java.io", "InputStream", True, "readAllBytes", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["java.io", "InputStream", True, "readNBytes", "(byte[],int,int)", "", "Argument[this]", "Argument[0]", "taint", "manual"] + - ["java.io", "InputStream", True, "readNBytes", "(int)", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["java.io", "InputStream", True, "transferTo", "(OutputStream)", "", "Argument[this]", "Argument[0]", "taint", "manual"] + - ["java.io", "InputStreamReader", False, "InputStreamReader", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["java.io", "IOException", False, "IOException", "(String)", "", "Argument[0]", "Argument[this].SyntheticField[java.lang.Throwable.message]", "value", "manual"] + - ["java.io", "ObjectInput", True, "read", "", "", "Argument[this]", "Argument[0]", "taint", "manual"] + - ["java.io", "ObjectInputStream", False, "ObjectInputStream", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["java.io", "OutputStream", True, "write", "(byte[])", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["java.io", "OutputStream", True, "write", "(byte[],int,int)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["java.io", "OutputStream", True, "write", "(int)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["java.io", "Reader", True, "read", "", "", "Argument[this]", "Argument[0]", "taint", "manual"] + - ["java.io", "StringReader", False, "StringReader", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["java.io", "Writer", True, "write", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] - addsTo: pack: codeql/java-all extensible: neutralModel diff --git a/java/ql/lib/ext/java.lang.model.yml b/java/ql/lib/ext/java.lang.model.yml index 94fe112301c..774cf751a13 100644 --- a/java/ql/lib/ext/java.lang.model.yml +++ b/java/ql/lib/ext/java.lang.model.yml @@ -34,82 +34,82 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["java.lang", "AbstractStringBuilder", True, "AbstractStringBuilder", "(String)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["java.lang", "AbstractStringBuilder", True, "append", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["java.lang", "AbstractStringBuilder", True, "append", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["java.lang", "AbstractStringBuilder", True, "getChars", "", "", "Argument[-1]", "Argument[2]", "taint", "manual"] - - ["java.lang", "AbstractStringBuilder", True, "insert", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["java.lang", "AbstractStringBuilder", True, "insert", "", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["java.lang", "AbstractStringBuilder", True, "replace", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["java.lang", "AbstractStringBuilder", True, "replace", "", "", "Argument[2]", "Argument[-1]", "taint", "manual"] - - ["java.lang", "AbstractStringBuilder", True, "reverse", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["java.lang", "AbstractStringBuilder", True, "subSequence", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["java.lang", "AbstractStringBuilder", True, "substring", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["java.lang", "AbstractStringBuilder", True, "toString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["java.lang", "Appendable", True, "append", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["java.lang", "Appendable", True, "append", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["java.lang", "CharSequence", True, "charAt", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["java.lang", "CharSequence", True, "subSequence", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["java.lang", "CharSequence", True, "toString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["java.lang", "Exception", False, "Exception", "(String)", "", "Argument[0]", "Argument[-1].SyntheticField[java.lang.Throwable.message]", "value", "manual"] - - ["java.lang", "IllegalArgumentException", False, "IllegalArgumentException", "(String)", "", "Argument[0]", "Argument[-1].SyntheticField[java.lang.Throwable.message]", "value", "manual"] - - ["java.lang", "IllegalStateException", False, "IllegalStateException", "(String)", "", "Argument[0]", "Argument[-1].SyntheticField[java.lang.Throwable.message]", "value", "manual"] - - ["java.lang", "IndexOutOfBoundsException", False, "IndexOutOfBoundsException", "(String)", "", "Argument[0]", "Argument[-1].SyntheticField[java.lang.Throwable.message]", "value", "manual"] - - ["java.lang", "Iterable", True, "forEach", "(Consumer)", "", "Argument[-1].Element", "Argument[0].Parameter[0]", "value", "manual"] - - ["java.lang", "Iterable", True, "iterator", "()", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["java.lang", "Iterable", True, "spliterator", "()", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["java.lang", "Object", True, "clone", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["java.lang", "Object", True, "clone", "", "", "Argument[-1].MapKey", "ReturnValue.MapKey", "value", "manual"] - - ["java.lang", "Object", True, "clone", "", "", "Argument[-1].MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["java.lang", "RuntimeException", False, "RuntimeException", "(String)", "", "Argument[0]", "Argument[-1].SyntheticField[java.lang.Throwable.message]", "value", "manual"] - - ["java.lang", "RuntimeException", False, "RuntimeException", "(String,Throwable)", "", "Argument[0]", "Argument[-1].SyntheticField[java.lang.Throwable.message]", "value", "manual"] - - ["java.lang", "RuntimeException", False, "RuntimeException", "(String,Throwable)", "", "Argument[1]", "Argument[-1].SyntheticField[java.lang.Throwable.cause]", "value", "manual"] - - ["java.lang", "RuntimeException", False, "RuntimeException", "(Throwable)", "", "Argument[0]", "Argument[-1].SyntheticField[java.lang.Throwable.cause]", "value", "manual"] - - ["java.lang", "String", False, "String", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["java.lang", "String", False, "concat", "(String)", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["java.lang", "AbstractStringBuilder", True, "AbstractStringBuilder", "(String)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["java.lang", "AbstractStringBuilder", True, "append", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["java.lang", "AbstractStringBuilder", True, "append", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["java.lang", "AbstractStringBuilder", True, "getChars", "", "", "Argument[this]", "Argument[2]", "taint", "manual"] + - ["java.lang", "AbstractStringBuilder", True, "insert", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["java.lang", "AbstractStringBuilder", True, "insert", "", "", "Argument[1]", "Argument[this]", "taint", "manual"] + - ["java.lang", "AbstractStringBuilder", True, "replace", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["java.lang", "AbstractStringBuilder", True, "replace", "", "", "Argument[2]", "Argument[this]", "taint", "manual"] + - ["java.lang", "AbstractStringBuilder", True, "reverse", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["java.lang", "AbstractStringBuilder", True, "subSequence", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["java.lang", "AbstractStringBuilder", True, "substring", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["java.lang", "AbstractStringBuilder", True, "toString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["java.lang", "Appendable", True, "append", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["java.lang", "Appendable", True, "append", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["java.lang", "CharSequence", True, "charAt", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["java.lang", "CharSequence", True, "subSequence", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["java.lang", "CharSequence", True, "toString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["java.lang", "Exception", False, "Exception", "(String)", "", "Argument[0]", "Argument[this].SyntheticField[java.lang.Throwable.message]", "value", "manual"] + - ["java.lang", "IllegalArgumentException", False, "IllegalArgumentException", "(String)", "", "Argument[0]", "Argument[this].SyntheticField[java.lang.Throwable.message]", "value", "manual"] + - ["java.lang", "IllegalStateException", False, "IllegalStateException", "(String)", "", "Argument[0]", "Argument[this].SyntheticField[java.lang.Throwable.message]", "value", "manual"] + - ["java.lang", "IndexOutOfBoundsException", False, "IndexOutOfBoundsException", "(String)", "", "Argument[0]", "Argument[this].SyntheticField[java.lang.Throwable.message]", "value", "manual"] + - ["java.lang", "Iterable", True, "forEach", "(Consumer)", "", "Argument[this].Element", "Argument[0].Parameter[0]", "value", "manual"] + - ["java.lang", "Iterable", True, "iterator", "()", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["java.lang", "Iterable", True, "spliterator", "()", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["java.lang", "Object", True, "clone", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["java.lang", "Object", True, "clone", "", "", "Argument[this].MapKey", "ReturnValue.MapKey", "value", "manual"] + - ["java.lang", "Object", True, "clone", "", "", "Argument[this].MapValue", "ReturnValue.MapValue", "value", "manual"] + - ["java.lang", "RuntimeException", False, "RuntimeException", "(String)", "", "Argument[0]", "Argument[this].SyntheticField[java.lang.Throwable.message]", "value", "manual"] + - ["java.lang", "RuntimeException", False, "RuntimeException", "(String,Throwable)", "", "Argument[0]", "Argument[this].SyntheticField[java.lang.Throwable.message]", "value", "manual"] + - ["java.lang", "RuntimeException", False, "RuntimeException", "(String,Throwable)", "", "Argument[1]", "Argument[this].SyntheticField[java.lang.Throwable.cause]", "value", "manual"] + - ["java.lang", "RuntimeException", False, "RuntimeException", "(Throwable)", "", "Argument[0]", "Argument[this].SyntheticField[java.lang.Throwable.cause]", "value", "manual"] + - ["java.lang", "String", False, "String", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["java.lang", "String", False, "concat", "(String)", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["java.lang", "String", False, "concat", "(String)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["java.lang", "String", False, "copyValueOf", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["java.lang", "String", False, "format", "(Locale,String,Object[])", "", "Argument[1]", "ReturnValue", "taint", "manual"] - ["java.lang", "String", False, "format", "(Locale,String,Object[])", "", "Argument[2].ArrayElement", "ReturnValue", "taint", "manual"] - ["java.lang", "String", False, "format", "(String,Object[])", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["java.lang", "String", False, "format", "(String,Object[])", "", "Argument[1].ArrayElement", "ReturnValue", "taint", "manual"] - - ["java.lang", "String", False, "formatted", "(Object[])", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["java.lang", "String", False, "formatted", "(Object[])", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["java.lang", "String", False, "formatted", "(Object[])", "", "Argument[0].ArrayElement", "ReturnValue", "taint", "manual"] - - ["java.lang", "String", False, "getBytes", "", "", "Argument[-1]", "Argument[2]", "taint", "manual"] - - ["java.lang", "String", False, "getBytes", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["java.lang", "String", False, "getChars", "", "", "Argument[-1]", "Argument[2]", "taint", "manual"] - - ["java.lang", "String", False, "indent", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["java.lang", "String", False, "intern", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["java.lang", "String", False, "getBytes", "", "", "Argument[this]", "Argument[2]", "taint", "manual"] + - ["java.lang", "String", False, "getBytes", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["java.lang", "String", False, "getChars", "", "", "Argument[this]", "Argument[2]", "taint", "manual"] + - ["java.lang", "String", False, "indent", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["java.lang", "String", False, "intern", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["java.lang", "String", False, "join", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["java.lang", "String", False, "repeat", "(int)", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["java.lang", "String", False, "replace", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["java.lang", "String", False, "repeat", "(int)", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["java.lang", "String", False, "replace", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["java.lang", "String", False, "replace", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] - - ["java.lang", "String", False, "replaceAll", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["java.lang", "String", False, "replaceAll", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["java.lang", "String", False, "replaceAll", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] - - ["java.lang", "String", False, "replaceFirst", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["java.lang", "String", False, "replaceFirst", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["java.lang", "String", False, "replaceFirst", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] - - ["java.lang", "String", False, "split", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["java.lang", "String", False, "strip", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["java.lang", "String", False, "stripIndent", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["java.lang", "String", False, "stripLeading", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["java.lang", "String", False, "stripTrailing", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["java.lang", "String", False, "substring", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["java.lang", "String", False, "toCharArray", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["java.lang", "String", False, "toLowerCase", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["java.lang", "String", False, "toString", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["java.lang", "String", False, "toUpperCase", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["java.lang", "String", False, "translateEscapes", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["java.lang", "String", False, "trim", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["java.lang", "String", False, "split", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["java.lang", "String", False, "strip", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["java.lang", "String", False, "stripIndent", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["java.lang", "String", False, "stripLeading", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["java.lang", "String", False, "stripTrailing", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["java.lang", "String", False, "substring", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["java.lang", "String", False, "toCharArray", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["java.lang", "String", False, "toLowerCase", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["java.lang", "String", False, "toString", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["java.lang", "String", False, "toUpperCase", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["java.lang", "String", False, "translateEscapes", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["java.lang", "String", False, "trim", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["java.lang", "String", False, "valueOf", "(char)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["java.lang", "String", False, "valueOf", "(char[])", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["java.lang", "String", False, "valueOf", "(char[],int,int)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["java.lang", "StringBuffer", True, "StringBuffer", "(CharSequence)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["java.lang", "StringBuffer", True, "StringBuffer", "(String)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["java.lang", "StringBuilder", True, "StringBuilder", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] + - ["java.lang", "StringBuffer", True, "StringBuffer", "(CharSequence)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["java.lang", "StringBuffer", True, "StringBuffer", "(String)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["java.lang", "StringBuilder", True, "StringBuilder", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] - ["java.lang", "System", False, "arraycopy", "", "", "Argument[0]", "Argument[2]", "taint", "manual"] - - ["java.lang", "Throwable", False, "Throwable", "(Throwable)", "", "Argument[0]", "Argument[-1].SyntheticField[java.lang.Throwable.cause]", "value", "manual"] - - ["java.lang", "Throwable", True, "getCause", "()", "", "Argument[-1].SyntheticField[java.lang.Throwable.cause]", "ReturnValue", "value", "manual"] - - ["java.lang", "Throwable", True, "getMessage", "()", "", "Argument[-1].SyntheticField[java.lang.Throwable.message]", "ReturnValue", "value", "manual"] + - ["java.lang", "Throwable", False, "Throwable", "(Throwable)", "", "Argument[0]", "Argument[this].SyntheticField[java.lang.Throwable.cause]", "value", "manual"] + - ["java.lang", "Throwable", True, "getCause", "()", "", "Argument[this].SyntheticField[java.lang.Throwable.cause]", "ReturnValue", "value", "manual"] + - ["java.lang", "Throwable", True, "getMessage", "()", "", "Argument[this].SyntheticField[java.lang.Throwable.message]", "ReturnValue", "value", "manual"] - addsTo: pack: codeql/java-all extensible: neutralModel diff --git a/java/ql/lib/ext/java.net.model.yml b/java/ql/lib/ext/java.net.model.yml index 9554dd2295f..b091890a98a 100644 --- a/java/ql/lib/ext/java.net.model.yml +++ b/java/ql/lib/ext/java.net.model.yml @@ -10,9 +10,9 @@ extensions: extensible: sinkModel data: - ["java.net", "DatagramSocket", True, "connect", "(SocketAddress)", "", "Argument[0]", "open-url", "ai-generated"] - - ["java.net", "URL", False, "openConnection", "", "", "Argument[-1]", "open-url", "manual"] + - ["java.net", "URL", False, "openConnection", "", "", "Argument[this]", "open-url", "manual"] - ["java.net", "URL", False, "openConnection", "(Proxy)", "", "Argument[0]", "open-url", "ai-generated"] - - ["java.net", "URL", False, "openStream", "", "", "Argument[-1]", "open-url", "manual"] + - ["java.net", "URL", False, "openStream", "", "", "Argument[this]", "open-url", "manual"] - ["java.net", "URLClassLoader", False, "URLClassLoader", "(String,URL[],ClassLoader)", "", "Argument[1]", "open-url", "manual"] - ["java.net", "URLClassLoader", False, "URLClassLoader", "(String,URL[],ClassLoader,URLStreamHandlerFactory)", "", "Argument[1]", "open-url", "manual"] - ["java.net", "URLClassLoader", False, "URLClassLoader", "(URL[])", "", "Argument[0]", "open-url", "manual"] @@ -25,17 +25,17 @@ extensions: data: - ["java.net", "InetAddress", True, "getByName", "(String)", "", "Argument[0]", "ReturnValue", "taint", "ai-generated"] - ["java.net", "InetSocketAddress", True, "createUnresolved", "(String,int)", "", "Argument[0]", "ReturnValue", "taint", "ai-generated"] - - ["java.net", "InetSocketAddress", True, "InetSocketAddress", "(String,int)", "", "Argument[0]", "Argument[-1]", "taint", "ai-generated"] + - ["java.net", "InetSocketAddress", True, "InetSocketAddress", "(String,int)", "", "Argument[0]", "Argument[this]", "taint", "ai-generated"] - ["java.net", "URI", False, "resolve", "(String)", "", "Argument[0]", "ReturnValue", "taint", "ai-generated"] - ["java.net", "URI", False, "resolve", "(URI)", "", "Argument[0]", "ReturnValue", "taint", "ai-generated"] - - ["java.net", "URI", False, "URI", "(String)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] + - ["java.net", "URI", False, "URI", "(String)", "", "Argument[0]", "Argument[this]", "taint", "manual"] - ["java.net", "URI", False, "create", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["java.net", "URI", False, "toASCIIString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["java.net", "URI", False, "toString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["java.net", "URI", False, "toURL", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["java.net", "URL", False, "URL", "(String)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["java.net", "URL", False, "toURI", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["java.net", "URL", False, "toExternalForm", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["java.net", "URL", False, "URL", "(URL,String)", "", "Argument[0]", "Argument[-1]", "taint", "ai-generated"] - - ["java.net", "URL", False, "URL", "(URL,String)", "", "Argument[1]", "Argument[-1]", "taint", "ai-generated"] # @atorralba: review for consistency + - ["java.net", "URI", False, "toASCIIString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["java.net", "URI", False, "toString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["java.net", "URI", False, "toURL", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["java.net", "URL", False, "URL", "(String)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["java.net", "URL", False, "toURI", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["java.net", "URL", False, "toExternalForm", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["java.net", "URL", False, "URL", "(URL,String)", "", "Argument[0]", "Argument[this]", "taint", "ai-generated"] + - ["java.net", "URL", False, "URL", "(URL,String)", "", "Argument[1]", "Argument[this]", "taint", "ai-generated"] # @atorralba: review for consistency - ["java.net", "URLDecoder", False, "decode", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] diff --git a/java/ql/lib/ext/java.nio.channels.model.yml b/java/ql/lib/ext/java.nio.channels.model.yml index e6b3e301bdf..c4ba9a77a05 100644 --- a/java/ql/lib/ext/java.nio.channels.model.yml +++ b/java/ql/lib/ext/java.nio.channels.model.yml @@ -4,4 +4,4 @@ extensions: extensible: summaryModel data: - ["java.nio.channels", "Channels", False, "newChannel", "(InputStream)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["java.nio.channels", "ReadableByteChannel", True, "read", "(ByteBuffer)", "", "Argument[-1]", "Argument[0]", "taint", "manual"] + - ["java.nio.channels", "ReadableByteChannel", True, "read", "(ByteBuffer)", "", "Argument[this]", "Argument[0]", "taint", "manual"] diff --git a/java/ql/lib/ext/java.nio.file.model.yml b/java/ql/lib/ext/java.nio.file.model.yml index ec2056c9a8f..8184d4010f6 100644 --- a/java/ql/lib/ext/java.nio.file.model.yml +++ b/java/ql/lib/ext/java.nio.file.model.yml @@ -28,12 +28,12 @@ extensions: extensible: summaryModel data: - ["java.nio.file", "FileSystem", True, "getPath", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["java.nio.file", "Path", True, "getParent", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["java.nio.file", "Path", True, "normalize", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["java.nio.file", "Path", True, "getParent", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["java.nio.file", "Path", True, "normalize", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["java.nio.file", "Path", True, "resolve", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] - - ["java.nio.file", "Path", True, "toAbsolutePath", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["java.nio.file", "Path", False, "toFile", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["java.nio.file", "Path", True, "toString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["java.nio.file", "Path", True, "toUri", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["java.nio.file", "Path", True, "toAbsolutePath", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["java.nio.file", "Path", False, "toFile", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["java.nio.file", "Path", True, "toString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["java.nio.file", "Path", True, "toUri", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["java.nio.file", "Paths", True, "get", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["java.nio.file", "Paths", True, "get", "", "", "Argument[1].ArrayElement", "ReturnValue", "taint", "manual"] diff --git a/java/ql/lib/ext/java.nio.model.yml b/java/ql/lib/ext/java.nio.model.yml index ad03fbe2371..675b85bf766 100644 --- a/java/ql/lib/ext/java.nio.model.yml +++ b/java/ql/lib/ext/java.nio.model.yml @@ -3,6 +3,6 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["java.nio", "ByteBuffer", False, "array", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["java.nio", "ByteBuffer", False, "get", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["java.nio", "ByteBuffer", False, "array", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["java.nio", "ByteBuffer", False, "get", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["java.nio", "ByteBuffer", False, "wrap", "(byte[])", "", "Argument[0]", "ReturnValue", "taint", "manual"] diff --git a/java/ql/lib/ext/java.sql.model.yml b/java/ql/lib/ext/java.sql.model.yml index 0bc57cb2f75..e5516043989 100644 --- a/java/ql/lib/ext/java.sql.model.yml +++ b/java/ql/lib/ext/java.sql.model.yml @@ -20,8 +20,8 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["java.sql", "PreparedStatement", True, "setString", "(int,String)", "", "Argument[1]", "Argument[-1]", "value", "manual"] - - ["java.sql", "ResultSet", True, "getString", "(String)", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["java.sql", "PreparedStatement", True, "setString", "(int,String)", "", "Argument[1]", "Argument[this]", "value", "manual"] + - ["java.sql", "ResultSet", True, "getString", "(String)", "", "Argument[this]", "ReturnValue", "taint", "manual"] - addsTo: pack: codeql/java-all extensible: neutralModel diff --git a/java/ql/lib/ext/java.util.concurrent.atomic.model.yml b/java/ql/lib/ext/java.util.concurrent.atomic.model.yml index 7dd3d13b301..b4b49273790 100644 --- a/java/ql/lib/ext/java.util.concurrent.atomic.model.yml +++ b/java/ql/lib/ext/java.util.concurrent.atomic.model.yml @@ -3,8 +3,8 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["java.util.concurrent.atomic", "AtomicReference", False, "AtomicReference", "(Object)", "", "Argument[0]", "Argument[-1].SyntheticField[java.util.concurrent.atomic.AtomicReference.value]", "value", "manual"] - - ["java.util.concurrent.atomic", "AtomicReference", False, "get", "()", "", "Argument[-1].SyntheticField[java.util.concurrent.atomic.AtomicReference.value]", "ReturnValue", "value", "manual"] + - ["java.util.concurrent.atomic", "AtomicReference", False, "AtomicReference", "(Object)", "", "Argument[0]", "Argument[this].SyntheticField[java.util.concurrent.atomic.AtomicReference.value]", "value", "manual"] + - ["java.util.concurrent.atomic", "AtomicReference", False, "get", "()", "", "Argument[this].SyntheticField[java.util.concurrent.atomic.AtomicReference.value]", "ReturnValue", "value", "manual"] - addsTo: pack: codeql/java-all diff --git a/java/ql/lib/ext/java.util.concurrent.model.yml b/java/ql/lib/ext/java.util.concurrent.model.yml index 3d199321dd6..dd0c6b75754 100644 --- a/java/ql/lib/ext/java.util.concurrent.model.yml +++ b/java/ql/lib/ext/java.util.concurrent.model.yml @@ -3,24 +3,24 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["java.util.concurrent", "BlockingDeque", True, "offerFirst", "(Object,long,TimeUnit)", "", "Argument[0]", "Argument[-1].Element", "value", "manual"] - - ["java.util.concurrent", "BlockingDeque", True, "offerLast", "(Object,long,TimeUnit)", "", "Argument[0]", "Argument[-1].Element", "value", "manual"] - - ["java.util.concurrent", "BlockingDeque", True, "pollFirst", "(long,TimeUnit)", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] - - ["java.util.concurrent", "BlockingDeque", True, "pollLast", "(long,TimeUnit)", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] - - ["java.util.concurrent", "BlockingDeque", True, "putFirst", "(Object)", "", "Argument[0]", "Argument[-1].Element", "value", "manual"] - - ["java.util.concurrent", "BlockingDeque", True, "putLast", "(Object)", "", "Argument[0]", "Argument[-1].Element", "value", "manual"] - - ["java.util.concurrent", "BlockingDeque", True, "takeFirst", "()", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] - - ["java.util.concurrent", "BlockingDeque", True, "takeLast", "()", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] - - ["java.util.concurrent", "BlockingQueue", True, "drainTo", "(Collection)", "", "Argument[-1].Element", "Argument[0].Element", "value", "manual"] - - ["java.util.concurrent", "BlockingQueue", True, "drainTo", "(Collection,int)", "", "Argument[-1].Element", "Argument[0].Element", "value", "manual"] - - ["java.util.concurrent", "BlockingQueue", True, "offer", "(Object,long,TimeUnit)", "", "Argument[0]", "Argument[-1].Element", "value", "manual"] - - ["java.util.concurrent", "BlockingQueue", True, "poll", "(long,TimeUnit)", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] - - ["java.util.concurrent", "BlockingQueue", True, "put", "(Object)", "", "Argument[0]", "Argument[-1].Element", "value", "manual"] - - ["java.util.concurrent", "BlockingQueue", True, "take", "()", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] - - ["java.util.concurrent", "ConcurrentHashMap", True, "elements", "()", "", "Argument[-1].MapValue", "ReturnValue.Element", "value", "manual"] - - ["java.util.concurrent", "TransferQueue", True, "transfer", "(Object)", "", "Argument[0]", "Argument[-1].Element", "value", "manual"] - - ["java.util.concurrent", "TransferQueue", True, "tryTransfer", "(Object)", "", "Argument[0]", "Argument[-1].Element", "value", "manual"] - - ["java.util.concurrent", "TransferQueue", True, "tryTransfer", "(Object,long,TimeUnit)", "", "Argument[0]", "Argument[-1].Element", "value", "manual"] + - ["java.util.concurrent", "BlockingDeque", True, "offerFirst", "(Object,long,TimeUnit)", "", "Argument[0]", "Argument[this].Element", "value", "manual"] + - ["java.util.concurrent", "BlockingDeque", True, "offerLast", "(Object,long,TimeUnit)", "", "Argument[0]", "Argument[this].Element", "value", "manual"] + - ["java.util.concurrent", "BlockingDeque", True, "pollFirst", "(long,TimeUnit)", "", "Argument[this].Element", "ReturnValue", "value", "manual"] + - ["java.util.concurrent", "BlockingDeque", True, "pollLast", "(long,TimeUnit)", "", "Argument[this].Element", "ReturnValue", "value", "manual"] + - ["java.util.concurrent", "BlockingDeque", True, "putFirst", "(Object)", "", "Argument[0]", "Argument[this].Element", "value", "manual"] + - ["java.util.concurrent", "BlockingDeque", True, "putLast", "(Object)", "", "Argument[0]", "Argument[this].Element", "value", "manual"] + - ["java.util.concurrent", "BlockingDeque", True, "takeFirst", "()", "", "Argument[this].Element", "ReturnValue", "value", "manual"] + - ["java.util.concurrent", "BlockingDeque", True, "takeLast", "()", "", "Argument[this].Element", "ReturnValue", "value", "manual"] + - ["java.util.concurrent", "BlockingQueue", True, "drainTo", "(Collection)", "", "Argument[this].Element", "Argument[0].Element", "value", "manual"] + - ["java.util.concurrent", "BlockingQueue", True, "drainTo", "(Collection,int)", "", "Argument[this].Element", "Argument[0].Element", "value", "manual"] + - ["java.util.concurrent", "BlockingQueue", True, "offer", "(Object,long,TimeUnit)", "", "Argument[0]", "Argument[this].Element", "value", "manual"] + - ["java.util.concurrent", "BlockingQueue", True, "poll", "(long,TimeUnit)", "", "Argument[this].Element", "ReturnValue", "value", "manual"] + - ["java.util.concurrent", "BlockingQueue", True, "put", "(Object)", "", "Argument[0]", "Argument[this].Element", "value", "manual"] + - ["java.util.concurrent", "BlockingQueue", True, "take", "()", "", "Argument[this].Element", "ReturnValue", "value", "manual"] + - ["java.util.concurrent", "ConcurrentHashMap", True, "elements", "()", "", "Argument[this].MapValue", "ReturnValue.Element", "value", "manual"] + - ["java.util.concurrent", "TransferQueue", True, "transfer", "(Object)", "", "Argument[0]", "Argument[this].Element", "value", "manual"] + - ["java.util.concurrent", "TransferQueue", True, "tryTransfer", "(Object)", "", "Argument[0]", "Argument[this].Element", "value", "manual"] + - ["java.util.concurrent", "TransferQueue", True, "tryTransfer", "(Object,long,TimeUnit)", "", "Argument[0]", "Argument[this].Element", "value", "manual"] - addsTo: pack: codeql/java-all diff --git a/java/ql/lib/ext/java.util.function.model.yml b/java/ql/lib/ext/java.util.function.model.yml index 9a608462a92..90ed9c1b9ab 100644 --- a/java/ql/lib/ext/java.util.function.model.yml +++ b/java/ql/lib/ext/java.util.function.model.yml @@ -3,4 +3,4 @@ extensions: pack: codeql/java-all extensible: sinkModel data: - - ["java.util.function", "Predicate", False, "test", "(Object)", "", "Argument[-1]", "regex-use[0]", "manual"] + - ["java.util.function", "Predicate", False, "test", "(Object)", "", "Argument[this]", "regex-use[0]", "manual"] diff --git a/java/ql/lib/ext/java.util.logging.model.yml b/java/ql/lib/ext/java.util.logging.model.yml index 4f96b8f28ee..41a59ceee3a 100644 --- a/java/ql/lib/ext/java.util.logging.model.yml +++ b/java/ql/lib/ext/java.util.logging.model.yml @@ -41,4 +41,4 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["java.util.logging", "LogRecord", False, "LogRecord", "", "", "Argument[1]", "Argument[-1]", "taint", "manual"] + - ["java.util.logging", "LogRecord", False, "LogRecord", "", "", "Argument[1]", "Argument[this]", "taint", "manual"] diff --git a/java/ql/lib/ext/java.util.model.yml b/java/ql/lib/ext/java.util.model.yml index bef47b5665e..5f3dad67c37 100644 --- a/java/ql/lib/ext/java.util.model.yml +++ b/java/ql/lib/ext/java.util.model.yml @@ -3,16 +3,16 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["java.util", "AbstractMap$SimpleEntry", False, "SimpleEntry", "(Entry)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["java.util", "AbstractMap$SimpleEntry", False, "SimpleEntry", "(Entry)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["java.util", "AbstractMap$SimpleEntry", False, "SimpleEntry", "(Object,Object)", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["java.util", "AbstractMap$SimpleEntry", False, "SimpleEntry", "(Object,Object)", "", "Argument[1]", "Argument[-1].MapValue", "value", "manual"] - - ["java.util", "AbstractMap$SimpleImmutableEntry", False, "SimpleImmutableEntry", "(Entry)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["java.util", "AbstractMap$SimpleImmutableEntry", False, "SimpleImmutableEntry", "(Entry)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["java.util", "AbstractMap$SimpleImmutableEntry", False, "SimpleImmutableEntry", "(Object,Object)", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["java.util", "AbstractMap$SimpleImmutableEntry", False, "SimpleImmutableEntry", "(Object,Object)", "", "Argument[1]", "Argument[-1].MapValue", "value", "manual"] - - ["java.util", "ArrayDeque", False, "ArrayDeque", "(Collection)", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["java.util", "ArrayList", False, "ArrayList", "(Collection)", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] + - ["java.util", "AbstractMap$SimpleEntry", False, "SimpleEntry", "(Entry)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["java.util", "AbstractMap$SimpleEntry", False, "SimpleEntry", "(Entry)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["java.util", "AbstractMap$SimpleEntry", False, "SimpleEntry", "(Object,Object)", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["java.util", "AbstractMap$SimpleEntry", False, "SimpleEntry", "(Object,Object)", "", "Argument[1]", "Argument[this].MapValue", "value", "manual"] + - ["java.util", "AbstractMap$SimpleImmutableEntry", False, "SimpleImmutableEntry", "(Entry)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["java.util", "AbstractMap$SimpleImmutableEntry", False, "SimpleImmutableEntry", "(Entry)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["java.util", "AbstractMap$SimpleImmutableEntry", False, "SimpleImmutableEntry", "(Object,Object)", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["java.util", "AbstractMap$SimpleImmutableEntry", False, "SimpleImmutableEntry", "(Object,Object)", "", "Argument[1]", "Argument[this].MapValue", "value", "manual"] + - ["java.util", "ArrayDeque", False, "ArrayDeque", "(Collection)", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["java.util", "ArrayList", False, "ArrayList", "(Collection)", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] - ["java.util", "Arrays", False, "asList", "", "", "Argument[0].ArrayElement", "ReturnValue.Element", "value", "manual"] - ["java.util", "Arrays", False, "copyOf", "", "", "Argument[0].ArrayElement", "ReturnValue.ArrayElement", "value", "manual"] - ["java.util", "Arrays", False, "copyOfRange", "", "", "Argument[0].ArrayElement", "ReturnValue.ArrayElement", "value", "manual"] @@ -44,12 +44,12 @@ extensions: - ["java.util", "Base64$Encoder", False, "encode", "(byte[])", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["java.util", "Base64$Encoder", False, "encodeToString", "(byte[])", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["java.util", "Base64$Encoder", False, "wrap", "(OutputStream)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["java.util", "Collection", True, "add", "", "", "Argument[0]", "Argument[-1].Element", "value", "manual"] - - ["java.util", "Collection", True, "addAll", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["java.util", "Collection", True, "parallelStream", "()", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["java.util", "Collection", True, "stream", "()", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["java.util", "Collection", True, "toArray", "", "", "Argument[-1].Element", "Argument[0].ArrayElement", "value", "manual"] - - ["java.util", "Collection", True, "toArray", "", "", "Argument[-1].Element", "ReturnValue.ArrayElement", "value", "manual"] + - ["java.util", "Collection", True, "add", "", "", "Argument[0]", "Argument[this].Element", "value", "manual"] + - ["java.util", "Collection", True, "addAll", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["java.util", "Collection", True, "parallelStream", "()", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["java.util", "Collection", True, "stream", "()", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["java.util", "Collection", True, "toArray", "", "", "Argument[this].Element", "Argument[0].ArrayElement", "value", "manual"] + - ["java.util", "Collection", True, "toArray", "", "", "Argument[this].Element", "ReturnValue.ArrayElement", "value", "manual"] - ["java.util", "Collections", False, "addAll", "(Collection,Object[])", "", "Argument[1].ArrayElement", "Argument[0].Element", "value", "manual"] - ["java.util", "Collections", False, "checkedCollection", "(Collection,Class)", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["java.util", "Collections", False, "checkedList", "(List,Class)", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] @@ -96,52 +96,52 @@ extensions: - ["java.util", "Collections", False, "unmodifiableSortedMap", "(SortedMap)", "", "Argument[0].MapKey", "ReturnValue.MapKey", "value", "manual"] - ["java.util", "Collections", False, "unmodifiableSortedMap", "(SortedMap)", "", "Argument[0].MapValue", "ReturnValue.MapValue", "value", "manual"] - ["java.util", "Collections", False, "unmodifiableSortedSet", "(SortedSet)", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - - ["java.util", "Deque", True, "addFirst", "(Object)", "", "Argument[0]", "Argument[-1].Element", "value", "manual"] - - ["java.util", "Deque", True, "addLast", "(Object)", "", "Argument[0]", "Argument[-1].Element", "value", "manual"] - - ["java.util", "Deque", True, "descendingIterator", "()", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["java.util", "Deque", True, "getFirst", "()", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] - - ["java.util", "Deque", True, "getLast", "()", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] - - ["java.util", "Deque", True, "offerFirst", "(Object)", "", "Argument[0]", "Argument[-1].Element", "value", "manual"] - - ["java.util", "Deque", True, "offerLast", "(Object)", "", "Argument[0]", "Argument[-1].Element", "value", "manual"] - - ["java.util", "Deque", True, "peekFirst", "()", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] - - ["java.util", "Deque", True, "peekLast", "()", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] - - ["java.util", "Deque", True, "pollFirst", "()", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] - - ["java.util", "Deque", True, "pollLast", "()", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] - - ["java.util", "Deque", True, "pop", "()", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] - - ["java.util", "Deque", True, "push", "(Object)", "", "Argument[0]", "Argument[-1].Element", "value", "manual"] - - ["java.util", "Deque", True, "removeFirst", "()", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] - - ["java.util", "Deque", True, "removeLast", "()", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] - - ["java.util", "Dictionary", True, "elements", "()", "", "Argument[-1].MapValue", "ReturnValue.Element", "value", "manual"] - - ["java.util", "Dictionary", True, "get", "(Object)", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] - - ["java.util", "Dictionary", True, "keys", "()", "", "Argument[-1].MapKey", "ReturnValue.Element", "value", "manual"] - - ["java.util", "Dictionary", True, "put", "(Object,Object)", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] - - ["java.util", "Dictionary", True, "put", "(Object,Object)", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["java.util", "Dictionary", True, "put", "(Object,Object)", "", "Argument[1]", "Argument[-1].MapValue", "value", "manual"] - - ["java.util", "Dictionary", True, "remove", "(Object)", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] - - ["java.util", "EnumMap", False, "EnumMap", "(EnumMap)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["java.util", "EnumMap", False, "EnumMap", "(EnumMap)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["java.util", "EnumMap", False, "EnumMap", "(Map)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["java.util", "EnumMap", False, "EnumMap", "(Map)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["java.util", "Enumeration", True, "asIterator", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["java.util", "Enumeration", True, "nextElement", "", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] - - ["java.util", "HashMap", False, "HashMap", "(Map)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["java.util", "HashMap", False, "HashMap", "(Map)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["java.util", "HashSet", False, "HashSet", "(Collection)", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["java.util", "Hashtable", False, "Hashtable", "(Map)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["java.util", "Hashtable", False, "Hashtable", "(Map)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["java.util", "IdentityHashMap", False, "IdentityHashMap", "(Map)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["java.util", "IdentityHashMap", False, "IdentityHashMap", "(Map)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["java.util", "Iterator", True, "forEachRemaining", "(Consumer)", "", "Argument[-1].Element", "Argument[0].Parameter[0]", "value", "manual"] - - ["java.util", "Iterator", True, "next", "", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] - - ["java.util", "LinkedHashMap", False, "LinkedHashMap", "(Map)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["java.util", "LinkedHashMap", False, "LinkedHashMap", "(Map)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["java.util", "LinkedHashSet", False, "LinkedHashSet", "(Collection)", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["java.util", "LinkedList", False, "LinkedList", "(Collection)", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["java.util", "List", True, "add", "(int,Object)", "", "Argument[1]", "Argument[-1].Element", "value", "manual"] - - ["java.util", "List", True, "addAll", "(int,Collection)", "", "Argument[1].Element", "Argument[-1].Element", "value", "manual"] + - ["java.util", "Deque", True, "addFirst", "(Object)", "", "Argument[0]", "Argument[this].Element", "value", "manual"] + - ["java.util", "Deque", True, "addLast", "(Object)", "", "Argument[0]", "Argument[this].Element", "value", "manual"] + - ["java.util", "Deque", True, "descendingIterator", "()", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["java.util", "Deque", True, "getFirst", "()", "", "Argument[this].Element", "ReturnValue", "value", "manual"] + - ["java.util", "Deque", True, "getLast", "()", "", "Argument[this].Element", "ReturnValue", "value", "manual"] + - ["java.util", "Deque", True, "offerFirst", "(Object)", "", "Argument[0]", "Argument[this].Element", "value", "manual"] + - ["java.util", "Deque", True, "offerLast", "(Object)", "", "Argument[0]", "Argument[this].Element", "value", "manual"] + - ["java.util", "Deque", True, "peekFirst", "()", "", "Argument[this].Element", "ReturnValue", "value", "manual"] + - ["java.util", "Deque", True, "peekLast", "()", "", "Argument[this].Element", "ReturnValue", "value", "manual"] + - ["java.util", "Deque", True, "pollFirst", "()", "", "Argument[this].Element", "ReturnValue", "value", "manual"] + - ["java.util", "Deque", True, "pollLast", "()", "", "Argument[this].Element", "ReturnValue", "value", "manual"] + - ["java.util", "Deque", True, "pop", "()", "", "Argument[this].Element", "ReturnValue", "value", "manual"] + - ["java.util", "Deque", True, "push", "(Object)", "", "Argument[0]", "Argument[this].Element", "value", "manual"] + - ["java.util", "Deque", True, "removeFirst", "()", "", "Argument[this].Element", "ReturnValue", "value", "manual"] + - ["java.util", "Deque", True, "removeLast", "()", "", "Argument[this].Element", "ReturnValue", "value", "manual"] + - ["java.util", "Dictionary", True, "elements", "()", "", "Argument[this].MapValue", "ReturnValue.Element", "value", "manual"] + - ["java.util", "Dictionary", True, "get", "(Object)", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["java.util", "Dictionary", True, "keys", "()", "", "Argument[this].MapKey", "ReturnValue.Element", "value", "manual"] + - ["java.util", "Dictionary", True, "put", "(Object,Object)", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["java.util", "Dictionary", True, "put", "(Object,Object)", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["java.util", "Dictionary", True, "put", "(Object,Object)", "", "Argument[1]", "Argument[this].MapValue", "value", "manual"] + - ["java.util", "Dictionary", True, "remove", "(Object)", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["java.util", "EnumMap", False, "EnumMap", "(EnumMap)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["java.util", "EnumMap", False, "EnumMap", "(EnumMap)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["java.util", "EnumMap", False, "EnumMap", "(Map)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["java.util", "EnumMap", False, "EnumMap", "(Map)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["java.util", "Enumeration", True, "asIterator", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["java.util", "Enumeration", True, "nextElement", "", "", "Argument[this].Element", "ReturnValue", "value", "manual"] + - ["java.util", "HashMap", False, "HashMap", "(Map)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["java.util", "HashMap", False, "HashMap", "(Map)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["java.util", "HashSet", False, "HashSet", "(Collection)", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["java.util", "Hashtable", False, "Hashtable", "(Map)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["java.util", "Hashtable", False, "Hashtable", "(Map)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["java.util", "IdentityHashMap", False, "IdentityHashMap", "(Map)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["java.util", "IdentityHashMap", False, "IdentityHashMap", "(Map)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["java.util", "Iterator", True, "forEachRemaining", "(Consumer)", "", "Argument[this].Element", "Argument[0].Parameter[0]", "value", "manual"] + - ["java.util", "Iterator", True, "next", "", "", "Argument[this].Element", "ReturnValue", "value", "manual"] + - ["java.util", "LinkedHashMap", False, "LinkedHashMap", "(Map)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["java.util", "LinkedHashMap", False, "LinkedHashMap", "(Map)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["java.util", "LinkedHashSet", False, "LinkedHashSet", "(Collection)", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["java.util", "LinkedList", False, "LinkedList", "(Collection)", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["java.util", "List", True, "add", "(int,Object)", "", "Argument[1]", "Argument[this].Element", "value", "manual"] + - ["java.util", "List", True, "addAll", "(int,Collection)", "", "Argument[1].Element", "Argument[this].Element", "value", "manual"] - ["java.util", "List", False, "copyOf", "(Collection)", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - - ["java.util", "List", True, "get", "(int)", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] - - ["java.util", "List", True, "listIterator", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] + - ["java.util", "List", True, "get", "(int)", "", "Argument[this].Element", "ReturnValue", "value", "manual"] + - ["java.util", "List", True, "listIterator", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] - ["java.util", "List", False, "of", "(Object)", "", "Argument[0]", "ReturnValue.Element", "value", "manual"] - ["java.util", "List", False, "of", "(Object,Object)", "", "Argument[0..1]", "ReturnValue.Element", "value", "manual"] - ["java.util", "List", False, "of", "(Object,Object,Object)", "", "Argument[0..2]", "ReturnValue.Element", "value", "manual"] @@ -153,29 +153,29 @@ extensions: - ["java.util", "List", False, "of", "(Object,Object,Object,Object,Object,Object,Object,Object,Object)", "", "Argument[0..8]", "ReturnValue.Element", "value", "manual"] - ["java.util", "List", False, "of", "(Object,Object,Object,Object,Object,Object,Object,Object,Object,Object)", "", "Argument[0..9]", "ReturnValue.Element", "value", "manual"] - ["java.util", "List", False, "of", "(Object[])", "", "Argument[0].ArrayElement", "ReturnValue.Element", "value", "manual"] - - ["java.util", "List", True, "remove", "(int)", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] - - ["java.util", "List", True, "set", "(int,Object)", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] - - ["java.util", "List", True, "set", "(int,Object)", "", "Argument[1]", "Argument[-1].Element", "value", "manual"] - - ["java.util", "List", True, "subList", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["java.util", "ListIterator", True, "add", "(Object)", "", "Argument[0]", "Argument[-1].Element", "value", "manual"] - - ["java.util", "ListIterator", True, "previous", "", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] - - ["java.util", "ListIterator", True, "set", "(Object)", "", "Argument[0]", "Argument[-1].Element", "value", "manual"] - - ["java.util", "Map", True, "computeIfAbsent", "", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] - - ["java.util", "Map", True, "computeIfAbsent", "", "", "Argument[1].ReturnValue", "Argument[-1].MapValue", "value", "manual"] + - ["java.util", "List", True, "remove", "(int)", "", "Argument[this].Element", "ReturnValue", "value", "manual"] + - ["java.util", "List", True, "set", "(int,Object)", "", "Argument[this].Element", "ReturnValue", "value", "manual"] + - ["java.util", "List", True, "set", "(int,Object)", "", "Argument[1]", "Argument[this].Element", "value", "manual"] + - ["java.util", "List", True, "subList", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["java.util", "ListIterator", True, "add", "(Object)", "", "Argument[0]", "Argument[this].Element", "value", "manual"] + - ["java.util", "ListIterator", True, "previous", "", "", "Argument[this].Element", "ReturnValue", "value", "manual"] + - ["java.util", "ListIterator", True, "set", "(Object)", "", "Argument[0]", "Argument[this].Element", "value", "manual"] + - ["java.util", "Map", True, "computeIfAbsent", "", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["java.util", "Map", True, "computeIfAbsent", "", "", "Argument[1].ReturnValue", "Argument[this].MapValue", "value", "manual"] - ["java.util", "Map", True, "computeIfAbsent", "", "", "Argument[1].ReturnValue", "ReturnValue", "value", "manual"] - ["java.util", "Map", False, "copyOf", "(Map)", "", "Argument[0].MapKey", "ReturnValue.MapKey", "value", "manual"] - ["java.util", "Map", False, "copyOf", "(Map)", "", "Argument[0].MapValue", "ReturnValue.MapValue", "value", "manual"] - ["java.util", "Map", False, "entry", "(Object,Object)", "", "Argument[0]", "ReturnValue.MapKey", "value", "manual"] - ["java.util", "Map", False, "entry", "(Object,Object)", "", "Argument[1]", "ReturnValue.MapValue", "value", "manual"] - - ["java.util", "Map", True, "entrySet", "", "", "Argument[-1].MapKey", "ReturnValue.Element.MapKey", "value", "manual"] - - ["java.util", "Map", True, "entrySet", "", "", "Argument[-1].MapValue", "ReturnValue.Element.MapValue", "value", "manual"] - - ["java.util", "Map", True, "forEach", "(BiConsumer)", "", "Argument[-1].MapKey", "Argument[0].Parameter[0]", "value", "manual"] - - ["java.util", "Map", True, "forEach", "(BiConsumer)", "", "Argument[-1].MapValue", "Argument[0].Parameter[1]", "value", "manual"] - - ["java.util", "Map", True, "get", "", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] - - ["java.util", "Map", True, "getOrDefault", "", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] + - ["java.util", "Map", True, "entrySet", "", "", "Argument[this].MapKey", "ReturnValue.Element.MapKey", "value", "manual"] + - ["java.util", "Map", True, "entrySet", "", "", "Argument[this].MapValue", "ReturnValue.Element.MapValue", "value", "manual"] + - ["java.util", "Map", True, "forEach", "(BiConsumer)", "", "Argument[this].MapKey", "Argument[0].Parameter[0]", "value", "manual"] + - ["java.util", "Map", True, "forEach", "(BiConsumer)", "", "Argument[this].MapValue", "Argument[0].Parameter[1]", "value", "manual"] + - ["java.util", "Map", True, "get", "", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["java.util", "Map", True, "getOrDefault", "", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] - ["java.util", "Map", True, "getOrDefault", "", "", "Argument[1]", "ReturnValue", "value", "manual"] - - ["java.util", "Map", True, "keySet", "()", "", "Argument[-1].MapKey", "ReturnValue.Element", "value", "manual"] - - ["java.util", "Map", True, "merge", "(Object,Object,BiFunction)", "", "Argument[1]", "Argument[-1].MapValue", "value", "manual"] + - ["java.util", "Map", True, "keySet", "()", "", "Argument[this].MapKey", "ReturnValue.Element", "value", "manual"] + - ["java.util", "Map", True, "merge", "(Object,Object,BiFunction)", "", "Argument[1]", "Argument[this].MapValue", "value", "manual"] - ["java.util", "Map", False, "of", "", "", "Argument[0]", "ReturnValue.MapKey", "value", "manual"] - ["java.util", "Map", False, "of", "", "", "Argument[10]", "ReturnValue.MapKey", "value", "manual"] - ["java.util", "Map", False, "of", "", "", "Argument[11]", "ReturnValue.MapValue", "value", "manual"] @@ -198,117 +198,117 @@ extensions: - ["java.util", "Map", False, "of", "", "", "Argument[9]", "ReturnValue.MapValue", "value", "manual"] - ["java.util", "Map", False, "ofEntries", "", "", "Argument[0].ArrayElement.MapKey", "ReturnValue.MapKey", "value", "manual"] - ["java.util", "Map", False, "ofEntries", "", "", "Argument[0].ArrayElement.MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["java.util", "Map", True, "put", "(Object,Object)", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] - - ["java.util", "Map", True, "put", "(Object,Object)", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["java.util", "Map", True, "put", "(Object,Object)", "", "Argument[1]", "Argument[-1].MapValue", "value", "manual"] - - ["java.util", "Map", True, "putAll", "(Map)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["java.util", "Map", True, "putAll", "(Map)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["java.util", "Map", True, "putIfAbsent", "", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] - - ["java.util", "Map", True, "putIfAbsent", "", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["java.util", "Map", True, "putIfAbsent", "", "", "Argument[1]", "Argument[-1].MapValue", "value", "manual"] - - ["java.util", "Map", True, "remove", "(Object)", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] - - ["java.util", "Map", True, "replace", "(Object,Object)", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] - - ["java.util", "Map", True, "replace", "(Object,Object)", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["java.util", "Map", True, "replace", "(Object,Object)", "", "Argument[1]", "Argument[-1].MapValue", "value", "manual"] - - ["java.util", "Map", True, "replace", "(Object,Object,Object)", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["java.util", "Map", True, "replace", "(Object,Object,Object)", "", "Argument[2]", "Argument[-1].MapValue", "value", "manual"] - - ["java.util", "Map", True, "values", "()", "", "Argument[-1].MapValue", "ReturnValue.Element", "value", "manual"] - - ["java.util", "Map$Entry", True, "getKey", "", "", "Argument[-1].MapKey", "ReturnValue", "value", "manual"] - - ["java.util", "Map$Entry", True, "getValue", "", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] - - ["java.util", "Map$Entry", True, "setValue", "", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] - - ["java.util", "Map$Entry", True, "setValue", "", "", "Argument[0]", "Argument[-1].MapValue", "value", "manual"] - - ["java.util", "NavigableMap", True, "ceilingEntry", "(Object)", "", "Argument[-1].MapKey", "ReturnValue.MapKey", "value", "manual"] - - ["java.util", "NavigableMap", True, "ceilingEntry", "(Object)", "", "Argument[-1].MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["java.util", "NavigableMap", True, "descendingMap", "()", "", "Argument[-1].MapKey", "ReturnValue.MapKey", "value", "manual"] - - ["java.util", "NavigableMap", True, "descendingMap", "()", "", "Argument[-1].MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["java.util", "NavigableMap", True, "firstEntry", "()", "", "Argument[-1].MapKey", "ReturnValue.MapKey", "value", "manual"] - - ["java.util", "NavigableMap", True, "firstEntry", "()", "", "Argument[-1].MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["java.util", "NavigableMap", True, "floorEntry", "(Object)", "", "Argument[-1].MapKey", "ReturnValue.MapKey", "value", "manual"] - - ["java.util", "NavigableMap", True, "floorEntry", "(Object)", "", "Argument[-1].MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["java.util", "NavigableMap", True, "headMap", "(Object,boolean)", "", "Argument[-1].MapKey", "ReturnValue.MapKey", "value", "manual"] - - ["java.util", "NavigableMap", True, "headMap", "(Object,boolean)", "", "Argument[-1].MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["java.util", "NavigableMap", True, "higherEntry", "(Object)", "", "Argument[-1].MapKey", "ReturnValue.MapKey", "value", "manual"] - - ["java.util", "NavigableMap", True, "higherEntry", "(Object)", "", "Argument[-1].MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["java.util", "NavigableMap", True, "lastEntry", "()", "", "Argument[-1].MapKey", "ReturnValue.MapKey", "value", "manual"] - - ["java.util", "NavigableMap", True, "lastEntry", "()", "", "Argument[-1].MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["java.util", "NavigableMap", True, "lowerEntry", "(Object)", "", "Argument[-1].MapKey", "ReturnValue.MapKey", "value", "manual"] - - ["java.util", "NavigableMap", True, "lowerEntry", "(Object)", "", "Argument[-1].MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["java.util", "NavigableMap", True, "pollFirstEntry", "()", "", "Argument[-1].MapKey", "ReturnValue.MapKey", "value", "manual"] - - ["java.util", "NavigableMap", True, "pollFirstEntry", "()", "", "Argument[-1].MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["java.util", "NavigableMap", True, "pollLastEntry", "()", "", "Argument[-1].MapKey", "ReturnValue.MapKey", "value", "manual"] - - ["java.util", "NavigableMap", True, "pollLastEntry", "()", "", "Argument[-1].MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["java.util", "NavigableMap", True, "subMap", "(Object,boolean,Object,boolean)", "", "Argument[-1].MapKey", "ReturnValue.MapKey", "value", "manual"] - - ["java.util", "NavigableMap", True, "subMap", "(Object,boolean,Object,boolean)", "", "Argument[-1].MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["java.util", "NavigableMap", True, "tailMap", "(Object,boolean)", "", "Argument[-1].MapKey", "ReturnValue.MapKey", "value", "manual"] - - ["java.util", "NavigableMap", True, "tailMap", "(Object,boolean)", "", "Argument[-1].MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["java.util", "NavigableSet", True, "ceiling", "(Object)", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] - - ["java.util", "NavigableSet", True, "descendingIterator", "()", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["java.util", "NavigableSet", True, "descendingSet", "()", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["java.util", "NavigableSet", True, "floor", "(Object)", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] - - ["java.util", "NavigableSet", True, "headSet", "(Object,boolean)", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["java.util", "NavigableSet", True, "higher", "(Object)", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] - - ["java.util", "NavigableSet", True, "lower", "(Object)", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] - - ["java.util", "NavigableSet", True, "pollFirst", "()", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] - - ["java.util", "NavigableSet", True, "pollLast", "()", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] - - ["java.util", "NavigableSet", True, "subSet", "(Object,boolean,Object,boolean)", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["java.util", "NavigableSet", True, "tailSet", "(Object,boolean)", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] + - ["java.util", "Map", True, "put", "(Object,Object)", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["java.util", "Map", True, "put", "(Object,Object)", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["java.util", "Map", True, "put", "(Object,Object)", "", "Argument[1]", "Argument[this].MapValue", "value", "manual"] + - ["java.util", "Map", True, "putAll", "(Map)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["java.util", "Map", True, "putAll", "(Map)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["java.util", "Map", True, "putIfAbsent", "", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["java.util", "Map", True, "putIfAbsent", "", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["java.util", "Map", True, "putIfAbsent", "", "", "Argument[1]", "Argument[this].MapValue", "value", "manual"] + - ["java.util", "Map", True, "remove", "(Object)", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["java.util", "Map", True, "replace", "(Object,Object)", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["java.util", "Map", True, "replace", "(Object,Object)", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["java.util", "Map", True, "replace", "(Object,Object)", "", "Argument[1]", "Argument[this].MapValue", "value", "manual"] + - ["java.util", "Map", True, "replace", "(Object,Object,Object)", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["java.util", "Map", True, "replace", "(Object,Object,Object)", "", "Argument[2]", "Argument[this].MapValue", "value", "manual"] + - ["java.util", "Map", True, "values", "()", "", "Argument[this].MapValue", "ReturnValue.Element", "value", "manual"] + - ["java.util", "Map$Entry", True, "getKey", "", "", "Argument[this].MapKey", "ReturnValue", "value", "manual"] + - ["java.util", "Map$Entry", True, "getValue", "", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["java.util", "Map$Entry", True, "setValue", "", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["java.util", "Map$Entry", True, "setValue", "", "", "Argument[0]", "Argument[this].MapValue", "value", "manual"] + - ["java.util", "NavigableMap", True, "ceilingEntry", "(Object)", "", "Argument[this].MapKey", "ReturnValue.MapKey", "value", "manual"] + - ["java.util", "NavigableMap", True, "ceilingEntry", "(Object)", "", "Argument[this].MapValue", "ReturnValue.MapValue", "value", "manual"] + - ["java.util", "NavigableMap", True, "descendingMap", "()", "", "Argument[this].MapKey", "ReturnValue.MapKey", "value", "manual"] + - ["java.util", "NavigableMap", True, "descendingMap", "()", "", "Argument[this].MapValue", "ReturnValue.MapValue", "value", "manual"] + - ["java.util", "NavigableMap", True, "firstEntry", "()", "", "Argument[this].MapKey", "ReturnValue.MapKey", "value", "manual"] + - ["java.util", "NavigableMap", True, "firstEntry", "()", "", "Argument[this].MapValue", "ReturnValue.MapValue", "value", "manual"] + - ["java.util", "NavigableMap", True, "floorEntry", "(Object)", "", "Argument[this].MapKey", "ReturnValue.MapKey", "value", "manual"] + - ["java.util", "NavigableMap", True, "floorEntry", "(Object)", "", "Argument[this].MapValue", "ReturnValue.MapValue", "value", "manual"] + - ["java.util", "NavigableMap", True, "headMap", "(Object,boolean)", "", "Argument[this].MapKey", "ReturnValue.MapKey", "value", "manual"] + - ["java.util", "NavigableMap", True, "headMap", "(Object,boolean)", "", "Argument[this].MapValue", "ReturnValue.MapValue", "value", "manual"] + - ["java.util", "NavigableMap", True, "higherEntry", "(Object)", "", "Argument[this].MapKey", "ReturnValue.MapKey", "value", "manual"] + - ["java.util", "NavigableMap", True, "higherEntry", "(Object)", "", "Argument[this].MapValue", "ReturnValue.MapValue", "value", "manual"] + - ["java.util", "NavigableMap", True, "lastEntry", "()", "", "Argument[this].MapKey", "ReturnValue.MapKey", "value", "manual"] + - ["java.util", "NavigableMap", True, "lastEntry", "()", "", "Argument[this].MapValue", "ReturnValue.MapValue", "value", "manual"] + - ["java.util", "NavigableMap", True, "lowerEntry", "(Object)", "", "Argument[this].MapKey", "ReturnValue.MapKey", "value", "manual"] + - ["java.util", "NavigableMap", True, "lowerEntry", "(Object)", "", "Argument[this].MapValue", "ReturnValue.MapValue", "value", "manual"] + - ["java.util", "NavigableMap", True, "pollFirstEntry", "()", "", "Argument[this].MapKey", "ReturnValue.MapKey", "value", "manual"] + - ["java.util", "NavigableMap", True, "pollFirstEntry", "()", "", "Argument[this].MapValue", "ReturnValue.MapValue", "value", "manual"] + - ["java.util", "NavigableMap", True, "pollLastEntry", "()", "", "Argument[this].MapKey", "ReturnValue.MapKey", "value", "manual"] + - ["java.util", "NavigableMap", True, "pollLastEntry", "()", "", "Argument[this].MapValue", "ReturnValue.MapValue", "value", "manual"] + - ["java.util", "NavigableMap", True, "subMap", "(Object,boolean,Object,boolean)", "", "Argument[this].MapKey", "ReturnValue.MapKey", "value", "manual"] + - ["java.util", "NavigableMap", True, "subMap", "(Object,boolean,Object,boolean)", "", "Argument[this].MapValue", "ReturnValue.MapValue", "value", "manual"] + - ["java.util", "NavigableMap", True, "tailMap", "(Object,boolean)", "", "Argument[this].MapKey", "ReturnValue.MapKey", "value", "manual"] + - ["java.util", "NavigableMap", True, "tailMap", "(Object,boolean)", "", "Argument[this].MapValue", "ReturnValue.MapValue", "value", "manual"] + - ["java.util", "NavigableSet", True, "ceiling", "(Object)", "", "Argument[this].Element", "ReturnValue", "value", "manual"] + - ["java.util", "NavigableSet", True, "descendingIterator", "()", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["java.util", "NavigableSet", True, "descendingSet", "()", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["java.util", "NavigableSet", True, "floor", "(Object)", "", "Argument[this].Element", "ReturnValue", "value", "manual"] + - ["java.util", "NavigableSet", True, "headSet", "(Object,boolean)", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["java.util", "NavigableSet", True, "higher", "(Object)", "", "Argument[this].Element", "ReturnValue", "value", "manual"] + - ["java.util", "NavigableSet", True, "lower", "(Object)", "", "Argument[this].Element", "ReturnValue", "value", "manual"] + - ["java.util", "NavigableSet", True, "pollFirst", "()", "", "Argument[this].Element", "ReturnValue", "value", "manual"] + - ["java.util", "NavigableSet", True, "pollLast", "()", "", "Argument[this].Element", "ReturnValue", "value", "manual"] + - ["java.util", "NavigableSet", True, "subSet", "(Object,boolean,Object,boolean)", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["java.util", "NavigableSet", True, "tailSet", "(Object,boolean)", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] - ["java.util", "Objects", False, "requireNonNull", "", "", "Argument[0]", "ReturnValue", "value", "manual"] - ["java.util", "Objects", False, "requireNonNullElse", "", "", "Argument[0]", "ReturnValue", "value", "manual"] - ["java.util", "Objects", False, "requireNonNullElse", "", "", "Argument[1]", "ReturnValue", "value", "manual"] - ["java.util", "Objects", False, "requireNonNullElseGet", "", "", "Argument[0]", "ReturnValue", "value", "manual"] - ["java.util", "Objects", False, "toString", "", "", "Argument[1]", "ReturnValue", "value", "manual"] - - ["java.util", "Optional", False, "filter", "", "", "Argument[-1].Element", "Argument[0].Parameter[0]", "value", "manual"] - - ["java.util", "Optional", False, "filter", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["java.util", "Optional", False, "flatMap", "", "", "Argument[-1].Element", "Argument[0].Parameter[0]", "value", "manual"] + - ["java.util", "Optional", False, "filter", "", "", "Argument[this].Element", "Argument[0].Parameter[0]", "value", "manual"] + - ["java.util", "Optional", False, "filter", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["java.util", "Optional", False, "flatMap", "", "", "Argument[this].Element", "Argument[0].Parameter[0]", "value", "manual"] - ["java.util", "Optional", False, "flatMap", "", "", "Argument[0].ReturnValue", "ReturnValue", "value", "manual"] - - ["java.util", "Optional", False, "get", "", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] - - ["java.util", "Optional", False, "ifPresent", "", "", "Argument[-1].Element", "Argument[0].Parameter[0]", "value", "manual"] - - ["java.util", "Optional", False, "ifPresentOrElse", "", "", "Argument[-1].Element", "Argument[0].Parameter[0]", "value", "manual"] - - ["java.util", "Optional", False, "map", "", "", "Argument[-1].Element", "Argument[0].Parameter[0]", "value", "manual"] + - ["java.util", "Optional", False, "get", "", "", "Argument[this].Element", "ReturnValue", "value", "manual"] + - ["java.util", "Optional", False, "ifPresent", "", "", "Argument[this].Element", "Argument[0].Parameter[0]", "value", "manual"] + - ["java.util", "Optional", False, "ifPresentOrElse", "", "", "Argument[this].Element", "Argument[0].Parameter[0]", "value", "manual"] + - ["java.util", "Optional", False, "map", "", "", "Argument[this].Element", "Argument[0].Parameter[0]", "value", "manual"] - ["java.util", "Optional", False, "map", "", "", "Argument[0].ReturnValue", "ReturnValue.Element", "value", "manual"] - ["java.util", "Optional", False, "of", "", "", "Argument[0]", "ReturnValue.Element", "value", "manual"] - ["java.util", "Optional", False, "ofNullable", "", "", "Argument[0]", "ReturnValue.Element", "value", "manual"] - - ["java.util", "Optional", False, "or", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] + - ["java.util", "Optional", False, "or", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] - ["java.util", "Optional", False, "or", "", "", "Argument[0].ReturnValue", "ReturnValue", "value", "manual"] - - ["java.util", "Optional", False, "orElse", "", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] + - ["java.util", "Optional", False, "orElse", "", "", "Argument[this].Element", "ReturnValue", "value", "manual"] - ["java.util", "Optional", False, "orElse", "", "", "Argument[0]", "ReturnValue", "value", "manual"] - - ["java.util", "Optional", False, "orElseGet", "", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] + - ["java.util", "Optional", False, "orElseGet", "", "", "Argument[this].Element", "ReturnValue", "value", "manual"] - ["java.util", "Optional", False, "orElseGet", "", "", "Argument[0].ReturnValue", "ReturnValue", "value", "manual"] - - ["java.util", "Optional", False, "orElseThrow", "", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] - - ["java.util", "Optional", False, "stream", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["java.util", "PriorityQueue", False, "PriorityQueue", "(Collection)", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["java.util", "PriorityQueue", False, "PriorityQueue", "(PriorityQueue)", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["java.util", "PriorityQueue", False, "PriorityQueue", "(SortedSet)", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["java.util", "Properties", True, "getProperty", "(String)", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] - - ["java.util", "Properties", True, "getProperty", "(String,String)", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] + - ["java.util", "Optional", False, "orElseThrow", "", "", "Argument[this].Element", "ReturnValue", "value", "manual"] + - ["java.util", "Optional", False, "stream", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["java.util", "PriorityQueue", False, "PriorityQueue", "(Collection)", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["java.util", "PriorityQueue", False, "PriorityQueue", "(PriorityQueue)", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["java.util", "PriorityQueue", False, "PriorityQueue", "(SortedSet)", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["java.util", "Properties", True, "getProperty", "(String)", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["java.util", "Properties", True, "getProperty", "(String,String)", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] - ["java.util", "Properties", True, "getProperty", "(String,String)", "", "Argument[1]", "ReturnValue", "value", "manual"] - - ["java.util", "Properties", True, "setProperty", "(String,String)", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] - - ["java.util", "Properties", True, "setProperty", "(String,String)", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["java.util", "Properties", True, "setProperty", "(String,String)", "", "Argument[1]", "Argument[-1].MapValue", "value", "manual"] - - ["java.util", "Queue", True, "element", "()", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] - - ["java.util", "Queue", True, "offer", "(Object)", "", "Argument[0]", "Argument[-1].Element", "value", "manual"] - - ["java.util", "Queue", True, "peek", "()", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] - - ["java.util", "Queue", True, "poll", "()", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] - - ["java.util", "Queue", True, "remove", "()", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] - - ["java.util", "Scanner", True, "Scanner", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["java.util", "Scanner", True, "findInLine", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["java.util", "Scanner", True, "findWithinHorizon", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["java.util", "Scanner", True, "next", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["java.util", "Scanner", True, "nextBigDecimal", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["java.util", "Scanner", True, "nextBigInteger", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["java.util", "Scanner", True, "nextBoolean", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["java.util", "Scanner", True, "nextByte", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["java.util", "Scanner", True, "nextDouble", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["java.util", "Scanner", True, "nextFloat", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["java.util", "Scanner", True, "nextInt", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["java.util", "Scanner", True, "nextLine", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["java.util", "Scanner", True, "nextLong", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["java.util", "Scanner", True, "nextShort", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["java.util", "Scanner", True, "reset", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["java.util", "Scanner", True, "skip", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["java.util", "Scanner", True, "useDelimiter", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["java.util", "Scanner", True, "useLocale", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["java.util", "Scanner", True, "useRadix", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] + - ["java.util", "Properties", True, "setProperty", "(String,String)", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["java.util", "Properties", True, "setProperty", "(String,String)", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["java.util", "Properties", True, "setProperty", "(String,String)", "", "Argument[1]", "Argument[this].MapValue", "value", "manual"] + - ["java.util", "Queue", True, "element", "()", "", "Argument[this].Element", "ReturnValue", "value", "manual"] + - ["java.util", "Queue", True, "offer", "(Object)", "", "Argument[0]", "Argument[this].Element", "value", "manual"] + - ["java.util", "Queue", True, "peek", "()", "", "Argument[this].Element", "ReturnValue", "value", "manual"] + - ["java.util", "Queue", True, "poll", "()", "", "Argument[this].Element", "ReturnValue", "value", "manual"] + - ["java.util", "Queue", True, "remove", "()", "", "Argument[this].Element", "ReturnValue", "value", "manual"] + - ["java.util", "Scanner", True, "Scanner", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["java.util", "Scanner", True, "findInLine", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["java.util", "Scanner", True, "findWithinHorizon", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["java.util", "Scanner", True, "next", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["java.util", "Scanner", True, "nextBigDecimal", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["java.util", "Scanner", True, "nextBigInteger", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["java.util", "Scanner", True, "nextBoolean", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["java.util", "Scanner", True, "nextByte", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["java.util", "Scanner", True, "nextDouble", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["java.util", "Scanner", True, "nextFloat", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["java.util", "Scanner", True, "nextInt", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["java.util", "Scanner", True, "nextLine", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["java.util", "Scanner", True, "nextLong", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["java.util", "Scanner", True, "nextShort", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["java.util", "Scanner", True, "reset", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["java.util", "Scanner", True, "skip", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["java.util", "Scanner", True, "useDelimiter", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["java.util", "Scanner", True, "useLocale", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["java.util", "Scanner", True, "useRadix", "", "", "Argument[this]", "ReturnValue", "value", "manual"] - ["java.util", "Set", False, "copyOf", "(Collection)", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["java.util", "Set", False, "of", "(Object)", "", "Argument[0]", "ReturnValue.Element", "value", "manual"] - ["java.util", "Set", False, "of", "(Object,Object)", "", "Argument[0..1]", "ReturnValue.Element", "value", "manual"] @@ -321,42 +321,42 @@ extensions: - ["java.util", "Set", False, "of", "(Object,Object,Object,Object,Object,Object,Object,Object,Object)", "", "Argument[0..8]", "ReturnValue.Element", "value", "manual"] - ["java.util", "Set", False, "of", "(Object,Object,Object,Object,Object,Object,Object,Object,Object,Object)", "", "Argument[0..9]", "ReturnValue.Element", "value", "manual"] - ["java.util", "Set", False, "of", "(Object[])", "", "Argument[0].ArrayElement", "ReturnValue.Element", "value", "manual"] - - ["java.util", "SortedMap", True, "headMap", "(Object)", "", "Argument[-1].MapKey", "ReturnValue.MapKey", "value", "manual"] - - ["java.util", "SortedMap", True, "headMap", "(Object)", "", "Argument[-1].MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["java.util", "SortedMap", True, "subMap", "(Object,Object)", "", "Argument[-1].MapKey", "ReturnValue.MapKey", "value", "manual"] - - ["java.util", "SortedMap", True, "subMap", "(Object,Object)", "", "Argument[-1].MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["java.util", "SortedMap", True, "tailMap", "(Object)", "", "Argument[-1].MapKey", "ReturnValue.MapKey", "value", "manual"] - - ["java.util", "SortedMap", True, "tailMap", "(Object)", "", "Argument[-1].MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["java.util", "SortedSet", True, "first", "()", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] - - ["java.util", "SortedSet", True, "headSet", "(Object)", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["java.util", "SortedSet", True, "last", "()", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] - - ["java.util", "SortedSet", True, "subSet", "(Object,Object)", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["java.util", "SortedSet", True, "tailSet", "(Object)", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["java.util", "Stack", True, "peek", "()", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] - - ["java.util", "Stack", True, "pop", "()", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] - - ["java.util", "Stack", True, "push", "(Object)", "", "Argument[0]", "Argument[-1].Element", "value", "manual"] - - ["java.util", "StringJoiner", False, "add", "(CharSequence)", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["java.util", "SortedMap", True, "headMap", "(Object)", "", "Argument[this].MapKey", "ReturnValue.MapKey", "value", "manual"] + - ["java.util", "SortedMap", True, "headMap", "(Object)", "", "Argument[this].MapValue", "ReturnValue.MapValue", "value", "manual"] + - ["java.util", "SortedMap", True, "subMap", "(Object,Object)", "", "Argument[this].MapKey", "ReturnValue.MapKey", "value", "manual"] + - ["java.util", "SortedMap", True, "subMap", "(Object,Object)", "", "Argument[this].MapValue", "ReturnValue.MapValue", "value", "manual"] + - ["java.util", "SortedMap", True, "tailMap", "(Object)", "", "Argument[this].MapKey", "ReturnValue.MapKey", "value", "manual"] + - ["java.util", "SortedMap", True, "tailMap", "(Object)", "", "Argument[this].MapValue", "ReturnValue.MapValue", "value", "manual"] + - ["java.util", "SortedSet", True, "first", "()", "", "Argument[this].Element", "ReturnValue", "value", "manual"] + - ["java.util", "SortedSet", True, "headSet", "(Object)", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["java.util", "SortedSet", True, "last", "()", "", "Argument[this].Element", "ReturnValue", "value", "manual"] + - ["java.util", "SortedSet", True, "subSet", "(Object,Object)", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["java.util", "SortedSet", True, "tailSet", "(Object)", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["java.util", "Stack", True, "peek", "()", "", "Argument[this].Element", "ReturnValue", "value", "manual"] + - ["java.util", "Stack", True, "pop", "()", "", "Argument[this].Element", "ReturnValue", "value", "manual"] + - ["java.util", "Stack", True, "push", "(Object)", "", "Argument[0]", "Argument[this].Element", "value", "manual"] + - ["java.util", "StringJoiner", False, "add", "(CharSequence)", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["java.util", "StringJoiner", False, "add", "(CharSequence)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["java.util", "StringTokenizer", False, "StringTokenizer", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["java.util", "StringTokenizer", False, "nextElement", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["java.util", "StringTokenizer", False, "nextToken", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["java.util", "TreeMap", False, "TreeMap", "(Map)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["java.util", "TreeMap", False, "TreeMap", "(Map)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["java.util", "TreeMap", False, "TreeMap", "(SortedMap)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["java.util", "TreeMap", False, "TreeMap", "(SortedMap)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["java.util", "TreeSet", False, "TreeSet", "(Collection)", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["java.util", "TreeSet", False, "TreeSet", "(SortedSet)", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["java.util", "Vector", False, "Vector", "(Collection)", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["java.util", "Vector", True, "addElement", "(Object)", "", "Argument[0]", "Argument[-1].Element", "value", "manual"] - - ["java.util", "Vector", True, "copyInto", "(Object[])", "", "Argument[-1].Element", "Argument[0].ArrayElement", "value", "manual"] - - ["java.util", "Vector", True, "elementAt", "(int)", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] - - ["java.util", "Vector", True, "elements", "()", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["java.util", "Vector", True, "firstElement", "()", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] - - ["java.util", "Vector", True, "insertElementAt", "(Object,int)", "", "Argument[0]", "Argument[-1].Element", "value", "manual"] - - ["java.util", "Vector", True, "lastElement", "()", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] - - ["java.util", "Vector", True, "setElementAt", "(Object,int)", "", "Argument[0]", "Argument[-1].Element", "value", "manual"] - - ["java.util", "WeakHashMap", False, "WeakHashMap", "(Map)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["java.util", "WeakHashMap", False, "WeakHashMap", "(Map)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] + - ["java.util", "StringTokenizer", False, "StringTokenizer", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["java.util", "StringTokenizer", False, "nextElement", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["java.util", "StringTokenizer", False, "nextToken", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["java.util", "TreeMap", False, "TreeMap", "(Map)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["java.util", "TreeMap", False, "TreeMap", "(Map)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["java.util", "TreeMap", False, "TreeMap", "(SortedMap)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["java.util", "TreeMap", False, "TreeMap", "(SortedMap)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["java.util", "TreeSet", False, "TreeSet", "(Collection)", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["java.util", "TreeSet", False, "TreeSet", "(SortedSet)", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["java.util", "Vector", False, "Vector", "(Collection)", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["java.util", "Vector", True, "addElement", "(Object)", "", "Argument[0]", "Argument[this].Element", "value", "manual"] + - ["java.util", "Vector", True, "copyInto", "(Object[])", "", "Argument[this].Element", "Argument[0].ArrayElement", "value", "manual"] + - ["java.util", "Vector", True, "elementAt", "(int)", "", "Argument[this].Element", "ReturnValue", "value", "manual"] + - ["java.util", "Vector", True, "elements", "()", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["java.util", "Vector", True, "firstElement", "()", "", "Argument[this].Element", "ReturnValue", "value", "manual"] + - ["java.util", "Vector", True, "insertElementAt", "(Object,int)", "", "Argument[0]", "Argument[this].Element", "value", "manual"] + - ["java.util", "Vector", True, "lastElement", "()", "", "Argument[this].Element", "ReturnValue", "value", "manual"] + - ["java.util", "Vector", True, "setElementAt", "(Object,int)", "", "Argument[0]", "Argument[this].Element", "value", "manual"] + - ["java.util", "WeakHashMap", False, "WeakHashMap", "(Map)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["java.util", "WeakHashMap", False, "WeakHashMap", "(Map)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] - addsTo: pack: codeql/java-all @@ -388,7 +388,7 @@ extensions: - ["java.util", "UUID", "toString", "()", "manual"] # The below APIs are currently being stored as neutral models since `WithoutElement` has not yet been implemented for Java. - # When `WithoutElement` is implemented, these should be changed to summary models of the form `Argument[-1].WithoutElement -> Argument[-1]`. + # When `WithoutElement` is implemented, these should be changed to summary models of the form `Argument[this].WithoutElement -> Argument[this]`. - ["java.util", "List", "clear", "()", "manual"] - ["java.util", "Map", "clear", "()", "manual"] diff --git a/java/ql/lib/ext/java.util.regex.model.yml b/java/ql/lib/ext/java.util.regex.model.yml index 79f50e55e9d..d002fd93419 100644 --- a/java/ql/lib/ext/java.util.regex.model.yml +++ b/java/ql/lib/ext/java.util.regex.model.yml @@ -3,23 +3,23 @@ extensions: pack: codeql/java-all extensible: sinkModel data: - - ["java.util.regex", "Matcher", False, "matches", "()", "", "Argument[-1]", "regex-use[f]", "manual"] - - ["java.util.regex", "Pattern", False, "asMatchPredicate", "()", "", "Argument[-1]", "regex-use[f]", "manual"] + - ["java.util.regex", "Matcher", False, "matches", "()", "", "Argument[this]", "regex-use[f]", "manual"] + - ["java.util.regex", "Pattern", False, "asMatchPredicate", "()", "", "Argument[this]", "regex-use[f]", "manual"] - ["java.util.regex", "Pattern", False, "compile", "(String)", "", "Argument[0]", "regex-use[]", "manual"] - ["java.util.regex", "Pattern", False, "compile", "(String,int)", "", "Argument[0]", "regex-use[]", "manual"] - - ["java.util.regex", "Pattern", False, "matcher", "(CharSequence)", "", "Argument[-1]", "regex-use[0]", "manual"] + - ["java.util.regex", "Pattern", False, "matcher", "(CharSequence)", "", "Argument[this]", "regex-use[0]", "manual"] - ["java.util.regex", "Pattern", False, "matches", "(String,CharSequence)", "", "Argument[0]", "regex-use[f1]", "manual"] - - ["java.util.regex", "Pattern", False, "split", "(CharSequence)", "", "Argument[-1]", "regex-use[0]", "manual"] - - ["java.util.regex", "Pattern", False, "split", "(CharSequence,int)", "", "Argument[-1]", "regex-use[0]", "manual"] - - ["java.util.regex", "Pattern", False, "splitAsStream", "(CharSequence)", "", "Argument[-1]", "regex-use[0]", "manual"] + - ["java.util.regex", "Pattern", False, "split", "(CharSequence)", "", "Argument[this]", "regex-use[0]", "manual"] + - ["java.util.regex", "Pattern", False, "split", "(CharSequence,int)", "", "Argument[this]", "regex-use[0]", "manual"] + - ["java.util.regex", "Pattern", False, "splitAsStream", "(CharSequence)", "", "Argument[this]", "regex-use[0]", "manual"] - addsTo: pack: codeql/java-all extensible: summaryModel data: - - ["java.util.regex", "Matcher", False, "group", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["java.util.regex", "Matcher", False, "replaceAll", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["java.util.regex", "Matcher", False, "group", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["java.util.regex", "Matcher", False, "replaceAll", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["java.util.regex", "Matcher", False, "replaceAll", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["java.util.regex", "Matcher", False, "replaceFirst", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["java.util.regex", "Matcher", False, "replaceFirst", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["java.util.regex", "Matcher", False, "replaceFirst", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["java.util.regex", "Pattern", False, "matcher", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["java.util.regex", "Pattern", False, "quote", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] diff --git a/java/ql/lib/ext/java.util.stream.model.yml b/java/ql/lib/ext/java.util.stream.model.yml index b44c3391075..1fafd506185 100644 --- a/java/ql/lib/ext/java.util.stream.model.yml +++ b/java/ql/lib/ext/java.util.stream.model.yml @@ -3,35 +3,35 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["java.util.stream", "BaseStream", True, "iterator", "()", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["java.util.stream", "BaseStream", True, "onClose", "(Runnable)", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["java.util.stream", "BaseStream", True, "parallel", "()", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["java.util.stream", "BaseStream", True, "sequential", "()", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["java.util.stream", "BaseStream", True, "spliterator", "()", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["java.util.stream", "BaseStream", True, "unordered", "()", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["java.util.stream", "Stream", True, "allMatch", "(Predicate)", "", "Argument[-1].Element", "Argument[0].Parameter[0]", "value", "manual"] - - ["java.util.stream", "Stream", True, "anyMatch", "(Predicate)", "", "Argument[-1].Element", "Argument[0].Parameter[0]", "value", "manual"] - - ["java.util.stream", "Stream", True, "collect", "(Supplier,BiConsumer,BiConsumer)", "", "Argument[-1].Element", "Argument[1].Parameter[1]", "value", "manual"] + - ["java.util.stream", "BaseStream", True, "iterator", "()", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["java.util.stream", "BaseStream", True, "onClose", "(Runnable)", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["java.util.stream", "BaseStream", True, "parallel", "()", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["java.util.stream", "BaseStream", True, "sequential", "()", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["java.util.stream", "BaseStream", True, "spliterator", "()", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["java.util.stream", "BaseStream", True, "unordered", "()", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["java.util.stream", "Stream", True, "allMatch", "(Predicate)", "", "Argument[this].Element", "Argument[0].Parameter[0]", "value", "manual"] + - ["java.util.stream", "Stream", True, "anyMatch", "(Predicate)", "", "Argument[this].Element", "Argument[0].Parameter[0]", "value", "manual"] + - ["java.util.stream", "Stream", True, "collect", "(Supplier,BiConsumer,BiConsumer)", "", "Argument[this].Element", "Argument[1].Parameter[1]", "value", "manual"] - ["java.util.stream", "Stream", True, "collect", "(Supplier,BiConsumer,BiConsumer)", "", "Argument[0].ReturnValue", "Argument[1].Parameter[0]", "value", "manual"] - ["java.util.stream", "Stream", True, "collect", "(Supplier,BiConsumer,BiConsumer)", "", "Argument[1].Parameter[0]", "Argument[2].Parameter[0..1]", "value", "manual"] - ["java.util.stream", "Stream", True, "collect", "(Supplier,BiConsumer,BiConsumer)", "", "Argument[1].Parameter[0]", "ReturnValue", "value", "manual"] - ["java.util.stream", "Stream", True, "collect", "(Supplier,BiConsumer,BiConsumer)", "", "Argument[2].Parameter[0..1]", "Argument[1].Parameter[0]", "value", "manual"] # collect(Collector<T,A,R> collector) is handled separately on a case-by-case basis as it is too complex for MaD - ["java.util.stream", "Stream", True, "concat", "(Stream,Stream)", "", "Argument[0..1].Element", "ReturnValue.Element", "value", "manual"] - - ["java.util.stream", "Stream", True, "distinct", "()", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["java.util.stream", "Stream", True, "dropWhile", "(Predicate)", "", "Argument[-1].Element", "Argument[0].Parameter[0]", "value", "manual"] - - ["java.util.stream", "Stream", True, "dropWhile", "(Predicate)", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["java.util.stream", "Stream", True, "filter", "(Predicate)", "", "Argument[-1].Element", "Argument[0].Parameter[0]", "value", "manual"] - - ["java.util.stream", "Stream", True, "filter", "(Predicate)", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["java.util.stream", "Stream", True, "findAny", "()", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["java.util.stream", "Stream", True, "findFirst", "()", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["java.util.stream", "Stream", True, "flatMap", "(Function)", "", "Argument[-1].Element", "Argument[0].Parameter[0]", "value", "manual"] + - ["java.util.stream", "Stream", True, "distinct", "()", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["java.util.stream", "Stream", True, "dropWhile", "(Predicate)", "", "Argument[this].Element", "Argument[0].Parameter[0]", "value", "manual"] + - ["java.util.stream", "Stream", True, "dropWhile", "(Predicate)", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["java.util.stream", "Stream", True, "filter", "(Predicate)", "", "Argument[this].Element", "Argument[0].Parameter[0]", "value", "manual"] + - ["java.util.stream", "Stream", True, "filter", "(Predicate)", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["java.util.stream", "Stream", True, "findAny", "()", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["java.util.stream", "Stream", True, "findFirst", "()", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["java.util.stream", "Stream", True, "flatMap", "(Function)", "", "Argument[this].Element", "Argument[0].Parameter[0]", "value", "manual"] - ["java.util.stream", "Stream", True, "flatMap", "(Function)", "", "Argument[0].ReturnValue.Element", "ReturnValue.Element", "value", "manual"] - - ["java.util.stream", "Stream", True, "flatMapToDouble", "(Function)", "", "Argument[-1].Element", "Argument[0].Parameter[0]", "value", "manual"] - - ["java.util.stream", "Stream", True, "flatMapToInt", "(Function)", "", "Argument[-1].Element", "Argument[0].Parameter[0]", "value", "manual"] - - ["java.util.stream", "Stream", True, "flatMapToLong", "(Function)", "", "Argument[-1].Element", "Argument[0].Parameter[0]", "value", "manual"] - - ["java.util.stream", "Stream", True, "forEach", "(Consumer)", "", "Argument[-1].Element", "Argument[0].Parameter[0]", "value", "manual"] - - ["java.util.stream", "Stream", True, "forEachOrdered", "(Consumer)", "", "Argument[-1].Element", "Argument[0].Parameter[0]", "value", "manual"] + - ["java.util.stream", "Stream", True, "flatMapToDouble", "(Function)", "", "Argument[this].Element", "Argument[0].Parameter[0]", "value", "manual"] + - ["java.util.stream", "Stream", True, "flatMapToInt", "(Function)", "", "Argument[this].Element", "Argument[0].Parameter[0]", "value", "manual"] + - ["java.util.stream", "Stream", True, "flatMapToLong", "(Function)", "", "Argument[this].Element", "Argument[0].Parameter[0]", "value", "manual"] + - ["java.util.stream", "Stream", True, "forEach", "(Consumer)", "", "Argument[this].Element", "Argument[0].Parameter[0]", "value", "manual"] + - ["java.util.stream", "Stream", True, "forEachOrdered", "(Consumer)", "", "Argument[this].Element", "Argument[0].Parameter[0]", "value", "manual"] - ["java.util.stream", "Stream", True, "generate", "(Supplier)", "", "Argument[0].ReturnValue", "ReturnValue.Element", "value", "manual"] - ["java.util.stream", "Stream", True, "iterate", "(Object,Predicate,UnaryOperator)", "", "Argument[0]", "Argument[1..2].Parameter[0]", "value", "manual"] - ["java.util.stream", "Stream", True, "iterate", "(Object,Predicate,UnaryOperator)", "", "Argument[0]", "ReturnValue.Element", "value", "manual"] @@ -41,52 +41,52 @@ extensions: - ["java.util.stream", "Stream", True, "iterate", "(Object,UnaryOperator)", "", "Argument[0]", "ReturnValue.Element", "value", "manual"] - ["java.util.stream", "Stream", True, "iterate", "(Object,UnaryOperator)", "", "Argument[1].ReturnValue", "Argument[1].Parameter[0]", "value", "manual"] - ["java.util.stream", "Stream", True, "iterate", "(Object,UnaryOperator)", "", "Argument[1].ReturnValue", "ReturnValue.Element", "value", "manual"] - - ["java.util.stream", "Stream", True, "limit", "(long)", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["java.util.stream", "Stream", True, "map", "(Function)", "", "Argument[-1].Element", "Argument[0].Parameter[0]", "value", "manual"] + - ["java.util.stream", "Stream", True, "limit", "(long)", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["java.util.stream", "Stream", True, "map", "(Function)", "", "Argument[this].Element", "Argument[0].Parameter[0]", "value", "manual"] - ["java.util.stream", "Stream", True, "map", "(Function)", "", "Argument[0].ReturnValue", "ReturnValue.Element", "value", "manual"] # Missing for mapMulti(BiConsumer) (not currently supported): # Argument[0] of Parameter[1] of Argument[0] -> Element of Parameter[1] of Argument[0] # Element of Parameter[1] of Argument[0] -> Element of ReturnValue - - ["java.util.stream", "Stream", True, "mapMulti", "(BiConsumer)", "", "Argument[-1].Element", "Argument[0].Parameter[0]", "value", "manual"] - - ["java.util.stream", "Stream", True, "mapMultiToDouble", "(BiConsumer)", "", "Argument[-1].Element", "Argument[0].Parameter[0]", "value", "manual"] - - ["java.util.stream", "Stream", True, "mapMultiToInt", "(BiConsumer)", "", "Argument[-1].Element", "Argument[0].Parameter[0]", "value", "manual"] - - ["java.util.stream", "Stream", True, "mapMultiToLong", "(BiConsumer)", "", "Argument[-1].Element", "Argument[0].Parameter[0]", "value", "manual"] - - ["java.util.stream", "Stream", True, "mapToDouble", "(ToDoubleFunction)", "", "Argument[-1].Element", "Argument[0].Parameter[0]", "value", "manual"] - - ["java.util.stream", "Stream", True, "mapToInt", "(ToIntFunction)", "", "Argument[-1].Element", "Argument[0].Parameter[0]", "value", "manual"] - - ["java.util.stream", "Stream", True, "mapToLong", "(ToLongFunction)", "", "Argument[-1].Element", "Argument[0].Parameter[0]", "value", "manual"] - - ["java.util.stream", "Stream", True, "max", "(Comparator)", "", "Argument[-1].Element", "Argument[0].Parameter[0..1]", "value", "manual"] - - ["java.util.stream", "Stream", True, "max", "(Comparator)", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["java.util.stream", "Stream", True, "min", "(Comparator)", "", "Argument[-1].Element", "Argument[0].Parameter[0..1]", "value", "manual"] - - ["java.util.stream", "Stream", True, "min", "(Comparator)", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["java.util.stream", "Stream", True, "noneMatch", "(Predicate)", "", "Argument[-1].Element", "Argument[0].Parameter[0]", "value", "manual"] + - ["java.util.stream", "Stream", True, "mapMulti", "(BiConsumer)", "", "Argument[this].Element", "Argument[0].Parameter[0]", "value", "manual"] + - ["java.util.stream", "Stream", True, "mapMultiToDouble", "(BiConsumer)", "", "Argument[this].Element", "Argument[0].Parameter[0]", "value", "manual"] + - ["java.util.stream", "Stream", True, "mapMultiToInt", "(BiConsumer)", "", "Argument[this].Element", "Argument[0].Parameter[0]", "value", "manual"] + - ["java.util.stream", "Stream", True, "mapMultiToLong", "(BiConsumer)", "", "Argument[this].Element", "Argument[0].Parameter[0]", "value", "manual"] + - ["java.util.stream", "Stream", True, "mapToDouble", "(ToDoubleFunction)", "", "Argument[this].Element", "Argument[0].Parameter[0]", "value", "manual"] + - ["java.util.stream", "Stream", True, "mapToInt", "(ToIntFunction)", "", "Argument[this].Element", "Argument[0].Parameter[0]", "value", "manual"] + - ["java.util.stream", "Stream", True, "mapToLong", "(ToLongFunction)", "", "Argument[this].Element", "Argument[0].Parameter[0]", "value", "manual"] + - ["java.util.stream", "Stream", True, "max", "(Comparator)", "", "Argument[this].Element", "Argument[0].Parameter[0..1]", "value", "manual"] + - ["java.util.stream", "Stream", True, "max", "(Comparator)", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["java.util.stream", "Stream", True, "min", "(Comparator)", "", "Argument[this].Element", "Argument[0].Parameter[0..1]", "value", "manual"] + - ["java.util.stream", "Stream", True, "min", "(Comparator)", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["java.util.stream", "Stream", True, "noneMatch", "(Predicate)", "", "Argument[this].Element", "Argument[0].Parameter[0]", "value", "manual"] - ["java.util.stream", "Stream", True, "of", "(Object)", "", "Argument[0]", "ReturnValue.Element", "value", "manual"] - ["java.util.stream", "Stream", True, "of", "(Object[])", "", "Argument[0].ArrayElement", "ReturnValue.Element", "value", "manual"] - ["java.util.stream", "Stream", True, "ofNullable", "(Object)", "", "Argument[0]", "ReturnValue.Element", "value", "manual"] - - ["java.util.stream", "Stream", True, "peek", "(Consumer)", "", "Argument[-1].Element", "Argument[0].Parameter[0]", "value", "manual"] - - ["java.util.stream", "Stream", True, "peek", "(Consumer)", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["java.util.stream", "Stream", True, "reduce", "(BinaryOperator)", "", "Argument[-1].Element", "Argument[0].Parameter[0..1]", "value", "manual"] - - ["java.util.stream", "Stream", True, "reduce", "(BinaryOperator)", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] + - ["java.util.stream", "Stream", True, "peek", "(Consumer)", "", "Argument[this].Element", "Argument[0].Parameter[0]", "value", "manual"] + - ["java.util.stream", "Stream", True, "peek", "(Consumer)", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["java.util.stream", "Stream", True, "reduce", "(BinaryOperator)", "", "Argument[this].Element", "Argument[0].Parameter[0..1]", "value", "manual"] + - ["java.util.stream", "Stream", True, "reduce", "(BinaryOperator)", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] - ["java.util.stream", "Stream", True, "reduce", "(BinaryOperator)", "", "Argument[0].ReturnValue", "Argument[0].Parameter[0..1]", "value", "manual"] - ["java.util.stream", "Stream", True, "reduce", "(BinaryOperator)", "", "Argument[0].ReturnValue", "ReturnValue.Element", "value", "manual"] - - ["java.util.stream", "Stream", True, "reduce", "(Object,BiFunction,BinaryOperator)", "", "Argument[-1].Element", "Argument[1].Parameter[1]", "value", "manual"] + - ["java.util.stream", "Stream", True, "reduce", "(Object,BiFunction,BinaryOperator)", "", "Argument[this].Element", "Argument[1].Parameter[1]", "value", "manual"] - ["java.util.stream", "Stream", True, "reduce", "(Object,BiFunction,BinaryOperator)", "", "Argument[0]", "Argument[1].Parameter[0]", "value", "manual"] - ["java.util.stream", "Stream", True, "reduce", "(Object,BiFunction,BinaryOperator)", "", "Argument[0]", "Argument[2].Parameter[0..1]", "value", "manual"] - ["java.util.stream", "Stream", True, "reduce", "(Object,BiFunction,BinaryOperator)", "", "Argument[0]", "ReturnValue", "value", "manual"] - ["java.util.stream", "Stream", True, "reduce", "(Object,BiFunction,BinaryOperator)", "", "Argument[1..2].ReturnValue", "Argument[1].Parameter[0]", "value", "manual"] - ["java.util.stream", "Stream", True, "reduce", "(Object,BiFunction,BinaryOperator)", "", "Argument[1..2].ReturnValue", "Argument[2].Parameter[0..1]", "value", "manual"] - ["java.util.stream", "Stream", True, "reduce", "(Object,BiFunction,BinaryOperator)", "", "Argument[1..2].ReturnValue", "ReturnValue", "value", "manual"] - - ["java.util.stream", "Stream", True, "reduce", "(Object,BinaryOperator)", "", "Argument[-1].Element", "Argument[1].Parameter[0..1]", "value", "manual"] + - ["java.util.stream", "Stream", True, "reduce", "(Object,BinaryOperator)", "", "Argument[this].Element", "Argument[1].Parameter[0..1]", "value", "manual"] - ["java.util.stream", "Stream", True, "reduce", "(Object,BinaryOperator)", "", "Argument[0]", "Argument[1].Parameter[0..1]", "value", "manual"] - ["java.util.stream", "Stream", True, "reduce", "(Object,BinaryOperator)", "", "Argument[0]", "ReturnValue", "value", "manual"] - ["java.util.stream", "Stream", True, "reduce", "(Object,BinaryOperator)", "", "Argument[1].ReturnValue", "Argument[1].Parameter[0..1]", "value", "manual"] - ["java.util.stream", "Stream", True, "reduce", "(Object,BinaryOperator)", "", "Argument[1].ReturnValue", "ReturnValue", "value", "manual"] - - ["java.util.stream", "Stream", True, "skip", "(long)", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["java.util.stream", "Stream", True, "sorted", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["java.util.stream", "Stream", True, "sorted", "(Comparator)", "", "Argument[-1].Element", "Argument[0].Parameter[0..1]", "value", "manual"] - - ["java.util.stream", "Stream", True, "takeWhile", "(Predicate)", "", "Argument[-1].Element", "Argument[0].Parameter[0]", "value", "manual"] - - ["java.util.stream", "Stream", True, "takeWhile", "(Predicate)", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["java.util.stream", "Stream", True, "toArray", "", "", "Argument[-1].Element", "ReturnValue.ArrayElement", "value", "manual"] - - ["java.util.stream", "Stream", True, "toList", "()", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] + - ["java.util.stream", "Stream", True, "skip", "(long)", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["java.util.stream", "Stream", True, "sorted", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["java.util.stream", "Stream", True, "sorted", "(Comparator)", "", "Argument[this].Element", "Argument[0].Parameter[0..1]", "value", "manual"] + - ["java.util.stream", "Stream", True, "takeWhile", "(Predicate)", "", "Argument[this].Element", "Argument[0].Parameter[0]", "value", "manual"] + - ["java.util.stream", "Stream", True, "takeWhile", "(Predicate)", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["java.util.stream", "Stream", True, "toArray", "", "", "Argument[this].Element", "ReturnValue.ArrayElement", "value", "manual"] + - ["java.util.stream", "Stream", True, "toList", "()", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] - addsTo: pack: codeql/java-all diff --git a/java/ql/lib/ext/java.util.zip.model.yml b/java/ql/lib/ext/java.util.zip.model.yml index fd9c0173016..8e741f98c24 100644 --- a/java/ql/lib/ext/java.util.zip.model.yml +++ b/java/ql/lib/ext/java.util.zip.model.yml @@ -3,5 +3,5 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["java.util.zip", "GZIPInputStream", False, "GZIPInputStream", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["java.util.zip", "ZipInputStream", False, "ZipInputStream", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] + - ["java.util.zip", "GZIPInputStream", False, "GZIPInputStream", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["java.util.zip", "ZipInputStream", False, "ZipInputStream", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] diff --git a/java/ql/lib/ext/javax.jms.model.yml b/java/ql/lib/ext/javax.jms.model.yml index fed2a255ebd..b408dc62532 100644 --- a/java/ql/lib/ext/javax.jms.model.yml +++ b/java/ql/lib/ext/javax.jms.model.yml @@ -21,60 +21,60 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["javax.jms", "BytesMessage", True, "readBoolean", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.jms", "BytesMessage", True, "readByte", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.jms", "BytesMessage", True, "readBytes", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"] - - ["javax.jms", "BytesMessage", True, "readChar", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.jms", "BytesMessage", True, "readDouble", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.jms", "BytesMessage", True, "readFloat", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.jms", "BytesMessage", True, "readInt", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.jms", "BytesMessage", True, "readLong", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.jms", "BytesMessage", True, "readShort", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.jms", "BytesMessage", True, "readUTF", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.jms", "BytesMessage", True, "readUnsignedByte", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.jms", "BytesMessage", True, "readUnsignedShort", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.jms", "MapMessage", True, "getBoolean", "(String)", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.jms", "MapMessage", True, "getByte", "(String)", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.jms", "MapMessage", True, "getBytes", "(String)", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.jms", "MapMessage", True, "getChar", "(String)", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.jms", "MapMessage", True, "getDouble", "(String)", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.jms", "MapMessage", True, "getFloat", "(String)", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.jms", "MapMessage", True, "getInt", "(String)", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.jms", "MapMessage", True, "getLong", "(String)", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.jms", "MapMessage", True, "getMapNames", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.jms", "MapMessage", True, "getObject", "(String)", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.jms", "MapMessage", True, "getShort", "(String)", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.jms", "MapMessage", True, "getString", "(String)", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.jms", "Message", True, "getBody", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.jms", "Message", True, "getBooleanProperty", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.jms", "Message", True, "getByteProperty", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.jms", "Message", True, "getDoubleProperty", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.jms", "Message", True, "getFloatProperty", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.jms", "Message", True, "getIntProperty", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.jms", "Message", True, "getJMSCorrelationID", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.jms", "Message", True, "getJMSCorrelationIDAsBytes", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.jms", "Message", True, "getJMSDestination", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.jms", "Message", True, "getJMSReplyTo", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.jms", "Message", True, "getJMSType", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.jms", "Message", True, "getLongProperty", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.jms", "Message", True, "getObjectProperty", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.jms", "Message", True, "getPropertyNames", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.jms", "Message", True, "getShortProperty", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.jms", "Message", True, "getStringProperty", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.jms", "ObjectMessage", True, "getObject", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.jms", "Queue", True, "getQueueName", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.jms", "Queue", True, "toString", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.jms", "StreamMessage", True, "readBoolean", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.jms", "StreamMessage", True, "readByte", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.jms", "StreamMessage", True, "readBytes", "(byte[])", "", "Argument[-1]", "Argument[0]", "taint", "manual"] - - ["javax.jms", "StreamMessage", True, "readChar", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.jms", "StreamMessage", True, "readDouble", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.jms", "StreamMessage", True, "readFloat", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.jms", "StreamMessage", True, "readInt", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.jms", "StreamMessage", True, "readLong", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.jms", "StreamMessage", True, "readObject", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.jms", "StreamMessage", True, "readShort", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.jms", "StreamMessage", True, "readString", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.jms", "TextMessage", True, "getText", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.jms", "Topic", True, "getTopicName", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.jms", "Topic", True, "toString", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["javax.jms", "BytesMessage", True, "readBoolean", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.jms", "BytesMessage", True, "readByte", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.jms", "BytesMessage", True, "readBytes", "", "", "Argument[this]", "Argument[0]", "taint", "manual"] + - ["javax.jms", "BytesMessage", True, "readChar", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.jms", "BytesMessage", True, "readDouble", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.jms", "BytesMessage", True, "readFloat", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.jms", "BytesMessage", True, "readInt", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.jms", "BytesMessage", True, "readLong", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.jms", "BytesMessage", True, "readShort", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.jms", "BytesMessage", True, "readUTF", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.jms", "BytesMessage", True, "readUnsignedByte", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.jms", "BytesMessage", True, "readUnsignedShort", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.jms", "MapMessage", True, "getBoolean", "(String)", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.jms", "MapMessage", True, "getByte", "(String)", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.jms", "MapMessage", True, "getBytes", "(String)", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.jms", "MapMessage", True, "getChar", "(String)", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.jms", "MapMessage", True, "getDouble", "(String)", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.jms", "MapMessage", True, "getFloat", "(String)", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.jms", "MapMessage", True, "getInt", "(String)", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.jms", "MapMessage", True, "getLong", "(String)", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.jms", "MapMessage", True, "getMapNames", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.jms", "MapMessage", True, "getObject", "(String)", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.jms", "MapMessage", True, "getShort", "(String)", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.jms", "MapMessage", True, "getString", "(String)", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.jms", "Message", True, "getBody", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.jms", "Message", True, "getBooleanProperty", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.jms", "Message", True, "getByteProperty", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.jms", "Message", True, "getDoubleProperty", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.jms", "Message", True, "getFloatProperty", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.jms", "Message", True, "getIntProperty", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.jms", "Message", True, "getJMSCorrelationID", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.jms", "Message", True, "getJMSCorrelationIDAsBytes", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.jms", "Message", True, "getJMSDestination", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.jms", "Message", True, "getJMSReplyTo", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.jms", "Message", True, "getJMSType", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.jms", "Message", True, "getLongProperty", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.jms", "Message", True, "getObjectProperty", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.jms", "Message", True, "getPropertyNames", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.jms", "Message", True, "getShortProperty", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.jms", "Message", True, "getStringProperty", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.jms", "ObjectMessage", True, "getObject", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.jms", "Queue", True, "getQueueName", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.jms", "Queue", True, "toString", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.jms", "StreamMessage", True, "readBoolean", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.jms", "StreamMessage", True, "readByte", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.jms", "StreamMessage", True, "readBytes", "(byte[])", "", "Argument[this]", "Argument[0]", "taint", "manual"] + - ["javax.jms", "StreamMessage", True, "readChar", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.jms", "StreamMessage", True, "readDouble", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.jms", "StreamMessage", True, "readFloat", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.jms", "StreamMessage", True, "readInt", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.jms", "StreamMessage", True, "readLong", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.jms", "StreamMessage", True, "readObject", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.jms", "StreamMessage", True, "readShort", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.jms", "StreamMessage", True, "readString", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.jms", "TextMessage", True, "getText", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.jms", "Topic", True, "getTopicName", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.jms", "Topic", True, "toString", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] diff --git a/java/ql/lib/ext/javax.json.model.yml b/java/ql/lib/ext/javax.json.model.yml index 47deffe31b9..6911ad7ecb6 100644 --- a/java/ql/lib/ext/javax.json.model.yml +++ b/java/ql/lib/ext/javax.json.model.yml @@ -19,109 +19,109 @@ extensions: - ["javax.json", "Json", False, "createWriter", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["javax.json", "Json", False, "decodePointer", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["javax.json", "Json", False, "encodePointer", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["javax.json", "JsonArray", False, "getBoolean", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["javax.json", "JsonArray", False, "getBoolean", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["javax.json", "JsonArray", False, "getBoolean", "", "", "Argument[1]", "ReturnValue", "value", "manual"] - - ["javax.json", "JsonArray", False, "getInt", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["javax.json", "JsonArray", False, "getInt", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["javax.json", "JsonArray", False, "getInt", "", "", "Argument[1]", "ReturnValue", "value", "manual"] - - ["javax.json", "JsonArray", False, "getJsonArray", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.json", "JsonArray", False, "getJsonNumber", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.json", "JsonArray", False, "getJsonObject", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.json", "JsonArray", False, "getJsonString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.json", "JsonArray", False, "getString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["javax.json", "JsonArray", False, "getJsonArray", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.json", "JsonArray", False, "getJsonNumber", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.json", "JsonArray", False, "getJsonObject", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.json", "JsonArray", False, "getJsonString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.json", "JsonArray", False, "getString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["javax.json", "JsonArray", False, "getString", "", "", "Argument[1]", "ReturnValue", "value", "manual"] - - ["javax.json", "JsonArray", False, "getValuesAs", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.json", "JsonArrayBuilder", False, "add", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["javax.json", "JsonArrayBuilder", False, "add", "(BigDecimal)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["javax.json", "JsonArrayBuilder", False, "add", "(BigInteger)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["javax.json", "JsonArrayBuilder", False, "add", "(JsonArrayBuilder)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["javax.json", "JsonArrayBuilder", False, "add", "(JsonObjectBuilder)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["javax.json", "JsonArrayBuilder", False, "add", "(JsonValue)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["javax.json", "JsonArrayBuilder", False, "add", "(String)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["javax.json", "JsonArrayBuilder", False, "add", "(boolean)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["javax.json", "JsonArrayBuilder", False, "add", "(double)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["javax.json", "JsonArrayBuilder", False, "add", "(int)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["javax.json", "JsonArrayBuilder", False, "add", "(int,BigDecimal)", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["javax.json", "JsonArrayBuilder", False, "add", "(int,BigInteger)", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["javax.json", "JsonArrayBuilder", False, "add", "(int,JsonArrayBuilder)", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["javax.json", "JsonArrayBuilder", False, "add", "(int,JsonObjectBuilder)", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["javax.json", "JsonArrayBuilder", False, "add", "(int,JsonValue)", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["javax.json", "JsonArrayBuilder", False, "add", "(int,String)", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["javax.json", "JsonArrayBuilder", False, "add", "(int,boolean)", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["javax.json", "JsonArrayBuilder", False, "add", "(int,double)", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["javax.json", "JsonArrayBuilder", False, "add", "(int,int)", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["javax.json", "JsonArrayBuilder", False, "add", "(int,long)", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["javax.json", "JsonArrayBuilder", False, "add", "(long)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["javax.json", "JsonArrayBuilder", False, "addAll", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["javax.json", "JsonArrayBuilder", False, "addAll", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["javax.json", "JsonArrayBuilder", False, "addNull", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["javax.json", "JsonArrayBuilder", False, "build", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.json", "JsonArrayBuilder", False, "remove", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["javax.json", "JsonArrayBuilder", False, "set", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["javax.json", "JsonArrayBuilder", False, "set", "", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["javax.json", "JsonArrayBuilder", False, "setNull", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["javax.json", "JsonMergePatch", False, "apply", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["javax.json", "JsonArray", False, "getValuesAs", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.json", "JsonArrayBuilder", False, "add", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["javax.json", "JsonArrayBuilder", False, "add", "(BigDecimal)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["javax.json", "JsonArrayBuilder", False, "add", "(BigInteger)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["javax.json", "JsonArrayBuilder", False, "add", "(JsonArrayBuilder)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["javax.json", "JsonArrayBuilder", False, "add", "(JsonObjectBuilder)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["javax.json", "JsonArrayBuilder", False, "add", "(JsonValue)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["javax.json", "JsonArrayBuilder", False, "add", "(String)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["javax.json", "JsonArrayBuilder", False, "add", "(boolean)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["javax.json", "JsonArrayBuilder", False, "add", "(double)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["javax.json", "JsonArrayBuilder", False, "add", "(int)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["javax.json", "JsonArrayBuilder", False, "add", "(int,BigDecimal)", "", "Argument[1]", "Argument[this]", "taint", "manual"] + - ["javax.json", "JsonArrayBuilder", False, "add", "(int,BigInteger)", "", "Argument[1]", "Argument[this]", "taint", "manual"] + - ["javax.json", "JsonArrayBuilder", False, "add", "(int,JsonArrayBuilder)", "", "Argument[1]", "Argument[this]", "taint", "manual"] + - ["javax.json", "JsonArrayBuilder", False, "add", "(int,JsonObjectBuilder)", "", "Argument[1]", "Argument[this]", "taint", "manual"] + - ["javax.json", "JsonArrayBuilder", False, "add", "(int,JsonValue)", "", "Argument[1]", "Argument[this]", "taint", "manual"] + - ["javax.json", "JsonArrayBuilder", False, "add", "(int,String)", "", "Argument[1]", "Argument[this]", "taint", "manual"] + - ["javax.json", "JsonArrayBuilder", False, "add", "(int,boolean)", "", "Argument[1]", "Argument[this]", "taint", "manual"] + - ["javax.json", "JsonArrayBuilder", False, "add", "(int,double)", "", "Argument[1]", "Argument[this]", "taint", "manual"] + - ["javax.json", "JsonArrayBuilder", False, "add", "(int,int)", "", "Argument[1]", "Argument[this]", "taint", "manual"] + - ["javax.json", "JsonArrayBuilder", False, "add", "(int,long)", "", "Argument[1]", "Argument[this]", "taint", "manual"] + - ["javax.json", "JsonArrayBuilder", False, "add", "(long)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["javax.json", "JsonArrayBuilder", False, "addAll", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["javax.json", "JsonArrayBuilder", False, "addAll", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["javax.json", "JsonArrayBuilder", False, "addNull", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["javax.json", "JsonArrayBuilder", False, "build", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.json", "JsonArrayBuilder", False, "remove", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["javax.json", "JsonArrayBuilder", False, "set", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["javax.json", "JsonArrayBuilder", False, "set", "", "", "Argument[1]", "Argument[this]", "taint", "manual"] + - ["javax.json", "JsonArrayBuilder", False, "setNull", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["javax.json", "JsonMergePatch", False, "apply", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["javax.json", "JsonMergePatch", False, "apply", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["javax.json", "JsonMergePatch", False, "toJsonValue", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.json", "JsonNumber", False, "bigDecimalValue", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.json", "JsonNumber", False, "bigIntegerValue", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.json", "JsonNumber", False, "bigIntegerValueExact", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.json", "JsonNumber", False, "doubleValue", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.json", "JsonNumber", False, "intValue", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.json", "JsonNumber", False, "intValueExact", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.json", "JsonNumber", False, "longValue", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.json", "JsonNumber", False, "longValueExact", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.json", "JsonNumber", False, "numberValue", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.json", "JsonObject", False, "getBoolean", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["javax.json", "JsonMergePatch", False, "toJsonValue", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.json", "JsonNumber", False, "bigDecimalValue", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.json", "JsonNumber", False, "bigIntegerValue", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.json", "JsonNumber", False, "bigIntegerValueExact", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.json", "JsonNumber", False, "doubleValue", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.json", "JsonNumber", False, "intValue", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.json", "JsonNumber", False, "intValueExact", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.json", "JsonNumber", False, "longValue", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.json", "JsonNumber", False, "longValueExact", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.json", "JsonNumber", False, "numberValue", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.json", "JsonObject", False, "getBoolean", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["javax.json", "JsonObject", False, "getBoolean", "", "", "Argument[1]", "ReturnValue", "value", "manual"] - - ["javax.json", "JsonObject", False, "getInt", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["javax.json", "JsonObject", False, "getInt", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["javax.json", "JsonObject", False, "getInt", "", "", "Argument[1]", "ReturnValue", "value", "manual"] - - ["javax.json", "JsonObject", False, "getJsonArray", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.json", "JsonObject", False, "getJsonNumber", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.json", "JsonObject", False, "getJsonObject", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.json", "JsonObject", False, "getJsonString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.json", "JsonObject", False, "getString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["javax.json", "JsonObject", False, "getJsonArray", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.json", "JsonObject", False, "getJsonNumber", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.json", "JsonObject", False, "getJsonObject", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.json", "JsonObject", False, "getJsonString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.json", "JsonObject", False, "getString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["javax.json", "JsonObject", False, "getString", "", "", "Argument[1]", "ReturnValue", "value", "manual"] - - ["javax.json", "JsonObjectBuilder", False, "add", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["javax.json", "JsonObjectBuilder", False, "add", "", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["javax.json", "JsonObjectBuilder", False, "addAll", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] + - ["javax.json", "JsonObjectBuilder", False, "add", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["javax.json", "JsonObjectBuilder", False, "add", "", "", "Argument[1]", "Argument[this]", "taint", "manual"] + - ["javax.json", "JsonObjectBuilder", False, "addAll", "", "", "Argument[this]", "ReturnValue", "value", "manual"] - ["javax.json", "JsonObjectBuilder", False, "addAll", "", "", "Argument[0]", "ReturnValue", "value", "manual"] - - ["javax.json", "JsonObjectBuilder", False, "addNull", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["javax.json", "JsonObjectBuilder", False, "build", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.json", "JsonObjectBuilder", False, "remove", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["javax.json", "JsonPatch", False, "apply", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["javax.json", "JsonObjectBuilder", False, "addNull", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["javax.json", "JsonObjectBuilder", False, "build", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.json", "JsonObjectBuilder", False, "remove", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["javax.json", "JsonPatch", False, "apply", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["javax.json", "JsonPatch", False, "apply", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["javax.json", "JsonPatch", False, "toJsonArray", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.json", "JsonPatchBuilder", False, "add", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] + - ["javax.json", "JsonPatch", False, "toJsonArray", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.json", "JsonPatchBuilder", False, "add", "", "", "Argument[this]", "ReturnValue", "value", "manual"] - ["javax.json", "JsonPatchBuilder", False, "add", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["javax.json", "JsonPatchBuilder", False, "build", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.json", "JsonPatchBuilder", False, "copy", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] + - ["javax.json", "JsonPatchBuilder", False, "build", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.json", "JsonPatchBuilder", False, "copy", "", "", "Argument[this]", "ReturnValue", "value", "manual"] - ["javax.json", "JsonPatchBuilder", False, "copy", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["javax.json", "JsonPatchBuilder", False, "move", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] + - ["javax.json", "JsonPatchBuilder", False, "move", "", "", "Argument[this]", "ReturnValue", "value", "manual"] - ["javax.json", "JsonPatchBuilder", False, "move", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["javax.json", "JsonPatchBuilder", False, "remove", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] + - ["javax.json", "JsonPatchBuilder", False, "remove", "", "", "Argument[this]", "ReturnValue", "value", "manual"] - ["javax.json", "JsonPatchBuilder", False, "remove", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["javax.json", "JsonPatchBuilder", False, "replace", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] + - ["javax.json", "JsonPatchBuilder", False, "replace", "", "", "Argument[this]", "ReturnValue", "value", "manual"] - ["javax.json", "JsonPatchBuilder", False, "replace", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["javax.json", "JsonPatchBuilder", False, "test", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] + - ["javax.json", "JsonPatchBuilder", False, "test", "", "", "Argument[this]", "ReturnValue", "value", "manual"] - ["javax.json", "JsonPatchBuilder", False, "test", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["javax.json", "JsonPointer", False, "add", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["javax.json", "JsonPointer", False, "add", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["javax.json", "JsonPointer", False, "add", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - ["javax.json", "JsonPointer", False, "getValue", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["javax.json", "JsonPointer", False, "remove", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["javax.json", "JsonPointer", False, "replace", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["javax.json", "JsonPointer", False, "toString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.json", "JsonReader", False, "read", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.json", "JsonReader", False, "readArray", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.json", "JsonReader", False, "readObject", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.json", "JsonReader", False, "readValue", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["javax.json", "JsonPointer", False, "toString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.json", "JsonReader", False, "read", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.json", "JsonReader", False, "readArray", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.json", "JsonReader", False, "readObject", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.json", "JsonReader", False, "readValue", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["javax.json", "JsonReaderFactory", False, "createReader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["javax.json", "JsonString", False, "getChars", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.json", "JsonString", False, "getString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.json", "JsonStructure", True, "getValue", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.json", "JsonValue", True, "asJsonArray", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.json", "JsonValue", True, "asJsonObject", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.json", "JsonValue", True, "toString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.json", "JsonWriter", False, "write", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["javax.json", "JsonWriter", False, "writeArray", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["javax.json", "JsonWriter", False, "writeObject", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["javax.json", "JsonWriterFactory", False, "createWriter", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"] + - ["javax.json", "JsonString", False, "getChars", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.json", "JsonString", False, "getString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.json", "JsonStructure", True, "getValue", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.json", "JsonValue", True, "asJsonArray", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.json", "JsonValue", True, "asJsonObject", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.json", "JsonValue", True, "toString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.json", "JsonWriter", False, "write", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["javax.json", "JsonWriter", False, "writeArray", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["javax.json", "JsonWriter", False, "writeObject", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["javax.json", "JsonWriterFactory", False, "createWriter", "", "", "Argument[this]", "Argument[0]", "taint", "manual"] diff --git a/java/ql/lib/ext/javax.management.remote.model.yml b/java/ql/lib/ext/javax.management.remote.model.yml index 3751017d4e6..b206c066ea5 100644 --- a/java/ql/lib/ext/javax.management.remote.model.yml +++ b/java/ql/lib/ext/javax.management.remote.model.yml @@ -3,5 +3,5 @@ extensions: pack: codeql/java-all extensible: sinkModel data: - - ["javax.management.remote", "JMXConnector", True, "connect", "", "", "Argument[-1]", "jndi-injection", "manual"] + - ["javax.management.remote", "JMXConnector", True, "connect", "", "", "Argument[this]", "jndi-injection", "manual"] - ["javax.management.remote", "JMXConnectorFactory", False, "connect", "", "", "Argument[0]", "jndi-injection", "manual"] diff --git a/java/ql/lib/ext/javax.script.model.yml b/java/ql/lib/ext/javax.script.model.yml index 1ca0311906a..0dcc6adb3d7 100644 --- a/java/ql/lib/ext/javax.script.model.yml +++ b/java/ql/lib/ext/javax.script.model.yml @@ -3,4 +3,4 @@ extensions: pack: codeql/java-all extensible: sinkModel data: - - ["javax.script", "CompiledScript", False, "eval", "", "", "Argument[-1]", "mvel", "manual"] + - ["javax.script", "CompiledScript", False, "eval", "", "", "Argument[this]", "mvel", "manual"] diff --git a/java/ql/lib/ext/javax.servlet.http.model.yml b/java/ql/lib/ext/javax.servlet.http.model.yml index 9833d356835..e4c0a2b2332 100644 --- a/java/ql/lib/ext/javax.servlet.http.model.yml +++ b/java/ql/lib/ext/javax.servlet.http.model.yml @@ -30,5 +30,5 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["javax.servlet.http", "Cookie", False, "Cookie", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["javax.servlet.http", "Cookie", False, "Cookie", "", "", "Argument[1]", "Argument[-1]", "taint", "manual"] + - ["javax.servlet.http", "Cookie", False, "Cookie", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["javax.servlet.http", "Cookie", False, "Cookie", "", "", "Argument[1]", "Argument[this]", "taint", "manual"] diff --git a/java/ql/lib/ext/javax.ws.rs.core.model.yml b/java/ql/lib/ext/javax.ws.rs.core.model.yml index c7fb603d3c4..b73078a5ae5 100644 --- a/java/ql/lib/ext/javax.ws.rs.core.model.yml +++ b/java/ql/lib/ext/javax.ws.rs.core.model.yml @@ -10,63 +10,63 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["javax.ws.rs.core", "AbstractMultivaluedMap", False, "AbstractMultivaluedMap", "", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["javax.ws.rs.core", "AbstractMultivaluedMap", False, "AbstractMultivaluedMap", "", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["javax.ws.rs.core", "Cookie", False, "Cookie", "", "", "Argument[0..4]", "Argument[-1]", "taint", "manual"] - - ["javax.ws.rs.core", "Cookie", True, "getDomain", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.ws.rs.core", "Cookie", True, "getName", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.ws.rs.core", "Cookie", True, "getPath", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.ws.rs.core", "Cookie", True, "getValue", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.ws.rs.core", "Cookie", True, "getVersion", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.ws.rs.core", "Cookie", True, "toString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["javax.ws.rs.core", "AbstractMultivaluedMap", False, "AbstractMultivaluedMap", "", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["javax.ws.rs.core", "AbstractMultivaluedMap", False, "AbstractMultivaluedMap", "", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["javax.ws.rs.core", "Cookie", False, "Cookie", "", "", "Argument[0..4]", "Argument[this]", "taint", "manual"] + - ["javax.ws.rs.core", "Cookie", True, "getDomain", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.ws.rs.core", "Cookie", True, "getName", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.ws.rs.core", "Cookie", True, "getPath", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.ws.rs.core", "Cookie", True, "getValue", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.ws.rs.core", "Cookie", True, "getVersion", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.ws.rs.core", "Cookie", True, "toString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["javax.ws.rs.core", "Cookie", False, "valueOf", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["javax.ws.rs.core", "Form", False, "Form", "", "", "Argument[0..1]", "Argument[-1]", "taint", "manual"] - - ["javax.ws.rs.core", "Form", False, "Form", "", "", "Argument[0].MapKey", "Argument[-1]", "taint", "manual"] - - ["javax.ws.rs.core", "Form", False, "Form", "", "", "Argument[0].MapValue.Element", "Argument[-1]", "taint", "manual"] - - ["javax.ws.rs.core", "Form", True, "asMap", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.ws.rs.core", "Form", True, "param", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["javax.ws.rs.core", "Form", True, "param", "", "", "Argument[0..1]", "Argument[-1]", "taint", "manual"] - - ["javax.ws.rs.core", "GenericEntity", False, "GenericEntity", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["javax.ws.rs.core", "GenericEntity", True, "getEntity", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["javax.ws.rs.core", "Form", False, "Form", "", "", "Argument[0..1]", "Argument[this]", "taint", "manual"] + - ["javax.ws.rs.core", "Form", False, "Form", "", "", "Argument[0].MapKey", "Argument[this]", "taint", "manual"] + - ["javax.ws.rs.core", "Form", False, "Form", "", "", "Argument[0].MapValue.Element", "Argument[this]", "taint", "manual"] + - ["javax.ws.rs.core", "Form", True, "asMap", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.ws.rs.core", "Form", True, "param", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["javax.ws.rs.core", "Form", True, "param", "", "", "Argument[0..1]", "Argument[this]", "taint", "manual"] + - ["javax.ws.rs.core", "GenericEntity", False, "GenericEntity", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["javax.ws.rs.core", "GenericEntity", True, "getEntity", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] # Methods that Date have to be syntax-checked, but those returning MediaType # or Locale are assumed potentially dangerous, as these types do not generally check that the # input data is recognised, only that it conforms to the expected syntax. - - ["javax.ws.rs.core", "HttpHeaders", True, "getAcceptableLanguages", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.ws.rs.core", "HttpHeaders", True, "getAcceptableMediaTypes", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.ws.rs.core", "HttpHeaders", True, "getCookies", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.ws.rs.core", "HttpHeaders", True, "getHeaderString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.ws.rs.core", "HttpHeaders", True, "getLanguage", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.ws.rs.core", "HttpHeaders", True, "getMediaType", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.ws.rs.core", "HttpHeaders", True, "getRequestHeader", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.ws.rs.core", "HttpHeaders", True, "getRequestHeaders", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.ws.rs.core", "MediaType", False, "MediaType", "", "", "Argument[0..2]", "Argument[-1]", "taint", "manual"] - - ["javax.ws.rs.core", "MediaType", True, "getParameters", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.ws.rs.core", "MediaType", True, "getSubtype", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.ws.rs.core", "MediaType", True, "getType", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["javax.ws.rs.core", "HttpHeaders", True, "getAcceptableLanguages", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.ws.rs.core", "HttpHeaders", True, "getAcceptableMediaTypes", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.ws.rs.core", "HttpHeaders", True, "getCookies", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.ws.rs.core", "HttpHeaders", True, "getHeaderString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.ws.rs.core", "HttpHeaders", True, "getLanguage", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.ws.rs.core", "HttpHeaders", True, "getMediaType", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.ws.rs.core", "HttpHeaders", True, "getRequestHeader", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.ws.rs.core", "HttpHeaders", True, "getRequestHeaders", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.ws.rs.core", "MediaType", False, "MediaType", "", "", "Argument[0..2]", "Argument[this]", "taint", "manual"] + - ["javax.ws.rs.core", "MediaType", True, "getParameters", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.ws.rs.core", "MediaType", True, "getSubtype", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.ws.rs.core", "MediaType", True, "getType", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["javax.ws.rs.core", "MediaType", False, "valueOf", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["javax.ws.rs.core", "MediaType", True, "withCharset", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.ws.rs.core", "MultivaluedHashMap", False, "MultivaluedHashMap", "(Map)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["javax.ws.rs.core", "MultivaluedHashMap", False, "MultivaluedHashMap", "(Map)", "", "Argument[0].MapValue", "Argument[-1].MapValue.Element", "value", "manual"] - - ["javax.ws.rs.core", "MultivaluedHashMap", False, "MultivaluedHashMap", "(MultivaluedMap)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["javax.ws.rs.core", "MultivaluedHashMap", False, "MultivaluedHashMap", "(MultivaluedMap)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["javax.ws.rs.core", "MultivaluedMap", True, "add", "", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["javax.ws.rs.core", "MultivaluedMap", True, "add", "", "", "Argument[1]", "Argument[-1].MapValue.Element", "value", "manual"] - - ["javax.ws.rs.core", "MultivaluedMap", True, "addAll", "", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["javax.ws.rs.core", "MultivaluedMap", True, "addAll", "(Object,List)", "", "Argument[1].Element", "Argument[-1].MapValue.Element", "value", "manual"] - - ["javax.ws.rs.core", "MultivaluedMap", True, "addAll", "(Object,Object[])", "", "Argument[1].ArrayElement", "Argument[-1].MapValue.Element", "value", "manual"] - - ["javax.ws.rs.core", "MultivaluedMap", True, "addFirst", "", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["javax.ws.rs.core", "MultivaluedMap", True, "addFirst", "", "", "Argument[1]", "Argument[-1].MapValue.Element", "value", "manual"] - - ["javax.ws.rs.core", "MultivaluedMap", True, "getFirst", "", "", "Argument[-1].MapValue.Element", "ReturnValue", "value", "manual"] - - ["javax.ws.rs.core", "MultivaluedMap", True, "putSingle", "", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["javax.ws.rs.core", "MultivaluedMap", True, "putSingle", "", "", "Argument[1]", "Argument[-1].MapValue.Element", "value", "manual"] - - ["javax.ws.rs.core", "NewCookie", False, "NewCookie", "", "", "Argument[0..9]", "Argument[-1]", "taint", "manual"] - - ["javax.ws.rs.core", "NewCookie", True, "getComment", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.ws.rs.core", "NewCookie", True, "getExpiry", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.ws.rs.core", "NewCookie", True, "getMaxAge", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.ws.rs.core", "NewCookie", True, "toCookie", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["javax.ws.rs.core", "MediaType", True, "withCharset", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.ws.rs.core", "MultivaluedHashMap", False, "MultivaluedHashMap", "(Map)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["javax.ws.rs.core", "MultivaluedHashMap", False, "MultivaluedHashMap", "(Map)", "", "Argument[0].MapValue", "Argument[this].MapValue.Element", "value", "manual"] + - ["javax.ws.rs.core", "MultivaluedHashMap", False, "MultivaluedHashMap", "(MultivaluedMap)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["javax.ws.rs.core", "MultivaluedHashMap", False, "MultivaluedHashMap", "(MultivaluedMap)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["javax.ws.rs.core", "MultivaluedMap", True, "add", "", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["javax.ws.rs.core", "MultivaluedMap", True, "add", "", "", "Argument[1]", "Argument[this].MapValue.Element", "value", "manual"] + - ["javax.ws.rs.core", "MultivaluedMap", True, "addAll", "", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["javax.ws.rs.core", "MultivaluedMap", True, "addAll", "(Object,List)", "", "Argument[1].Element", "Argument[this].MapValue.Element", "value", "manual"] + - ["javax.ws.rs.core", "MultivaluedMap", True, "addAll", "(Object,Object[])", "", "Argument[1].ArrayElement", "Argument[this].MapValue.Element", "value", "manual"] + - ["javax.ws.rs.core", "MultivaluedMap", True, "addFirst", "", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["javax.ws.rs.core", "MultivaluedMap", True, "addFirst", "", "", "Argument[1]", "Argument[this].MapValue.Element", "value", "manual"] + - ["javax.ws.rs.core", "MultivaluedMap", True, "getFirst", "", "", "Argument[this].MapValue.Element", "ReturnValue", "value", "manual"] + - ["javax.ws.rs.core", "MultivaluedMap", True, "putSingle", "", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["javax.ws.rs.core", "MultivaluedMap", True, "putSingle", "", "", "Argument[1]", "Argument[this].MapValue.Element", "value", "manual"] + - ["javax.ws.rs.core", "NewCookie", False, "NewCookie", "", "", "Argument[0..9]", "Argument[this]", "taint", "manual"] + - ["javax.ws.rs.core", "NewCookie", True, "getComment", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.ws.rs.core", "NewCookie", True, "getExpiry", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.ws.rs.core", "NewCookie", True, "getMaxAge", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.ws.rs.core", "NewCookie", True, "toCookie", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["javax.ws.rs.core", "NewCookie", False, "valueOf", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["javax.ws.rs.core", "PathSegment", True, "getMatrixParameters", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.ws.rs.core", "PathSegment", True, "getPath", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["javax.ws.rs.core", "PathSegment", True, "getMatrixParameters", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.ws.rs.core", "PathSegment", True, "getPath", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] # The returned ResponseBuilder gains taint from a tainted entity or existing Response - ["javax.ws.rs.core", "Response", False, "accepted", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["javax.ws.rs.core", "Response", False, "fromResponse", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] @@ -74,95 +74,95 @@ extensions: # Becomes tainted by a tainted entity, but not by metadata, headers etc # Build() method returns taint # Almost all methods are fluent, and so preserve value - - ["javax.ws.rs.core", "Response$ResponseBuilder", True, "allow", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["javax.ws.rs.core", "Response$ResponseBuilder", True, "build", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.ws.rs.core", "Response$ResponseBuilder", True, "cacheControl", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["javax.ws.rs.core", "Response$ResponseBuilder", True, "clone", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.ws.rs.core", "Response$ResponseBuilder", True, "contentLocation", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["javax.ws.rs.core", "Response$ResponseBuilder", True, "cookie", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["javax.ws.rs.core", "Response$ResponseBuilder", True, "encoding", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["javax.ws.rs.core", "Response$ResponseBuilder", True, "entity", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["javax.ws.rs.core", "Response$ResponseBuilder", True, "entity", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["javax.ws.rs.core", "Response$ResponseBuilder", True, "expires", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["javax.ws.rs.core", "Response$ResponseBuilder", True, "header", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["javax.ws.rs.core", "Response$ResponseBuilder", True, "language", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["javax.ws.rs.core", "Response$ResponseBuilder", True, "lastModified", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["javax.ws.rs.core", "Response$ResponseBuilder", True, "link", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["javax.ws.rs.core", "Response$ResponseBuilder", True, "links", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["javax.ws.rs.core", "Response$ResponseBuilder", True, "location", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["javax.ws.rs.core", "Response$ResponseBuilder", True, "replaceAll", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["javax.ws.rs.core", "Response$ResponseBuilder", True, "status", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["javax.ws.rs.core", "Response$ResponseBuilder", True, "tag", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["javax.ws.rs.core", "Response$ResponseBuilder", True, "type", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["javax.ws.rs.core", "Response$ResponseBuilder", True, "variant", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["javax.ws.rs.core", "Response$ResponseBuilder", True, "variants", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["javax.ws.rs.core", "UriBuilder", True, "build", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["javax.ws.rs.core", "Response$ResponseBuilder", True, "allow", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["javax.ws.rs.core", "Response$ResponseBuilder", True, "build", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.ws.rs.core", "Response$ResponseBuilder", True, "cacheControl", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["javax.ws.rs.core", "Response$ResponseBuilder", True, "clone", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.ws.rs.core", "Response$ResponseBuilder", True, "contentLocation", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["javax.ws.rs.core", "Response$ResponseBuilder", True, "cookie", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["javax.ws.rs.core", "Response$ResponseBuilder", True, "encoding", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["javax.ws.rs.core", "Response$ResponseBuilder", True, "entity", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["javax.ws.rs.core", "Response$ResponseBuilder", True, "entity", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["javax.ws.rs.core", "Response$ResponseBuilder", True, "expires", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["javax.ws.rs.core", "Response$ResponseBuilder", True, "header", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["javax.ws.rs.core", "Response$ResponseBuilder", True, "language", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["javax.ws.rs.core", "Response$ResponseBuilder", True, "lastModified", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["javax.ws.rs.core", "Response$ResponseBuilder", True, "link", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["javax.ws.rs.core", "Response$ResponseBuilder", True, "links", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["javax.ws.rs.core", "Response$ResponseBuilder", True, "location", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["javax.ws.rs.core", "Response$ResponseBuilder", True, "replaceAll", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["javax.ws.rs.core", "Response$ResponseBuilder", True, "status", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["javax.ws.rs.core", "Response$ResponseBuilder", True, "tag", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["javax.ws.rs.core", "Response$ResponseBuilder", True, "type", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["javax.ws.rs.core", "Response$ResponseBuilder", True, "variant", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["javax.ws.rs.core", "Response$ResponseBuilder", True, "variants", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["javax.ws.rs.core", "UriBuilder", True, "build", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["javax.ws.rs.core", "UriBuilder", True, "build", "", "", "Argument[0].ArrayElement", "ReturnValue", "taint", "manual"] - - ["javax.ws.rs.core", "UriBuilder", True, "buildFromEncoded", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["javax.ws.rs.core", "UriBuilder", True, "buildFromEncoded", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["javax.ws.rs.core", "UriBuilder", True, "buildFromEncoded", "", "", "Argument[0].ArrayElement", "ReturnValue", "taint", "manual"] - - ["javax.ws.rs.core", "UriBuilder", True, "buildFromEncodedMap", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["javax.ws.rs.core", "UriBuilder", True, "buildFromEncodedMap", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["javax.ws.rs.core", "UriBuilder", True, "buildFromEncodedMap", "", "", "Argument[0].MapKey", "ReturnValue", "taint", "manual"] - ["javax.ws.rs.core", "UriBuilder", True, "buildFromEncodedMap", "", "", "Argument[0].MapValue", "ReturnValue", "taint", "manual"] - - ["javax.ws.rs.core", "UriBuilder", True, "buildFromMap", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["javax.ws.rs.core", "UriBuilder", True, "buildFromMap", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["javax.ws.rs.core", "UriBuilder", True, "buildFromMap", "", "", "Argument[0].MapKey", "ReturnValue", "taint", "manual"] - ["javax.ws.rs.core", "UriBuilder", True, "buildFromMap", "", "", "Argument[0].MapValue", "ReturnValue", "taint", "manual"] - - ["javax.ws.rs.core", "UriBuilder", True, "clone", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.ws.rs.core", "UriBuilder", True, "fragment", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] + - ["javax.ws.rs.core", "UriBuilder", True, "clone", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.ws.rs.core", "UriBuilder", True, "fragment", "", "", "Argument[this]", "ReturnValue", "value", "manual"] - ["javax.ws.rs.core", "UriBuilder", True, "fragment", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["javax.ws.rs.core", "UriBuilder", False, "fromLink", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["javax.ws.rs.core", "UriBuilder", False, "fromPath", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["javax.ws.rs.core", "UriBuilder", False, "fromUri", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["javax.ws.rs.core", "UriBuilder", True, "host", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] + - ["javax.ws.rs.core", "UriBuilder", True, "host", "", "", "Argument[this]", "ReturnValue", "value", "manual"] - ["javax.ws.rs.core", "UriBuilder", True, "host", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["javax.ws.rs.core", "UriBuilder", True, "matrixParam", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] + - ["javax.ws.rs.core", "UriBuilder", True, "matrixParam", "", "", "Argument[this]", "ReturnValue", "value", "manual"] - ["javax.ws.rs.core", "UriBuilder", True, "matrixParam", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["javax.ws.rs.core", "UriBuilder", True, "matrixParam", "", "", "Argument[1].ArrayElement", "ReturnValue", "taint", "manual"] - - ["javax.ws.rs.core", "UriBuilder", True, "path", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] + - ["javax.ws.rs.core", "UriBuilder", True, "path", "", "", "Argument[this]", "ReturnValue", "value", "manual"] - ["javax.ws.rs.core", "UriBuilder", True, "path", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["javax.ws.rs.core", "UriBuilder", True, "queryParam", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] + - ["javax.ws.rs.core", "UriBuilder", True, "queryParam", "", "", "Argument[this]", "ReturnValue", "value", "manual"] - ["javax.ws.rs.core", "UriBuilder", True, "queryParam", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["javax.ws.rs.core", "UriBuilder", True, "queryParam", "", "", "Argument[1].ArrayElement", "ReturnValue", "taint", "manual"] - - ["javax.ws.rs.core", "UriBuilder", True, "replaceMatrix", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] + - ["javax.ws.rs.core", "UriBuilder", True, "replaceMatrix", "", "", "Argument[this]", "ReturnValue", "value", "manual"] - ["javax.ws.rs.core", "UriBuilder", True, "replaceMatrix", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["javax.ws.rs.core", "UriBuilder", True, "replaceMatrixParam", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] + - ["javax.ws.rs.core", "UriBuilder", True, "replaceMatrixParam", "", "", "Argument[this]", "ReturnValue", "value", "manual"] - ["javax.ws.rs.core", "UriBuilder", True, "replaceMatrixParam", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["javax.ws.rs.core", "UriBuilder", True, "replaceMatrixParam", "", "", "Argument[1].ArrayElement", "ReturnValue", "taint", "manual"] - - ["javax.ws.rs.core", "UriBuilder", True, "replacePath", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] + - ["javax.ws.rs.core", "UriBuilder", True, "replacePath", "", "", "Argument[this]", "ReturnValue", "value", "manual"] - ["javax.ws.rs.core", "UriBuilder", True, "replacePath", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["javax.ws.rs.core", "UriBuilder", True, "replaceQuery", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] + - ["javax.ws.rs.core", "UriBuilder", True, "replaceQuery", "", "", "Argument[this]", "ReturnValue", "value", "manual"] - ["javax.ws.rs.core", "UriBuilder", True, "replaceQuery", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["javax.ws.rs.core", "UriBuilder", True, "replaceQueryParam", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] + - ["javax.ws.rs.core", "UriBuilder", True, "replaceQueryParam", "", "", "Argument[this]", "ReturnValue", "value", "manual"] - ["javax.ws.rs.core", "UriBuilder", True, "replaceQueryParam", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["javax.ws.rs.core", "UriBuilder", True, "replaceQueryParam", "", "", "Argument[1].ArrayElement", "ReturnValue", "taint", "manual"] - - ["javax.ws.rs.core", "UriBuilder", True, "resolveTemplate", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] + - ["javax.ws.rs.core", "UriBuilder", True, "resolveTemplate", "", "", "Argument[this]", "ReturnValue", "value", "manual"] - ["javax.ws.rs.core", "UriBuilder", True, "resolveTemplate", "", "", "Argument[0..2]", "ReturnValue", "taint", "manual"] - - ["javax.ws.rs.core", "UriBuilder", True, "resolveTemplateFromEncoded", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] + - ["javax.ws.rs.core", "UriBuilder", True, "resolveTemplateFromEncoded", "", "", "Argument[this]", "ReturnValue", "value", "manual"] - ["javax.ws.rs.core", "UriBuilder", True, "resolveTemplateFromEncoded", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["javax.ws.rs.core", "UriBuilder", True, "resolveTemplates", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] + - ["javax.ws.rs.core", "UriBuilder", True, "resolveTemplates", "", "", "Argument[this]", "ReturnValue", "value", "manual"] - ["javax.ws.rs.core", "UriBuilder", True, "resolveTemplates", "", "", "Argument[0].MapKey", "ReturnValue", "taint", "manual"] - ["javax.ws.rs.core", "UriBuilder", True, "resolveTemplates", "", "", "Argument[0].MapValue", "ReturnValue", "taint", "manual"] - - ["javax.ws.rs.core", "UriBuilder", True, "resolveTemplatesFromEncoded", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] + - ["javax.ws.rs.core", "UriBuilder", True, "resolveTemplatesFromEncoded", "", "", "Argument[this]", "ReturnValue", "value", "manual"] - ["javax.ws.rs.core", "UriBuilder", True, "resolveTemplatesFromEncoded", "", "", "Argument[0].MapKey", "ReturnValue", "taint", "manual"] - ["javax.ws.rs.core", "UriBuilder", True, "resolveTemplatesFromEncoded", "", "", "Argument[0].MapValue", "ReturnValue", "taint", "manual"] - - ["javax.ws.rs.core", "UriBuilder", True, "scheme", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] + - ["javax.ws.rs.core", "UriBuilder", True, "scheme", "", "", "Argument[this]", "ReturnValue", "value", "manual"] - ["javax.ws.rs.core", "UriBuilder", True, "scheme", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["javax.ws.rs.core", "UriBuilder", True, "schemeSpecificPart", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] + - ["javax.ws.rs.core", "UriBuilder", True, "schemeSpecificPart", "", "", "Argument[this]", "ReturnValue", "value", "manual"] - ["javax.ws.rs.core", "UriBuilder", True, "schemeSpecificPart", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["javax.ws.rs.core", "UriBuilder", True, "segment", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] + - ["javax.ws.rs.core", "UriBuilder", True, "segment", "", "", "Argument[this]", "ReturnValue", "value", "manual"] - ["javax.ws.rs.core", "UriBuilder", True, "segment", "", "", "Argument[0].ArrayElement", "ReturnValue", "taint", "manual"] - - ["javax.ws.rs.core", "UriBuilder", True, "toTemplate", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.ws.rs.core", "UriBuilder", True, "uri", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] + - ["javax.ws.rs.core", "UriBuilder", True, "toTemplate", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.ws.rs.core", "UriBuilder", True, "uri", "", "", "Argument[this]", "ReturnValue", "value", "manual"] - ["javax.ws.rs.core", "UriBuilder", True, "uri", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["javax.ws.rs.core", "UriBuilder", True, "userInfo", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] + - ["javax.ws.rs.core", "UriBuilder", True, "userInfo", "", "", "Argument[this]", "ReturnValue", "value", "manual"] - ["javax.ws.rs.core", "UriBuilder", True, "userInfo", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["javax.ws.rs.core", "UriInfo", True, "getAbsolutePath", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.ws.rs.core", "UriInfo", True, "getAbsolutePathBuilder", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.ws.rs.core", "UriInfo", True, "getPath", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.ws.rs.core", "UriInfo", True, "getPathParameters", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.ws.rs.core", "UriInfo", True, "getPathSegments", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.ws.rs.core", "UriInfo", True, "getQueryParameters", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.ws.rs.core", "UriInfo", True, "getRequestUri", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["javax.ws.rs.core", "UriInfo", True, "getRequestUriBuilder", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["javax.ws.rs.core", "UriInfo", True, "getAbsolutePath", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.ws.rs.core", "UriInfo", True, "getAbsolutePathBuilder", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.ws.rs.core", "UriInfo", True, "getPath", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.ws.rs.core", "UriInfo", True, "getPathParameters", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.ws.rs.core", "UriInfo", True, "getPathSegments", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.ws.rs.core", "UriInfo", True, "getQueryParameters", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.ws.rs.core", "UriInfo", True, "getRequestUri", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["javax.ws.rs.core", "UriInfo", True, "getRequestUriBuilder", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["javax.ws.rs.core", "UriInfo", True, "relativize", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["javax.ws.rs.core", "UriInfo", True, "resolve", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["javax.ws.rs.core", "UriInfo", True, "resolve", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["javax.ws.rs.core", "UriInfo", True, "resolve", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] diff --git a/java/ql/lib/ext/javax.xml.transform.model.yml b/java/ql/lib/ext/javax.xml.transform.model.yml index d9123a46fc7..ffc321b004f 100644 --- a/java/ql/lib/ext/javax.xml.transform.model.yml +++ b/java/ql/lib/ext/javax.xml.transform.model.yml @@ -3,4 +3,4 @@ extensions: pack: codeql/java-all extensible: sinkModel data: - - ["javax.xml.transform", "Transformer", False, "transform", "", "", "Argument[-1]", "xslt", "manual"] + - ["javax.xml.transform", "Transformer", False, "transform", "", "", "Argument[this]", "xslt", "manual"] diff --git a/java/ql/lib/ext/javax.xml.transform.sax.model.yml b/java/ql/lib/ext/javax.xml.transform.sax.model.yml index 90d583b5116..8c6f7b3f593 100644 --- a/java/ql/lib/ext/javax.xml.transform.sax.model.yml +++ b/java/ql/lib/ext/javax.xml.transform.sax.model.yml @@ -3,7 +3,7 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["javax.xml.transform.sax", "SAXSource", False, "SAXSource", "(InputSource)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["javax.xml.transform.sax", "SAXSource", False, "SAXSource", "(XMLReader,InputSource)", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["javax.xml.transform.sax", "SAXSource", False, "getInputSource", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["javax.xml.transform.sax", "SAXSource", False, "SAXSource", "(InputSource)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["javax.xml.transform.sax", "SAXSource", False, "SAXSource", "(XMLReader,InputSource)", "", "Argument[1]", "Argument[this]", "taint", "manual"] + - ["javax.xml.transform.sax", "SAXSource", False, "getInputSource", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["javax.xml.transform.sax", "SAXSource", False, "sourceToInputSource", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] diff --git a/java/ql/lib/ext/javax.xml.transform.stream.model.yml b/java/ql/lib/ext/javax.xml.transform.stream.model.yml index 6c97f60e2d9..1999feec863 100644 --- a/java/ql/lib/ext/javax.xml.transform.stream.model.yml +++ b/java/ql/lib/ext/javax.xml.transform.stream.model.yml @@ -3,8 +3,8 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["javax.xml.transform.stream", "StreamSource", False, "StreamSource", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["javax.xml.transform.stream", "StreamSource", False, "getInputStream", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["javax.xml.transform.stream", "StreamSource", False, "StreamSource", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["javax.xml.transform.stream", "StreamSource", False, "getInputStream", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - addsTo: pack: codeql/java-all extensible: sinkModel diff --git a/java/ql/lib/ext/jodd.json.model.yml b/java/ql/lib/ext/jodd.json.model.yml index cf8005bf909..2f8ea86d338 100644 --- a/java/ql/lib/ext/jodd.json.model.yml +++ b/java/ql/lib/ext/jodd.json.model.yml @@ -9,13 +9,13 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["jodd.json", "JsonParser", False, "allowAllClasses", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["jodd.json", "JsonParser", False, "allowClass", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["jodd.json", "JsonParser", False, "lazy", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["jodd.json", "JsonParser", False, "looseMode", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["jodd.json", "JsonParser", False, "map", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["jodd.json", "JsonParser", False, "setClassMetadataName", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["jodd.json", "JsonParser", False, "strictTypes", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["jodd.json", "JsonParser", False, "useAltPaths", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["jodd.json", "JsonParser", False, "withClassMetadata", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["jodd.json", "JsonParser", False, "withValueConverter", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] + - ["jodd.json", "JsonParser", False, "allowAllClasses", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["jodd.json", "JsonParser", False, "allowClass", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["jodd.json", "JsonParser", False, "lazy", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["jodd.json", "JsonParser", False, "looseMode", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["jodd.json", "JsonParser", False, "map", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["jodd.json", "JsonParser", False, "setClassMetadataName", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["jodd.json", "JsonParser", False, "strictTypes", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["jodd.json", "JsonParser", False, "useAltPaths", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["jodd.json", "JsonParser", False, "withClassMetadata", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["jodd.json", "JsonParser", False, "withValueConverter", "", "", "Argument[this]", "ReturnValue", "value", "manual"] diff --git a/java/ql/lib/ext/net.sf.saxon.s9api.model.yml b/java/ql/lib/ext/net.sf.saxon.s9api.model.yml index cbe916fd018..1559092f535 100644 --- a/java/ql/lib/ext/net.sf.saxon.s9api.model.yml +++ b/java/ql/lib/ext/net.sf.saxon.s9api.model.yml @@ -3,8 +3,8 @@ extensions: pack: codeql/java-all extensible: sinkModel data: - - ["net.sf.saxon.s9api", "Xslt30Transformer", False, "applyTemplates", "", "", "Argument[-1]", "xslt", "manual"] - - ["net.sf.saxon.s9api", "Xslt30Transformer", False, "callFunction", "", "", "Argument[-1]", "xslt", "manual"] - - ["net.sf.saxon.s9api", "Xslt30Transformer", False, "callTemplate", "", "", "Argument[-1]", "xslt", "manual"] - - ["net.sf.saxon.s9api", "Xslt30Transformer", False, "transform", "", "", "Argument[-1]", "xslt", "manual"] - - ["net.sf.saxon.s9api", "XsltTransformer", False, "transform", "", "", "Argument[-1]", "xslt", "manual"] + - ["net.sf.saxon.s9api", "Xslt30Transformer", False, "applyTemplates", "", "", "Argument[this]", "xslt", "manual"] + - ["net.sf.saxon.s9api", "Xslt30Transformer", False, "callFunction", "", "", "Argument[this]", "xslt", "manual"] + - ["net.sf.saxon.s9api", "Xslt30Transformer", False, "callTemplate", "", "", "Argument[this]", "xslt", "manual"] + - ["net.sf.saxon.s9api", "Xslt30Transformer", False, "transform", "", "", "Argument[this]", "xslt", "manual"] + - ["net.sf.saxon.s9api", "XsltTransformer", False, "transform", "", "", "Argument[this]", "xslt", "manual"] diff --git a/java/ql/lib/ext/ognl.enhance.model.yml b/java/ql/lib/ext/ognl.enhance.model.yml index 6e3a27f34ae..453449eb31c 100644 --- a/java/ql/lib/ext/ognl.enhance.model.yml +++ b/java/ql/lib/ext/ognl.enhance.model.yml @@ -3,5 +3,5 @@ extensions: pack: codeql/java-all extensible: sinkModel data: - - ["ognl.enhance", "ExpressionAccessor", True, "get", "", "", "Argument[-1]", "ognl-injection", "manual"] - - ["ognl.enhance", "ExpressionAccessor", True, "set", "", "", "Argument[-1]", "ognl-injection", "manual"] + - ["ognl.enhance", "ExpressionAccessor", True, "get", "", "", "Argument[this]", "ognl-injection", "manual"] + - ["ognl.enhance", "ExpressionAccessor", True, "set", "", "", "Argument[this]", "ognl-injection", "manual"] diff --git a/java/ql/lib/ext/ognl.model.yml b/java/ql/lib/ext/ognl.model.yml index 23de976ef98..0d8ecf8532e 100644 --- a/java/ql/lib/ext/ognl.model.yml +++ b/java/ql/lib/ext/ognl.model.yml @@ -3,7 +3,7 @@ extensions: pack: codeql/java-all extensible: sinkModel data: - - ["ognl", "Node", False, "getValue", "", "", "Argument[-1]", "ognl-injection", "manual"] - - ["ognl", "Node", False, "setValue", "", "", "Argument[-1]", "ognl-injection", "manual"] + - ["ognl", "Node", False, "getValue", "", "", "Argument[this]", "ognl-injection", "manual"] + - ["ognl", "Node", False, "setValue", "", "", "Argument[this]", "ognl-injection", "manual"] - ["ognl", "Ognl", False, "getValue", "", "", "Argument[0]", "ognl-injection", "manual"] - ["ognl", "Ognl", False, "setValue", "", "", "Argument[0]", "ognl-injection", "manual"] diff --git a/java/ql/lib/ext/okhttp3.model.yml b/java/ql/lib/ext/okhttp3.model.yml index 7e8459daedc..21563331656 100644 --- a/java/ql/lib/ext/okhttp3.model.yml +++ b/java/ql/lib/ext/okhttp3.model.yml @@ -10,49 +10,49 @@ extensions: extensible: summaryModel data: - ["okhttp3", "HttpUrl", False, "parse", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["okhttp3", "HttpUrl", False, "uri", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["okhttp3", "HttpUrl", False, "url", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["okhttp3", "HttpUrl$Builder", False, "addEncodedPathSegment", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["okhttp3", "HttpUrl$Builder", False, "addEncodedPathSegment", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["okhttp3", "HttpUrl$Builder", False, "addEncodedPathSegments", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["okhttp3", "HttpUrl$Builder", False, "addEncodedPathSegments", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["okhttp3", "HttpUrl$Builder", False, "addEncodedQueryParameter", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["okhttp3", "HttpUrl$Builder", False, "addEncodedQueryParameter", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["okhttp3", "HttpUrl$Builder", False, "addPathSegment", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["okhttp3", "HttpUrl$Builder", False, "addPathSegment", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["okhttp3", "HttpUrl$Builder", False, "addPathSegments", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["okhttp3", "HttpUrl$Builder", False, "addPathSegments", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["okhttp3", "HttpUrl$Builder", False, "addQueryParameter", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["okhttp3", "HttpUrl$Builder", False, "addQueryParameter", "", "", "Argument[0..1]", "Argument[-1]", "taint", "manual"] - - ["okhttp3", "HttpUrl$Builder", False, "build", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["okhttp3", "HttpUrl$Builder", False, "encodedFragment", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["okhttp3", "HttpUrl$Builder", False, "encodedFragment", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["okhttp3", "HttpUrl$Builder", False, "encodedPassword", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["okhttp3", "HttpUrl$Builder", False, "encodedPath", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["okhttp3", "HttpUrl$Builder", False, "encodedPath", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["okhttp3", "HttpUrl$Builder", False, "encodedQuery", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["okhttp3", "HttpUrl$Builder", False, "encodedQuery", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["okhttp3", "HttpUrl$Builder", False, "encodedUsername", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["okhttp3", "HttpUrl$Builder", False, "fragment", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["okhttp3", "HttpUrl$Builder", False, "fragment", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["okhttp3", "HttpUrl$Builder", False, "host", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["okhttp3", "HttpUrl$Builder", False, "host", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["okhttp3", "HttpUrl$Builder", False, "password", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["okhttp3", "HttpUrl$Builder", False, "port", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["okhttp3", "HttpUrl$Builder", False, "port", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["okhttp3", "HttpUrl$Builder", False, "query", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["okhttp3", "HttpUrl$Builder", False, "query", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["okhttp3", "HttpUrl$Builder", False, "removeAllEncodedQueryParameters", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["okhttp3", "HttpUrl$Builder", False, "removeAllQueryParameters", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["okhttp3", "HttpUrl$Builder", False, "removePathSegment", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["okhttp3", "HttpUrl$Builder", False, "scheme", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["okhttp3", "HttpUrl$Builder", False, "scheme", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["okhttp3", "HttpUrl$Builder", False, "setEncodedPathSegment", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["okhttp3", "HttpUrl$Builder", False, "setEncodedPathSegment", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["okhttp3", "HttpUrl$Builder", False, "setEncodedQueryParameter", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["okhttp3", "HttpUrl$Builder", False, "setEncodedQueryParameter", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["okhttp3", "HttpUrl$Builder", False, "setPathSegment", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["okhttp3", "HttpUrl$Builder", False, "setPathSegment", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["okhttp3", "HttpUrl$Builder", False, "setQueryParameter", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["okhttp3", "HttpUrl$Builder", False, "setQueryParameter", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["okhttp3", "HttpUrl$Builder", False, "username", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] + - ["okhttp3", "HttpUrl", False, "uri", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["okhttp3", "HttpUrl", False, "url", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["okhttp3", "HttpUrl$Builder", False, "addEncodedPathSegment", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["okhttp3", "HttpUrl$Builder", False, "addEncodedPathSegment", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["okhttp3", "HttpUrl$Builder", False, "addEncodedPathSegments", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["okhttp3", "HttpUrl$Builder", False, "addEncodedPathSegments", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["okhttp3", "HttpUrl$Builder", False, "addEncodedQueryParameter", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["okhttp3", "HttpUrl$Builder", False, "addEncodedQueryParameter", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["okhttp3", "HttpUrl$Builder", False, "addPathSegment", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["okhttp3", "HttpUrl$Builder", False, "addPathSegment", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["okhttp3", "HttpUrl$Builder", False, "addPathSegments", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["okhttp3", "HttpUrl$Builder", False, "addPathSegments", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["okhttp3", "HttpUrl$Builder", False, "addQueryParameter", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["okhttp3", "HttpUrl$Builder", False, "addQueryParameter", "", "", "Argument[0..1]", "Argument[this]", "taint", "manual"] + - ["okhttp3", "HttpUrl$Builder", False, "build", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["okhttp3", "HttpUrl$Builder", False, "encodedFragment", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["okhttp3", "HttpUrl$Builder", False, "encodedFragment", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["okhttp3", "HttpUrl$Builder", False, "encodedPassword", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["okhttp3", "HttpUrl$Builder", False, "encodedPath", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["okhttp3", "HttpUrl$Builder", False, "encodedPath", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["okhttp3", "HttpUrl$Builder", False, "encodedQuery", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["okhttp3", "HttpUrl$Builder", False, "encodedQuery", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["okhttp3", "HttpUrl$Builder", False, "encodedUsername", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["okhttp3", "HttpUrl$Builder", False, "fragment", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["okhttp3", "HttpUrl$Builder", False, "fragment", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["okhttp3", "HttpUrl$Builder", False, "host", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["okhttp3", "HttpUrl$Builder", False, "host", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["okhttp3", "HttpUrl$Builder", False, "password", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["okhttp3", "HttpUrl$Builder", False, "port", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["okhttp3", "HttpUrl$Builder", False, "port", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["okhttp3", "HttpUrl$Builder", False, "query", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["okhttp3", "HttpUrl$Builder", False, "query", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["okhttp3", "HttpUrl$Builder", False, "removeAllEncodedQueryParameters", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["okhttp3", "HttpUrl$Builder", False, "removeAllQueryParameters", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["okhttp3", "HttpUrl$Builder", False, "removePathSegment", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["okhttp3", "HttpUrl$Builder", False, "scheme", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["okhttp3", "HttpUrl$Builder", False, "scheme", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["okhttp3", "HttpUrl$Builder", False, "setEncodedPathSegment", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["okhttp3", "HttpUrl$Builder", False, "setEncodedPathSegment", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["okhttp3", "HttpUrl$Builder", False, "setEncodedQueryParameter", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["okhttp3", "HttpUrl$Builder", False, "setEncodedQueryParameter", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["okhttp3", "HttpUrl$Builder", False, "setPathSegment", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["okhttp3", "HttpUrl$Builder", False, "setPathSegment", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["okhttp3", "HttpUrl$Builder", False, "setQueryParameter", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["okhttp3", "HttpUrl$Builder", False, "setQueryParameter", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["okhttp3", "HttpUrl$Builder", False, "username", "", "", "Argument[this]", "ReturnValue", "value", "manual"] diff --git a/java/ql/lib/ext/org.apache.commons.collections.bag.model.yml b/java/ql/lib/ext/org.apache.commons.collections.bag.model.yml index 64994a3567c..6def883bf5b 100644 --- a/java/ql/lib/ext/org.apache.commons.collections.bag.model.yml +++ b/java/ql/lib/ext/org.apache.commons.collections.bag.model.yml @@ -4,21 +4,21 @@ extensions: extensible: summaryModel data: # Note that when lambdas are supported we should have more models for TransformedBag, TransformedSortedBag - - ["org.apache.commons.collections.bag", "AbstractBagDecorator", True, "AbstractBagDecorator", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.bag", "AbstractMapBag", True, "AbstractMapBag", "", "", "Argument[0].MapKey", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.bag", "AbstractMapBag", True, "getMap", "", "", "Argument[-1].Element", "ReturnValue.MapKey", "value", "manual"] - - ["org.apache.commons.collections.bag", "AbstractSortedBagDecorator", True, "AbstractSortedBagDecorator", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.bag", "CollectionBag", True, "CollectionBag", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] + - ["org.apache.commons.collections.bag", "AbstractBagDecorator", True, "AbstractBagDecorator", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.bag", "AbstractMapBag", True, "AbstractMapBag", "", "", "Argument[0].MapKey", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.bag", "AbstractMapBag", True, "getMap", "", "", "Argument[this].Element", "ReturnValue.MapKey", "value", "manual"] + - ["org.apache.commons.collections.bag", "AbstractSortedBagDecorator", True, "AbstractSortedBagDecorator", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.bag", "CollectionBag", True, "CollectionBag", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] - ["org.apache.commons.collections.bag", "CollectionBag", True, "collectionBag", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections.bag", "CollectionSortedBag", True, "CollectionSortedBag", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] + - ["org.apache.commons.collections.bag", "CollectionSortedBag", True, "CollectionSortedBag", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] - ["org.apache.commons.collections.bag", "CollectionSortedBag", True, "collectionSortedBag", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections.bag", "HashBag", True, "HashBag", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] + - ["org.apache.commons.collections.bag", "HashBag", True, "HashBag", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] - ["org.apache.commons.collections.bag", "PredicatedBag", True, "predicatedBag", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections.bag", "PredicatedSortedBag", True, "predicatedSortedBag", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections.bag", "SynchronizedBag", True, "synchronizedBag", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections.bag", "SynchronizedSortedBag", True, "synchronizedSortedBag", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections.bag", "TransformedBag", True, "transformedBag", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections.bag", "TransformedSortedBag", True, "transformedSortedBag", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections.bag", "TreeBag", True, "TreeBag", "(Collection)", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] + - ["org.apache.commons.collections.bag", "TreeBag", True, "TreeBag", "(Collection)", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] - ["org.apache.commons.collections.bag", "UnmodifiableBag", True, "unmodifiableBag", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections.bag", "UnmodifiableSortedBag", True, "unmodifiableSortedBag", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] diff --git a/java/ql/lib/ext/org.apache.commons.collections.bidimap.model.yml b/java/ql/lib/ext/org.apache.commons.collections.bidimap.model.yml index 067219984bf..f8d47761c06 100644 --- a/java/ql/lib/ext/org.apache.commons.collections.bidimap.model.yml +++ b/java/ql/lib/ext/org.apache.commons.collections.bidimap.model.yml @@ -3,34 +3,34 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["org.apache.commons.collections.bidimap", "AbstractBidiMapDecorator", True, "AbstractBidiMapDecorator", "", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections.bidimap", "AbstractBidiMapDecorator", True, "AbstractBidiMapDecorator", "", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections.bidimap", "AbstractDualBidiMap", True, "AbstractDualBidiMap", "", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections.bidimap", "AbstractDualBidiMap", True, "AbstractDualBidiMap", "", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections.bidimap", "AbstractDualBidiMap", True, "AbstractDualBidiMap", "", "", "Argument[1].MapKey", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections.bidimap", "AbstractDualBidiMap", True, "AbstractDualBidiMap", "", "", "Argument[1].MapValue", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections.bidimap", "AbstractDualBidiMap", True, "AbstractDualBidiMap", "", "", "Argument[2].MapKey", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections.bidimap", "AbstractDualBidiMap", True, "AbstractDualBidiMap", "", "", "Argument[2].MapValue", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections.bidimap", "AbstractOrderedBidiMapDecorator", True, "AbstractOrderedBidiMapDecorator", "", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections.bidimap", "AbstractOrderedBidiMapDecorator", True, "AbstractOrderedBidiMapDecorator", "", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections.bidimap", "AbstractSortedBidiMapDecorator", True, "AbstractSortedBidiMapDecorator", "", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections.bidimap", "AbstractSortedBidiMapDecorator", True, "AbstractSortedBidiMapDecorator", "", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections.bidimap", "DualHashBidiMap", True, "DualHashBidiMap", "(Map)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections.bidimap", "DualHashBidiMap", True, "DualHashBidiMap", "(Map)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections.bidimap", "DualLinkedHashBidiMap", True, "DualLinkedHashBidiMap", "(Map)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections.bidimap", "DualLinkedHashBidiMap", True, "DualLinkedHashBidiMap", "(Map)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections.bidimap", "DualTreeBidiMap", True, "DualTreeBidiMap", "(Map)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections.bidimap", "DualTreeBidiMap", True, "DualTreeBidiMap", "(Map)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections.bidimap", "DualTreeBidiMap", True, "inverseOrderedBidiMap", "", "", "Argument[-1].MapKey", "ReturnValue.MapValue", "value", "manual"] - - ["org.apache.commons.collections.bidimap", "DualTreeBidiMap", True, "inverseOrderedBidiMap", "", "", "Argument[-1].MapValue", "ReturnValue.MapKey", "value", "manual"] - - ["org.apache.commons.collections.bidimap", "DualTreeBidiMap", True, "inverseSortedBidiMap", "", "", "Argument[-1].MapKey", "ReturnValue.MapValue", "value", "manual"] - - ["org.apache.commons.collections.bidimap", "DualTreeBidiMap", True, "inverseSortedBidiMap", "", "", "Argument[-1].MapValue", "ReturnValue.MapKey", "value", "manual"] - - ["org.apache.commons.collections.bidimap", "TreeBidiMap", True, "TreeBidiMap", "", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections.bidimap", "TreeBidiMap", True, "TreeBidiMap", "", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] + - ["org.apache.commons.collections.bidimap", "AbstractBidiMapDecorator", True, "AbstractBidiMapDecorator", "", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections.bidimap", "AbstractBidiMapDecorator", True, "AbstractBidiMapDecorator", "", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections.bidimap", "AbstractDualBidiMap", True, "AbstractDualBidiMap", "", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections.bidimap", "AbstractDualBidiMap", True, "AbstractDualBidiMap", "", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections.bidimap", "AbstractDualBidiMap", True, "AbstractDualBidiMap", "", "", "Argument[1].MapKey", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections.bidimap", "AbstractDualBidiMap", True, "AbstractDualBidiMap", "", "", "Argument[1].MapValue", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections.bidimap", "AbstractDualBidiMap", True, "AbstractDualBidiMap", "", "", "Argument[2].MapKey", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections.bidimap", "AbstractDualBidiMap", True, "AbstractDualBidiMap", "", "", "Argument[2].MapValue", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections.bidimap", "AbstractOrderedBidiMapDecorator", True, "AbstractOrderedBidiMapDecorator", "", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections.bidimap", "AbstractOrderedBidiMapDecorator", True, "AbstractOrderedBidiMapDecorator", "", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections.bidimap", "AbstractSortedBidiMapDecorator", True, "AbstractSortedBidiMapDecorator", "", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections.bidimap", "AbstractSortedBidiMapDecorator", True, "AbstractSortedBidiMapDecorator", "", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections.bidimap", "DualHashBidiMap", True, "DualHashBidiMap", "(Map)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections.bidimap", "DualHashBidiMap", True, "DualHashBidiMap", "(Map)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections.bidimap", "DualLinkedHashBidiMap", True, "DualLinkedHashBidiMap", "(Map)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections.bidimap", "DualLinkedHashBidiMap", True, "DualLinkedHashBidiMap", "(Map)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections.bidimap", "DualTreeBidiMap", True, "DualTreeBidiMap", "(Map)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections.bidimap", "DualTreeBidiMap", True, "DualTreeBidiMap", "(Map)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections.bidimap", "DualTreeBidiMap", True, "inverseOrderedBidiMap", "", "", "Argument[this].MapKey", "ReturnValue.MapValue", "value", "manual"] + - ["org.apache.commons.collections.bidimap", "DualTreeBidiMap", True, "inverseOrderedBidiMap", "", "", "Argument[this].MapValue", "ReturnValue.MapKey", "value", "manual"] + - ["org.apache.commons.collections.bidimap", "DualTreeBidiMap", True, "inverseSortedBidiMap", "", "", "Argument[this].MapKey", "ReturnValue.MapValue", "value", "manual"] + - ["org.apache.commons.collections.bidimap", "DualTreeBidiMap", True, "inverseSortedBidiMap", "", "", "Argument[this].MapValue", "ReturnValue.MapKey", "value", "manual"] + - ["org.apache.commons.collections.bidimap", "TreeBidiMap", True, "TreeBidiMap", "", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections.bidimap", "TreeBidiMap", True, "TreeBidiMap", "", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] - ["org.apache.commons.collections.bidimap", "UnmodifiableBidiMap", True, "unmodifiableBidiMap", "", "", "Argument[0].MapKey", "ReturnValue.MapKey", "value", "manual"] - ["org.apache.commons.collections.bidimap", "UnmodifiableBidiMap", True, "unmodifiableBidiMap", "", "", "Argument[0].MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["org.apache.commons.collections.bidimap", "UnmodifiableOrderedBidiMap", True, "inverseOrderedBidiMap", "", "", "Argument[-1].MapKey", "ReturnValue.MapValue", "value", "manual"] - - ["org.apache.commons.collections.bidimap", "UnmodifiableOrderedBidiMap", True, "inverseOrderedBidiMap", "", "", "Argument[-1].MapValue", "ReturnValue.MapKey", "value", "manual"] + - ["org.apache.commons.collections.bidimap", "UnmodifiableOrderedBidiMap", True, "inverseOrderedBidiMap", "", "", "Argument[this].MapKey", "ReturnValue.MapValue", "value", "manual"] + - ["org.apache.commons.collections.bidimap", "UnmodifiableOrderedBidiMap", True, "inverseOrderedBidiMap", "", "", "Argument[this].MapValue", "ReturnValue.MapKey", "value", "manual"] - ["org.apache.commons.collections.bidimap", "UnmodifiableOrderedBidiMap", True, "unmodifiableOrderedBidiMap", "", "", "Argument[0].MapKey", "ReturnValue.MapKey", "value", "manual"] - ["org.apache.commons.collections.bidimap", "UnmodifiableOrderedBidiMap", True, "unmodifiableOrderedBidiMap", "", "", "Argument[0].MapValue", "ReturnValue.MapValue", "value", "manual"] - ["org.apache.commons.collections.bidimap", "UnmodifiableSortedBidiMap", True, "unmodifiableSortedBidiMap", "", "", "Argument[0].MapKey", "ReturnValue.MapKey", "value", "manual"] diff --git a/java/ql/lib/ext/org.apache.commons.collections.collection.model.yml b/java/ql/lib/ext/org.apache.commons.collections.collection.model.yml index ce1caf3d473..7608233b98f 100644 --- a/java/ql/lib/ext/org.apache.commons.collections.collection.model.yml +++ b/java/ql/lib/ext/org.apache.commons.collections.collection.model.yml @@ -4,42 +4,42 @@ extensions: extensible: summaryModel data: # Note that when lambdas are supported we should have more models for TransformedCollection - - ["org.apache.commons.collections.collection", "AbstractCollectionDecorator", True, "AbstractCollectionDecorator", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.collection", "AbstractCollectionDecorator", True, "decorated", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections.collection", "AbstractCollectionDecorator", True, "setCollection", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.collection", "CompositeCollection", True, "CompositeCollection", "(Collection)", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.collection", "CompositeCollection", True, "CompositeCollection", "(Collection,Collection)", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.collection", "CompositeCollection", True, "CompositeCollection", "(Collection,Collection)", "", "Argument[1].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.collection", "CompositeCollection", True, "CompositeCollection", "(Collection[])", "", "Argument[0].ArrayElement.Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.collection", "CompositeCollection", True, "addComposited", "(Collection)", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.collection", "CompositeCollection", True, "addComposited", "(Collection,Collection)", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.collection", "CompositeCollection", True, "addComposited", "(Collection,Collection)", "", "Argument[1].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.collection", "CompositeCollection", True, "addComposited", "(Collection[])", "", "Argument[0].ArrayElement.Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.collection", "CompositeCollection", True, "getCollections", "", "", "Argument[-1].Element", "ReturnValue.Element.Element", "value", "manual"] - - ["org.apache.commons.collections.collection", "CompositeCollection", True, "toCollection", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections.collection", "AbstractCollectionDecorator", True, "AbstractCollectionDecorator", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.collection", "AbstractCollectionDecorator", True, "decorated", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections.collection", "AbstractCollectionDecorator", True, "setCollection", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.collection", "CompositeCollection", True, "CompositeCollection", "(Collection)", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.collection", "CompositeCollection", True, "CompositeCollection", "(Collection,Collection)", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.collection", "CompositeCollection", True, "CompositeCollection", "(Collection,Collection)", "", "Argument[1].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.collection", "CompositeCollection", True, "CompositeCollection", "(Collection[])", "", "Argument[0].ArrayElement.Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.collection", "CompositeCollection", True, "addComposited", "(Collection)", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.collection", "CompositeCollection", True, "addComposited", "(Collection,Collection)", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.collection", "CompositeCollection", True, "addComposited", "(Collection,Collection)", "", "Argument[1].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.collection", "CompositeCollection", True, "addComposited", "(Collection[])", "", "Argument[0].ArrayElement.Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.collection", "CompositeCollection", True, "getCollections", "", "", "Argument[this].Element", "ReturnValue.Element.Element", "value", "manual"] + - ["org.apache.commons.collections.collection", "CompositeCollection", True, "toCollection", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections.collection", "CompositeCollection$CollectionMutator", True, "add", "", "", "Argument[2]", "Argument[0].Element", "value", "manual"] - ["org.apache.commons.collections.collection", "CompositeCollection$CollectionMutator", True, "add", "", "", "Argument[2]", "Argument[1].Element.Element", "value", "manual"] - ["org.apache.commons.collections.collection", "CompositeCollection$CollectionMutator", True, "addAll", "", "", "Argument[2].Element", "Argument[0].Element", "value", "manual"] - ["org.apache.commons.collections.collection", "CompositeCollection$CollectionMutator", True, "addAll", "", "", "Argument[2].Element", "Argument[1].Element.Element", "value", "manual"] - - ["org.apache.commons.collections.collection", "IndexedCollection", True, "IndexedCollection", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.collection", "IndexedCollection", True, "get", "", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections.collection", "IndexedCollection", True, "IndexedCollection", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.collection", "IndexedCollection", True, "get", "", "", "Argument[this].Element", "ReturnValue", "value", "manual"] - ["org.apache.commons.collections.collection", "IndexedCollection", True, "nonUniqueIndexedCollection", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections.collection", "IndexedCollection", True, "uniqueIndexedCollection", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections.collection", "IndexedCollection", True, "values", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections.collection", "IndexedCollection", True, "values", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections.collection", "PredicatedCollection", True, "predicatedCollection", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections.collection", "PredicatedCollection$Builder", True, "add", "", "", "Argument[0]", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.collection", "PredicatedCollection$Builder", True, "addAll", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.collection", "PredicatedCollection$Builder", True, "createPredicatedBag", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections.collection", "PredicatedCollection$Builder", True, "add", "", "", "Argument[0]", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.collection", "PredicatedCollection$Builder", True, "addAll", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.collection", "PredicatedCollection$Builder", True, "createPredicatedBag", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections.collection", "PredicatedCollection$Builder", True, "createPredicatedBag", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections.collection", "PredicatedCollection$Builder", True, "createPredicatedList", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections.collection", "PredicatedCollection$Builder", True, "createPredicatedList", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections.collection", "PredicatedCollection$Builder", True, "createPredicatedList", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections.collection", "PredicatedCollection$Builder", True, "createPredicatedMultiSet", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections.collection", "PredicatedCollection$Builder", True, "createPredicatedMultiSet", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections.collection", "PredicatedCollection$Builder", True, "createPredicatedMultiSet", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections.collection", "PredicatedCollection$Builder", True, "createPredicatedQueue", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections.collection", "PredicatedCollection$Builder", True, "createPredicatedQueue", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections.collection", "PredicatedCollection$Builder", True, "createPredicatedQueue", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections.collection", "PredicatedCollection$Builder", True, "createPredicatedSet", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections.collection", "PredicatedCollection$Builder", True, "createPredicatedSet", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections.collection", "PredicatedCollection$Builder", True, "createPredicatedSet", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections.collection", "PredicatedCollection$Builder", True, "rejectedElements", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections.collection", "PredicatedCollection$Builder", True, "rejectedElements", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections.collection", "SynchronizedCollection", True, "synchronizedCollection", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections.collection", "TransformedCollection", True, "transformingCollection", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections.collection", "UnmodifiableBoundedCollection", True, "unmodifiableBoundedCollection", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] diff --git a/java/ql/lib/ext/org.apache.commons.collections.iterators.model.yml b/java/ql/lib/ext/org.apache.commons.collections.iterators.model.yml index 73509f98b1a..eb51d6e77b8 100644 --- a/java/ql/lib/ext/org.apache.commons.collections.iterators.model.yml +++ b/java/ql/lib/ext/org.apache.commons.collections.iterators.model.yml @@ -4,78 +4,78 @@ extensions: extensible: summaryModel data: # Note that when lambdas are supported we should have more models for TransformIterator - - ["org.apache.commons.collections.iterators", "AbstractIteratorDecorator", True, "AbstractIteratorDecorator", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.iterators", "AbstractListIteratorDecorator", True, "AbstractListIteratorDecorator", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.iterators", "AbstractListIteratorDecorator", True, "getListIterator", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections.iterators", "AbstractMapIteratorDecorator", True, "AbstractMapIteratorDecorator", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.iterators", "AbstractMapIteratorDecorator", True, "AbstractMapIteratorDecorator", "", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections.iterators", "AbstractMapIteratorDecorator", True, "getMapIterator", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections.iterators", "AbstractMapIteratorDecorator", True, "getMapIterator", "", "", "Argument[-1].MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["org.apache.commons.collections.iterators", "AbstractOrderedMapIteratorDecorator", True, "AbstractOrderedMapIteratorDecorator", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.iterators", "AbstractOrderedMapIteratorDecorator", True, "AbstractOrderedMapIteratorDecorator", "", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections.iterators", "AbstractOrderedMapIteratorDecorator", True, "getOrderedMapIterator", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections.iterators", "AbstractOrderedMapIteratorDecorator", True, "getOrderedMapIterator", "", "", "Argument[-1].MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["org.apache.commons.collections.iterators", "AbstractUntypedIteratorDecorator", True, "AbstractUntypedIteratorDecorator", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.iterators", "AbstractUntypedIteratorDecorator", True, "getIterator", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections.iterators", "ArrayIterator", True, "ArrayIterator", "", "", "Argument[0].ArrayElement", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.iterators", "ArrayIterator", True, "getArray", "", "", "Argument[-1].Element", "ReturnValue.ArrayElement", "value", "manual"] - - ["org.apache.commons.collections.iterators", "ArrayListIterator", True, "ArrayListIterator", "", "", "Argument[0].ArrayElement", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.iterators", "BoundedIterator", True, "BoundedIterator", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.iterators", "CollatingIterator", True, "CollatingIterator", "(Comparator,Collection)", "", "Argument[1].Element.Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.iterators", "CollatingIterator", True, "CollatingIterator", "(Comparator,Iterator,Iterator)", "", "Argument[1].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.iterators", "CollatingIterator", True, "CollatingIterator", "(Comparator,Iterator,Iterator)", "", "Argument[2].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.iterators", "CollatingIterator", True, "CollatingIterator", "(Comparator,Iterator[])", "", "Argument[1].ArrayElement.Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.iterators", "CollatingIterator", True, "addIterator", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.iterators", "CollatingIterator", True, "getIterators", "", "", "Argument[-1].Element", "ReturnValue.Element.Element", "value", "manual"] - - ["org.apache.commons.collections.iterators", "CollatingIterator", True, "setIterator", "", "", "Argument[1].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.iterators", "EnumerationIterator", True, "EnumerationIterator", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.iterators", "EnumerationIterator", True, "getEnumeration", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections.iterators", "EnumerationIterator", True, "setEnumeration", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.iterators", "FilterIterator", True, "FilterIterator", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.iterators", "FilterIterator", True, "getIterator", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections.iterators", "FilterIterator", True, "setIterator", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.iterators", "FilterListIterator", True, "FilterListIterator", "(ListIterator)", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.iterators", "FilterListIterator", True, "FilterListIterator", "(ListIterator,Predicate)", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.iterators", "FilterListIterator", True, "getListIterator", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections.iterators", "FilterListIterator", True, "setListIterator", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.iterators", "IteratorChain", True, "IteratorChain", "(Collection)", "", "Argument[0].Element.Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.iterators", "IteratorChain", True, "IteratorChain", "(Iterator)", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.iterators", "IteratorChain", True, "IteratorChain", "(Iterator,Iterator)", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.iterators", "IteratorChain", True, "IteratorChain", "(Iterator,Iterator)", "", "Argument[1].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.iterators", "IteratorChain", True, "IteratorChain", "(Iterator[])", "", "Argument[0].ArrayElement.Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.iterators", "IteratorChain", True, "addIterator", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.iterators", "IteratorEnumeration", True, "IteratorEnumeration", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.iterators", "IteratorEnumeration", True, "getIterator", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections.iterators", "IteratorEnumeration", True, "setIterator", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.iterators", "IteratorIterable", True, "IteratorIterable", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.iterators", "ListIteratorWrapper", True, "ListIteratorWrapper", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.iterators", "LoopingIterator", True, "LoopingIterator", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.iterators", "LoopingListIterator", True, "LoopingListIterator", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.iterators", "ObjectArrayIterator", True, "ObjectArrayIterator", "", "", "Argument[0].ArrayElement", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.iterators", "ObjectArrayIterator", True, "getArray", "", "", "Argument[-1].Element", "ReturnValue.ArrayElement", "value", "manual"] - - ["org.apache.commons.collections.iterators", "ObjectArrayListIterator", True, "ObjectArrayListIterator", "", "", "Argument[0].ArrayElement", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.iterators", "PeekingIterator", True, "PeekingIterator", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.iterators", "PeekingIterator", True, "element", "", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections.iterators", "PeekingIterator", True, "peek", "", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections.iterators", "AbstractIteratorDecorator", True, "AbstractIteratorDecorator", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.iterators", "AbstractListIteratorDecorator", True, "AbstractListIteratorDecorator", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.iterators", "AbstractListIteratorDecorator", True, "getListIterator", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections.iterators", "AbstractMapIteratorDecorator", True, "AbstractMapIteratorDecorator", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.iterators", "AbstractMapIteratorDecorator", True, "AbstractMapIteratorDecorator", "", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections.iterators", "AbstractMapIteratorDecorator", True, "getMapIterator", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections.iterators", "AbstractMapIteratorDecorator", True, "getMapIterator", "", "", "Argument[this].MapValue", "ReturnValue.MapValue", "value", "manual"] + - ["org.apache.commons.collections.iterators", "AbstractOrderedMapIteratorDecorator", True, "AbstractOrderedMapIteratorDecorator", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.iterators", "AbstractOrderedMapIteratorDecorator", True, "AbstractOrderedMapIteratorDecorator", "", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections.iterators", "AbstractOrderedMapIteratorDecorator", True, "getOrderedMapIterator", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections.iterators", "AbstractOrderedMapIteratorDecorator", True, "getOrderedMapIterator", "", "", "Argument[this].MapValue", "ReturnValue.MapValue", "value", "manual"] + - ["org.apache.commons.collections.iterators", "AbstractUntypedIteratorDecorator", True, "AbstractUntypedIteratorDecorator", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.iterators", "AbstractUntypedIteratorDecorator", True, "getIterator", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections.iterators", "ArrayIterator", True, "ArrayIterator", "", "", "Argument[0].ArrayElement", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.iterators", "ArrayIterator", True, "getArray", "", "", "Argument[this].Element", "ReturnValue.ArrayElement", "value", "manual"] + - ["org.apache.commons.collections.iterators", "ArrayListIterator", True, "ArrayListIterator", "", "", "Argument[0].ArrayElement", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.iterators", "BoundedIterator", True, "BoundedIterator", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.iterators", "CollatingIterator", True, "CollatingIterator", "(Comparator,Collection)", "", "Argument[1].Element.Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.iterators", "CollatingIterator", True, "CollatingIterator", "(Comparator,Iterator,Iterator)", "", "Argument[1].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.iterators", "CollatingIterator", True, "CollatingIterator", "(Comparator,Iterator,Iterator)", "", "Argument[2].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.iterators", "CollatingIterator", True, "CollatingIterator", "(Comparator,Iterator[])", "", "Argument[1].ArrayElement.Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.iterators", "CollatingIterator", True, "addIterator", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.iterators", "CollatingIterator", True, "getIterators", "", "", "Argument[this].Element", "ReturnValue.Element.Element", "value", "manual"] + - ["org.apache.commons.collections.iterators", "CollatingIterator", True, "setIterator", "", "", "Argument[1].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.iterators", "EnumerationIterator", True, "EnumerationIterator", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.iterators", "EnumerationIterator", True, "getEnumeration", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections.iterators", "EnumerationIterator", True, "setEnumeration", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.iterators", "FilterIterator", True, "FilterIterator", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.iterators", "FilterIterator", True, "getIterator", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections.iterators", "FilterIterator", True, "setIterator", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.iterators", "FilterListIterator", True, "FilterListIterator", "(ListIterator)", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.iterators", "FilterListIterator", True, "FilterListIterator", "(ListIterator,Predicate)", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.iterators", "FilterListIterator", True, "getListIterator", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections.iterators", "FilterListIterator", True, "setListIterator", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.iterators", "IteratorChain", True, "IteratorChain", "(Collection)", "", "Argument[0].Element.Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.iterators", "IteratorChain", True, "IteratorChain", "(Iterator)", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.iterators", "IteratorChain", True, "IteratorChain", "(Iterator,Iterator)", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.iterators", "IteratorChain", True, "IteratorChain", "(Iterator,Iterator)", "", "Argument[1].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.iterators", "IteratorChain", True, "IteratorChain", "(Iterator[])", "", "Argument[0].ArrayElement.Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.iterators", "IteratorChain", True, "addIterator", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.iterators", "IteratorEnumeration", True, "IteratorEnumeration", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.iterators", "IteratorEnumeration", True, "getIterator", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections.iterators", "IteratorEnumeration", True, "setIterator", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.iterators", "IteratorIterable", True, "IteratorIterable", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.iterators", "ListIteratorWrapper", True, "ListIteratorWrapper", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.iterators", "LoopingIterator", True, "LoopingIterator", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.iterators", "LoopingListIterator", True, "LoopingListIterator", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.iterators", "ObjectArrayIterator", True, "ObjectArrayIterator", "", "", "Argument[0].ArrayElement", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.iterators", "ObjectArrayIterator", True, "getArray", "", "", "Argument[this].Element", "ReturnValue.ArrayElement", "value", "manual"] + - ["org.apache.commons.collections.iterators", "ObjectArrayListIterator", True, "ObjectArrayListIterator", "", "", "Argument[0].ArrayElement", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.iterators", "PeekingIterator", True, "PeekingIterator", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.iterators", "PeekingIterator", True, "element", "", "", "Argument[this].Element", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections.iterators", "PeekingIterator", True, "peek", "", "", "Argument[this].Element", "ReturnValue", "value", "manual"] - ["org.apache.commons.collections.iterators", "PeekingIterator", True, "peekingIterator", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections.iterators", "PermutationIterator", True, "PermutationIterator", "", "", "Argument[0].Element", "Argument[-1].Element.Element", "value", "manual"] - - ["org.apache.commons.collections.iterators", "PushbackIterator", True, "PushbackIterator", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.iterators", "PushbackIterator", True, "pushback", "", "", "Argument[0]", "Argument[-1].Element", "value", "manual"] + - ["org.apache.commons.collections.iterators", "PermutationIterator", True, "PermutationIterator", "", "", "Argument[0].Element", "Argument[this].Element.Element", "value", "manual"] + - ["org.apache.commons.collections.iterators", "PushbackIterator", True, "PushbackIterator", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.iterators", "PushbackIterator", True, "pushback", "", "", "Argument[0]", "Argument[this].Element", "value", "manual"] - ["org.apache.commons.collections.iterators", "PushbackIterator", True, "pushbackIterator", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections.iterators", "ReverseListIterator", True, "ReverseListIterator", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.iterators", "SingletonIterator", True, "SingletonIterator", "", "", "Argument[0]", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.iterators", "SingletonListIterator", True, "SingletonListIterator", "", "", "Argument[0]", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.iterators", "SkippingIterator", True, "SkippingIterator", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.iterators", "UniqueFilterIterator", True, "UniqueFilterIterator", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] + - ["org.apache.commons.collections.iterators", "ReverseListIterator", True, "ReverseListIterator", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.iterators", "SingletonIterator", True, "SingletonIterator", "", "", "Argument[0]", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.iterators", "SingletonListIterator", True, "SingletonListIterator", "", "", "Argument[0]", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.iterators", "SkippingIterator", True, "SkippingIterator", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.iterators", "UniqueFilterIterator", True, "UniqueFilterIterator", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] - ["org.apache.commons.collections.iterators", "UnmodifiableIterator", True, "unmodifiableIterator", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections.iterators", "UnmodifiableListIterator", True, "umodifiableListIterator", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections.iterators", "UnmodifiableMapIterator", True, "unmodifiableMapIterator", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections.iterators", "UnmodifiableMapIterator", True, "unmodifiableMapIterator", "", "", "Argument[0].MapValue", "ReturnValue.MapValue", "value", "manual"] - ["org.apache.commons.collections.iterators", "UnmodifiableOrderedMapIterator", True, "unmodifiableOrderedMapIterator", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections.iterators", "UnmodifiableOrderedMapIterator", True, "unmodifiableOrderedMapIterator", "", "", "Argument[0].MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["org.apache.commons.collections.iterators", "ZippingIterator", True, "ZippingIterator", "(Iterator,Iterator)", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.iterators", "ZippingIterator", True, "ZippingIterator", "(Iterator,Iterator)", "", "Argument[1].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.iterators", "ZippingIterator", True, "ZippingIterator", "(Iterator,Iterator,Iterator)", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.iterators", "ZippingIterator", True, "ZippingIterator", "(Iterator,Iterator,Iterator)", "", "Argument[1].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.iterators", "ZippingIterator", True, "ZippingIterator", "(Iterator,Iterator,Iterator)", "", "Argument[2].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.iterators", "ZippingIterator", True, "ZippingIterator", "(Iterator[])", "", "Argument[0].ArrayElement.Element", "Argument[-1].Element", "value", "manual"] + - ["org.apache.commons.collections.iterators", "ZippingIterator", True, "ZippingIterator", "(Iterator,Iterator)", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.iterators", "ZippingIterator", True, "ZippingIterator", "(Iterator,Iterator)", "", "Argument[1].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.iterators", "ZippingIterator", True, "ZippingIterator", "(Iterator,Iterator,Iterator)", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.iterators", "ZippingIterator", True, "ZippingIterator", "(Iterator,Iterator,Iterator)", "", "Argument[1].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.iterators", "ZippingIterator", True, "ZippingIterator", "(Iterator,Iterator,Iterator)", "", "Argument[2].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.iterators", "ZippingIterator", True, "ZippingIterator", "(Iterator[])", "", "Argument[0].ArrayElement.Element", "Argument[this].Element", "value", "manual"] diff --git a/java/ql/lib/ext/org.apache.commons.collections.keyvalue.model.yml b/java/ql/lib/ext/org.apache.commons.collections.keyvalue.model.yml index d2c3e5652b5..cda0bdb2420 100644 --- a/java/ql/lib/ext/org.apache.commons.collections.keyvalue.model.yml +++ b/java/ql/lib/ext/org.apache.commons.collections.keyvalue.model.yml @@ -6,55 +6,55 @@ extensions: # Note that when lambdas are supported we should model the package `org.apache.commons.collections4.functors`, # and when more general callable flow is supported we should model the package # `org.apache.commons.collections4.sequence`. - - ["org.apache.commons.collections.keyvalue", "AbstractKeyValue", True, "AbstractKeyValue", "", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections.keyvalue", "AbstractKeyValue", True, "AbstractKeyValue", "", "", "Argument[1]", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections.keyvalue", "AbstractKeyValue", True, "setKey", "", "", "Argument[-1].MapKey", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections.keyvalue", "AbstractKeyValue", True, "setKey", "", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections.keyvalue", "AbstractKeyValue", True, "setValue", "", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections.keyvalue", "AbstractKeyValue", True, "setValue", "", "", "Argument[0]", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections.keyvalue", "AbstractMapEntry", True, "AbstractMapEntry", "", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections.keyvalue", "AbstractMapEntry", True, "AbstractMapEntry", "", "", "Argument[1]", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections.keyvalue", "AbstractMapEntryDecorator", True, "AbstractMapEntryDecorator", "", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections.keyvalue", "AbstractMapEntryDecorator", True, "AbstractMapEntryDecorator", "", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections.keyvalue", "AbstractMapEntryDecorator", True, "getMapEntry", "", "", "Argument[-1].MapKey", "ReturnValue.MapKey", "value", "manual"] - - ["org.apache.commons.collections.keyvalue", "AbstractMapEntryDecorator", True, "getMapEntry", "", "", "Argument[-1].MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["org.apache.commons.collections.keyvalue", "DefaultKeyValue", True, "DefaultKeyValue", "(Entry)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections.keyvalue", "DefaultKeyValue", True, "DefaultKeyValue", "(Entry)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections.keyvalue", "DefaultKeyValue", True, "DefaultKeyValue", "(KeyValue)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections.keyvalue", "DefaultKeyValue", True, "DefaultKeyValue", "(KeyValue)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections.keyvalue", "DefaultKeyValue", True, "DefaultKeyValue", "(Object,Object)", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections.keyvalue", "DefaultKeyValue", True, "DefaultKeyValue", "(Object,Object)", "", "Argument[1]", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections.keyvalue", "DefaultKeyValue", True, "toMapEntry", "", "", "Argument[-1].MapKey", "ReturnValue.MapKey", "value", "manual"] - - ["org.apache.commons.collections.keyvalue", "DefaultKeyValue", True, "toMapEntry", "", "", "Argument[-1].MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["org.apache.commons.collections.keyvalue", "DefaultMapEntry", True, "DefaultMapEntry", "(Entry)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections.keyvalue", "DefaultMapEntry", True, "DefaultMapEntry", "(Entry)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections.keyvalue", "DefaultMapEntry", True, "DefaultMapEntry", "(KeyValue)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections.keyvalue", "DefaultMapEntry", True, "DefaultMapEntry", "(KeyValue)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections.keyvalue", "DefaultMapEntry", True, "DefaultMapEntry", "(Object,Object)", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections.keyvalue", "DefaultMapEntry", True, "DefaultMapEntry", "(Object,Object)", "", "Argument[1]", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections.keyvalue", "MultiKey", True, "MultiKey", "(Object,Object)", "", "Argument[0]", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.keyvalue", "MultiKey", True, "MultiKey", "(Object,Object)", "", "Argument[1]", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.keyvalue", "MultiKey", True, "MultiKey", "(Object,Object,Object)", "", "Argument[0]", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.keyvalue", "MultiKey", True, "MultiKey", "(Object,Object,Object)", "", "Argument[1]", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.keyvalue", "MultiKey", True, "MultiKey", "(Object,Object,Object)", "", "Argument[2]", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.keyvalue", "MultiKey", True, "MultiKey", "(Object,Object,Object,Object)", "", "Argument[0]", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.keyvalue", "MultiKey", True, "MultiKey", "(Object,Object,Object,Object)", "", "Argument[1]", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.keyvalue", "MultiKey", True, "MultiKey", "(Object,Object,Object,Object)", "", "Argument[2]", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.keyvalue", "MultiKey", True, "MultiKey", "(Object,Object,Object,Object)", "", "Argument[3]", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.keyvalue", "MultiKey", True, "MultiKey", "(Object,Object,Object,Object,Object)", "", "Argument[0]", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.keyvalue", "MultiKey", True, "MultiKey", "(Object,Object,Object,Object,Object)", "", "Argument[1]", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.keyvalue", "MultiKey", True, "MultiKey", "(Object,Object,Object,Object,Object)", "", "Argument[2]", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.keyvalue", "MultiKey", True, "MultiKey", "(Object,Object,Object,Object,Object)", "", "Argument[3]", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.keyvalue", "MultiKey", True, "MultiKey", "(Object,Object,Object,Object,Object)", "", "Argument[4]", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.keyvalue", "MultiKey", True, "MultiKey", "(Object[])", "", "Argument[0].ArrayElement", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.keyvalue", "MultiKey", True, "MultiKey", "(Object[],boolean)", "", "Argument[0].ArrayElement", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.keyvalue", "MultiKey", True, "getKey", "", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections.keyvalue", "MultiKey", True, "getKeys", "", "", "Argument[-1].Element", "ReturnValue.ArrayElement", "value", "manual"] - - ["org.apache.commons.collections.keyvalue", "TiedMapEntry", True, "TiedMapEntry", "", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections.keyvalue", "TiedMapEntry", True, "TiedMapEntry", "", "", "Argument[1]", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections.keyvalue", "UnmodifiableMapEntry", True, "UnmodifiableMapEntry", "(Entry)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections.keyvalue", "UnmodifiableMapEntry", True, "UnmodifiableMapEntry", "(Entry)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections.keyvalue", "UnmodifiableMapEntry", True, "UnmodifiableMapEntry", "(KeyValue)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections.keyvalue", "UnmodifiableMapEntry", True, "UnmodifiableMapEntry", "(KeyValue)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections.keyvalue", "UnmodifiableMapEntry", True, "UnmodifiableMapEntry", "(Object,Object)", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections.keyvalue", "UnmodifiableMapEntry", True, "UnmodifiableMapEntry", "(Object,Object)", "", "Argument[1]", "Argument[-1].MapValue", "value", "manual"] + - ["org.apache.commons.collections.keyvalue", "AbstractKeyValue", True, "AbstractKeyValue", "", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections.keyvalue", "AbstractKeyValue", True, "AbstractKeyValue", "", "", "Argument[1]", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections.keyvalue", "AbstractKeyValue", True, "setKey", "", "", "Argument[this].MapKey", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections.keyvalue", "AbstractKeyValue", True, "setKey", "", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections.keyvalue", "AbstractKeyValue", True, "setValue", "", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections.keyvalue", "AbstractKeyValue", True, "setValue", "", "", "Argument[0]", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections.keyvalue", "AbstractMapEntry", True, "AbstractMapEntry", "", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections.keyvalue", "AbstractMapEntry", True, "AbstractMapEntry", "", "", "Argument[1]", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections.keyvalue", "AbstractMapEntryDecorator", True, "AbstractMapEntryDecorator", "", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections.keyvalue", "AbstractMapEntryDecorator", True, "AbstractMapEntryDecorator", "", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections.keyvalue", "AbstractMapEntryDecorator", True, "getMapEntry", "", "", "Argument[this].MapKey", "ReturnValue.MapKey", "value", "manual"] + - ["org.apache.commons.collections.keyvalue", "AbstractMapEntryDecorator", True, "getMapEntry", "", "", "Argument[this].MapValue", "ReturnValue.MapValue", "value", "manual"] + - ["org.apache.commons.collections.keyvalue", "DefaultKeyValue", True, "DefaultKeyValue", "(Entry)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections.keyvalue", "DefaultKeyValue", True, "DefaultKeyValue", "(Entry)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections.keyvalue", "DefaultKeyValue", True, "DefaultKeyValue", "(KeyValue)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections.keyvalue", "DefaultKeyValue", True, "DefaultKeyValue", "(KeyValue)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections.keyvalue", "DefaultKeyValue", True, "DefaultKeyValue", "(Object,Object)", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections.keyvalue", "DefaultKeyValue", True, "DefaultKeyValue", "(Object,Object)", "", "Argument[1]", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections.keyvalue", "DefaultKeyValue", True, "toMapEntry", "", "", "Argument[this].MapKey", "ReturnValue.MapKey", "value", "manual"] + - ["org.apache.commons.collections.keyvalue", "DefaultKeyValue", True, "toMapEntry", "", "", "Argument[this].MapValue", "ReturnValue.MapValue", "value", "manual"] + - ["org.apache.commons.collections.keyvalue", "DefaultMapEntry", True, "DefaultMapEntry", "(Entry)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections.keyvalue", "DefaultMapEntry", True, "DefaultMapEntry", "(Entry)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections.keyvalue", "DefaultMapEntry", True, "DefaultMapEntry", "(KeyValue)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections.keyvalue", "DefaultMapEntry", True, "DefaultMapEntry", "(KeyValue)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections.keyvalue", "DefaultMapEntry", True, "DefaultMapEntry", "(Object,Object)", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections.keyvalue", "DefaultMapEntry", True, "DefaultMapEntry", "(Object,Object)", "", "Argument[1]", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections.keyvalue", "MultiKey", True, "MultiKey", "(Object,Object)", "", "Argument[0]", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.keyvalue", "MultiKey", True, "MultiKey", "(Object,Object)", "", "Argument[1]", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.keyvalue", "MultiKey", True, "MultiKey", "(Object,Object,Object)", "", "Argument[0]", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.keyvalue", "MultiKey", True, "MultiKey", "(Object,Object,Object)", "", "Argument[1]", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.keyvalue", "MultiKey", True, "MultiKey", "(Object,Object,Object)", "", "Argument[2]", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.keyvalue", "MultiKey", True, "MultiKey", "(Object,Object,Object,Object)", "", "Argument[0]", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.keyvalue", "MultiKey", True, "MultiKey", "(Object,Object,Object,Object)", "", "Argument[1]", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.keyvalue", "MultiKey", True, "MultiKey", "(Object,Object,Object,Object)", "", "Argument[2]", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.keyvalue", "MultiKey", True, "MultiKey", "(Object,Object,Object,Object)", "", "Argument[3]", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.keyvalue", "MultiKey", True, "MultiKey", "(Object,Object,Object,Object,Object)", "", "Argument[0]", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.keyvalue", "MultiKey", True, "MultiKey", "(Object,Object,Object,Object,Object)", "", "Argument[1]", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.keyvalue", "MultiKey", True, "MultiKey", "(Object,Object,Object,Object,Object)", "", "Argument[2]", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.keyvalue", "MultiKey", True, "MultiKey", "(Object,Object,Object,Object,Object)", "", "Argument[3]", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.keyvalue", "MultiKey", True, "MultiKey", "(Object,Object,Object,Object,Object)", "", "Argument[4]", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.keyvalue", "MultiKey", True, "MultiKey", "(Object[])", "", "Argument[0].ArrayElement", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.keyvalue", "MultiKey", True, "MultiKey", "(Object[],boolean)", "", "Argument[0].ArrayElement", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.keyvalue", "MultiKey", True, "getKey", "", "", "Argument[this].Element", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections.keyvalue", "MultiKey", True, "getKeys", "", "", "Argument[this].Element", "ReturnValue.ArrayElement", "value", "manual"] + - ["org.apache.commons.collections.keyvalue", "TiedMapEntry", True, "TiedMapEntry", "", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections.keyvalue", "TiedMapEntry", True, "TiedMapEntry", "", "", "Argument[1]", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections.keyvalue", "UnmodifiableMapEntry", True, "UnmodifiableMapEntry", "(Entry)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections.keyvalue", "UnmodifiableMapEntry", True, "UnmodifiableMapEntry", "(Entry)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections.keyvalue", "UnmodifiableMapEntry", True, "UnmodifiableMapEntry", "(KeyValue)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections.keyvalue", "UnmodifiableMapEntry", True, "UnmodifiableMapEntry", "(KeyValue)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections.keyvalue", "UnmodifiableMapEntry", True, "UnmodifiableMapEntry", "(Object,Object)", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections.keyvalue", "UnmodifiableMapEntry", True, "UnmodifiableMapEntry", "(Object,Object)", "", "Argument[1]", "Argument[this].MapValue", "value", "manual"] diff --git a/java/ql/lib/ext/org.apache.commons.collections.list.model.yml b/java/ql/lib/ext/org.apache.commons.collections.list.model.yml index 5fd3b418248..98ab82c4642 100644 --- a/java/ql/lib/ext/org.apache.commons.collections.list.model.yml +++ b/java/ql/lib/ext/org.apache.commons.collections.list.model.yml @@ -4,25 +4,25 @@ extensions: extensible: summaryModel data: # Note that when lambdas are supported we should have more models for TransformedList - - ["org.apache.commons.collections.list", "AbstractLinkedList", True, "AbstractLinkedList", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.list", "AbstractLinkedList", True, "addFirst", "", "", "Argument[0]", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.list", "AbstractLinkedList", True, "addLast", "", "", "Argument[0]", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.list", "AbstractLinkedList", True, "getFirst", "", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections.list", "AbstractLinkedList", True, "getLast", "", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections.list", "AbstractLinkedList", True, "removeFirst", "", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections.list", "AbstractLinkedList", True, "removeLast", "", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections.list", "AbstractListDecorator", True, "AbstractListDecorator", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.list", "AbstractSerializableListDecorator", True, "AbstractSerializableListDecorator", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.list", "CursorableLinkedList", True, "CursorableLinkedList", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.list", "CursorableLinkedList", True, "cursor", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections.list", "AbstractLinkedList", True, "AbstractLinkedList", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.list", "AbstractLinkedList", True, "addFirst", "", "", "Argument[0]", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.list", "AbstractLinkedList", True, "addLast", "", "", "Argument[0]", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.list", "AbstractLinkedList", True, "getFirst", "", "", "Argument[this].Element", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections.list", "AbstractLinkedList", True, "getLast", "", "", "Argument[this].Element", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections.list", "AbstractLinkedList", True, "removeFirst", "", "", "Argument[this].Element", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections.list", "AbstractLinkedList", True, "removeLast", "", "", "Argument[this].Element", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections.list", "AbstractListDecorator", True, "AbstractListDecorator", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.list", "AbstractSerializableListDecorator", True, "AbstractSerializableListDecorator", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.list", "CursorableLinkedList", True, "CursorableLinkedList", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.list", "CursorableLinkedList", True, "cursor", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections.list", "FixedSizeList", True, "fixedSizeList", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections.list", "GrowthList", True, "growthList", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections.list", "LazyList", True, "lazyList", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections.list", "NodeCachingLinkedList", True, "NodeCachingLinkedList", "(Collection)", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] + - ["org.apache.commons.collections.list", "NodeCachingLinkedList", True, "NodeCachingLinkedList", "(Collection)", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] - ["org.apache.commons.collections.list", "PredicatedList", True, "predicatedList", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections.list", "SetUniqueList", True, "asSet", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections.list", "SetUniqueList", True, "asSet", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections.list", "SetUniqueList", True, "setUniqueList", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections.list", "TransformedList", True, "transformingList", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections.list", "TreeList", True, "TreeList", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.list", "UnmodifiableList", True, "UnmodifiableList", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] + - ["org.apache.commons.collections.list", "TreeList", True, "TreeList", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.list", "UnmodifiableList", True, "UnmodifiableList", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] - ["org.apache.commons.collections.list", "UnmodifiableList", True, "unmodifiableList", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] diff --git a/java/ql/lib/ext/org.apache.commons.collections.map.model.yml b/java/ql/lib/ext/org.apache.commons.collections.map.model.yml index 4e0ed31d72f..84497bf2312 100644 --- a/java/ql/lib/ext/org.apache.commons.collections.map.model.yml +++ b/java/ql/lib/ext/org.apache.commons.collections.map.model.yml @@ -4,122 +4,122 @@ extensions: extensible: summaryModel data: # Note that when lambdas are supported we should have more models for DefaultedMap, LazyMap, TransformedMap, TransformedSortedMap - - ["org.apache.commons.collections.map", "AbstractHashedMap", True, "AbstractHashedMap", "(Map)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections.map", "AbstractHashedMap", True, "AbstractHashedMap", "(Map)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections.map", "AbstractLinkedMap", True, "AbstractLinkedMap", "(Map)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections.map", "AbstractLinkedMap", True, "AbstractLinkedMap", "(Map)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections.map", "AbstractMapDecorator", True, "AbstractMapDecorator", "(Map)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections.map", "AbstractMapDecorator", True, "AbstractMapDecorator", "(Map)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections.map", "AbstractMapDecorator", True, "decorated", "", "", "Argument[-1].MapKey", "ReturnValue.MapKey", "value", "manual"] - - ["org.apache.commons.collections.map", "AbstractMapDecorator", True, "decorated", "", "", "Argument[-1].MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["org.apache.commons.collections.map", "AbstractOrderedMapDecorator", True, "AbstractOrderedMapDecorator", "(OrderedMap)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections.map", "AbstractOrderedMapDecorator", True, "AbstractOrderedMapDecorator", "(OrderedMap)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections.map", "AbstractSortedMapDecorator", True, "AbstractSortedMapDecorator", "(SortedMap)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections.map", "AbstractSortedMapDecorator", True, "AbstractSortedMapDecorator", "(SortedMap)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections.map", "CaseInsensitiveMap", True, "CaseInsensitiveMap", "(Map)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections.map", "CaseInsensitiveMap", True, "CaseInsensitiveMap", "(Map)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections.map", "CompositeMap", True, "CompositeMap", "(Map,Map)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections.map", "CompositeMap", True, "CompositeMap", "(Map,Map)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections.map", "CompositeMap", True, "CompositeMap", "(Map,Map)", "", "Argument[1].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections.map", "CompositeMap", True, "CompositeMap", "(Map,Map)", "", "Argument[1].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections.map", "CompositeMap", True, "CompositeMap", "(Map,Map,MapMutator)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections.map", "CompositeMap", True, "CompositeMap", "(Map,Map,MapMutator)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections.map", "CompositeMap", True, "CompositeMap", "(Map,Map,MapMutator)", "", "Argument[1].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections.map", "CompositeMap", True, "CompositeMap", "(Map,Map,MapMutator)", "", "Argument[1].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections.map", "CompositeMap", True, "CompositeMap", "(Map[])", "", "Argument[0].ArrayElement.MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections.map", "CompositeMap", True, "CompositeMap", "(Map[])", "", "Argument[0].ArrayElement.MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections.map", "CompositeMap", True, "CompositeMap", "(Map[],MapMutator)", "", "Argument[0].ArrayElement.MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections.map", "CompositeMap", True, "CompositeMap", "(Map[],MapMutator)", "", "Argument[0].ArrayElement.MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections.map", "CompositeMap", True, "addComposited", "", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections.map", "CompositeMap", True, "addComposited", "", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections.map", "CompositeMap", True, "removeComposited", "", "", "Argument[-1].MapKey", "ReturnValue.MapKey", "value", "manual"] - - ["org.apache.commons.collections.map", "CompositeMap", True, "removeComposited", "", "", "Argument[-1].MapValue", "ReturnValue.MapValue", "value", "manual"] + - ["org.apache.commons.collections.map", "AbstractHashedMap", True, "AbstractHashedMap", "(Map)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections.map", "AbstractHashedMap", True, "AbstractHashedMap", "(Map)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections.map", "AbstractLinkedMap", True, "AbstractLinkedMap", "(Map)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections.map", "AbstractLinkedMap", True, "AbstractLinkedMap", "(Map)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections.map", "AbstractMapDecorator", True, "AbstractMapDecorator", "(Map)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections.map", "AbstractMapDecorator", True, "AbstractMapDecorator", "(Map)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections.map", "AbstractMapDecorator", True, "decorated", "", "", "Argument[this].MapKey", "ReturnValue.MapKey", "value", "manual"] + - ["org.apache.commons.collections.map", "AbstractMapDecorator", True, "decorated", "", "", "Argument[this].MapValue", "ReturnValue.MapValue", "value", "manual"] + - ["org.apache.commons.collections.map", "AbstractOrderedMapDecorator", True, "AbstractOrderedMapDecorator", "(OrderedMap)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections.map", "AbstractOrderedMapDecorator", True, "AbstractOrderedMapDecorator", "(OrderedMap)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections.map", "AbstractSortedMapDecorator", True, "AbstractSortedMapDecorator", "(SortedMap)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections.map", "AbstractSortedMapDecorator", True, "AbstractSortedMapDecorator", "(SortedMap)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections.map", "CaseInsensitiveMap", True, "CaseInsensitiveMap", "(Map)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections.map", "CaseInsensitiveMap", True, "CaseInsensitiveMap", "(Map)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections.map", "CompositeMap", True, "CompositeMap", "(Map,Map)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections.map", "CompositeMap", True, "CompositeMap", "(Map,Map)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections.map", "CompositeMap", True, "CompositeMap", "(Map,Map)", "", "Argument[1].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections.map", "CompositeMap", True, "CompositeMap", "(Map,Map)", "", "Argument[1].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections.map", "CompositeMap", True, "CompositeMap", "(Map,Map,MapMutator)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections.map", "CompositeMap", True, "CompositeMap", "(Map,Map,MapMutator)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections.map", "CompositeMap", True, "CompositeMap", "(Map,Map,MapMutator)", "", "Argument[1].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections.map", "CompositeMap", True, "CompositeMap", "(Map,Map,MapMutator)", "", "Argument[1].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections.map", "CompositeMap", True, "CompositeMap", "(Map[])", "", "Argument[0].ArrayElement.MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections.map", "CompositeMap", True, "CompositeMap", "(Map[])", "", "Argument[0].ArrayElement.MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections.map", "CompositeMap", True, "CompositeMap", "(Map[],MapMutator)", "", "Argument[0].ArrayElement.MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections.map", "CompositeMap", True, "CompositeMap", "(Map[],MapMutator)", "", "Argument[0].ArrayElement.MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections.map", "CompositeMap", True, "addComposited", "", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections.map", "CompositeMap", True, "addComposited", "", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections.map", "CompositeMap", True, "removeComposited", "", "", "Argument[this].MapKey", "ReturnValue.MapKey", "value", "manual"] + - ["org.apache.commons.collections.map", "CompositeMap", True, "removeComposited", "", "", "Argument[this].MapValue", "ReturnValue.MapValue", "value", "manual"] - ["org.apache.commons.collections.map", "CompositeMap", True, "removeComposited", "", "", "Argument[0]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections.map", "DefaultedMap", True, "DefaultedMap", "(Object)", "", "Argument[0]", "Argument[-1].MapValue", "value", "manual"] + - ["org.apache.commons.collections.map", "DefaultedMap", True, "DefaultedMap", "(Object)", "", "Argument[0]", "Argument[this].MapValue", "value", "manual"] - ["org.apache.commons.collections.map", "DefaultedMap", True, "defaultedMap", "", "", "Argument[0].MapKey", "ReturnValue.MapKey", "value", "manual"] - ["org.apache.commons.collections.map", "DefaultedMap", True, "defaultedMap", "", "", "Argument[0].MapValue", "ReturnValue.MapValue", "value", "manual"] - ["org.apache.commons.collections.map", "DefaultedMap", True, "defaultedMap", "(Map,Object)", "", "Argument[1]", "ReturnValue.MapValue", "value", "manual"] - - ["org.apache.commons.collections.map", "EntrySetToMapIteratorAdapter", True, "EntrySetToMapIteratorAdapter", "", "", "Argument[0].Element.MapKey", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.map", "EntrySetToMapIteratorAdapter", True, "EntrySetToMapIteratorAdapter", "", "", "Argument[0].Element.MapValue", "Argument[-1].MapValue", "value", "manual"] + - ["org.apache.commons.collections.map", "EntrySetToMapIteratorAdapter", True, "EntrySetToMapIteratorAdapter", "", "", "Argument[0].Element.MapKey", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.map", "EntrySetToMapIteratorAdapter", True, "EntrySetToMapIteratorAdapter", "", "", "Argument[0].Element.MapValue", "Argument[this].MapValue", "value", "manual"] - ["org.apache.commons.collections.map", "FixedSizeMap", True, "fixedSizeMap", "", "", "Argument[0].MapKey", "ReturnValue.MapKey", "value", "manual"] - ["org.apache.commons.collections.map", "FixedSizeMap", True, "fixedSizeMap", "", "", "Argument[0].MapValue", "ReturnValue.MapValue", "value", "manual"] - ["org.apache.commons.collections.map", "FixedSizeSortedMap", True, "fixedSizeSortedMap", "", "", "Argument[0].MapKey", "ReturnValue.MapKey", "value", "manual"] - ["org.apache.commons.collections.map", "FixedSizeSortedMap", True, "fixedSizeSortedMap", "", "", "Argument[0].MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["org.apache.commons.collections.map", "Flat3Map", True, "Flat3Map", "", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections.map", "Flat3Map", True, "Flat3Map", "", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections.map", "HashedMap", True, "HashedMap", "(Map)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections.map", "HashedMap", True, "HashedMap", "(Map)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections.map", "LRUMap", True, "LRUMap", "(Map)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections.map", "LRUMap", True, "LRUMap", "(Map)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections.map", "LRUMap", True, "LRUMap", "(Map,boolean)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections.map", "LRUMap", True, "LRUMap", "(Map,boolean)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] + - ["org.apache.commons.collections.map", "Flat3Map", True, "Flat3Map", "", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections.map", "Flat3Map", True, "Flat3Map", "", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections.map", "HashedMap", True, "HashedMap", "(Map)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections.map", "HashedMap", True, "HashedMap", "(Map)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections.map", "LRUMap", True, "LRUMap", "(Map)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections.map", "LRUMap", True, "LRUMap", "(Map)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections.map", "LRUMap", True, "LRUMap", "(Map,boolean)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections.map", "LRUMap", True, "LRUMap", "(Map,boolean)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] - ["org.apache.commons.collections.map", "LRUMap", True, "get", "(Object,boolean)", "", "Argument[0].MapValue", "ReturnValue", "value", "manual"] - ["org.apache.commons.collections.map", "LazyMap", True, "lazyMap", "", "", "Argument[0].MapKey", "ReturnValue.MapKey", "value", "manual"] - ["org.apache.commons.collections.map", "LazyMap", True, "lazyMap", "", "", "Argument[0].MapValue", "ReturnValue.MapValue", "value", "manual"] - ["org.apache.commons.collections.map", "LazySortedMap", True, "lazySortedMap", "", "", "Argument[0].MapKey", "ReturnValue.MapKey", "value", "manual"] - ["org.apache.commons.collections.map", "LazySortedMap", True, "lazySortedMap", "", "", "Argument[0].MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["org.apache.commons.collections.map", "LinkedMap", True, "LinkedMap", "(Map)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections.map", "LinkedMap", True, "LinkedMap", "(Map)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections.map", "LinkedMap", True, "asList", "", "", "Argument[-1].MapKey", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections.map", "LinkedMap", True, "get", "(int)", "", "Argument[-1].MapKey", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections.map", "LinkedMap", True, "getValue", "(int)", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections.map", "LinkedMap", True, "remove", "(int)", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections.map", "ListOrderedMap", True, "asList", "", "", "Argument[-1].MapKey", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections.map", "ListOrderedMap", True, "get", "(int)", "", "Argument[-1].MapKey", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections.map", "ListOrderedMap", True, "getValue", "(int)", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections.map", "ListOrderedMap", True, "keyList", "", "", "Argument[-1].MapKey", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections.map", "LinkedMap", True, "LinkedMap", "(Map)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections.map", "LinkedMap", True, "LinkedMap", "(Map)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections.map", "LinkedMap", True, "asList", "", "", "Argument[this].MapKey", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections.map", "LinkedMap", True, "get", "(int)", "", "Argument[this].MapKey", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections.map", "LinkedMap", True, "getValue", "(int)", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections.map", "LinkedMap", True, "remove", "(int)", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections.map", "ListOrderedMap", True, "asList", "", "", "Argument[this].MapKey", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections.map", "ListOrderedMap", True, "get", "(int)", "", "Argument[this].MapKey", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections.map", "ListOrderedMap", True, "getValue", "(int)", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections.map", "ListOrderedMap", True, "keyList", "", "", "Argument[this].MapKey", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections.map", "ListOrderedMap", True, "listOrderedMap", "", "", "Argument[0].MapKey", "ReturnValue.MapKey", "value", "manual"] - ["org.apache.commons.collections.map", "ListOrderedMap", True, "listOrderedMap", "", "", "Argument[0].MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["org.apache.commons.collections.map", "ListOrderedMap", True, "put", "", "", "Argument[1]", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections.map", "ListOrderedMap", True, "put", "", "", "Argument[2]", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections.map", "ListOrderedMap", True, "putAll", "", "", "Argument[1].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections.map", "ListOrderedMap", True, "putAll", "", "", "Argument[1].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections.map", "ListOrderedMap", True, "remove", "(int)", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections.map", "ListOrderedMap", True, "setValue", "", "", "Argument[1]", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections.map", "ListOrderedMap", True, "valueList", "", "", "Argument[-1].MapValue", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections.map", "MultiKeyMap", True, "get", "", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections.map", "MultiKeyMap", True, "put", "", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections.map", "MultiKeyMap", True, "put", "(Object,Object,Object)", "", "Argument[0..1]", "Argument[-1].MapKey.Element", "value", "manual"] - - ["org.apache.commons.collections.map", "MultiKeyMap", True, "put", "(Object,Object,Object)", "", "Argument[2]", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections.map", "MultiKeyMap", True, "put", "(Object,Object,Object,Object)", "", "Argument[0..2]", "Argument[-1].MapKey.Element", "value", "manual"] - - ["org.apache.commons.collections.map", "MultiKeyMap", True, "put", "(Object,Object,Object,Object)", "", "Argument[3]", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections.map", "MultiKeyMap", True, "put", "(Object,Object,Object,Object,Object)", "", "Argument[0..3]", "Argument[-1].MapKey.Element", "value", "manual"] - - ["org.apache.commons.collections.map", "MultiKeyMap", True, "put", "(Object,Object,Object,Object,Object)", "", "Argument[4]", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections.map", "MultiKeyMap", True, "put", "(Object,Object,Object,Object,Object,Object)", "", "Argument[0..4]", "Argument[-1].MapKey.Element", "value", "manual"] - - ["org.apache.commons.collections.map", "MultiKeyMap", True, "put", "(Object,Object,Object,Object,Object,Object)", "", "Argument[5]", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections.map", "MultiKeyMap", True, "removeMultiKey", "", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections.map", "MultiValueMap", True, "getCollection", "", "", "Argument[-1].MapValue.Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections.map", "MultiValueMap", True, "iterator", "()", "", "Argument[-1].MapKey", "ReturnValue.Element.MapKey", "value", "manual"] - - ["org.apache.commons.collections.map", "MultiValueMap", True, "iterator", "()", "", "Argument[-1].MapValue.Element", "ReturnValue.Element.MapValue", "value", "manual"] - - ["org.apache.commons.collections.map", "MultiValueMap", True, "iterator", "(Object)", "", "Argument[-1].MapValue.Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections.map", "ListOrderedMap", True, "put", "", "", "Argument[1]", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections.map", "ListOrderedMap", True, "put", "", "", "Argument[2]", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections.map", "ListOrderedMap", True, "putAll", "", "", "Argument[1].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections.map", "ListOrderedMap", True, "putAll", "", "", "Argument[1].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections.map", "ListOrderedMap", True, "remove", "(int)", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections.map", "ListOrderedMap", True, "setValue", "", "", "Argument[1]", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections.map", "ListOrderedMap", True, "valueList", "", "", "Argument[this].MapValue", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections.map", "MultiKeyMap", True, "get", "", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections.map", "MultiKeyMap", True, "put", "", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections.map", "MultiKeyMap", True, "put", "(Object,Object,Object)", "", "Argument[0..1]", "Argument[this].MapKey.Element", "value", "manual"] + - ["org.apache.commons.collections.map", "MultiKeyMap", True, "put", "(Object,Object,Object)", "", "Argument[2]", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections.map", "MultiKeyMap", True, "put", "(Object,Object,Object,Object)", "", "Argument[0..2]", "Argument[this].MapKey.Element", "value", "manual"] + - ["org.apache.commons.collections.map", "MultiKeyMap", True, "put", "(Object,Object,Object,Object)", "", "Argument[3]", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections.map", "MultiKeyMap", True, "put", "(Object,Object,Object,Object,Object)", "", "Argument[0..3]", "Argument[this].MapKey.Element", "value", "manual"] + - ["org.apache.commons.collections.map", "MultiKeyMap", True, "put", "(Object,Object,Object,Object,Object)", "", "Argument[4]", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections.map", "MultiKeyMap", True, "put", "(Object,Object,Object,Object,Object,Object)", "", "Argument[0..4]", "Argument[this].MapKey.Element", "value", "manual"] + - ["org.apache.commons.collections.map", "MultiKeyMap", True, "put", "(Object,Object,Object,Object,Object,Object)", "", "Argument[5]", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections.map", "MultiKeyMap", True, "removeMultiKey", "", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections.map", "MultiValueMap", True, "getCollection", "", "", "Argument[this].MapValue.Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections.map", "MultiValueMap", True, "iterator", "()", "", "Argument[this].MapKey", "ReturnValue.Element.MapKey", "value", "manual"] + - ["org.apache.commons.collections.map", "MultiValueMap", True, "iterator", "()", "", "Argument[this].MapValue.Element", "ReturnValue.Element.MapValue", "value", "manual"] + - ["org.apache.commons.collections.map", "MultiValueMap", True, "iterator", "(Object)", "", "Argument[this].MapValue.Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections.map", "MultiValueMap", True, "multiValueMap", "", "", "Argument[0].MapKey", "ReturnValue.MapKey", "value", "manual"] - ["org.apache.commons.collections.map", "MultiValueMap", True, "multiValueMap", "", "", "Argument[0].MapValue.Element", "ReturnValue.MapValue.Element", "value", "manual"] - - ["org.apache.commons.collections.map", "MultiValueMap", True, "putAll", "(Map)", "", "Argument[0].MapValue", "Argument[-1].MapValue.Element", "value", "manual"] - - ["org.apache.commons.collections.map", "MultiValueMap", True, "putAll", "(Map)", "", "Argument[0].MapValue.Element", "Argument[-1].MapValue.Element", "value", "manual"] - - ["org.apache.commons.collections.map", "MultiValueMap", True, "putAll", "(Object,Collection)", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections.map", "MultiValueMap", True, "putAll", "(Object,Collection)", "", "Argument[1].Element", "Argument[-1].MapValue.Element", "value", "manual"] - - ["org.apache.commons.collections.map", "MultiValueMap", True, "values", "", "", "Argument[-1].MapValue.Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections.map", "PassiveExpiringMap", True, "PassiveExpiringMap", "(ExpirationPolicy,Map)", "", "Argument[1].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections.map", "PassiveExpiringMap", True, "PassiveExpiringMap", "(ExpirationPolicy,Map)", "", "Argument[1].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections.map", "PassiveExpiringMap", True, "PassiveExpiringMap", "(Map)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections.map", "PassiveExpiringMap", True, "PassiveExpiringMap", "(Map)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections.map", "PassiveExpiringMap", True, "PassiveExpiringMap", "(long,Map)", "", "Argument[1].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections.map", "PassiveExpiringMap", True, "PassiveExpiringMap", "(long,Map)", "", "Argument[1].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections.map", "PassiveExpiringMap", True, "PassiveExpiringMap", "(long,TimeUnit,Map)", "", "Argument[2].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections.map", "PassiveExpiringMap", True, "PassiveExpiringMap", "(long,TimeUnit,Map)", "", "Argument[2].MapValue", "Argument[-1].MapValue", "value", "manual"] + - ["org.apache.commons.collections.map", "MultiValueMap", True, "putAll", "(Map)", "", "Argument[0].MapValue", "Argument[this].MapValue.Element", "value", "manual"] + - ["org.apache.commons.collections.map", "MultiValueMap", True, "putAll", "(Map)", "", "Argument[0].MapValue.Element", "Argument[this].MapValue.Element", "value", "manual"] + - ["org.apache.commons.collections.map", "MultiValueMap", True, "putAll", "(Object,Collection)", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections.map", "MultiValueMap", True, "putAll", "(Object,Collection)", "", "Argument[1].Element", "Argument[this].MapValue.Element", "value", "manual"] + - ["org.apache.commons.collections.map", "MultiValueMap", True, "values", "", "", "Argument[this].MapValue.Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections.map", "PassiveExpiringMap", True, "PassiveExpiringMap", "(ExpirationPolicy,Map)", "", "Argument[1].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections.map", "PassiveExpiringMap", True, "PassiveExpiringMap", "(ExpirationPolicy,Map)", "", "Argument[1].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections.map", "PassiveExpiringMap", True, "PassiveExpiringMap", "(Map)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections.map", "PassiveExpiringMap", True, "PassiveExpiringMap", "(Map)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections.map", "PassiveExpiringMap", True, "PassiveExpiringMap", "(long,Map)", "", "Argument[1].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections.map", "PassiveExpiringMap", True, "PassiveExpiringMap", "(long,Map)", "", "Argument[1].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections.map", "PassiveExpiringMap", True, "PassiveExpiringMap", "(long,TimeUnit,Map)", "", "Argument[2].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections.map", "PassiveExpiringMap", True, "PassiveExpiringMap", "(long,TimeUnit,Map)", "", "Argument[2].MapValue", "Argument[this].MapValue", "value", "manual"] - ["org.apache.commons.collections.map", "PredicatedMap", True, "predicatedMap", "", "", "Argument[0].MapKey", "ReturnValue.MapKey", "value", "manual"] - ["org.apache.commons.collections.map", "PredicatedMap", True, "predicatedMap", "", "", "Argument[0].MapValue", "ReturnValue.MapValue", "value", "manual"] - ["org.apache.commons.collections.map", "PredicatedSortedMap", True, "predicatedSortedMap", "", "", "Argument[0].MapKey", "ReturnValue.MapKey", "value", "manual"] - ["org.apache.commons.collections.map", "PredicatedSortedMap", True, "predicatedSortedMap", "", "", "Argument[0].MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["org.apache.commons.collections.map", "SingletonMap", True, "SingletonMap", "(Entry)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections.map", "SingletonMap", True, "SingletonMap", "(Entry)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections.map", "SingletonMap", True, "SingletonMap", "(KeyValue)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections.map", "SingletonMap", True, "SingletonMap", "(KeyValue)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections.map", "SingletonMap", True, "SingletonMap", "(Map)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections.map", "SingletonMap", True, "SingletonMap", "(Map)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections.map", "SingletonMap", True, "SingletonMap", "(Object,Object)", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections.map", "SingletonMap", True, "SingletonMap", "(Object,Object)", "", "Argument[1]", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections.map", "SingletonMap", True, "setValue", "", "", "Argument[0]", "Argument[-1].MapValue", "value", "manual"] + - ["org.apache.commons.collections.map", "SingletonMap", True, "SingletonMap", "(Entry)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections.map", "SingletonMap", True, "SingletonMap", "(Entry)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections.map", "SingletonMap", True, "SingletonMap", "(KeyValue)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections.map", "SingletonMap", True, "SingletonMap", "(KeyValue)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections.map", "SingletonMap", True, "SingletonMap", "(Map)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections.map", "SingletonMap", True, "SingletonMap", "(Map)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections.map", "SingletonMap", True, "SingletonMap", "(Object,Object)", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections.map", "SingletonMap", True, "SingletonMap", "(Object,Object)", "", "Argument[1]", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections.map", "SingletonMap", True, "setValue", "", "", "Argument[0]", "Argument[this].MapValue", "value", "manual"] - ["org.apache.commons.collections.map", "TransformedMap", True, "transformingMap", "", "", "Argument[0].MapKey", "ReturnValue.MapKey", "value", "manual"] - ["org.apache.commons.collections.map", "TransformedMap", True, "transformingMap", "", "", "Argument[0].MapValue", "ReturnValue.MapValue", "value", "manual"] - ["org.apache.commons.collections.map", "TransformedSortedMap", True, "transformingSortedMap", "", "", "Argument[0].MapKey", "ReturnValue.MapKey", "value", "manual"] diff --git a/java/ql/lib/ext/org.apache.commons.collections.model.yml b/java/ql/lib/ext/org.apache.commons.collections.model.yml index 2df5f5772a4..de52e74b226 100644 --- a/java/ql/lib/ext/org.apache.commons.collections.model.yml +++ b/java/ql/lib/ext/org.apache.commons.collections.model.yml @@ -10,12 +10,12 @@ extensions: # Note that when lambdas are supported we should have more models for populateMap # Note that when lambdas are supported we should have a model for collect, forAllButLastDo, forAllDo, transform # Note that when lambdas are supported we should have a model for forEach, forEachButLast, transformedIterator - - ["org.apache.commons.collections", "ArrayStack", True, "peek", "", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections", "ArrayStack", True, "pop", "", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections", "ArrayStack", True, "push", "", "", "Argument[0]", "Argument[-1].Element", "value", "manual"] + - ["org.apache.commons.collections", "ArrayStack", True, "peek", "", "", "Argument[this].Element", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections", "ArrayStack", True, "pop", "", "", "Argument[this].Element", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections", "ArrayStack", True, "push", "", "", "Argument[0]", "Argument[this].Element", "value", "manual"] - ["org.apache.commons.collections", "ArrayStack", True, "push", "", "", "Argument[0]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections", "Bag", True, "add", "", "", "Argument[0]", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections", "Bag", True, "uniqueSet", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections", "Bag", True, "add", "", "", "Argument[0]", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections", "Bag", True, "uniqueSet", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections", "BagUtils", True, "collectionBag", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections", "BagUtils", True, "predicatedBag", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections", "BagUtils", True, "predicatedSortedBag", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] @@ -25,10 +25,10 @@ extensions: - ["org.apache.commons.collections", "BagUtils", True, "transformingSortedBag", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections", "BagUtils", True, "unmodifiableBag", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections", "BagUtils", True, "unmodifiableSortedBag", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections", "BidiMap", True, "getKey", "", "", "Argument[-1].MapKey", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections", "BidiMap", True, "inverseBidiMap", "", "", "Argument[-1].MapKey", "ReturnValue.MapValue", "value", "manual"] - - ["org.apache.commons.collections", "BidiMap", True, "inverseBidiMap", "", "", "Argument[-1].MapValue", "ReturnValue.MapKey", "value", "manual"] - - ["org.apache.commons.collections", "BidiMap", True, "removeValue", "", "", "Argument[-1].MapKey", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections", "BidiMap", True, "getKey", "", "", "Argument[this].MapKey", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections", "BidiMap", True, "inverseBidiMap", "", "", "Argument[this].MapKey", "ReturnValue.MapValue", "value", "manual"] + - ["org.apache.commons.collections", "BidiMap", True, "inverseBidiMap", "", "", "Argument[this].MapValue", "ReturnValue.MapKey", "value", "manual"] + - ["org.apache.commons.collections", "BidiMap", True, "removeValue", "", "", "Argument[this].MapKey", "ReturnValue", "value", "manual"] - ["org.apache.commons.collections", "CollectionUtils", True, "addAll", "(Collection,Enumeration)", "", "Argument[1].Element", "Argument[0].Element", "value", "manual"] - ["org.apache.commons.collections", "CollectionUtils", True, "addAll", "(Collection,Iterable)", "", "Argument[1].Element", "Argument[0].Element", "value", "manual"] - ["org.apache.commons.collections", "CollectionUtils", True, "addAll", "(Collection,Iterator)", "", "Argument[1].Element", "Argument[0].Element", "value", "manual"] @@ -75,40 +75,40 @@ extensions: - ["org.apache.commons.collections", "EnumerationUtils", True, "get", "", "", "Argument[0].Element", "ReturnValue", "value", "manual"] - ["org.apache.commons.collections", "EnumerationUtils", True, "toList", "(Enumeration)", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections", "EnumerationUtils", True, "toList", "(StringTokenizer)", "", "Argument[0]", "ReturnValue.Element", "taint", "manual"] - - ["org.apache.commons.collections", "FluentIterable", True, "append", "(Iterable)", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections", "FluentIterable", True, "append", "(Iterable)", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections", "FluentIterable", True, "append", "(Iterable)", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections", "FluentIterable", True, "append", "(Object[])", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections", "FluentIterable", True, "append", "(Object[])", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections", "FluentIterable", True, "append", "(Object[])", "", "Argument[0].ArrayElement", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections", "FluentIterable", True, "asEnumeration", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections", "FluentIterable", True, "collate", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections", "FluentIterable", True, "asEnumeration", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections", "FluentIterable", True, "collate", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections", "FluentIterable", True, "collate", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections", "FluentIterable", True, "copyInto", "", "", "Argument[-1].Element", "Argument[0].Element", "value", "manual"] - - ["org.apache.commons.collections", "FluentIterable", True, "eval", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections", "FluentIterable", True, "filter", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections", "FluentIterable", True, "get", "", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections", "FluentIterable", True, "limit", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections", "FluentIterable", True, "loop", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections", "FluentIterable", True, "copyInto", "", "", "Argument[this].Element", "Argument[0].Element", "value", "manual"] + - ["org.apache.commons.collections", "FluentIterable", True, "eval", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections", "FluentIterable", True, "filter", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections", "FluentIterable", True, "get", "", "", "Argument[this].Element", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections", "FluentIterable", True, "limit", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections", "FluentIterable", True, "loop", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections", "FluentIterable", True, "of", "(Iterable)", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections", "FluentIterable", True, "of", "(Object)", "", "Argument[0]", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections", "FluentIterable", True, "of", "(Object[])", "", "Argument[0].ArrayElement", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections", "FluentIterable", True, "reverse", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections", "FluentIterable", True, "skip", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections", "FluentIterable", True, "toArray", "", "", "Argument[-1].Element", "ReturnValue.ArrayElement", "value", "manual"] - - ["org.apache.commons.collections", "FluentIterable", True, "toList", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections", "FluentIterable", True, "unique", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections", "FluentIterable", True, "unmodifiable", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections", "FluentIterable", True, "zip", "(Iterable)", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections", "FluentIterable", True, "reverse", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections", "FluentIterable", True, "skip", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections", "FluentIterable", True, "toArray", "", "", "Argument[this].Element", "ReturnValue.ArrayElement", "value", "manual"] + - ["org.apache.commons.collections", "FluentIterable", True, "toList", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections", "FluentIterable", True, "unique", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections", "FluentIterable", True, "unmodifiable", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections", "FluentIterable", True, "zip", "(Iterable)", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections", "FluentIterable", True, "zip", "(Iterable)", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections", "FluentIterable", True, "zip", "(Iterable[])", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections", "FluentIterable", True, "zip", "(Iterable[])", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections", "FluentIterable", True, "zip", "(Iterable[])", "", "Argument[0].ArrayElement.Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections", "Get", True, "entrySet", "", "", "Argument[-1].MapKey", "ReturnValue.Element.MapKey", "value", "manual"] - - ["org.apache.commons.collections", "Get", True, "entrySet", "", "", "Argument[-1].MapValue", "ReturnValue.Element.MapValue", "value", "manual"] - - ["org.apache.commons.collections", "Get", True, "get", "", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections", "Get", True, "keySet", "()", "", "Argument[-1].MapKey", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections", "Get", True, "remove", "(Object)", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections", "Get", True, "values", "()", "", "Argument[-1].MapValue", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections", "IterableGet", True, "mapIterator", "", "", "Argument[-1].MapKey", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections", "IterableGet", True, "mapIterator", "", "", "Argument[-1].MapValue", "ReturnValue.MapValue", "value", "manual"] + - ["org.apache.commons.collections", "Get", True, "entrySet", "", "", "Argument[this].MapKey", "ReturnValue.Element.MapKey", "value", "manual"] + - ["org.apache.commons.collections", "Get", True, "entrySet", "", "", "Argument[this].MapValue", "ReturnValue.Element.MapValue", "value", "manual"] + - ["org.apache.commons.collections", "Get", True, "get", "", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections", "Get", True, "keySet", "()", "", "Argument[this].MapKey", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections", "Get", True, "remove", "(Object)", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections", "Get", True, "values", "()", "", "Argument[this].MapValue", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections", "IterableGet", True, "mapIterator", "", "", "Argument[this].MapKey", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections", "IterableGet", True, "mapIterator", "", "", "Argument[this].MapValue", "ReturnValue.MapValue", "value", "manual"] - ["org.apache.commons.collections", "IterableUtils", True, "boundedIterable", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections", "IterableUtils", True, "chainedIterable", "(Iterable,Iterable)", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections", "IterableUtils", True, "chainedIterable", "(Iterable,Iterable)", "", "Argument[1].Element", "ReturnValue.Element", "value", "manual"] @@ -191,8 +191,8 @@ extensions: - ["org.apache.commons.collections", "IteratorUtils", True, "zippingIterator", "(Iterator,Iterator,Iterator)", "", "Argument[1].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections", "IteratorUtils", True, "zippingIterator", "(Iterator,Iterator,Iterator)", "", "Argument[2].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections", "IteratorUtils", True, "zippingIterator", "(Iterator[])", "", "Argument[0].ArrayElement.Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections", "KeyValue", True, "getKey", "", "", "Argument[-1].MapKey", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections", "KeyValue", True, "getValue", "", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections", "KeyValue", True, "getKey", "", "", "Argument[this].MapKey", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections", "KeyValue", True, "getValue", "", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] - ["org.apache.commons.collections", "ListUtils", True, "defaultIfNull", "", "", "Argument[0]", "ReturnValue", "value", "manual"] - ["org.apache.commons.collections", "ListUtils", True, "defaultIfNull", "", "", "Argument[1]", "ReturnValue", "value", "manual"] - ["org.apache.commons.collections", "ListUtils", True, "emptyIfNull", "", "", "Argument[0]", "ReturnValue", "value", "manual"] @@ -224,10 +224,10 @@ extensions: - ["org.apache.commons.collections", "ListUtils", True, "unmodifiableList", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] # Note that MapIterator<K, V> implements Iterator<K>, so it iterates over the keys of the map. # In order for the models of Iterator to work we have to use Element instead of MapKey for key data. - - ["org.apache.commons.collections", "MapIterator", True, "getKey", "", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections", "MapIterator", True, "getValue", "", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections", "MapIterator", True, "setValue", "", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections", "MapIterator", True, "setValue", "", "", "Argument[0]", "Argument[-1].MapValue", "value", "manual"] + - ["org.apache.commons.collections", "MapIterator", True, "getKey", "", "", "Argument[this].Element", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections", "MapIterator", True, "getValue", "", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections", "MapIterator", True, "setValue", "", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections", "MapIterator", True, "setValue", "", "", "Argument[0]", "Argument[this].MapValue", "value", "manual"] - ["org.apache.commons.collections", "MapUtils", True, "emptyIfNull", "", "", "Argument[0]", "ReturnValue", "value", "manual"] - ["org.apache.commons.collections", "MapUtils", True, "fixedSizeMap", "", "", "Argument[0].MapKey", "ReturnValue.MapKey", "value", "manual"] - ["org.apache.commons.collections", "MapUtils", True, "fixedSizeMap", "", "", "Argument[0].MapValue", "ReturnValue.MapValue", "value", "manual"] @@ -287,10 +287,10 @@ extensions: - ["org.apache.commons.collections", "MapUtils", True, "unmodifiableMap", "", "", "Argument[0].MapValue", "ReturnValue.MapValue", "value", "manual"] - ["org.apache.commons.collections", "MapUtils", True, "unmodifiableSortedMap", "", "", "Argument[0].MapKey", "ReturnValue.MapKey", "value", "manual"] - ["org.apache.commons.collections", "MapUtils", True, "unmodifiableSortedMap", "", "", "Argument[0].MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["org.apache.commons.collections", "MultiMap", True, "get", "", "", "Argument[-1].MapValue.Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections", "MultiMap", True, "put", "", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections", "MultiMap", True, "put", "", "", "Argument[1]", "Argument[-1].MapValue.Element", "value", "manual"] - - ["org.apache.commons.collections", "MultiMap", True, "values", "", "", "Argument[-1].MapValue.Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections", "MultiMap", True, "get", "", "", "Argument[this].MapValue.Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections", "MultiMap", True, "put", "", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections", "MultiMap", True, "put", "", "", "Argument[1]", "Argument[this].MapValue.Element", "value", "manual"] + - ["org.apache.commons.collections", "MultiMap", True, "values", "", "", "Argument[this].MapValue.Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections", "MultiMapUtils", True, "emptyIfNull", "", "", "Argument[0]", "ReturnValue", "value", "manual"] - ["org.apache.commons.collections", "MultiMapUtils", True, "getCollection", "", "", "Argument[0].MapValue", "ReturnValue", "value", "manual"] - ["org.apache.commons.collections", "MultiMapUtils", True, "getValuesAsBag", "", "", "Argument[0].MapValue.Element", "ReturnValue.Element", "value", "manual"] @@ -300,42 +300,42 @@ extensions: - ["org.apache.commons.collections", "MultiMapUtils", True, "transformedMultiValuedMap", "", "", "Argument[0].MapValue.Element", "ReturnValue.MapValue.Element", "value", "manual"] - ["org.apache.commons.collections", "MultiMapUtils", True, "unmodifiableMultiValuedMap", "", "", "Argument[0].MapKey", "ReturnValue.MapKey", "value", "manual"] - ["org.apache.commons.collections", "MultiMapUtils", True, "unmodifiableMultiValuedMap", "", "", "Argument[0].MapValue.Element", "ReturnValue.MapValue.Element", "value", "manual"] - - ["org.apache.commons.collections", "MultiSet", True, "add", "", "", "Argument[0]", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections", "MultiSet", True, "entrySet", "", "", "Argument[-1].Element", "ReturnValue.Element.Element", "value", "manual"] - - ["org.apache.commons.collections", "MultiSet", True, "uniqueSet", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections", "MultiSet$Entry", True, "getElement", "", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections", "MultiSet", True, "add", "", "", "Argument[0]", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections", "MultiSet", True, "entrySet", "", "", "Argument[this].Element", "ReturnValue.Element.Element", "value", "manual"] + - ["org.apache.commons.collections", "MultiSet", True, "uniqueSet", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections", "MultiSet$Entry", True, "getElement", "", "", "Argument[this].Element", "ReturnValue", "value", "manual"] - ["org.apache.commons.collections", "MultiSetUtils", True, "predicatedMultiSet", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections", "MultiSetUtils", True, "synchronizedMultiSet", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections", "MultiSetUtils", True, "unmodifiableMultiSet", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections", "MultiValuedMap", True, "asMap", "", "", "Argument[-1].MapKey", "ReturnValue.MapKey", "value", "manual"] - - ["org.apache.commons.collections", "MultiValuedMap", True, "asMap", "", "", "Argument[-1].MapValue.Element", "ReturnValue.MapValue.Element", "value", "manual"] - - ["org.apache.commons.collections", "MultiValuedMap", True, "entries", "", "", "Argument[-1].MapKey", "ReturnValue.Element.MapKey", "value", "manual"] - - ["org.apache.commons.collections", "MultiValuedMap", True, "entries", "", "", "Argument[-1].MapValue.Element", "ReturnValue.Element.MapValue", "value", "manual"] - - ["org.apache.commons.collections", "MultiValuedMap", True, "get", "", "", "Argument[-1].MapValue.Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections", "MultiValuedMap", True, "keySet", "", "", "Argument[-1].MapKey", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections", "MultiValuedMap", True, "keys", "", "", "Argument[-1].MapKey", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections", "MultiValuedMap", True, "mapIterator", "", "", "Argument[-1].MapKey", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections", "MultiValuedMap", True, "mapIterator", "", "", "Argument[-1].MapValue.Element", "ReturnValue.MapValue", "value", "manual"] - - ["org.apache.commons.collections", "MultiValuedMap", True, "put", "", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections", "MultiValuedMap", True, "put", "", "", "Argument[1]", "Argument[-1].MapValue.Element", "value", "manual"] - - ["org.apache.commons.collections", "MultiValuedMap", True, "putAll", "(Map)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections", "MultiValuedMap", True, "putAll", "(Map)", "", "Argument[0].MapValue", "Argument[-1].MapValue.Element", "value", "manual"] - - ["org.apache.commons.collections", "MultiValuedMap", True, "putAll", "(MultiValuedMap)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections", "MultiValuedMap", True, "putAll", "(MultiValuedMap)", "", "Argument[0].MapValue.Element", "Argument[-1].MapValue.Element", "value", "manual"] - - ["org.apache.commons.collections", "MultiValuedMap", True, "putAll", "(Object,Iterable)", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections", "MultiValuedMap", True, "putAll", "(Object,Iterable)", "", "Argument[1].Element", "Argument[-1].MapValue.Element", "value", "manual"] - - ["org.apache.commons.collections", "MultiValuedMap", True, "remove", "", "", "Argument[-1].MapValue.Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections", "MultiValuedMap", True, "values", "", "", "Argument[-1].MapValue.Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections", "OrderedIterator", True, "previous", "", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections", "OrderedMap", True, "firstKey", "", "", "Argument[-1].MapKey", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections", "OrderedMap", True, "lastKey", "", "", "Argument[-1].MapKey", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections", "OrderedMap", True, "nextKey", "", "", "Argument[-1].MapKey", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections", "OrderedMap", True, "previousKey", "", "", "Argument[-1].MapKey", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections", "Put", True, "put", "", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections", "Put", True, "put", "", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections", "Put", True, "put", "", "", "Argument[1]", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections", "Put", True, "putAll", "(Map)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections", "Put", True, "putAll", "(Map)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] + - ["org.apache.commons.collections", "MultiValuedMap", True, "asMap", "", "", "Argument[this].MapKey", "ReturnValue.MapKey", "value", "manual"] + - ["org.apache.commons.collections", "MultiValuedMap", True, "asMap", "", "", "Argument[this].MapValue.Element", "ReturnValue.MapValue.Element", "value", "manual"] + - ["org.apache.commons.collections", "MultiValuedMap", True, "entries", "", "", "Argument[this].MapKey", "ReturnValue.Element.MapKey", "value", "manual"] + - ["org.apache.commons.collections", "MultiValuedMap", True, "entries", "", "", "Argument[this].MapValue.Element", "ReturnValue.Element.MapValue", "value", "manual"] + - ["org.apache.commons.collections", "MultiValuedMap", True, "get", "", "", "Argument[this].MapValue.Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections", "MultiValuedMap", True, "keySet", "", "", "Argument[this].MapKey", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections", "MultiValuedMap", True, "keys", "", "", "Argument[this].MapKey", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections", "MultiValuedMap", True, "mapIterator", "", "", "Argument[this].MapKey", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections", "MultiValuedMap", True, "mapIterator", "", "", "Argument[this].MapValue.Element", "ReturnValue.MapValue", "value", "manual"] + - ["org.apache.commons.collections", "MultiValuedMap", True, "put", "", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections", "MultiValuedMap", True, "put", "", "", "Argument[1]", "Argument[this].MapValue.Element", "value", "manual"] + - ["org.apache.commons.collections", "MultiValuedMap", True, "putAll", "(Map)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections", "MultiValuedMap", True, "putAll", "(Map)", "", "Argument[0].MapValue", "Argument[this].MapValue.Element", "value", "manual"] + - ["org.apache.commons.collections", "MultiValuedMap", True, "putAll", "(MultiValuedMap)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections", "MultiValuedMap", True, "putAll", "(MultiValuedMap)", "", "Argument[0].MapValue.Element", "Argument[this].MapValue.Element", "value", "manual"] + - ["org.apache.commons.collections", "MultiValuedMap", True, "putAll", "(Object,Iterable)", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections", "MultiValuedMap", True, "putAll", "(Object,Iterable)", "", "Argument[1].Element", "Argument[this].MapValue.Element", "value", "manual"] + - ["org.apache.commons.collections", "MultiValuedMap", True, "remove", "", "", "Argument[this].MapValue.Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections", "MultiValuedMap", True, "values", "", "", "Argument[this].MapValue.Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections", "OrderedIterator", True, "previous", "", "", "Argument[this].Element", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections", "OrderedMap", True, "firstKey", "", "", "Argument[this].MapKey", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections", "OrderedMap", True, "lastKey", "", "", "Argument[this].MapKey", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections", "OrderedMap", True, "nextKey", "", "", "Argument[this].MapKey", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections", "OrderedMap", True, "previousKey", "", "", "Argument[this].MapKey", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections", "Put", True, "put", "", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections", "Put", True, "put", "", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections", "Put", True, "put", "", "", "Argument[1]", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections", "Put", True, "putAll", "(Map)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections", "Put", True, "putAll", "(Map)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] - ["org.apache.commons.collections", "QueueUtils", True, "predicatedQueue", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections", "QueueUtils", True, "synchronizedQueue", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections", "QueueUtils", True, "transformingQueue", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] @@ -362,16 +362,16 @@ extensions: - ["org.apache.commons.collections", "SetUtils", True, "unmodifiableSet", "(Object[])", "", "Argument[0].ArrayElement", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections", "SetUtils", True, "unmodifiableSet", "(Set)", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections", "SetUtils", True, "unmodifiableSortedSet", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections", "SetUtils$SetView", True, "copyInto", "", "", "Argument[-1].Element", "Argument[0].Element", "value", "manual"] - - ["org.apache.commons.collections", "SetUtils$SetView", True, "createIterator", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections", "SetUtils$SetView", True, "toSet", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections", "SortedBag", True, "first", "", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections", "SortedBag", True, "last", "", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections", "SetUtils$SetView", True, "copyInto", "", "", "Argument[this].Element", "Argument[0].Element", "value", "manual"] + - ["org.apache.commons.collections", "SetUtils$SetView", True, "createIterator", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections", "SetUtils$SetView", True, "toSet", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections", "SortedBag", True, "first", "", "", "Argument[this].Element", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections", "SortedBag", True, "last", "", "", "Argument[this].Element", "ReturnValue", "value", "manual"] - ["org.apache.commons.collections", "SplitMapUtils", True, "readableMap", "", "", "Argument[0].MapKey", "ReturnValue.MapKey", "value", "manual"] - ["org.apache.commons.collections", "SplitMapUtils", True, "readableMap", "", "", "Argument[0].MapValue", "ReturnValue.MapValue", "value", "manual"] - ["org.apache.commons.collections", "SplitMapUtils", True, "writableMap", "", "", "Argument[0].MapKey", "ReturnValue.MapKey", "value", "manual"] - ["org.apache.commons.collections", "SplitMapUtils", True, "writableMap", "", "", "Argument[0].MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["org.apache.commons.collections", "Trie", True, "prefixMap", "", "", "Argument[-1].MapKey", "ReturnValue.MapKey", "value", "manual"] - - ["org.apache.commons.collections", "Trie", True, "prefixMap", "", "", "Argument[-1].MapValue", "ReturnValue.MapValue", "value", "manual"] + - ["org.apache.commons.collections", "Trie", True, "prefixMap", "", "", "Argument[this].MapKey", "ReturnValue.MapKey", "value", "manual"] + - ["org.apache.commons.collections", "Trie", True, "prefixMap", "", "", "Argument[this].MapValue", "ReturnValue.MapValue", "value", "manual"] - ["org.apache.commons.collections", "TrieUtils", True, "unmodifiableTrie", "", "", "Argument[0].MapKey", "ReturnValue.MapKey", "value", "manual"] - ["org.apache.commons.collections", "TrieUtils", True, "unmodifiableTrie", "", "", "Argument[0].MapValue", "ReturnValue.MapValue", "value", "manual"] diff --git a/java/ql/lib/ext/org.apache.commons.collections.multimap.model.yml b/java/ql/lib/ext/org.apache.commons.collections.multimap.model.yml index 97ad092bc08..4c3fbf37ae1 100644 --- a/java/ql/lib/ext/org.apache.commons.collections.multimap.model.yml +++ b/java/ql/lib/ext/org.apache.commons.collections.multimap.model.yml @@ -4,14 +4,14 @@ extensions: extensible: summaryModel data: # Note that when lambdas are supported we should have more models for TransformedMultiValuedMap - - ["org.apache.commons.collections.multimap", "ArrayListValuedHashMap", True, "ArrayListValuedHashMap", "(Map)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections.multimap", "ArrayListValuedHashMap", True, "ArrayListValuedHashMap", "(Map)", "", "Argument[0].MapValue", "Argument[-1].MapValue.Element", "value", "manual"] - - ["org.apache.commons.collections.multimap", "ArrayListValuedHashMap", True, "ArrayListValuedHashMap", "(MultiValuedMap)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections.multimap", "ArrayListValuedHashMap", True, "ArrayListValuedHashMap", "(MultiValuedMap)", "", "Argument[0].MapValue.Element", "Argument[-1].MapValue.Element", "value", "manual"] - - ["org.apache.commons.collections.multimap", "HashSetValuedHashMap", True, "HashSetValuedHashMap", "(Map)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections.multimap", "HashSetValuedHashMap", True, "HashSetValuedHashMap", "(Map)", "", "Argument[0].MapValue", "Argument[-1].MapValue.Element", "value", "manual"] - - ["org.apache.commons.collections.multimap", "HashSetValuedHashMap", True, "HashSetValuedHashMap", "(MultiValuedMap)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections.multimap", "HashSetValuedHashMap", True, "HashSetValuedHashMap", "(MultiValuedMap)", "", "Argument[0].MapValue.Element", "Argument[-1].MapValue.Element", "value", "manual"] + - ["org.apache.commons.collections.multimap", "ArrayListValuedHashMap", True, "ArrayListValuedHashMap", "(Map)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections.multimap", "ArrayListValuedHashMap", True, "ArrayListValuedHashMap", "(Map)", "", "Argument[0].MapValue", "Argument[this].MapValue.Element", "value", "manual"] + - ["org.apache.commons.collections.multimap", "ArrayListValuedHashMap", True, "ArrayListValuedHashMap", "(MultiValuedMap)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections.multimap", "ArrayListValuedHashMap", True, "ArrayListValuedHashMap", "(MultiValuedMap)", "", "Argument[0].MapValue.Element", "Argument[this].MapValue.Element", "value", "manual"] + - ["org.apache.commons.collections.multimap", "HashSetValuedHashMap", True, "HashSetValuedHashMap", "(Map)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections.multimap", "HashSetValuedHashMap", True, "HashSetValuedHashMap", "(Map)", "", "Argument[0].MapValue", "Argument[this].MapValue.Element", "value", "manual"] + - ["org.apache.commons.collections.multimap", "HashSetValuedHashMap", True, "HashSetValuedHashMap", "(MultiValuedMap)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections.multimap", "HashSetValuedHashMap", True, "HashSetValuedHashMap", "(MultiValuedMap)", "", "Argument[0].MapValue.Element", "Argument[this].MapValue.Element", "value", "manual"] - ["org.apache.commons.collections.multimap", "TransformedMultiValuedMap", True, "transformingMap", "", "", "Argument[0].MapKey", "ReturnValue.MapKey", "value", "manual"] - ["org.apache.commons.collections.multimap", "TransformedMultiValuedMap", True, "transformingMap", "", "", "Argument[0].MapValue.Element", "ReturnValue.MapValue.Element", "value", "manual"] - ["org.apache.commons.collections.multimap", "UnmodifiableMultiValuedMap", True, "unmodifiableMultiValuedMap", "(MultiValuedMap)", "", "Argument[0].MapKey", "ReturnValue.MapKey", "value", "manual"] diff --git a/java/ql/lib/ext/org.apache.commons.collections.multiset.model.yml b/java/ql/lib/ext/org.apache.commons.collections.multiset.model.yml index 4423d4b1f91..e653fa4ed3c 100644 --- a/java/ql/lib/ext/org.apache.commons.collections.multiset.model.yml +++ b/java/ql/lib/ext/org.apache.commons.collections.multiset.model.yml @@ -3,7 +3,7 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["org.apache.commons.collections.multiset", "HashMultiSet", True, "HashMultiSet", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] + - ["org.apache.commons.collections.multiset", "HashMultiSet", True, "HashMultiSet", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] - ["org.apache.commons.collections.multiset", "PredicatedMultiSet", True, "predicatedMultiSet", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections.multiset", "SynchronizedMultiSet", True, "synchronizedMultiSet", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections.multiset", "UnmodifiableMultiSet", True, "unmodifiableMultiSet", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] diff --git a/java/ql/lib/ext/org.apache.commons.collections.queue.model.yml b/java/ql/lib/ext/org.apache.commons.collections.queue.model.yml index 3a88fbf5fa4..1edab96bde6 100644 --- a/java/ql/lib/ext/org.apache.commons.collections.queue.model.yml +++ b/java/ql/lib/ext/org.apache.commons.collections.queue.model.yml @@ -4,8 +4,8 @@ extensions: extensible: summaryModel data: # Note that when lambdas are supported we should have more models for TransformedQueue - - ["org.apache.commons.collections.queue", "CircularFifoQueue", True, "CircularFifoQueue", "(Collection)", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.queue", "CircularFifoQueue", True, "get", "", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections.queue", "CircularFifoQueue", True, "CircularFifoQueue", "(Collection)", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.queue", "CircularFifoQueue", True, "get", "", "", "Argument[this].Element", "ReturnValue", "value", "manual"] - ["org.apache.commons.collections.queue", "PredicatedQueue", True, "predicatedQueue", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections.queue", "SynchronizedQueue", True, "synchronizedQueue", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections.queue", "TransformedQueue", True, "transformingQueue", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] diff --git a/java/ql/lib/ext/org.apache.commons.collections.set.model.yml b/java/ql/lib/ext/org.apache.commons.collections.set.model.yml index c6288adf72c..594c76c5ccd 100644 --- a/java/ql/lib/ext/org.apache.commons.collections.set.model.yml +++ b/java/ql/lib/ext/org.apache.commons.collections.set.model.yml @@ -4,25 +4,25 @@ extensions: extensible: summaryModel data: # Note that when lambdas are supported we should have more models for TransformedNavigableSet - - ["org.apache.commons.collections.set", "AbstractNavigableSetDecorator", True, "AbstractNavigableSetDecorator", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.set", "AbstractSetDecorator", True, "AbstractSetDecorator", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.set", "AbstractSortedSetDecorator", True, "AbstractSortedSetDecorator", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.set", "CompositeSet", True, "CompositeSet", "(Set)", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.set", "CompositeSet", True, "CompositeSet", "(Set[])", "", "Argument[0].ArrayElement.Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.set", "CompositeSet", True, "addComposited", "(Set)", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.set", "CompositeSet", True, "addComposited", "(Set,Set)", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.set", "CompositeSet", True, "addComposited", "(Set,Set)", "", "Argument[1].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.set", "CompositeSet", True, "addComposited", "(Set[])", "", "Argument[0].ArrayElement.Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.set", "CompositeSet", True, "getSets", "", "", "Argument[-1].Element", "ReturnValue.Element.Element", "value", "manual"] - - ["org.apache.commons.collections.set", "CompositeSet", True, "toSet", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections.set", "AbstractNavigableSetDecorator", True, "AbstractNavigableSetDecorator", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.set", "AbstractSetDecorator", True, "AbstractSetDecorator", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.set", "AbstractSortedSetDecorator", True, "AbstractSortedSetDecorator", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.set", "CompositeSet", True, "CompositeSet", "(Set)", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.set", "CompositeSet", True, "CompositeSet", "(Set[])", "", "Argument[0].ArrayElement.Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.set", "CompositeSet", True, "addComposited", "(Set)", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.set", "CompositeSet", True, "addComposited", "(Set,Set)", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.set", "CompositeSet", True, "addComposited", "(Set,Set)", "", "Argument[1].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.set", "CompositeSet", True, "addComposited", "(Set[])", "", "Argument[0].ArrayElement.Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.set", "CompositeSet", True, "getSets", "", "", "Argument[this].Element", "ReturnValue.Element.Element", "value", "manual"] + - ["org.apache.commons.collections.set", "CompositeSet", True, "toSet", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections.set", "CompositeSet$SetMutator", True, "add", "", "", "Argument[2]", "Argument[0].Element", "value", "manual"] - ["org.apache.commons.collections.set", "CompositeSet$SetMutator", True, "add", "", "", "Argument[2]", "Argument[1].Element.Element", "value", "manual"] - ["org.apache.commons.collections.set", "CompositeSet$SetMutator", True, "addAll", "", "", "Argument[2].Element", "Argument[0].Element", "value", "manual"] - ["org.apache.commons.collections.set", "CompositeSet$SetMutator", True, "addAll", "", "", "Argument[2].Element", "Argument[1].Element.Element", "value", "manual"] - - ["org.apache.commons.collections.set", "ListOrderedSet", True, "add", "", "", "Argument[1]", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.set", "ListOrderedSet", True, "addAll", "", "", "Argument[1].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections.set", "ListOrderedSet", True, "asList", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections.set", "ListOrderedSet", True, "get", "", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections.set", "ListOrderedSet", True, "add", "", "", "Argument[1]", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.set", "ListOrderedSet", True, "addAll", "", "", "Argument[1].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections.set", "ListOrderedSet", True, "asList", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections.set", "ListOrderedSet", True, "get", "", "", "Argument[this].Element", "ReturnValue", "value", "manual"] - ["org.apache.commons.collections.set", "ListOrderedSet", True, "listOrderedSet", "(List)", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections.set", "ListOrderedSet", True, "listOrderedSet", "(Set)", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections.set", "MapBackedSet", True, "mapBackedSet", "", "", "Argument[0].MapKey", "ReturnValue.Element", "value", "manual"] diff --git a/java/ql/lib/ext/org.apache.commons.collections.splitmap.model.yml b/java/ql/lib/ext/org.apache.commons.collections.splitmap.model.yml index 65cc1a66fdf..84541e1083c 100644 --- a/java/ql/lib/ext/org.apache.commons.collections.splitmap.model.yml +++ b/java/ql/lib/ext/org.apache.commons.collections.splitmap.model.yml @@ -4,7 +4,7 @@ extensions: extensible: summaryModel data: # Note that when lambdas are supported we should have more models for TransformedSplitMap - - ["org.apache.commons.collections.splitmap", "AbstractIterableGetMapDecorator", True, "AbstractIterableGetMapDecorator", "", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections.splitmap", "AbstractIterableGetMapDecorator", True, "AbstractIterableGetMapDecorator", "", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] + - ["org.apache.commons.collections.splitmap", "AbstractIterableGetMapDecorator", True, "AbstractIterableGetMapDecorator", "", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections.splitmap", "AbstractIterableGetMapDecorator", True, "AbstractIterableGetMapDecorator", "", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] - ["org.apache.commons.collections.splitmap", "TransformedSplitMap", True, "transformingMap", "", "", "Argument[0].MapKey", "ReturnValue.MapKey", "value", "manual"] - ["org.apache.commons.collections.splitmap", "TransformedSplitMap", True, "transformingMap", "", "", "Argument[0].MapValue", "ReturnValue.MapValue", "value", "manual"] diff --git a/java/ql/lib/ext/org.apache.commons.collections.trie.model.yml b/java/ql/lib/ext/org.apache.commons.collections.trie.model.yml index c58ca641902..83bbf9c1b03 100644 --- a/java/ql/lib/ext/org.apache.commons.collections.trie.model.yml +++ b/java/ql/lib/ext/org.apache.commons.collections.trie.model.yml @@ -4,11 +4,11 @@ extensions: extensible: summaryModel data: # Note that when lambdas are supported we should have more models for TransformedSplitMap - - ["org.apache.commons.collections.trie", "AbstractPatriciaTrie", True, "select", "", "", "Argument[-1].MapKey", "ReturnValue.MapKey", "value", "manual"] - - ["org.apache.commons.collections.trie", "AbstractPatriciaTrie", True, "select", "", "", "Argument[-1].MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["org.apache.commons.collections.trie", "AbstractPatriciaTrie", True, "selectKey", "", "", "Argument[-1].MapKey", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections.trie", "AbstractPatriciaTrie", True, "selectValue", "", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections.trie", "PatriciaTrie", True, "PatriciaTrie", "", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections.trie", "PatriciaTrie", True, "PatriciaTrie", "", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] + - ["org.apache.commons.collections.trie", "AbstractPatriciaTrie", True, "select", "", "", "Argument[this].MapKey", "ReturnValue.MapKey", "value", "manual"] + - ["org.apache.commons.collections.trie", "AbstractPatriciaTrie", True, "select", "", "", "Argument[this].MapValue", "ReturnValue.MapValue", "value", "manual"] + - ["org.apache.commons.collections.trie", "AbstractPatriciaTrie", True, "selectKey", "", "", "Argument[this].MapKey", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections.trie", "AbstractPatriciaTrie", True, "selectValue", "", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections.trie", "PatriciaTrie", True, "PatriciaTrie", "", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections.trie", "PatriciaTrie", True, "PatriciaTrie", "", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] - ["org.apache.commons.collections.trie", "UnmodifiableTrie", True, "unmodifiableTrie", "", "", "Argument[0].MapKey", "ReturnValue.MapKey", "value", "manual"] - ["org.apache.commons.collections.trie", "UnmodifiableTrie", True, "unmodifiableTrie", "", "", "Argument[0].MapValue", "ReturnValue.MapValue", "value", "manual"] diff --git a/java/ql/lib/ext/org.apache.commons.collections4.bag.model.yml b/java/ql/lib/ext/org.apache.commons.collections4.bag.model.yml index 9df2c7aba94..6ccaa6a5d59 100644 --- a/java/ql/lib/ext/org.apache.commons.collections4.bag.model.yml +++ b/java/ql/lib/ext/org.apache.commons.collections4.bag.model.yml @@ -4,21 +4,21 @@ extensions: extensible: summaryModel data: # Note that when lambdas are supported we should have more models for TransformedBag, TransformedSortedBag - - ["org.apache.commons.collections4.bag", "AbstractBagDecorator", True, "AbstractBagDecorator", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.bag", "AbstractMapBag", True, "AbstractMapBag", "", "", "Argument[0].MapKey", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.bag", "AbstractMapBag", True, "getMap", "", "", "Argument[-1].Element", "ReturnValue.MapKey", "value", "manual"] - - ["org.apache.commons.collections4.bag", "AbstractSortedBagDecorator", True, "AbstractSortedBagDecorator", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.bag", "CollectionBag", True, "CollectionBag", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] + - ["org.apache.commons.collections4.bag", "AbstractBagDecorator", True, "AbstractBagDecorator", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.bag", "AbstractMapBag", True, "AbstractMapBag", "", "", "Argument[0].MapKey", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.bag", "AbstractMapBag", True, "getMap", "", "", "Argument[this].Element", "ReturnValue.MapKey", "value", "manual"] + - ["org.apache.commons.collections4.bag", "AbstractSortedBagDecorator", True, "AbstractSortedBagDecorator", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.bag", "CollectionBag", True, "CollectionBag", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] - ["org.apache.commons.collections4.bag", "CollectionBag", True, "collectionBag", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections4.bag", "CollectionSortedBag", True, "CollectionSortedBag", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] + - ["org.apache.commons.collections4.bag", "CollectionSortedBag", True, "CollectionSortedBag", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] - ["org.apache.commons.collections4.bag", "CollectionSortedBag", True, "collectionSortedBag", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections4.bag", "HashBag", True, "HashBag", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] + - ["org.apache.commons.collections4.bag", "HashBag", True, "HashBag", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] - ["org.apache.commons.collections4.bag", "PredicatedBag", True, "predicatedBag", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections4.bag", "PredicatedSortedBag", True, "predicatedSortedBag", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections4.bag", "SynchronizedBag", True, "synchronizedBag", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections4.bag", "SynchronizedSortedBag", True, "synchronizedSortedBag", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections4.bag", "TransformedBag", True, "transformedBag", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections4.bag", "TransformedSortedBag", True, "transformedSortedBag", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections4.bag", "TreeBag", True, "TreeBag", "(Collection)", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] + - ["org.apache.commons.collections4.bag", "TreeBag", True, "TreeBag", "(Collection)", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] - ["org.apache.commons.collections4.bag", "UnmodifiableBag", True, "unmodifiableBag", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections4.bag", "UnmodifiableSortedBag", True, "unmodifiableSortedBag", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] diff --git a/java/ql/lib/ext/org.apache.commons.collections4.bidimap.model.yml b/java/ql/lib/ext/org.apache.commons.collections4.bidimap.model.yml index 1a6a3cbab9e..a62c6ea0ad3 100644 --- a/java/ql/lib/ext/org.apache.commons.collections4.bidimap.model.yml +++ b/java/ql/lib/ext/org.apache.commons.collections4.bidimap.model.yml @@ -3,34 +3,34 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["org.apache.commons.collections4.bidimap", "AbstractBidiMapDecorator", True, "AbstractBidiMapDecorator", "", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections4.bidimap", "AbstractBidiMapDecorator", True, "AbstractBidiMapDecorator", "", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections4.bidimap", "AbstractDualBidiMap", True, "AbstractDualBidiMap", "", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections4.bidimap", "AbstractDualBidiMap", True, "AbstractDualBidiMap", "", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections4.bidimap", "AbstractDualBidiMap", True, "AbstractDualBidiMap", "", "", "Argument[1].MapKey", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections4.bidimap", "AbstractDualBidiMap", True, "AbstractDualBidiMap", "", "", "Argument[1].MapValue", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections4.bidimap", "AbstractDualBidiMap", True, "AbstractDualBidiMap", "", "", "Argument[2].MapKey", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections4.bidimap", "AbstractDualBidiMap", True, "AbstractDualBidiMap", "", "", "Argument[2].MapValue", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections4.bidimap", "AbstractOrderedBidiMapDecorator", True, "AbstractOrderedBidiMapDecorator", "", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections4.bidimap", "AbstractOrderedBidiMapDecorator", True, "AbstractOrderedBidiMapDecorator", "", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections4.bidimap", "AbstractSortedBidiMapDecorator", True, "AbstractSortedBidiMapDecorator", "", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections4.bidimap", "AbstractSortedBidiMapDecorator", True, "AbstractSortedBidiMapDecorator", "", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections4.bidimap", "DualHashBidiMap", True, "DualHashBidiMap", "(Map)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections4.bidimap", "DualHashBidiMap", True, "DualHashBidiMap", "(Map)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections4.bidimap", "DualLinkedHashBidiMap", True, "DualLinkedHashBidiMap", "(Map)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections4.bidimap", "DualLinkedHashBidiMap", True, "DualLinkedHashBidiMap", "(Map)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections4.bidimap", "DualTreeBidiMap", True, "DualTreeBidiMap", "(Map)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections4.bidimap", "DualTreeBidiMap", True, "DualTreeBidiMap", "(Map)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections4.bidimap", "DualTreeBidiMap", True, "inverseOrderedBidiMap", "", "", "Argument[-1].MapKey", "ReturnValue.MapValue", "value", "manual"] - - ["org.apache.commons.collections4.bidimap", "DualTreeBidiMap", True, "inverseOrderedBidiMap", "", "", "Argument[-1].MapValue", "ReturnValue.MapKey", "value", "manual"] - - ["org.apache.commons.collections4.bidimap", "DualTreeBidiMap", True, "inverseSortedBidiMap", "", "", "Argument[-1].MapKey", "ReturnValue.MapValue", "value", "manual"] - - ["org.apache.commons.collections4.bidimap", "DualTreeBidiMap", True, "inverseSortedBidiMap", "", "", "Argument[-1].MapValue", "ReturnValue.MapKey", "value", "manual"] - - ["org.apache.commons.collections4.bidimap", "TreeBidiMap", True, "TreeBidiMap", "", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections4.bidimap", "TreeBidiMap", True, "TreeBidiMap", "", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] + - ["org.apache.commons.collections4.bidimap", "AbstractBidiMapDecorator", True, "AbstractBidiMapDecorator", "", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4.bidimap", "AbstractBidiMapDecorator", True, "AbstractBidiMapDecorator", "", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections4.bidimap", "AbstractDualBidiMap", True, "AbstractDualBidiMap", "", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4.bidimap", "AbstractDualBidiMap", True, "AbstractDualBidiMap", "", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections4.bidimap", "AbstractDualBidiMap", True, "AbstractDualBidiMap", "", "", "Argument[1].MapKey", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections4.bidimap", "AbstractDualBidiMap", True, "AbstractDualBidiMap", "", "", "Argument[1].MapValue", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4.bidimap", "AbstractDualBidiMap", True, "AbstractDualBidiMap", "", "", "Argument[2].MapKey", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections4.bidimap", "AbstractDualBidiMap", True, "AbstractDualBidiMap", "", "", "Argument[2].MapValue", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4.bidimap", "AbstractOrderedBidiMapDecorator", True, "AbstractOrderedBidiMapDecorator", "", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4.bidimap", "AbstractOrderedBidiMapDecorator", True, "AbstractOrderedBidiMapDecorator", "", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections4.bidimap", "AbstractSortedBidiMapDecorator", True, "AbstractSortedBidiMapDecorator", "", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4.bidimap", "AbstractSortedBidiMapDecorator", True, "AbstractSortedBidiMapDecorator", "", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections4.bidimap", "DualHashBidiMap", True, "DualHashBidiMap", "(Map)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4.bidimap", "DualHashBidiMap", True, "DualHashBidiMap", "(Map)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections4.bidimap", "DualLinkedHashBidiMap", True, "DualLinkedHashBidiMap", "(Map)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4.bidimap", "DualLinkedHashBidiMap", True, "DualLinkedHashBidiMap", "(Map)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections4.bidimap", "DualTreeBidiMap", True, "DualTreeBidiMap", "(Map)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4.bidimap", "DualTreeBidiMap", True, "DualTreeBidiMap", "(Map)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections4.bidimap", "DualTreeBidiMap", True, "inverseOrderedBidiMap", "", "", "Argument[this].MapKey", "ReturnValue.MapValue", "value", "manual"] + - ["org.apache.commons.collections4.bidimap", "DualTreeBidiMap", True, "inverseOrderedBidiMap", "", "", "Argument[this].MapValue", "ReturnValue.MapKey", "value", "manual"] + - ["org.apache.commons.collections4.bidimap", "DualTreeBidiMap", True, "inverseSortedBidiMap", "", "", "Argument[this].MapKey", "ReturnValue.MapValue", "value", "manual"] + - ["org.apache.commons.collections4.bidimap", "DualTreeBidiMap", True, "inverseSortedBidiMap", "", "", "Argument[this].MapValue", "ReturnValue.MapKey", "value", "manual"] + - ["org.apache.commons.collections4.bidimap", "TreeBidiMap", True, "TreeBidiMap", "", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4.bidimap", "TreeBidiMap", True, "TreeBidiMap", "", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] - ["org.apache.commons.collections4.bidimap", "UnmodifiableBidiMap", True, "unmodifiableBidiMap", "", "", "Argument[0].MapKey", "ReturnValue.MapKey", "value", "manual"] - ["org.apache.commons.collections4.bidimap", "UnmodifiableBidiMap", True, "unmodifiableBidiMap", "", "", "Argument[0].MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["org.apache.commons.collections4.bidimap", "UnmodifiableOrderedBidiMap", True, "inverseOrderedBidiMap", "", "", "Argument[-1].MapKey", "ReturnValue.MapValue", "value", "manual"] - - ["org.apache.commons.collections4.bidimap", "UnmodifiableOrderedBidiMap", True, "inverseOrderedBidiMap", "", "", "Argument[-1].MapValue", "ReturnValue.MapKey", "value", "manual"] + - ["org.apache.commons.collections4.bidimap", "UnmodifiableOrderedBidiMap", True, "inverseOrderedBidiMap", "", "", "Argument[this].MapKey", "ReturnValue.MapValue", "value", "manual"] + - ["org.apache.commons.collections4.bidimap", "UnmodifiableOrderedBidiMap", True, "inverseOrderedBidiMap", "", "", "Argument[this].MapValue", "ReturnValue.MapKey", "value", "manual"] - ["org.apache.commons.collections4.bidimap", "UnmodifiableOrderedBidiMap", True, "unmodifiableOrderedBidiMap", "", "", "Argument[0].MapKey", "ReturnValue.MapKey", "value", "manual"] - ["org.apache.commons.collections4.bidimap", "UnmodifiableOrderedBidiMap", True, "unmodifiableOrderedBidiMap", "", "", "Argument[0].MapValue", "ReturnValue.MapValue", "value", "manual"] - ["org.apache.commons.collections4.bidimap", "UnmodifiableSortedBidiMap", True, "unmodifiableSortedBidiMap", "", "", "Argument[0].MapKey", "ReturnValue.MapKey", "value", "manual"] diff --git a/java/ql/lib/ext/org.apache.commons.collections4.collection.model.yml b/java/ql/lib/ext/org.apache.commons.collections4.collection.model.yml index 7533350620b..9d9b4abe2d3 100644 --- a/java/ql/lib/ext/org.apache.commons.collections4.collection.model.yml +++ b/java/ql/lib/ext/org.apache.commons.collections4.collection.model.yml @@ -4,42 +4,42 @@ extensions: extensible: summaryModel data: # Note that when lambdas are supported we should have more models for TransformedCollection - - ["org.apache.commons.collections4.collection", "AbstractCollectionDecorator", True, "AbstractCollectionDecorator", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.collection", "AbstractCollectionDecorator", True, "decorated", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections4.collection", "AbstractCollectionDecorator", True, "setCollection", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.collection", "CompositeCollection", True, "CompositeCollection", "(Collection)", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.collection", "CompositeCollection", True, "CompositeCollection", "(Collection,Collection)", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.collection", "CompositeCollection", True, "CompositeCollection", "(Collection,Collection)", "", "Argument[1].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.collection", "CompositeCollection", True, "CompositeCollection", "(Collection[])", "", "Argument[0].ArrayElement.Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.collection", "CompositeCollection", True, "addComposited", "(Collection)", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.collection", "CompositeCollection", True, "addComposited", "(Collection,Collection)", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.collection", "CompositeCollection", True, "addComposited", "(Collection,Collection)", "", "Argument[1].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.collection", "CompositeCollection", True, "addComposited", "(Collection[])", "", "Argument[0].ArrayElement.Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.collection", "CompositeCollection", True, "getCollections", "", "", "Argument[-1].Element", "ReturnValue.Element.Element", "value", "manual"] - - ["org.apache.commons.collections4.collection", "CompositeCollection", True, "toCollection", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections4.collection", "AbstractCollectionDecorator", True, "AbstractCollectionDecorator", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.collection", "AbstractCollectionDecorator", True, "decorated", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections4.collection", "AbstractCollectionDecorator", True, "setCollection", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.collection", "CompositeCollection", True, "CompositeCollection", "(Collection)", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.collection", "CompositeCollection", True, "CompositeCollection", "(Collection,Collection)", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.collection", "CompositeCollection", True, "CompositeCollection", "(Collection,Collection)", "", "Argument[1].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.collection", "CompositeCollection", True, "CompositeCollection", "(Collection[])", "", "Argument[0].ArrayElement.Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.collection", "CompositeCollection", True, "addComposited", "(Collection)", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.collection", "CompositeCollection", True, "addComposited", "(Collection,Collection)", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.collection", "CompositeCollection", True, "addComposited", "(Collection,Collection)", "", "Argument[1].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.collection", "CompositeCollection", True, "addComposited", "(Collection[])", "", "Argument[0].ArrayElement.Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.collection", "CompositeCollection", True, "getCollections", "", "", "Argument[this].Element", "ReturnValue.Element.Element", "value", "manual"] + - ["org.apache.commons.collections4.collection", "CompositeCollection", True, "toCollection", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections4.collection", "CompositeCollection$CollectionMutator", True, "add", "", "", "Argument[2]", "Argument[0].Element", "value", "manual"] - ["org.apache.commons.collections4.collection", "CompositeCollection$CollectionMutator", True, "add", "", "", "Argument[2]", "Argument[1].Element.Element", "value", "manual"] - ["org.apache.commons.collections4.collection", "CompositeCollection$CollectionMutator", True, "addAll", "", "", "Argument[2].Element", "Argument[0].Element", "value", "manual"] - ["org.apache.commons.collections4.collection", "CompositeCollection$CollectionMutator", True, "addAll", "", "", "Argument[2].Element", "Argument[1].Element.Element", "value", "manual"] - - ["org.apache.commons.collections4.collection", "IndexedCollection", True, "IndexedCollection", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.collection", "IndexedCollection", True, "get", "", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections4.collection", "IndexedCollection", True, "IndexedCollection", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.collection", "IndexedCollection", True, "get", "", "", "Argument[this].Element", "ReturnValue", "value", "manual"] - ["org.apache.commons.collections4.collection", "IndexedCollection", True, "nonUniqueIndexedCollection", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections4.collection", "IndexedCollection", True, "uniqueIndexedCollection", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections4.collection", "IndexedCollection", True, "values", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections4.collection", "IndexedCollection", True, "values", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections4.collection", "PredicatedCollection", True, "predicatedCollection", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections4.collection", "PredicatedCollection$Builder", True, "add", "", "", "Argument[0]", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.collection", "PredicatedCollection$Builder", True, "addAll", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.collection", "PredicatedCollection$Builder", True, "createPredicatedBag", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections4.collection", "PredicatedCollection$Builder", True, "add", "", "", "Argument[0]", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.collection", "PredicatedCollection$Builder", True, "addAll", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.collection", "PredicatedCollection$Builder", True, "createPredicatedBag", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections4.collection", "PredicatedCollection$Builder", True, "createPredicatedBag", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections4.collection", "PredicatedCollection$Builder", True, "createPredicatedList", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections4.collection", "PredicatedCollection$Builder", True, "createPredicatedList", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections4.collection", "PredicatedCollection$Builder", True, "createPredicatedList", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections4.collection", "PredicatedCollection$Builder", True, "createPredicatedMultiSet", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections4.collection", "PredicatedCollection$Builder", True, "createPredicatedMultiSet", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections4.collection", "PredicatedCollection$Builder", True, "createPredicatedMultiSet", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections4.collection", "PredicatedCollection$Builder", True, "createPredicatedQueue", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections4.collection", "PredicatedCollection$Builder", True, "createPredicatedQueue", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections4.collection", "PredicatedCollection$Builder", True, "createPredicatedQueue", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections4.collection", "PredicatedCollection$Builder", True, "createPredicatedSet", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections4.collection", "PredicatedCollection$Builder", True, "createPredicatedSet", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections4.collection", "PredicatedCollection$Builder", True, "createPredicatedSet", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections4.collection", "PredicatedCollection$Builder", True, "rejectedElements", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections4.collection", "PredicatedCollection$Builder", True, "rejectedElements", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections4.collection", "SynchronizedCollection", True, "synchronizedCollection", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections4.collection", "TransformedCollection", True, "transformingCollection", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections4.collection", "UnmodifiableBoundedCollection", True, "unmodifiableBoundedCollection", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] diff --git a/java/ql/lib/ext/org.apache.commons.collections4.iterators.model.yml b/java/ql/lib/ext/org.apache.commons.collections4.iterators.model.yml index 8fe0e4578f9..5209e006f81 100644 --- a/java/ql/lib/ext/org.apache.commons.collections4.iterators.model.yml +++ b/java/ql/lib/ext/org.apache.commons.collections4.iterators.model.yml @@ -4,78 +4,78 @@ extensions: extensible: summaryModel data: # Note that when lambdas are supported we should have more models for TransformIterator - - ["org.apache.commons.collections4.iterators", "AbstractIteratorDecorator", True, "AbstractIteratorDecorator", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.iterators", "AbstractListIteratorDecorator", True, "AbstractListIteratorDecorator", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.iterators", "AbstractListIteratorDecorator", True, "getListIterator", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections4.iterators", "AbstractMapIteratorDecorator", True, "AbstractMapIteratorDecorator", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.iterators", "AbstractMapIteratorDecorator", True, "AbstractMapIteratorDecorator", "", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections4.iterators", "AbstractMapIteratorDecorator", True, "getMapIterator", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections4.iterators", "AbstractMapIteratorDecorator", True, "getMapIterator", "", "", "Argument[-1].MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["org.apache.commons.collections4.iterators", "AbstractOrderedMapIteratorDecorator", True, "AbstractOrderedMapIteratorDecorator", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.iterators", "AbstractOrderedMapIteratorDecorator", True, "AbstractOrderedMapIteratorDecorator", "", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections4.iterators", "AbstractOrderedMapIteratorDecorator", True, "getOrderedMapIterator", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections4.iterators", "AbstractOrderedMapIteratorDecorator", True, "getOrderedMapIterator", "", "", "Argument[-1].MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["org.apache.commons.collections4.iterators", "AbstractUntypedIteratorDecorator", True, "AbstractUntypedIteratorDecorator", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.iterators", "AbstractUntypedIteratorDecorator", True, "getIterator", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections4.iterators", "ArrayIterator", True, "ArrayIterator", "", "", "Argument[0].ArrayElement", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.iterators", "ArrayIterator", True, "getArray", "", "", "Argument[-1].Element", "ReturnValue.ArrayElement", "value", "manual"] - - ["org.apache.commons.collections4.iterators", "ArrayListIterator", True, "ArrayListIterator", "", "", "Argument[0].ArrayElement", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.iterators", "BoundedIterator", True, "BoundedIterator", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.iterators", "CollatingIterator", True, "CollatingIterator", "(Comparator,Collection)", "", "Argument[1].Element.Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.iterators", "CollatingIterator", True, "CollatingIterator", "(Comparator,Iterator,Iterator)", "", "Argument[1].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.iterators", "CollatingIterator", True, "CollatingIterator", "(Comparator,Iterator,Iterator)", "", "Argument[2].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.iterators", "CollatingIterator", True, "CollatingIterator", "(Comparator,Iterator[])", "", "Argument[1].ArrayElement.Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.iterators", "CollatingIterator", True, "addIterator", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.iterators", "CollatingIterator", True, "getIterators", "", "", "Argument[-1].Element", "ReturnValue.Element.Element", "value", "manual"] - - ["org.apache.commons.collections4.iterators", "CollatingIterator", True, "setIterator", "", "", "Argument[1].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.iterators", "EnumerationIterator", True, "EnumerationIterator", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.iterators", "EnumerationIterator", True, "getEnumeration", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections4.iterators", "EnumerationIterator", True, "setEnumeration", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.iterators", "FilterIterator", True, "FilterIterator", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.iterators", "FilterIterator", True, "getIterator", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections4.iterators", "FilterIterator", True, "setIterator", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.iterators", "FilterListIterator", True, "FilterListIterator", "(ListIterator)", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.iterators", "FilterListIterator", True, "FilterListIterator", "(ListIterator,Predicate)", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.iterators", "FilterListIterator", True, "getListIterator", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections4.iterators", "FilterListIterator", True, "setListIterator", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.iterators", "IteratorChain", True, "IteratorChain", "(Collection)", "", "Argument[0].Element.Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.iterators", "IteratorChain", True, "IteratorChain", "(Iterator)", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.iterators", "IteratorChain", True, "IteratorChain", "(Iterator,Iterator)", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.iterators", "IteratorChain", True, "IteratorChain", "(Iterator,Iterator)", "", "Argument[1].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.iterators", "IteratorChain", True, "IteratorChain", "(Iterator[])", "", "Argument[0].ArrayElement.Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.iterators", "IteratorChain", True, "addIterator", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.iterators", "IteratorEnumeration", True, "IteratorEnumeration", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.iterators", "IteratorEnumeration", True, "getIterator", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections4.iterators", "IteratorEnumeration", True, "setIterator", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.iterators", "IteratorIterable", True, "IteratorIterable", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.iterators", "ListIteratorWrapper", True, "ListIteratorWrapper", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.iterators", "LoopingIterator", True, "LoopingIterator", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.iterators", "LoopingListIterator", True, "LoopingListIterator", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.iterators", "ObjectArrayIterator", True, "ObjectArrayIterator", "", "", "Argument[0].ArrayElement", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.iterators", "ObjectArrayIterator", True, "getArray", "", "", "Argument[-1].Element", "ReturnValue.ArrayElement", "value", "manual"] - - ["org.apache.commons.collections4.iterators", "ObjectArrayListIterator", True, "ObjectArrayListIterator", "", "", "Argument[0].ArrayElement", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.iterators", "PeekingIterator", True, "PeekingIterator", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.iterators", "PeekingIterator", True, "element", "", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections4.iterators", "PeekingIterator", True, "peek", "", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections4.iterators", "AbstractIteratorDecorator", True, "AbstractIteratorDecorator", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.iterators", "AbstractListIteratorDecorator", True, "AbstractListIteratorDecorator", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.iterators", "AbstractListIteratorDecorator", True, "getListIterator", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections4.iterators", "AbstractMapIteratorDecorator", True, "AbstractMapIteratorDecorator", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.iterators", "AbstractMapIteratorDecorator", True, "AbstractMapIteratorDecorator", "", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections4.iterators", "AbstractMapIteratorDecorator", True, "getMapIterator", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections4.iterators", "AbstractMapIteratorDecorator", True, "getMapIterator", "", "", "Argument[this].MapValue", "ReturnValue.MapValue", "value", "manual"] + - ["org.apache.commons.collections4.iterators", "AbstractOrderedMapIteratorDecorator", True, "AbstractOrderedMapIteratorDecorator", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.iterators", "AbstractOrderedMapIteratorDecorator", True, "AbstractOrderedMapIteratorDecorator", "", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections4.iterators", "AbstractOrderedMapIteratorDecorator", True, "getOrderedMapIterator", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections4.iterators", "AbstractOrderedMapIteratorDecorator", True, "getOrderedMapIterator", "", "", "Argument[this].MapValue", "ReturnValue.MapValue", "value", "manual"] + - ["org.apache.commons.collections4.iterators", "AbstractUntypedIteratorDecorator", True, "AbstractUntypedIteratorDecorator", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.iterators", "AbstractUntypedIteratorDecorator", True, "getIterator", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections4.iterators", "ArrayIterator", True, "ArrayIterator", "", "", "Argument[0].ArrayElement", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.iterators", "ArrayIterator", True, "getArray", "", "", "Argument[this].Element", "ReturnValue.ArrayElement", "value", "manual"] + - ["org.apache.commons.collections4.iterators", "ArrayListIterator", True, "ArrayListIterator", "", "", "Argument[0].ArrayElement", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.iterators", "BoundedIterator", True, "BoundedIterator", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.iterators", "CollatingIterator", True, "CollatingIterator", "(Comparator,Collection)", "", "Argument[1].Element.Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.iterators", "CollatingIterator", True, "CollatingIterator", "(Comparator,Iterator,Iterator)", "", "Argument[1].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.iterators", "CollatingIterator", True, "CollatingIterator", "(Comparator,Iterator,Iterator)", "", "Argument[2].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.iterators", "CollatingIterator", True, "CollatingIterator", "(Comparator,Iterator[])", "", "Argument[1].ArrayElement.Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.iterators", "CollatingIterator", True, "addIterator", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.iterators", "CollatingIterator", True, "getIterators", "", "", "Argument[this].Element", "ReturnValue.Element.Element", "value", "manual"] + - ["org.apache.commons.collections4.iterators", "CollatingIterator", True, "setIterator", "", "", "Argument[1].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.iterators", "EnumerationIterator", True, "EnumerationIterator", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.iterators", "EnumerationIterator", True, "getEnumeration", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections4.iterators", "EnumerationIterator", True, "setEnumeration", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.iterators", "FilterIterator", True, "FilterIterator", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.iterators", "FilterIterator", True, "getIterator", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections4.iterators", "FilterIterator", True, "setIterator", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.iterators", "FilterListIterator", True, "FilterListIterator", "(ListIterator)", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.iterators", "FilterListIterator", True, "FilterListIterator", "(ListIterator,Predicate)", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.iterators", "FilterListIterator", True, "getListIterator", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections4.iterators", "FilterListIterator", True, "setListIterator", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.iterators", "IteratorChain", True, "IteratorChain", "(Collection)", "", "Argument[0].Element.Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.iterators", "IteratorChain", True, "IteratorChain", "(Iterator)", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.iterators", "IteratorChain", True, "IteratorChain", "(Iterator,Iterator)", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.iterators", "IteratorChain", True, "IteratorChain", "(Iterator,Iterator)", "", "Argument[1].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.iterators", "IteratorChain", True, "IteratorChain", "(Iterator[])", "", "Argument[0].ArrayElement.Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.iterators", "IteratorChain", True, "addIterator", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.iterators", "IteratorEnumeration", True, "IteratorEnumeration", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.iterators", "IteratorEnumeration", True, "getIterator", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections4.iterators", "IteratorEnumeration", True, "setIterator", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.iterators", "IteratorIterable", True, "IteratorIterable", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.iterators", "ListIteratorWrapper", True, "ListIteratorWrapper", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.iterators", "LoopingIterator", True, "LoopingIterator", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.iterators", "LoopingListIterator", True, "LoopingListIterator", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.iterators", "ObjectArrayIterator", True, "ObjectArrayIterator", "", "", "Argument[0].ArrayElement", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.iterators", "ObjectArrayIterator", True, "getArray", "", "", "Argument[this].Element", "ReturnValue.ArrayElement", "value", "manual"] + - ["org.apache.commons.collections4.iterators", "ObjectArrayListIterator", True, "ObjectArrayListIterator", "", "", "Argument[0].ArrayElement", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.iterators", "PeekingIterator", True, "PeekingIterator", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.iterators", "PeekingIterator", True, "element", "", "", "Argument[this].Element", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections4.iterators", "PeekingIterator", True, "peek", "", "", "Argument[this].Element", "ReturnValue", "value", "manual"] - ["org.apache.commons.collections4.iterators", "PeekingIterator", True, "peekingIterator", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections4.iterators", "PermutationIterator", True, "PermutationIterator", "", "", "Argument[0].Element", "Argument[-1].Element.Element", "value", "manual"] - - ["org.apache.commons.collections4.iterators", "PushbackIterator", True, "PushbackIterator", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.iterators", "PushbackIterator", True, "pushback", "", "", "Argument[0]", "Argument[-1].Element", "value", "manual"] + - ["org.apache.commons.collections4.iterators", "PermutationIterator", True, "PermutationIterator", "", "", "Argument[0].Element", "Argument[this].Element.Element", "value", "manual"] + - ["org.apache.commons.collections4.iterators", "PushbackIterator", True, "PushbackIterator", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.iterators", "PushbackIterator", True, "pushback", "", "", "Argument[0]", "Argument[this].Element", "value", "manual"] - ["org.apache.commons.collections4.iterators", "PushbackIterator", True, "pushbackIterator", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections4.iterators", "ReverseListIterator", True, "ReverseListIterator", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.iterators", "SingletonIterator", True, "SingletonIterator", "", "", "Argument[0]", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.iterators", "SingletonListIterator", True, "SingletonListIterator", "", "", "Argument[0]", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.iterators", "SkippingIterator", True, "SkippingIterator", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.iterators", "UniqueFilterIterator", True, "UniqueFilterIterator", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] + - ["org.apache.commons.collections4.iterators", "ReverseListIterator", True, "ReverseListIterator", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.iterators", "SingletonIterator", True, "SingletonIterator", "", "", "Argument[0]", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.iterators", "SingletonListIterator", True, "SingletonListIterator", "", "", "Argument[0]", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.iterators", "SkippingIterator", True, "SkippingIterator", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.iterators", "UniqueFilterIterator", True, "UniqueFilterIterator", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] - ["org.apache.commons.collections4.iterators", "UnmodifiableIterator", True, "unmodifiableIterator", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections4.iterators", "UnmodifiableListIterator", True, "umodifiableListIterator", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections4.iterators", "UnmodifiableMapIterator", True, "unmodifiableMapIterator", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections4.iterators", "UnmodifiableMapIterator", True, "unmodifiableMapIterator", "", "", "Argument[0].MapValue", "ReturnValue.MapValue", "value", "manual"] - ["org.apache.commons.collections4.iterators", "UnmodifiableOrderedMapIterator", True, "unmodifiableOrderedMapIterator", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections4.iterators", "UnmodifiableOrderedMapIterator", True, "unmodifiableOrderedMapIterator", "", "", "Argument[0].MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["org.apache.commons.collections4.iterators", "ZippingIterator", True, "ZippingIterator", "(Iterator,Iterator)", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.iterators", "ZippingIterator", True, "ZippingIterator", "(Iterator,Iterator)", "", "Argument[1].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.iterators", "ZippingIterator", True, "ZippingIterator", "(Iterator,Iterator,Iterator)", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.iterators", "ZippingIterator", True, "ZippingIterator", "(Iterator,Iterator,Iterator)", "", "Argument[1].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.iterators", "ZippingIterator", True, "ZippingIterator", "(Iterator,Iterator,Iterator)", "", "Argument[2].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.iterators", "ZippingIterator", True, "ZippingIterator", "(Iterator[])", "", "Argument[0].ArrayElement.Element", "Argument[-1].Element", "value", "manual"] + - ["org.apache.commons.collections4.iterators", "ZippingIterator", True, "ZippingIterator", "(Iterator,Iterator)", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.iterators", "ZippingIterator", True, "ZippingIterator", "(Iterator,Iterator)", "", "Argument[1].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.iterators", "ZippingIterator", True, "ZippingIterator", "(Iterator,Iterator,Iterator)", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.iterators", "ZippingIterator", True, "ZippingIterator", "(Iterator,Iterator,Iterator)", "", "Argument[1].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.iterators", "ZippingIterator", True, "ZippingIterator", "(Iterator,Iterator,Iterator)", "", "Argument[2].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.iterators", "ZippingIterator", True, "ZippingIterator", "(Iterator[])", "", "Argument[0].ArrayElement.Element", "Argument[this].Element", "value", "manual"] diff --git a/java/ql/lib/ext/org.apache.commons.collections4.keyvalue.model.yml b/java/ql/lib/ext/org.apache.commons.collections4.keyvalue.model.yml index e662c6348bd..433b0a4ab15 100644 --- a/java/ql/lib/ext/org.apache.commons.collections4.keyvalue.model.yml +++ b/java/ql/lib/ext/org.apache.commons.collections4.keyvalue.model.yml @@ -6,55 +6,55 @@ extensions: # Note that when lambdas are supported we should model the package `org.apache.commons.collections4.functors`, # and when more general callable flow is supported we should model the package # `org.apache.commons.collections4.sequence`. - - ["org.apache.commons.collections4.keyvalue", "AbstractKeyValue", True, "AbstractKeyValue", "", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections4.keyvalue", "AbstractKeyValue", True, "AbstractKeyValue", "", "", "Argument[1]", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections4.keyvalue", "AbstractKeyValue", True, "setKey", "", "", "Argument[-1].MapKey", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections4.keyvalue", "AbstractKeyValue", True, "setKey", "", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections4.keyvalue", "AbstractKeyValue", True, "setValue", "", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections4.keyvalue", "AbstractKeyValue", True, "setValue", "", "", "Argument[0]", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections4.keyvalue", "AbstractMapEntry", True, "AbstractMapEntry", "", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections4.keyvalue", "AbstractMapEntry", True, "AbstractMapEntry", "", "", "Argument[1]", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections4.keyvalue", "AbstractMapEntryDecorator", True, "AbstractMapEntryDecorator", "", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections4.keyvalue", "AbstractMapEntryDecorator", True, "AbstractMapEntryDecorator", "", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections4.keyvalue", "AbstractMapEntryDecorator", True, "getMapEntry", "", "", "Argument[-1].MapKey", "ReturnValue.MapKey", "value", "manual"] - - ["org.apache.commons.collections4.keyvalue", "AbstractMapEntryDecorator", True, "getMapEntry", "", "", "Argument[-1].MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["org.apache.commons.collections4.keyvalue", "DefaultKeyValue", True, "DefaultKeyValue", "(Entry)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections4.keyvalue", "DefaultKeyValue", True, "DefaultKeyValue", "(Entry)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections4.keyvalue", "DefaultKeyValue", True, "DefaultKeyValue", "(KeyValue)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections4.keyvalue", "DefaultKeyValue", True, "DefaultKeyValue", "(KeyValue)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections4.keyvalue", "DefaultKeyValue", True, "DefaultKeyValue", "(Object,Object)", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections4.keyvalue", "DefaultKeyValue", True, "DefaultKeyValue", "(Object,Object)", "", "Argument[1]", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections4.keyvalue", "DefaultKeyValue", True, "toMapEntry", "", "", "Argument[-1].MapKey", "ReturnValue.MapKey", "value", "manual"] - - ["org.apache.commons.collections4.keyvalue", "DefaultKeyValue", True, "toMapEntry", "", "", "Argument[-1].MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["org.apache.commons.collections4.keyvalue", "DefaultMapEntry", True, "DefaultMapEntry", "(Entry)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections4.keyvalue", "DefaultMapEntry", True, "DefaultMapEntry", "(Entry)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections4.keyvalue", "DefaultMapEntry", True, "DefaultMapEntry", "(KeyValue)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections4.keyvalue", "DefaultMapEntry", True, "DefaultMapEntry", "(KeyValue)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections4.keyvalue", "DefaultMapEntry", True, "DefaultMapEntry", "(Object,Object)", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections4.keyvalue", "DefaultMapEntry", True, "DefaultMapEntry", "(Object,Object)", "", "Argument[1]", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections4.keyvalue", "MultiKey", True, "MultiKey", "(Object,Object)", "", "Argument[0]", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.keyvalue", "MultiKey", True, "MultiKey", "(Object,Object)", "", "Argument[1]", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.keyvalue", "MultiKey", True, "MultiKey", "(Object,Object,Object)", "", "Argument[0]", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.keyvalue", "MultiKey", True, "MultiKey", "(Object,Object,Object)", "", "Argument[1]", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.keyvalue", "MultiKey", True, "MultiKey", "(Object,Object,Object)", "", "Argument[2]", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.keyvalue", "MultiKey", True, "MultiKey", "(Object,Object,Object,Object)", "", "Argument[0]", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.keyvalue", "MultiKey", True, "MultiKey", "(Object,Object,Object,Object)", "", "Argument[1]", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.keyvalue", "MultiKey", True, "MultiKey", "(Object,Object,Object,Object)", "", "Argument[2]", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.keyvalue", "MultiKey", True, "MultiKey", "(Object,Object,Object,Object)", "", "Argument[3]", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.keyvalue", "MultiKey", True, "MultiKey", "(Object,Object,Object,Object,Object)", "", "Argument[0]", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.keyvalue", "MultiKey", True, "MultiKey", "(Object,Object,Object,Object,Object)", "", "Argument[1]", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.keyvalue", "MultiKey", True, "MultiKey", "(Object,Object,Object,Object,Object)", "", "Argument[2]", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.keyvalue", "MultiKey", True, "MultiKey", "(Object,Object,Object,Object,Object)", "", "Argument[3]", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.keyvalue", "MultiKey", True, "MultiKey", "(Object,Object,Object,Object,Object)", "", "Argument[4]", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.keyvalue", "MultiKey", True, "MultiKey", "(Object[])", "", "Argument[0].ArrayElement", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.keyvalue", "MultiKey", True, "MultiKey", "(Object[],boolean)", "", "Argument[0].ArrayElement", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.keyvalue", "MultiKey", True, "getKey", "", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections4.keyvalue", "MultiKey", True, "getKeys", "", "", "Argument[-1].Element", "ReturnValue.ArrayElement", "value", "manual"] - - ["org.apache.commons.collections4.keyvalue", "TiedMapEntry", True, "TiedMapEntry", "", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections4.keyvalue", "TiedMapEntry", True, "TiedMapEntry", "", "", "Argument[1]", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections4.keyvalue", "UnmodifiableMapEntry", True, "UnmodifiableMapEntry", "(Entry)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections4.keyvalue", "UnmodifiableMapEntry", True, "UnmodifiableMapEntry", "(Entry)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections4.keyvalue", "UnmodifiableMapEntry", True, "UnmodifiableMapEntry", "(KeyValue)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections4.keyvalue", "UnmodifiableMapEntry", True, "UnmodifiableMapEntry", "(KeyValue)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections4.keyvalue", "UnmodifiableMapEntry", True, "UnmodifiableMapEntry", "(Object,Object)", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections4.keyvalue", "UnmodifiableMapEntry", True, "UnmodifiableMapEntry", "(Object,Object)", "", "Argument[1]", "Argument[-1].MapValue", "value", "manual"] + - ["org.apache.commons.collections4.keyvalue", "AbstractKeyValue", True, "AbstractKeyValue", "", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4.keyvalue", "AbstractKeyValue", True, "AbstractKeyValue", "", "", "Argument[1]", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections4.keyvalue", "AbstractKeyValue", True, "setKey", "", "", "Argument[this].MapKey", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections4.keyvalue", "AbstractKeyValue", True, "setKey", "", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4.keyvalue", "AbstractKeyValue", True, "setValue", "", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections4.keyvalue", "AbstractKeyValue", True, "setValue", "", "", "Argument[0]", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections4.keyvalue", "AbstractMapEntry", True, "AbstractMapEntry", "", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4.keyvalue", "AbstractMapEntry", True, "AbstractMapEntry", "", "", "Argument[1]", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections4.keyvalue", "AbstractMapEntryDecorator", True, "AbstractMapEntryDecorator", "", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4.keyvalue", "AbstractMapEntryDecorator", True, "AbstractMapEntryDecorator", "", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections4.keyvalue", "AbstractMapEntryDecorator", True, "getMapEntry", "", "", "Argument[this].MapKey", "ReturnValue.MapKey", "value", "manual"] + - ["org.apache.commons.collections4.keyvalue", "AbstractMapEntryDecorator", True, "getMapEntry", "", "", "Argument[this].MapValue", "ReturnValue.MapValue", "value", "manual"] + - ["org.apache.commons.collections4.keyvalue", "DefaultKeyValue", True, "DefaultKeyValue", "(Entry)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4.keyvalue", "DefaultKeyValue", True, "DefaultKeyValue", "(Entry)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections4.keyvalue", "DefaultKeyValue", True, "DefaultKeyValue", "(KeyValue)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4.keyvalue", "DefaultKeyValue", True, "DefaultKeyValue", "(KeyValue)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections4.keyvalue", "DefaultKeyValue", True, "DefaultKeyValue", "(Object,Object)", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4.keyvalue", "DefaultKeyValue", True, "DefaultKeyValue", "(Object,Object)", "", "Argument[1]", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections4.keyvalue", "DefaultKeyValue", True, "toMapEntry", "", "", "Argument[this].MapKey", "ReturnValue.MapKey", "value", "manual"] + - ["org.apache.commons.collections4.keyvalue", "DefaultKeyValue", True, "toMapEntry", "", "", "Argument[this].MapValue", "ReturnValue.MapValue", "value", "manual"] + - ["org.apache.commons.collections4.keyvalue", "DefaultMapEntry", True, "DefaultMapEntry", "(Entry)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4.keyvalue", "DefaultMapEntry", True, "DefaultMapEntry", "(Entry)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections4.keyvalue", "DefaultMapEntry", True, "DefaultMapEntry", "(KeyValue)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4.keyvalue", "DefaultMapEntry", True, "DefaultMapEntry", "(KeyValue)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections4.keyvalue", "DefaultMapEntry", True, "DefaultMapEntry", "(Object,Object)", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4.keyvalue", "DefaultMapEntry", True, "DefaultMapEntry", "(Object,Object)", "", "Argument[1]", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections4.keyvalue", "MultiKey", True, "MultiKey", "(Object,Object)", "", "Argument[0]", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.keyvalue", "MultiKey", True, "MultiKey", "(Object,Object)", "", "Argument[1]", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.keyvalue", "MultiKey", True, "MultiKey", "(Object,Object,Object)", "", "Argument[0]", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.keyvalue", "MultiKey", True, "MultiKey", "(Object,Object,Object)", "", "Argument[1]", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.keyvalue", "MultiKey", True, "MultiKey", "(Object,Object,Object)", "", "Argument[2]", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.keyvalue", "MultiKey", True, "MultiKey", "(Object,Object,Object,Object)", "", "Argument[0]", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.keyvalue", "MultiKey", True, "MultiKey", "(Object,Object,Object,Object)", "", "Argument[1]", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.keyvalue", "MultiKey", True, "MultiKey", "(Object,Object,Object,Object)", "", "Argument[2]", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.keyvalue", "MultiKey", True, "MultiKey", "(Object,Object,Object,Object)", "", "Argument[3]", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.keyvalue", "MultiKey", True, "MultiKey", "(Object,Object,Object,Object,Object)", "", "Argument[0]", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.keyvalue", "MultiKey", True, "MultiKey", "(Object,Object,Object,Object,Object)", "", "Argument[1]", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.keyvalue", "MultiKey", True, "MultiKey", "(Object,Object,Object,Object,Object)", "", "Argument[2]", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.keyvalue", "MultiKey", True, "MultiKey", "(Object,Object,Object,Object,Object)", "", "Argument[3]", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.keyvalue", "MultiKey", True, "MultiKey", "(Object,Object,Object,Object,Object)", "", "Argument[4]", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.keyvalue", "MultiKey", True, "MultiKey", "(Object[])", "", "Argument[0].ArrayElement", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.keyvalue", "MultiKey", True, "MultiKey", "(Object[],boolean)", "", "Argument[0].ArrayElement", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.keyvalue", "MultiKey", True, "getKey", "", "", "Argument[this].Element", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections4.keyvalue", "MultiKey", True, "getKeys", "", "", "Argument[this].Element", "ReturnValue.ArrayElement", "value", "manual"] + - ["org.apache.commons.collections4.keyvalue", "TiedMapEntry", True, "TiedMapEntry", "", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections4.keyvalue", "TiedMapEntry", True, "TiedMapEntry", "", "", "Argument[1]", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4.keyvalue", "UnmodifiableMapEntry", True, "UnmodifiableMapEntry", "(Entry)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4.keyvalue", "UnmodifiableMapEntry", True, "UnmodifiableMapEntry", "(Entry)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections4.keyvalue", "UnmodifiableMapEntry", True, "UnmodifiableMapEntry", "(KeyValue)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4.keyvalue", "UnmodifiableMapEntry", True, "UnmodifiableMapEntry", "(KeyValue)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections4.keyvalue", "UnmodifiableMapEntry", True, "UnmodifiableMapEntry", "(Object,Object)", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4.keyvalue", "UnmodifiableMapEntry", True, "UnmodifiableMapEntry", "(Object,Object)", "", "Argument[1]", "Argument[this].MapValue", "value", "manual"] diff --git a/java/ql/lib/ext/org.apache.commons.collections4.list.model.yml b/java/ql/lib/ext/org.apache.commons.collections4.list.model.yml index b0e01ed6929..d0057f72097 100644 --- a/java/ql/lib/ext/org.apache.commons.collections4.list.model.yml +++ b/java/ql/lib/ext/org.apache.commons.collections4.list.model.yml @@ -4,25 +4,25 @@ extensions: extensible: summaryModel data: # Note that when lambdas are supported we should have more models for TransformedList - - ["org.apache.commons.collections4.list", "AbstractLinkedList", True, "AbstractLinkedList", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.list", "AbstractLinkedList", True, "addFirst", "", "", "Argument[0]", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.list", "AbstractLinkedList", True, "addLast", "", "", "Argument[0]", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.list", "AbstractLinkedList", True, "getFirst", "", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections4.list", "AbstractLinkedList", True, "getLast", "", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections4.list", "AbstractLinkedList", True, "removeFirst", "", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections4.list", "AbstractLinkedList", True, "removeLast", "", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections4.list", "AbstractListDecorator", True, "AbstractListDecorator", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.list", "AbstractSerializableListDecorator", True, "AbstractSerializableListDecorator", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.list", "CursorableLinkedList", True, "CursorableLinkedList", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.list", "CursorableLinkedList", True, "cursor", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections4.list", "AbstractLinkedList", True, "AbstractLinkedList", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.list", "AbstractLinkedList", True, "addFirst", "", "", "Argument[0]", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.list", "AbstractLinkedList", True, "addLast", "", "", "Argument[0]", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.list", "AbstractLinkedList", True, "getFirst", "", "", "Argument[this].Element", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections4.list", "AbstractLinkedList", True, "getLast", "", "", "Argument[this].Element", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections4.list", "AbstractLinkedList", True, "removeFirst", "", "", "Argument[this].Element", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections4.list", "AbstractLinkedList", True, "removeLast", "", "", "Argument[this].Element", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections4.list", "AbstractListDecorator", True, "AbstractListDecorator", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.list", "AbstractSerializableListDecorator", True, "AbstractSerializableListDecorator", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.list", "CursorableLinkedList", True, "CursorableLinkedList", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.list", "CursorableLinkedList", True, "cursor", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections4.list", "FixedSizeList", True, "fixedSizeList", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections4.list", "GrowthList", True, "growthList", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections4.list", "LazyList", True, "lazyList", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections4.list", "NodeCachingLinkedList", True, "NodeCachingLinkedList", "(Collection)", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] + - ["org.apache.commons.collections4.list", "NodeCachingLinkedList", True, "NodeCachingLinkedList", "(Collection)", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] - ["org.apache.commons.collections4.list", "PredicatedList", True, "predicatedList", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections4.list", "SetUniqueList", True, "asSet", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections4.list", "SetUniqueList", True, "asSet", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections4.list", "SetUniqueList", True, "setUniqueList", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections4.list", "TransformedList", True, "transformingList", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections4.list", "TreeList", True, "TreeList", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.list", "UnmodifiableList", True, "UnmodifiableList", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] + - ["org.apache.commons.collections4.list", "TreeList", True, "TreeList", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.list", "UnmodifiableList", True, "UnmodifiableList", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] - ["org.apache.commons.collections4.list", "UnmodifiableList", True, "unmodifiableList", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] diff --git a/java/ql/lib/ext/org.apache.commons.collections4.map.model.yml b/java/ql/lib/ext/org.apache.commons.collections4.map.model.yml index 385f73050d5..44bbaf0d728 100644 --- a/java/ql/lib/ext/org.apache.commons.collections4.map.model.yml +++ b/java/ql/lib/ext/org.apache.commons.collections4.map.model.yml @@ -4,122 +4,122 @@ extensions: extensible: summaryModel data: # Note that when lambdas are supported we should have more models for DefaultedMap, LazyMap, TransformedMap, TransformedSortedMap - - ["org.apache.commons.collections4.map", "AbstractHashedMap", True, "AbstractHashedMap", "(Map)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections4.map", "AbstractHashedMap", True, "AbstractHashedMap", "(Map)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections4.map", "AbstractLinkedMap", True, "AbstractLinkedMap", "(Map)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections4.map", "AbstractLinkedMap", True, "AbstractLinkedMap", "(Map)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections4.map", "AbstractMapDecorator", True, "AbstractMapDecorator", "(Map)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections4.map", "AbstractMapDecorator", True, "AbstractMapDecorator", "(Map)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections4.map", "AbstractMapDecorator", True, "decorated", "", "", "Argument[-1].MapKey", "ReturnValue.MapKey", "value", "manual"] - - ["org.apache.commons.collections4.map", "AbstractMapDecorator", True, "decorated", "", "", "Argument[-1].MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["org.apache.commons.collections4.map", "AbstractOrderedMapDecorator", True, "AbstractOrderedMapDecorator", "(OrderedMap)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections4.map", "AbstractOrderedMapDecorator", True, "AbstractOrderedMapDecorator", "(OrderedMap)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections4.map", "AbstractSortedMapDecorator", True, "AbstractSortedMapDecorator", "(SortedMap)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections4.map", "AbstractSortedMapDecorator", True, "AbstractSortedMapDecorator", "(SortedMap)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections4.map", "CaseInsensitiveMap", True, "CaseInsensitiveMap", "(Map)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections4.map", "CaseInsensitiveMap", True, "CaseInsensitiveMap", "(Map)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections4.map", "CompositeMap", True, "CompositeMap", "(Map,Map)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections4.map", "CompositeMap", True, "CompositeMap", "(Map,Map)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections4.map", "CompositeMap", True, "CompositeMap", "(Map,Map)", "", "Argument[1].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections4.map", "CompositeMap", True, "CompositeMap", "(Map,Map)", "", "Argument[1].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections4.map", "CompositeMap", True, "CompositeMap", "(Map,Map,MapMutator)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections4.map", "CompositeMap", True, "CompositeMap", "(Map,Map,MapMutator)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections4.map", "CompositeMap", True, "CompositeMap", "(Map,Map,MapMutator)", "", "Argument[1].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections4.map", "CompositeMap", True, "CompositeMap", "(Map,Map,MapMutator)", "", "Argument[1].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections4.map", "CompositeMap", True, "CompositeMap", "(Map[])", "", "Argument[0].ArrayElement.MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections4.map", "CompositeMap", True, "CompositeMap", "(Map[])", "", "Argument[0].ArrayElement.MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections4.map", "CompositeMap", True, "CompositeMap", "(Map[],MapMutator)", "", "Argument[0].ArrayElement.MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections4.map", "CompositeMap", True, "CompositeMap", "(Map[],MapMutator)", "", "Argument[0].ArrayElement.MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections4.map", "CompositeMap", True, "addComposited", "", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections4.map", "CompositeMap", True, "addComposited", "", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections4.map", "CompositeMap", True, "removeComposited", "", "", "Argument[-1].MapKey", "ReturnValue.MapKey", "value", "manual"] - - ["org.apache.commons.collections4.map", "CompositeMap", True, "removeComposited", "", "", "Argument[-1].MapValue", "ReturnValue.MapValue", "value", "manual"] + - ["org.apache.commons.collections4.map", "AbstractHashedMap", True, "AbstractHashedMap", "(Map)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4.map", "AbstractHashedMap", True, "AbstractHashedMap", "(Map)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections4.map", "AbstractLinkedMap", True, "AbstractLinkedMap", "(Map)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4.map", "AbstractLinkedMap", True, "AbstractLinkedMap", "(Map)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections4.map", "AbstractMapDecorator", True, "AbstractMapDecorator", "(Map)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4.map", "AbstractMapDecorator", True, "AbstractMapDecorator", "(Map)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections4.map", "AbstractMapDecorator", True, "decorated", "", "", "Argument[this].MapKey", "ReturnValue.MapKey", "value", "manual"] + - ["org.apache.commons.collections4.map", "AbstractMapDecorator", True, "decorated", "", "", "Argument[this].MapValue", "ReturnValue.MapValue", "value", "manual"] + - ["org.apache.commons.collections4.map", "AbstractOrderedMapDecorator", True, "AbstractOrderedMapDecorator", "(OrderedMap)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4.map", "AbstractOrderedMapDecorator", True, "AbstractOrderedMapDecorator", "(OrderedMap)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections4.map", "AbstractSortedMapDecorator", True, "AbstractSortedMapDecorator", "(SortedMap)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4.map", "AbstractSortedMapDecorator", True, "AbstractSortedMapDecorator", "(SortedMap)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections4.map", "CaseInsensitiveMap", True, "CaseInsensitiveMap", "(Map)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4.map", "CaseInsensitiveMap", True, "CaseInsensitiveMap", "(Map)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections4.map", "CompositeMap", True, "CompositeMap", "(Map,Map)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4.map", "CompositeMap", True, "CompositeMap", "(Map,Map)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections4.map", "CompositeMap", True, "CompositeMap", "(Map,Map)", "", "Argument[1].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4.map", "CompositeMap", True, "CompositeMap", "(Map,Map)", "", "Argument[1].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections4.map", "CompositeMap", True, "CompositeMap", "(Map,Map,MapMutator)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4.map", "CompositeMap", True, "CompositeMap", "(Map,Map,MapMutator)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections4.map", "CompositeMap", True, "CompositeMap", "(Map,Map,MapMutator)", "", "Argument[1].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4.map", "CompositeMap", True, "CompositeMap", "(Map,Map,MapMutator)", "", "Argument[1].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections4.map", "CompositeMap", True, "CompositeMap", "(Map[])", "", "Argument[0].ArrayElement.MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4.map", "CompositeMap", True, "CompositeMap", "(Map[])", "", "Argument[0].ArrayElement.MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections4.map", "CompositeMap", True, "CompositeMap", "(Map[],MapMutator)", "", "Argument[0].ArrayElement.MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4.map", "CompositeMap", True, "CompositeMap", "(Map[],MapMutator)", "", "Argument[0].ArrayElement.MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections4.map", "CompositeMap", True, "addComposited", "", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4.map", "CompositeMap", True, "addComposited", "", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections4.map", "CompositeMap", True, "removeComposited", "", "", "Argument[this].MapKey", "ReturnValue.MapKey", "value", "manual"] + - ["org.apache.commons.collections4.map", "CompositeMap", True, "removeComposited", "", "", "Argument[this].MapValue", "ReturnValue.MapValue", "value", "manual"] - ["org.apache.commons.collections4.map", "CompositeMap", True, "removeComposited", "", "", "Argument[0]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections4.map", "DefaultedMap", True, "DefaultedMap", "(Object)", "", "Argument[0]", "Argument[-1].MapValue", "value", "manual"] + - ["org.apache.commons.collections4.map", "DefaultedMap", True, "DefaultedMap", "(Object)", "", "Argument[0]", "Argument[this].MapValue", "value", "manual"] - ["org.apache.commons.collections4.map", "DefaultedMap", True, "defaultedMap", "", "", "Argument[0].MapKey", "ReturnValue.MapKey", "value", "manual"] - ["org.apache.commons.collections4.map", "DefaultedMap", True, "defaultedMap", "", "", "Argument[0].MapValue", "ReturnValue.MapValue", "value", "manual"] - ["org.apache.commons.collections4.map", "DefaultedMap", True, "defaultedMap", "(Map,Object)", "", "Argument[1]", "ReturnValue.MapValue", "value", "manual"] - - ["org.apache.commons.collections4.map", "EntrySetToMapIteratorAdapter", True, "EntrySetToMapIteratorAdapter", "", "", "Argument[0].Element.MapKey", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.map", "EntrySetToMapIteratorAdapter", True, "EntrySetToMapIteratorAdapter", "", "", "Argument[0].Element.MapValue", "Argument[-1].MapValue", "value", "manual"] + - ["org.apache.commons.collections4.map", "EntrySetToMapIteratorAdapter", True, "EntrySetToMapIteratorAdapter", "", "", "Argument[0].Element.MapKey", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.map", "EntrySetToMapIteratorAdapter", True, "EntrySetToMapIteratorAdapter", "", "", "Argument[0].Element.MapValue", "Argument[this].MapValue", "value", "manual"] - ["org.apache.commons.collections4.map", "FixedSizeMap", True, "fixedSizeMap", "", "", "Argument[0].MapKey", "ReturnValue.MapKey", "value", "manual"] - ["org.apache.commons.collections4.map", "FixedSizeMap", True, "fixedSizeMap", "", "", "Argument[0].MapValue", "ReturnValue.MapValue", "value", "manual"] - ["org.apache.commons.collections4.map", "FixedSizeSortedMap", True, "fixedSizeSortedMap", "", "", "Argument[0].MapKey", "ReturnValue.MapKey", "value", "manual"] - ["org.apache.commons.collections4.map", "FixedSizeSortedMap", True, "fixedSizeSortedMap", "", "", "Argument[0].MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["org.apache.commons.collections4.map", "Flat3Map", True, "Flat3Map", "", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections4.map", "Flat3Map", True, "Flat3Map", "", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections4.map", "HashedMap", True, "HashedMap", "(Map)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections4.map", "HashedMap", True, "HashedMap", "(Map)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections4.map", "LRUMap", True, "LRUMap", "(Map)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections4.map", "LRUMap", True, "LRUMap", "(Map)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections4.map", "LRUMap", True, "LRUMap", "(Map,boolean)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections4.map", "LRUMap", True, "LRUMap", "(Map,boolean)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] + - ["org.apache.commons.collections4.map", "Flat3Map", True, "Flat3Map", "", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4.map", "Flat3Map", True, "Flat3Map", "", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections4.map", "HashedMap", True, "HashedMap", "(Map)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4.map", "HashedMap", True, "HashedMap", "(Map)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections4.map", "LRUMap", True, "LRUMap", "(Map)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4.map", "LRUMap", True, "LRUMap", "(Map)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections4.map", "LRUMap", True, "LRUMap", "(Map,boolean)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4.map", "LRUMap", True, "LRUMap", "(Map,boolean)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] - ["org.apache.commons.collections4.map", "LRUMap", True, "get", "(Object,boolean)", "", "Argument[0].MapValue", "ReturnValue", "value", "manual"] - ["org.apache.commons.collections4.map", "LazyMap", True, "lazyMap", "", "", "Argument[0].MapKey", "ReturnValue.MapKey", "value", "manual"] - ["org.apache.commons.collections4.map", "LazyMap", True, "lazyMap", "", "", "Argument[0].MapValue", "ReturnValue.MapValue", "value", "manual"] - ["org.apache.commons.collections4.map", "LazySortedMap", True, "lazySortedMap", "", "", "Argument[0].MapKey", "ReturnValue.MapKey", "value", "manual"] - ["org.apache.commons.collections4.map", "LazySortedMap", True, "lazySortedMap", "", "", "Argument[0].MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["org.apache.commons.collections4.map", "LinkedMap", True, "LinkedMap", "(Map)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections4.map", "LinkedMap", True, "LinkedMap", "(Map)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections4.map", "LinkedMap", True, "asList", "", "", "Argument[-1].MapKey", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections4.map", "LinkedMap", True, "get", "(int)", "", "Argument[-1].MapKey", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections4.map", "LinkedMap", True, "getValue", "(int)", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections4.map", "LinkedMap", True, "remove", "(int)", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections4.map", "ListOrderedMap", True, "asList", "", "", "Argument[-1].MapKey", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections4.map", "ListOrderedMap", True, "get", "(int)", "", "Argument[-1].MapKey", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections4.map", "ListOrderedMap", True, "getValue", "(int)", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections4.map", "ListOrderedMap", True, "keyList", "", "", "Argument[-1].MapKey", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections4.map", "LinkedMap", True, "LinkedMap", "(Map)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4.map", "LinkedMap", True, "LinkedMap", "(Map)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections4.map", "LinkedMap", True, "asList", "", "", "Argument[this].MapKey", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections4.map", "LinkedMap", True, "get", "(int)", "", "Argument[this].MapKey", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections4.map", "LinkedMap", True, "getValue", "(int)", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections4.map", "LinkedMap", True, "remove", "(int)", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections4.map", "ListOrderedMap", True, "asList", "", "", "Argument[this].MapKey", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections4.map", "ListOrderedMap", True, "get", "(int)", "", "Argument[this].MapKey", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections4.map", "ListOrderedMap", True, "getValue", "(int)", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections4.map", "ListOrderedMap", True, "keyList", "", "", "Argument[this].MapKey", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections4.map", "ListOrderedMap", True, "listOrderedMap", "", "", "Argument[0].MapKey", "ReturnValue.MapKey", "value", "manual"] - ["org.apache.commons.collections4.map", "ListOrderedMap", True, "listOrderedMap", "", "", "Argument[0].MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["org.apache.commons.collections4.map", "ListOrderedMap", True, "put", "", "", "Argument[1]", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections4.map", "ListOrderedMap", True, "put", "", "", "Argument[2]", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections4.map", "ListOrderedMap", True, "putAll", "", "", "Argument[1].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections4.map", "ListOrderedMap", True, "putAll", "", "", "Argument[1].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections4.map", "ListOrderedMap", True, "remove", "(int)", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections4.map", "ListOrderedMap", True, "setValue", "", "", "Argument[1]", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections4.map", "ListOrderedMap", True, "valueList", "", "", "Argument[-1].MapValue", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections4.map", "MultiKeyMap", True, "get", "", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections4.map", "MultiKeyMap", True, "put", "", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections4.map", "MultiKeyMap", True, "put", "(Object,Object,Object)", "", "Argument[0..1]", "Argument[-1].MapKey.Element", "value", "manual"] - - ["org.apache.commons.collections4.map", "MultiKeyMap", True, "put", "(Object,Object,Object)", "", "Argument[2]", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections4.map", "MultiKeyMap", True, "put", "(Object,Object,Object,Object)", "", "Argument[0..2]", "Argument[-1].MapKey.Element", "value", "manual"] - - ["org.apache.commons.collections4.map", "MultiKeyMap", True, "put", "(Object,Object,Object,Object)", "", "Argument[3]", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections4.map", "MultiKeyMap", True, "put", "(Object,Object,Object,Object,Object)", "", "Argument[0..3]", "Argument[-1].MapKey.Element", "value", "manual"] - - ["org.apache.commons.collections4.map", "MultiKeyMap", True, "put", "(Object,Object,Object,Object,Object)", "", "Argument[4]", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections4.map", "MultiKeyMap", True, "put", "(Object,Object,Object,Object,Object,Object)", "", "Argument[0..4]", "Argument[-1].MapKey.Element", "value", "manual"] - - ["org.apache.commons.collections4.map", "MultiKeyMap", True, "put", "(Object,Object,Object,Object,Object,Object)", "", "Argument[5]", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections4.map", "MultiKeyMap", True, "removeMultiKey", "", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections4.map", "MultiValueMap", True, "getCollection", "", "", "Argument[-1].MapValue.Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections4.map", "MultiValueMap", True, "iterator", "()", "", "Argument[-1].MapKey", "ReturnValue.Element.MapKey", "value", "manual"] - - ["org.apache.commons.collections4.map", "MultiValueMap", True, "iterator", "()", "", "Argument[-1].MapValue.Element", "ReturnValue.Element.MapValue", "value", "manual"] - - ["org.apache.commons.collections4.map", "MultiValueMap", True, "iterator", "(Object)", "", "Argument[-1].MapValue.Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections4.map", "ListOrderedMap", True, "put", "", "", "Argument[1]", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4.map", "ListOrderedMap", True, "put", "", "", "Argument[2]", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections4.map", "ListOrderedMap", True, "putAll", "", "", "Argument[1].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4.map", "ListOrderedMap", True, "putAll", "", "", "Argument[1].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections4.map", "ListOrderedMap", True, "remove", "(int)", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections4.map", "ListOrderedMap", True, "setValue", "", "", "Argument[1]", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections4.map", "ListOrderedMap", True, "valueList", "", "", "Argument[this].MapValue", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections4.map", "MultiKeyMap", True, "get", "", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections4.map", "MultiKeyMap", True, "put", "", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections4.map", "MultiKeyMap", True, "put", "(Object,Object,Object)", "", "Argument[0..1]", "Argument[this].MapKey.Element", "value", "manual"] + - ["org.apache.commons.collections4.map", "MultiKeyMap", True, "put", "(Object,Object,Object)", "", "Argument[2]", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections4.map", "MultiKeyMap", True, "put", "(Object,Object,Object,Object)", "", "Argument[0..2]", "Argument[this].MapKey.Element", "value", "manual"] + - ["org.apache.commons.collections4.map", "MultiKeyMap", True, "put", "(Object,Object,Object,Object)", "", "Argument[3]", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections4.map", "MultiKeyMap", True, "put", "(Object,Object,Object,Object,Object)", "", "Argument[0..3]", "Argument[this].MapKey.Element", "value", "manual"] + - ["org.apache.commons.collections4.map", "MultiKeyMap", True, "put", "(Object,Object,Object,Object,Object)", "", "Argument[4]", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections4.map", "MultiKeyMap", True, "put", "(Object,Object,Object,Object,Object,Object)", "", "Argument[0..4]", "Argument[this].MapKey.Element", "value", "manual"] + - ["org.apache.commons.collections4.map", "MultiKeyMap", True, "put", "(Object,Object,Object,Object,Object,Object)", "", "Argument[5]", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections4.map", "MultiKeyMap", True, "removeMultiKey", "", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections4.map", "MultiValueMap", True, "getCollection", "", "", "Argument[this].MapValue.Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections4.map", "MultiValueMap", True, "iterator", "()", "", "Argument[this].MapKey", "ReturnValue.Element.MapKey", "value", "manual"] + - ["org.apache.commons.collections4.map", "MultiValueMap", True, "iterator", "()", "", "Argument[this].MapValue.Element", "ReturnValue.Element.MapValue", "value", "manual"] + - ["org.apache.commons.collections4.map", "MultiValueMap", True, "iterator", "(Object)", "", "Argument[this].MapValue.Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections4.map", "MultiValueMap", True, "multiValueMap", "", "", "Argument[0].MapKey", "ReturnValue.MapKey", "value", "manual"] - ["org.apache.commons.collections4.map", "MultiValueMap", True, "multiValueMap", "", "", "Argument[0].MapValue.Element", "ReturnValue.MapValue.Element", "value", "manual"] - - ["org.apache.commons.collections4.map", "MultiValueMap", True, "putAll", "(Map)", "", "Argument[0].MapValue", "Argument[-1].MapValue.Element", "value", "manual"] - - ["org.apache.commons.collections4.map", "MultiValueMap", True, "putAll", "(Map)", "", "Argument[0].MapValue.Element", "Argument[-1].MapValue.Element", "value", "manual"] - - ["org.apache.commons.collections4.map", "MultiValueMap", True, "putAll", "(Object,Collection)", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections4.map", "MultiValueMap", True, "putAll", "(Object,Collection)", "", "Argument[1].Element", "Argument[-1].MapValue.Element", "value", "manual"] - - ["org.apache.commons.collections4.map", "MultiValueMap", True, "values", "", "", "Argument[-1].MapValue.Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections4.map", "PassiveExpiringMap", True, "PassiveExpiringMap", "(ExpirationPolicy,Map)", "", "Argument[1].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections4.map", "PassiveExpiringMap", True, "PassiveExpiringMap", "(ExpirationPolicy,Map)", "", "Argument[1].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections4.map", "PassiveExpiringMap", True, "PassiveExpiringMap", "(Map)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections4.map", "PassiveExpiringMap", True, "PassiveExpiringMap", "(Map)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections4.map", "PassiveExpiringMap", True, "PassiveExpiringMap", "(long,Map)", "", "Argument[1].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections4.map", "PassiveExpiringMap", True, "PassiveExpiringMap", "(long,Map)", "", "Argument[1].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections4.map", "PassiveExpiringMap", True, "PassiveExpiringMap", "(long,TimeUnit,Map)", "", "Argument[2].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections4.map", "PassiveExpiringMap", True, "PassiveExpiringMap", "(long,TimeUnit,Map)", "", "Argument[2].MapValue", "Argument[-1].MapValue", "value", "manual"] + - ["org.apache.commons.collections4.map", "MultiValueMap", True, "putAll", "(Map)", "", "Argument[0].MapValue", "Argument[this].MapValue.Element", "value", "manual"] + - ["org.apache.commons.collections4.map", "MultiValueMap", True, "putAll", "(Map)", "", "Argument[0].MapValue.Element", "Argument[this].MapValue.Element", "value", "manual"] + - ["org.apache.commons.collections4.map", "MultiValueMap", True, "putAll", "(Object,Collection)", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4.map", "MultiValueMap", True, "putAll", "(Object,Collection)", "", "Argument[1].Element", "Argument[this].MapValue.Element", "value", "manual"] + - ["org.apache.commons.collections4.map", "MultiValueMap", True, "values", "", "", "Argument[this].MapValue.Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections4.map", "PassiveExpiringMap", True, "PassiveExpiringMap", "(ExpirationPolicy,Map)", "", "Argument[1].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4.map", "PassiveExpiringMap", True, "PassiveExpiringMap", "(ExpirationPolicy,Map)", "", "Argument[1].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections4.map", "PassiveExpiringMap", True, "PassiveExpiringMap", "(Map)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4.map", "PassiveExpiringMap", True, "PassiveExpiringMap", "(Map)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections4.map", "PassiveExpiringMap", True, "PassiveExpiringMap", "(long,Map)", "", "Argument[1].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4.map", "PassiveExpiringMap", True, "PassiveExpiringMap", "(long,Map)", "", "Argument[1].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections4.map", "PassiveExpiringMap", True, "PassiveExpiringMap", "(long,TimeUnit,Map)", "", "Argument[2].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4.map", "PassiveExpiringMap", True, "PassiveExpiringMap", "(long,TimeUnit,Map)", "", "Argument[2].MapValue", "Argument[this].MapValue", "value", "manual"] - ["org.apache.commons.collections4.map", "PredicatedMap", True, "predicatedMap", "", "", "Argument[0].MapKey", "ReturnValue.MapKey", "value", "manual"] - ["org.apache.commons.collections4.map", "PredicatedMap", True, "predicatedMap", "", "", "Argument[0].MapValue", "ReturnValue.MapValue", "value", "manual"] - ["org.apache.commons.collections4.map", "PredicatedSortedMap", True, "predicatedSortedMap", "", "", "Argument[0].MapKey", "ReturnValue.MapKey", "value", "manual"] - ["org.apache.commons.collections4.map", "PredicatedSortedMap", True, "predicatedSortedMap", "", "", "Argument[0].MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["org.apache.commons.collections4.map", "SingletonMap", True, "SingletonMap", "(Entry)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections4.map", "SingletonMap", True, "SingletonMap", "(Entry)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections4.map", "SingletonMap", True, "SingletonMap", "(KeyValue)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections4.map", "SingletonMap", True, "SingletonMap", "(KeyValue)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections4.map", "SingletonMap", True, "SingletonMap", "(Map)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections4.map", "SingletonMap", True, "SingletonMap", "(Map)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections4.map", "SingletonMap", True, "SingletonMap", "(Object,Object)", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections4.map", "SingletonMap", True, "SingletonMap", "(Object,Object)", "", "Argument[1]", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections4.map", "SingletonMap", True, "setValue", "", "", "Argument[0]", "Argument[-1].MapValue", "value", "manual"] + - ["org.apache.commons.collections4.map", "SingletonMap", True, "SingletonMap", "(Entry)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4.map", "SingletonMap", True, "SingletonMap", "(Entry)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections4.map", "SingletonMap", True, "SingletonMap", "(KeyValue)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4.map", "SingletonMap", True, "SingletonMap", "(KeyValue)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections4.map", "SingletonMap", True, "SingletonMap", "(Map)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4.map", "SingletonMap", True, "SingletonMap", "(Map)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections4.map", "SingletonMap", True, "SingletonMap", "(Object,Object)", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4.map", "SingletonMap", True, "SingletonMap", "(Object,Object)", "", "Argument[1]", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections4.map", "SingletonMap", True, "setValue", "", "", "Argument[0]", "Argument[this].MapValue", "value", "manual"] - ["org.apache.commons.collections4.map", "TransformedMap", True, "transformingMap", "", "", "Argument[0].MapKey", "ReturnValue.MapKey", "value", "manual"] - ["org.apache.commons.collections4.map", "TransformedMap", True, "transformingMap", "", "", "Argument[0].MapValue", "ReturnValue.MapValue", "value", "manual"] - ["org.apache.commons.collections4.map", "TransformedSortedMap", True, "transformingSortedMap", "", "", "Argument[0].MapKey", "ReturnValue.MapKey", "value", "manual"] diff --git a/java/ql/lib/ext/org.apache.commons.collections4.model.yml b/java/ql/lib/ext/org.apache.commons.collections4.model.yml index 218da08ca22..fd1f8b40582 100644 --- a/java/ql/lib/ext/org.apache.commons.collections4.model.yml +++ b/java/ql/lib/ext/org.apache.commons.collections4.model.yml @@ -10,12 +10,12 @@ extensions: # Note that when lambdas are supported we should have more models for populateMap # Note that when lambdas are supported we should have a model for collect, forAllButLastDo, forAllDo, transform # Note that when lambdas are supported we should have a model for forEach, forEachButLast, transformedIterator - - ["org.apache.commons.collections4", "ArrayStack", True, "peek", "", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections4", "ArrayStack", True, "pop", "", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections4", "ArrayStack", True, "push", "", "", "Argument[0]", "Argument[-1].Element", "value", "manual"] + - ["org.apache.commons.collections4", "ArrayStack", True, "peek", "", "", "Argument[this].Element", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections4", "ArrayStack", True, "pop", "", "", "Argument[this].Element", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections4", "ArrayStack", True, "push", "", "", "Argument[0]", "Argument[this].Element", "value", "manual"] - ["org.apache.commons.collections4", "ArrayStack", True, "push", "", "", "Argument[0]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections4", "Bag", True, "add", "", "", "Argument[0]", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4", "Bag", True, "uniqueSet", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections4", "Bag", True, "add", "", "", "Argument[0]", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4", "Bag", True, "uniqueSet", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections4", "BagUtils", True, "collectionBag", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections4", "BagUtils", True, "predicatedBag", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections4", "BagUtils", True, "predicatedSortedBag", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] @@ -25,10 +25,10 @@ extensions: - ["org.apache.commons.collections4", "BagUtils", True, "transformingSortedBag", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections4", "BagUtils", True, "unmodifiableBag", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections4", "BagUtils", True, "unmodifiableSortedBag", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections4", "BidiMap", True, "getKey", "", "", "Argument[-1].MapKey", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections4", "BidiMap", True, "inverseBidiMap", "", "", "Argument[-1].MapKey", "ReturnValue.MapValue", "value", "manual"] - - ["org.apache.commons.collections4", "BidiMap", True, "inverseBidiMap", "", "", "Argument[-1].MapValue", "ReturnValue.MapKey", "value", "manual"] - - ["org.apache.commons.collections4", "BidiMap", True, "removeValue", "", "", "Argument[-1].MapKey", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections4", "BidiMap", True, "getKey", "", "", "Argument[this].MapKey", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections4", "BidiMap", True, "inverseBidiMap", "", "", "Argument[this].MapKey", "ReturnValue.MapValue", "value", "manual"] + - ["org.apache.commons.collections4", "BidiMap", True, "inverseBidiMap", "", "", "Argument[this].MapValue", "ReturnValue.MapKey", "value", "manual"] + - ["org.apache.commons.collections4", "BidiMap", True, "removeValue", "", "", "Argument[this].MapKey", "ReturnValue", "value", "manual"] - ["org.apache.commons.collections4", "CollectionUtils", True, "addAll", "(Collection,Enumeration)", "", "Argument[1].Element", "Argument[0].Element", "value", "manual"] - ["org.apache.commons.collections4", "CollectionUtils", True, "addAll", "(Collection,Iterable)", "", "Argument[1].Element", "Argument[0].Element", "value", "manual"] - ["org.apache.commons.collections4", "CollectionUtils", True, "addAll", "(Collection,Iterator)", "", "Argument[1].Element", "Argument[0].Element", "value", "manual"] @@ -75,40 +75,40 @@ extensions: - ["org.apache.commons.collections4", "EnumerationUtils", True, "get", "", "", "Argument[0].Element", "ReturnValue", "value", "manual"] - ["org.apache.commons.collections4", "EnumerationUtils", True, "toList", "(Enumeration)", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections4", "EnumerationUtils", True, "toList", "(StringTokenizer)", "", "Argument[0]", "ReturnValue.Element", "taint", "manual"] - - ["org.apache.commons.collections4", "FluentIterable", True, "append", "(Iterable)", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections4", "FluentIterable", True, "append", "(Iterable)", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections4", "FluentIterable", True, "append", "(Iterable)", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections4", "FluentIterable", True, "append", "(Object[])", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections4", "FluentIterable", True, "append", "(Object[])", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections4", "FluentIterable", True, "append", "(Object[])", "", "Argument[0].ArrayElement", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections4", "FluentIterable", True, "asEnumeration", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections4", "FluentIterable", True, "collate", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections4", "FluentIterable", True, "asEnumeration", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections4", "FluentIterable", True, "collate", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections4", "FluentIterable", True, "collate", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections4", "FluentIterable", True, "copyInto", "", "", "Argument[-1].Element", "Argument[0].Element", "value", "manual"] - - ["org.apache.commons.collections4", "FluentIterable", True, "eval", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections4", "FluentIterable", True, "filter", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections4", "FluentIterable", True, "get", "", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections4", "FluentIterable", True, "limit", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections4", "FluentIterable", True, "loop", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections4", "FluentIterable", True, "copyInto", "", "", "Argument[this].Element", "Argument[0].Element", "value", "manual"] + - ["org.apache.commons.collections4", "FluentIterable", True, "eval", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections4", "FluentIterable", True, "filter", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections4", "FluentIterable", True, "get", "", "", "Argument[this].Element", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections4", "FluentIterable", True, "limit", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections4", "FluentIterable", True, "loop", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections4", "FluentIterable", True, "of", "(Iterable)", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections4", "FluentIterable", True, "of", "(Object)", "", "Argument[0]", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections4", "FluentIterable", True, "of", "(Object[])", "", "Argument[0].ArrayElement", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections4", "FluentIterable", True, "reverse", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections4", "FluentIterable", True, "skip", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections4", "FluentIterable", True, "toArray", "", "", "Argument[-1].Element", "ReturnValue.ArrayElement", "value", "manual"] - - ["org.apache.commons.collections4", "FluentIterable", True, "toList", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections4", "FluentIterable", True, "unique", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections4", "FluentIterable", True, "unmodifiable", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections4", "FluentIterable", True, "zip", "(Iterable)", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections4", "FluentIterable", True, "reverse", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections4", "FluentIterable", True, "skip", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections4", "FluentIterable", True, "toArray", "", "", "Argument[this].Element", "ReturnValue.ArrayElement", "value", "manual"] + - ["org.apache.commons.collections4", "FluentIterable", True, "toList", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections4", "FluentIterable", True, "unique", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections4", "FluentIterable", True, "unmodifiable", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections4", "FluentIterable", True, "zip", "(Iterable)", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections4", "FluentIterable", True, "zip", "(Iterable)", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections4", "FluentIterable", True, "zip", "(Iterable[])", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections4", "FluentIterable", True, "zip", "(Iterable[])", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections4", "FluentIterable", True, "zip", "(Iterable[])", "", "Argument[0].ArrayElement.Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections4", "Get", True, "entrySet", "", "", "Argument[-1].MapKey", "ReturnValue.Element.MapKey", "value", "manual"] - - ["org.apache.commons.collections4", "Get", True, "entrySet", "", "", "Argument[-1].MapValue", "ReturnValue.Element.MapValue", "value", "manual"] - - ["org.apache.commons.collections4", "Get", True, "get", "", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections4", "Get", True, "keySet", "()", "", "Argument[-1].MapKey", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections4", "Get", True, "remove", "(Object)", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections4", "Get", True, "values", "()", "", "Argument[-1].MapValue", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections4", "IterableGet", True, "mapIterator", "", "", "Argument[-1].MapKey", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections4", "IterableGet", True, "mapIterator", "", "", "Argument[-1].MapValue", "ReturnValue.MapValue", "value", "manual"] + - ["org.apache.commons.collections4", "Get", True, "entrySet", "", "", "Argument[this].MapKey", "ReturnValue.Element.MapKey", "value", "manual"] + - ["org.apache.commons.collections4", "Get", True, "entrySet", "", "", "Argument[this].MapValue", "ReturnValue.Element.MapValue", "value", "manual"] + - ["org.apache.commons.collections4", "Get", True, "get", "", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections4", "Get", True, "keySet", "()", "", "Argument[this].MapKey", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections4", "Get", True, "remove", "(Object)", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections4", "Get", True, "values", "()", "", "Argument[this].MapValue", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections4", "IterableGet", True, "mapIterator", "", "", "Argument[this].MapKey", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections4", "IterableGet", True, "mapIterator", "", "", "Argument[this].MapValue", "ReturnValue.MapValue", "value", "manual"] - ["org.apache.commons.collections4", "IterableUtils", True, "boundedIterable", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections4", "IterableUtils", True, "chainedIterable", "(Iterable,Iterable)", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections4", "IterableUtils", True, "chainedIterable", "(Iterable,Iterable)", "", "Argument[1].Element", "ReturnValue.Element", "value", "manual"] @@ -191,8 +191,8 @@ extensions: - ["org.apache.commons.collections4", "IteratorUtils", True, "zippingIterator", "(Iterator,Iterator,Iterator)", "", "Argument[1].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections4", "IteratorUtils", True, "zippingIterator", "(Iterator,Iterator,Iterator)", "", "Argument[2].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections4", "IteratorUtils", True, "zippingIterator", "(Iterator[])", "", "Argument[0].ArrayElement.Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections4", "KeyValue", True, "getKey", "", "", "Argument[-1].MapKey", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections4", "KeyValue", True, "getValue", "", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections4", "KeyValue", True, "getKey", "", "", "Argument[this].MapKey", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections4", "KeyValue", True, "getValue", "", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] - ["org.apache.commons.collections4", "ListUtils", True, "defaultIfNull", "", "", "Argument[0]", "ReturnValue", "value", "manual"] - ["org.apache.commons.collections4", "ListUtils", True, "defaultIfNull", "", "", "Argument[1]", "ReturnValue", "value", "manual"] - ["org.apache.commons.collections4", "ListUtils", True, "emptyIfNull", "", "", "Argument[0]", "ReturnValue", "value", "manual"] @@ -224,10 +224,10 @@ extensions: - ["org.apache.commons.collections4", "ListUtils", True, "unmodifiableList", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] # Note that MapIterator<K, V> implements Iterator<K>, so it iterates over the keys of the map. # In order for the models of Iterator to work we have to use Element instead of MapKey for key data. - - ["org.apache.commons.collections4", "MapIterator", True, "getKey", "", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections4", "MapIterator", True, "getValue", "", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections4", "MapIterator", True, "setValue", "", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections4", "MapIterator", True, "setValue", "", "", "Argument[0]", "Argument[-1].MapValue", "value", "manual"] + - ["org.apache.commons.collections4", "MapIterator", True, "getKey", "", "", "Argument[this].Element", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections4", "MapIterator", True, "getValue", "", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections4", "MapIterator", True, "setValue", "", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections4", "MapIterator", True, "setValue", "", "", "Argument[0]", "Argument[this].MapValue", "value", "manual"] - ["org.apache.commons.collections4", "MapUtils", True, "emptyIfNull", "", "", "Argument[0]", "ReturnValue", "value", "manual"] - ["org.apache.commons.collections4", "MapUtils", True, "fixedSizeMap", "", "", "Argument[0].MapKey", "ReturnValue.MapKey", "value", "manual"] - ["org.apache.commons.collections4", "MapUtils", True, "fixedSizeMap", "", "", "Argument[0].MapValue", "ReturnValue.MapValue", "value", "manual"] @@ -287,10 +287,10 @@ extensions: - ["org.apache.commons.collections4", "MapUtils", True, "unmodifiableMap", "", "", "Argument[0].MapValue", "ReturnValue.MapValue", "value", "manual"] - ["org.apache.commons.collections4", "MapUtils", True, "unmodifiableSortedMap", "", "", "Argument[0].MapKey", "ReturnValue.MapKey", "value", "manual"] - ["org.apache.commons.collections4", "MapUtils", True, "unmodifiableSortedMap", "", "", "Argument[0].MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["org.apache.commons.collections4", "MultiMap", True, "get", "", "", "Argument[-1].MapValue.Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections4", "MultiMap", True, "put", "", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections4", "MultiMap", True, "put", "", "", "Argument[1]", "Argument[-1].MapValue.Element", "value", "manual"] - - ["org.apache.commons.collections4", "MultiMap", True, "values", "", "", "Argument[-1].MapValue.Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections4", "MultiMap", True, "get", "", "", "Argument[this].MapValue.Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections4", "MultiMap", True, "put", "", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4", "MultiMap", True, "put", "", "", "Argument[1]", "Argument[this].MapValue.Element", "value", "manual"] + - ["org.apache.commons.collections4", "MultiMap", True, "values", "", "", "Argument[this].MapValue.Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections4", "MultiMapUtils", True, "emptyIfNull", "", "", "Argument[0]", "ReturnValue", "value", "manual"] - ["org.apache.commons.collections4", "MultiMapUtils", True, "getCollection", "", "", "Argument[0].MapValue", "ReturnValue", "value", "manual"] - ["org.apache.commons.collections4", "MultiMapUtils", True, "getValuesAsBag", "", "", "Argument[0].MapValue.Element", "ReturnValue.Element", "value", "manual"] @@ -300,42 +300,42 @@ extensions: - ["org.apache.commons.collections4", "MultiMapUtils", True, "transformedMultiValuedMap", "", "", "Argument[0].MapValue.Element", "ReturnValue.MapValue.Element", "value", "manual"] - ["org.apache.commons.collections4", "MultiMapUtils", True, "unmodifiableMultiValuedMap", "", "", "Argument[0].MapKey", "ReturnValue.MapKey", "value", "manual"] - ["org.apache.commons.collections4", "MultiMapUtils", True, "unmodifiableMultiValuedMap", "", "", "Argument[0].MapValue.Element", "ReturnValue.MapValue.Element", "value", "manual"] - - ["org.apache.commons.collections4", "MultiSet", True, "add", "", "", "Argument[0]", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4", "MultiSet", True, "entrySet", "", "", "Argument[-1].Element", "ReturnValue.Element.Element", "value", "manual"] - - ["org.apache.commons.collections4", "MultiSet", True, "uniqueSet", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections4", "MultiSet$Entry", True, "getElement", "", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections4", "MultiSet", True, "add", "", "", "Argument[0]", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4", "MultiSet", True, "entrySet", "", "", "Argument[this].Element", "ReturnValue.Element.Element", "value", "manual"] + - ["org.apache.commons.collections4", "MultiSet", True, "uniqueSet", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections4", "MultiSet$Entry", True, "getElement", "", "", "Argument[this].Element", "ReturnValue", "value", "manual"] - ["org.apache.commons.collections4", "MultiSetUtils", True, "predicatedMultiSet", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections4", "MultiSetUtils", True, "synchronizedMultiSet", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections4", "MultiSetUtils", True, "unmodifiableMultiSet", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections4", "MultiValuedMap", True, "asMap", "", "", "Argument[-1].MapKey", "ReturnValue.MapKey", "value", "manual"] - - ["org.apache.commons.collections4", "MultiValuedMap", True, "asMap", "", "", "Argument[-1].MapValue.Element", "ReturnValue.MapValue.Element", "value", "manual"] - - ["org.apache.commons.collections4", "MultiValuedMap", True, "entries", "", "", "Argument[-1].MapKey", "ReturnValue.Element.MapKey", "value", "manual"] - - ["org.apache.commons.collections4", "MultiValuedMap", True, "entries", "", "", "Argument[-1].MapValue.Element", "ReturnValue.Element.MapValue", "value", "manual"] - - ["org.apache.commons.collections4", "MultiValuedMap", True, "get", "", "", "Argument[-1].MapValue.Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections4", "MultiValuedMap", True, "keySet", "", "", "Argument[-1].MapKey", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections4", "MultiValuedMap", True, "keys", "", "", "Argument[-1].MapKey", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections4", "MultiValuedMap", True, "mapIterator", "", "", "Argument[-1].MapKey", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections4", "MultiValuedMap", True, "mapIterator", "", "", "Argument[-1].MapValue.Element", "ReturnValue.MapValue", "value", "manual"] - - ["org.apache.commons.collections4", "MultiValuedMap", True, "put", "", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections4", "MultiValuedMap", True, "put", "", "", "Argument[1]", "Argument[-1].MapValue.Element", "value", "manual"] - - ["org.apache.commons.collections4", "MultiValuedMap", True, "putAll", "(Map)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections4", "MultiValuedMap", True, "putAll", "(Map)", "", "Argument[0].MapValue", "Argument[-1].MapValue.Element", "value", "manual"] - - ["org.apache.commons.collections4", "MultiValuedMap", True, "putAll", "(MultiValuedMap)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections4", "MultiValuedMap", True, "putAll", "(MultiValuedMap)", "", "Argument[0].MapValue.Element", "Argument[-1].MapValue.Element", "value", "manual"] - - ["org.apache.commons.collections4", "MultiValuedMap", True, "putAll", "(Object,Iterable)", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections4", "MultiValuedMap", True, "putAll", "(Object,Iterable)", "", "Argument[1].Element", "Argument[-1].MapValue.Element", "value", "manual"] - - ["org.apache.commons.collections4", "MultiValuedMap", True, "remove", "", "", "Argument[-1].MapValue.Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections4", "MultiValuedMap", True, "values", "", "", "Argument[-1].MapValue.Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections4", "OrderedIterator", True, "previous", "", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections4", "OrderedMap", True, "firstKey", "", "", "Argument[-1].MapKey", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections4", "OrderedMap", True, "lastKey", "", "", "Argument[-1].MapKey", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections4", "OrderedMap", True, "nextKey", "", "", "Argument[-1].MapKey", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections4", "OrderedMap", True, "previousKey", "", "", "Argument[-1].MapKey", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections4", "Put", True, "put", "", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections4", "Put", True, "put", "", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections4", "Put", True, "put", "", "", "Argument[1]", "Argument[-1].MapValue", "value", "manual"] - - ["org.apache.commons.collections4", "Put", True, "putAll", "(Map)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections4", "Put", True, "putAll", "(Map)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] + - ["org.apache.commons.collections4", "MultiValuedMap", True, "asMap", "", "", "Argument[this].MapKey", "ReturnValue.MapKey", "value", "manual"] + - ["org.apache.commons.collections4", "MultiValuedMap", True, "asMap", "", "", "Argument[this].MapValue.Element", "ReturnValue.MapValue.Element", "value", "manual"] + - ["org.apache.commons.collections4", "MultiValuedMap", True, "entries", "", "", "Argument[this].MapKey", "ReturnValue.Element.MapKey", "value", "manual"] + - ["org.apache.commons.collections4", "MultiValuedMap", True, "entries", "", "", "Argument[this].MapValue.Element", "ReturnValue.Element.MapValue", "value", "manual"] + - ["org.apache.commons.collections4", "MultiValuedMap", True, "get", "", "", "Argument[this].MapValue.Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections4", "MultiValuedMap", True, "keySet", "", "", "Argument[this].MapKey", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections4", "MultiValuedMap", True, "keys", "", "", "Argument[this].MapKey", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections4", "MultiValuedMap", True, "mapIterator", "", "", "Argument[this].MapKey", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections4", "MultiValuedMap", True, "mapIterator", "", "", "Argument[this].MapValue.Element", "ReturnValue.MapValue", "value", "manual"] + - ["org.apache.commons.collections4", "MultiValuedMap", True, "put", "", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4", "MultiValuedMap", True, "put", "", "", "Argument[1]", "Argument[this].MapValue.Element", "value", "manual"] + - ["org.apache.commons.collections4", "MultiValuedMap", True, "putAll", "(Map)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4", "MultiValuedMap", True, "putAll", "(Map)", "", "Argument[0].MapValue", "Argument[this].MapValue.Element", "value", "manual"] + - ["org.apache.commons.collections4", "MultiValuedMap", True, "putAll", "(MultiValuedMap)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4", "MultiValuedMap", True, "putAll", "(MultiValuedMap)", "", "Argument[0].MapValue.Element", "Argument[this].MapValue.Element", "value", "manual"] + - ["org.apache.commons.collections4", "MultiValuedMap", True, "putAll", "(Object,Iterable)", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4", "MultiValuedMap", True, "putAll", "(Object,Iterable)", "", "Argument[1].Element", "Argument[this].MapValue.Element", "value", "manual"] + - ["org.apache.commons.collections4", "MultiValuedMap", True, "remove", "", "", "Argument[this].MapValue.Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections4", "MultiValuedMap", True, "values", "", "", "Argument[this].MapValue.Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections4", "OrderedIterator", True, "previous", "", "", "Argument[this].Element", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections4", "OrderedMap", True, "firstKey", "", "", "Argument[this].MapKey", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections4", "OrderedMap", True, "lastKey", "", "", "Argument[this].MapKey", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections4", "OrderedMap", True, "nextKey", "", "", "Argument[this].MapKey", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections4", "OrderedMap", True, "previousKey", "", "", "Argument[this].MapKey", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections4", "Put", True, "put", "", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections4", "Put", True, "put", "", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4", "Put", True, "put", "", "", "Argument[1]", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections4", "Put", True, "putAll", "(Map)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4", "Put", True, "putAll", "(Map)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] - ["org.apache.commons.collections4", "QueueUtils", True, "predicatedQueue", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections4", "QueueUtils", True, "synchronizedQueue", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections4", "QueueUtils", True, "transformingQueue", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] @@ -362,16 +362,16 @@ extensions: - ["org.apache.commons.collections4", "SetUtils", True, "unmodifiableSet", "(Object[])", "", "Argument[0].ArrayElement", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections4", "SetUtils", True, "unmodifiableSet", "(Set)", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections4", "SetUtils", True, "unmodifiableSortedSet", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections4", "SetUtils$SetView", True, "copyInto", "", "", "Argument[-1].Element", "Argument[0].Element", "value", "manual"] - - ["org.apache.commons.collections4", "SetUtils$SetView", True, "createIterator", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections4", "SetUtils$SetView", True, "toSet", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections4", "SortedBag", True, "first", "", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections4", "SortedBag", True, "last", "", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections4", "SetUtils$SetView", True, "copyInto", "", "", "Argument[this].Element", "Argument[0].Element", "value", "manual"] + - ["org.apache.commons.collections4", "SetUtils$SetView", True, "createIterator", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections4", "SetUtils$SetView", True, "toSet", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections4", "SortedBag", True, "first", "", "", "Argument[this].Element", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections4", "SortedBag", True, "last", "", "", "Argument[this].Element", "ReturnValue", "value", "manual"] - ["org.apache.commons.collections4", "SplitMapUtils", True, "readableMap", "", "", "Argument[0].MapKey", "ReturnValue.MapKey", "value", "manual"] - ["org.apache.commons.collections4", "SplitMapUtils", True, "readableMap", "", "", "Argument[0].MapValue", "ReturnValue.MapValue", "value", "manual"] - ["org.apache.commons.collections4", "SplitMapUtils", True, "writableMap", "", "", "Argument[0].MapKey", "ReturnValue.MapKey", "value", "manual"] - ["org.apache.commons.collections4", "SplitMapUtils", True, "writableMap", "", "", "Argument[0].MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["org.apache.commons.collections4", "Trie", True, "prefixMap", "", "", "Argument[-1].MapKey", "ReturnValue.MapKey", "value", "manual"] - - ["org.apache.commons.collections4", "Trie", True, "prefixMap", "", "", "Argument[-1].MapValue", "ReturnValue.MapValue", "value", "manual"] + - ["org.apache.commons.collections4", "Trie", True, "prefixMap", "", "", "Argument[this].MapKey", "ReturnValue.MapKey", "value", "manual"] + - ["org.apache.commons.collections4", "Trie", True, "prefixMap", "", "", "Argument[this].MapValue", "ReturnValue.MapValue", "value", "manual"] - ["org.apache.commons.collections4", "TrieUtils", True, "unmodifiableTrie", "", "", "Argument[0].MapKey", "ReturnValue.MapKey", "value", "manual"] - ["org.apache.commons.collections4", "TrieUtils", True, "unmodifiableTrie", "", "", "Argument[0].MapValue", "ReturnValue.MapValue", "value", "manual"] diff --git a/java/ql/lib/ext/org.apache.commons.collections4.multimap.model.yml b/java/ql/lib/ext/org.apache.commons.collections4.multimap.model.yml index 6bd01379d9e..914216c9803 100644 --- a/java/ql/lib/ext/org.apache.commons.collections4.multimap.model.yml +++ b/java/ql/lib/ext/org.apache.commons.collections4.multimap.model.yml @@ -4,14 +4,14 @@ extensions: extensible: summaryModel data: # Note that when lambdas are supported we should have more models for TransformedMultiValuedMap - - ["org.apache.commons.collections4.multimap", "ArrayListValuedHashMap", True, "ArrayListValuedHashMap", "(Map)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections4.multimap", "ArrayListValuedHashMap", True, "ArrayListValuedHashMap", "(Map)", "", "Argument[0].MapValue", "Argument[-1].MapValue.Element", "value", "manual"] - - ["org.apache.commons.collections4.multimap", "ArrayListValuedHashMap", True, "ArrayListValuedHashMap", "(MultiValuedMap)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections4.multimap", "ArrayListValuedHashMap", True, "ArrayListValuedHashMap", "(MultiValuedMap)", "", "Argument[0].MapValue.Element", "Argument[-1].MapValue.Element", "value", "manual"] - - ["org.apache.commons.collections4.multimap", "HashSetValuedHashMap", True, "HashSetValuedHashMap", "(Map)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections4.multimap", "HashSetValuedHashMap", True, "HashSetValuedHashMap", "(Map)", "", "Argument[0].MapValue", "Argument[-1].MapValue.Element", "value", "manual"] - - ["org.apache.commons.collections4.multimap", "HashSetValuedHashMap", True, "HashSetValuedHashMap", "(MultiValuedMap)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections4.multimap", "HashSetValuedHashMap", True, "HashSetValuedHashMap", "(MultiValuedMap)", "", "Argument[0].MapValue.Element", "Argument[-1].MapValue.Element", "value", "manual"] + - ["org.apache.commons.collections4.multimap", "ArrayListValuedHashMap", True, "ArrayListValuedHashMap", "(Map)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4.multimap", "ArrayListValuedHashMap", True, "ArrayListValuedHashMap", "(Map)", "", "Argument[0].MapValue", "Argument[this].MapValue.Element", "value", "manual"] + - ["org.apache.commons.collections4.multimap", "ArrayListValuedHashMap", True, "ArrayListValuedHashMap", "(MultiValuedMap)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4.multimap", "ArrayListValuedHashMap", True, "ArrayListValuedHashMap", "(MultiValuedMap)", "", "Argument[0].MapValue.Element", "Argument[this].MapValue.Element", "value", "manual"] + - ["org.apache.commons.collections4.multimap", "HashSetValuedHashMap", True, "HashSetValuedHashMap", "(Map)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4.multimap", "HashSetValuedHashMap", True, "HashSetValuedHashMap", "(Map)", "", "Argument[0].MapValue", "Argument[this].MapValue.Element", "value", "manual"] + - ["org.apache.commons.collections4.multimap", "HashSetValuedHashMap", True, "HashSetValuedHashMap", "(MultiValuedMap)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4.multimap", "HashSetValuedHashMap", True, "HashSetValuedHashMap", "(MultiValuedMap)", "", "Argument[0].MapValue.Element", "Argument[this].MapValue.Element", "value", "manual"] - ["org.apache.commons.collections4.multimap", "TransformedMultiValuedMap", True, "transformingMap", "", "", "Argument[0].MapKey", "ReturnValue.MapKey", "value", "manual"] - ["org.apache.commons.collections4.multimap", "TransformedMultiValuedMap", True, "transformingMap", "", "", "Argument[0].MapValue.Element", "ReturnValue.MapValue.Element", "value", "manual"] - ["org.apache.commons.collections4.multimap", "UnmodifiableMultiValuedMap", True, "unmodifiableMultiValuedMap", "(MultiValuedMap)", "", "Argument[0].MapKey", "ReturnValue.MapKey", "value", "manual"] diff --git a/java/ql/lib/ext/org.apache.commons.collections4.multiset.model.yml b/java/ql/lib/ext/org.apache.commons.collections4.multiset.model.yml index c3da82c1b7a..ee7687dc234 100644 --- a/java/ql/lib/ext/org.apache.commons.collections4.multiset.model.yml +++ b/java/ql/lib/ext/org.apache.commons.collections4.multiset.model.yml @@ -3,7 +3,7 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["org.apache.commons.collections4.multiset", "HashMultiSet", True, "HashMultiSet", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] + - ["org.apache.commons.collections4.multiset", "HashMultiSet", True, "HashMultiSet", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] - ["org.apache.commons.collections4.multiset", "PredicatedMultiSet", True, "predicatedMultiSet", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections4.multiset", "SynchronizedMultiSet", True, "synchronizedMultiSet", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections4.multiset", "UnmodifiableMultiSet", True, "unmodifiableMultiSet", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] diff --git a/java/ql/lib/ext/org.apache.commons.collections4.queue.model.yml b/java/ql/lib/ext/org.apache.commons.collections4.queue.model.yml index b2cab2a0594..5102aa27e08 100644 --- a/java/ql/lib/ext/org.apache.commons.collections4.queue.model.yml +++ b/java/ql/lib/ext/org.apache.commons.collections4.queue.model.yml @@ -4,8 +4,8 @@ extensions: extensible: summaryModel data: # Note that when lambdas are supported we should have more models for TransformedQueue - - ["org.apache.commons.collections4.queue", "CircularFifoQueue", True, "CircularFifoQueue", "(Collection)", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.queue", "CircularFifoQueue", True, "get", "", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections4.queue", "CircularFifoQueue", True, "CircularFifoQueue", "(Collection)", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.queue", "CircularFifoQueue", True, "get", "", "", "Argument[this].Element", "ReturnValue", "value", "manual"] - ["org.apache.commons.collections4.queue", "PredicatedQueue", True, "predicatedQueue", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections4.queue", "SynchronizedQueue", True, "synchronizedQueue", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections4.queue", "TransformedQueue", True, "transformingQueue", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] diff --git a/java/ql/lib/ext/org.apache.commons.collections4.set.model.yml b/java/ql/lib/ext/org.apache.commons.collections4.set.model.yml index deafbdffaaf..829b9a4d0d0 100644 --- a/java/ql/lib/ext/org.apache.commons.collections4.set.model.yml +++ b/java/ql/lib/ext/org.apache.commons.collections4.set.model.yml @@ -4,25 +4,25 @@ extensions: extensible: summaryModel data: # Note that when lambdas are supported we should have more models for TransformedNavigableSet - - ["org.apache.commons.collections4.set", "AbstractNavigableSetDecorator", True, "AbstractNavigableSetDecorator", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.set", "AbstractSetDecorator", True, "AbstractSetDecorator", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.set", "AbstractSortedSetDecorator", True, "AbstractSortedSetDecorator", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.set", "CompositeSet", True, "CompositeSet", "(Set)", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.set", "CompositeSet", True, "CompositeSet", "(Set[])", "", "Argument[0].ArrayElement.Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.set", "CompositeSet", True, "addComposited", "(Set)", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.set", "CompositeSet", True, "addComposited", "(Set,Set)", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.set", "CompositeSet", True, "addComposited", "(Set,Set)", "", "Argument[1].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.set", "CompositeSet", True, "addComposited", "(Set[])", "", "Argument[0].ArrayElement.Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.set", "CompositeSet", True, "getSets", "", "", "Argument[-1].Element", "ReturnValue.Element.Element", "value", "manual"] - - ["org.apache.commons.collections4.set", "CompositeSet", True, "toSet", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections4.set", "AbstractNavigableSetDecorator", True, "AbstractNavigableSetDecorator", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.set", "AbstractSetDecorator", True, "AbstractSetDecorator", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.set", "AbstractSortedSetDecorator", True, "AbstractSortedSetDecorator", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.set", "CompositeSet", True, "CompositeSet", "(Set)", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.set", "CompositeSet", True, "CompositeSet", "(Set[])", "", "Argument[0].ArrayElement.Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.set", "CompositeSet", True, "addComposited", "(Set)", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.set", "CompositeSet", True, "addComposited", "(Set,Set)", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.set", "CompositeSet", True, "addComposited", "(Set,Set)", "", "Argument[1].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.set", "CompositeSet", True, "addComposited", "(Set[])", "", "Argument[0].ArrayElement.Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.set", "CompositeSet", True, "getSets", "", "", "Argument[this].Element", "ReturnValue.Element.Element", "value", "manual"] + - ["org.apache.commons.collections4.set", "CompositeSet", True, "toSet", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections4.set", "CompositeSet$SetMutator", True, "add", "", "", "Argument[2]", "Argument[0].Element", "value", "manual"] - ["org.apache.commons.collections4.set", "CompositeSet$SetMutator", True, "add", "", "", "Argument[2]", "Argument[1].Element.Element", "value", "manual"] - ["org.apache.commons.collections4.set", "CompositeSet$SetMutator", True, "addAll", "", "", "Argument[2].Element", "Argument[0].Element", "value", "manual"] - ["org.apache.commons.collections4.set", "CompositeSet$SetMutator", True, "addAll", "", "", "Argument[2].Element", "Argument[1].Element.Element", "value", "manual"] - - ["org.apache.commons.collections4.set", "ListOrderedSet", True, "add", "", "", "Argument[1]", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.set", "ListOrderedSet", True, "addAll", "", "", "Argument[1].Element", "Argument[-1].Element", "value", "manual"] - - ["org.apache.commons.collections4.set", "ListOrderedSet", True, "asList", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["org.apache.commons.collections4.set", "ListOrderedSet", True, "get", "", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections4.set", "ListOrderedSet", True, "add", "", "", "Argument[1]", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.set", "ListOrderedSet", True, "addAll", "", "", "Argument[1].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.set", "ListOrderedSet", True, "asList", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections4.set", "ListOrderedSet", True, "get", "", "", "Argument[this].Element", "ReturnValue", "value", "manual"] - ["org.apache.commons.collections4.set", "ListOrderedSet", True, "listOrderedSet", "(List)", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections4.set", "ListOrderedSet", True, "listOrderedSet", "(Set)", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections4.set", "MapBackedSet", True, "mapBackedSet", "", "", "Argument[0].MapKey", "ReturnValue.Element", "value", "manual"] diff --git a/java/ql/lib/ext/org.apache.commons.collections4.splitmap.model.yml b/java/ql/lib/ext/org.apache.commons.collections4.splitmap.model.yml index 7190dac37a0..b08f89a3556 100644 --- a/java/ql/lib/ext/org.apache.commons.collections4.splitmap.model.yml +++ b/java/ql/lib/ext/org.apache.commons.collections4.splitmap.model.yml @@ -4,7 +4,7 @@ extensions: extensible: summaryModel data: # Note that when lambdas are supported we should have more models for TransformedSplitMap - - ["org.apache.commons.collections4.splitmap", "AbstractIterableGetMapDecorator", True, "AbstractIterableGetMapDecorator", "", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections4.splitmap", "AbstractIterableGetMapDecorator", True, "AbstractIterableGetMapDecorator", "", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] + - ["org.apache.commons.collections4.splitmap", "AbstractIterableGetMapDecorator", True, "AbstractIterableGetMapDecorator", "", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4.splitmap", "AbstractIterableGetMapDecorator", True, "AbstractIterableGetMapDecorator", "", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] - ["org.apache.commons.collections4.splitmap", "TransformedSplitMap", True, "transformingMap", "", "", "Argument[0].MapKey", "ReturnValue.MapKey", "value", "manual"] - ["org.apache.commons.collections4.splitmap", "TransformedSplitMap", True, "transformingMap", "", "", "Argument[0].MapValue", "ReturnValue.MapValue", "value", "manual"] diff --git a/java/ql/lib/ext/org.apache.commons.collections4.trie.model.yml b/java/ql/lib/ext/org.apache.commons.collections4.trie.model.yml index 7c7195d54dc..56e815273fc 100644 --- a/java/ql/lib/ext/org.apache.commons.collections4.trie.model.yml +++ b/java/ql/lib/ext/org.apache.commons.collections4.trie.model.yml @@ -4,11 +4,11 @@ extensions: extensible: summaryModel data: # Note that when lambdas are supported we should have more models for TransformedSplitMap - - ["org.apache.commons.collections4.trie", "AbstractPatriciaTrie", True, "select", "", "", "Argument[-1].MapKey", "ReturnValue.MapKey", "value", "manual"] - - ["org.apache.commons.collections4.trie", "AbstractPatriciaTrie", True, "select", "", "", "Argument[-1].MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["org.apache.commons.collections4.trie", "AbstractPatriciaTrie", True, "selectKey", "", "", "Argument[-1].MapKey", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections4.trie", "AbstractPatriciaTrie", True, "selectValue", "", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections4.trie", "PatriciaTrie", True, "PatriciaTrie", "", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.apache.commons.collections4.trie", "PatriciaTrie", True, "PatriciaTrie", "", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] + - ["org.apache.commons.collections4.trie", "AbstractPatriciaTrie", True, "select", "", "", "Argument[this].MapKey", "ReturnValue.MapKey", "value", "manual"] + - ["org.apache.commons.collections4.trie", "AbstractPatriciaTrie", True, "select", "", "", "Argument[this].MapValue", "ReturnValue.MapValue", "value", "manual"] + - ["org.apache.commons.collections4.trie", "AbstractPatriciaTrie", True, "selectKey", "", "", "Argument[this].MapKey", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections4.trie", "AbstractPatriciaTrie", True, "selectValue", "", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections4.trie", "PatriciaTrie", True, "PatriciaTrie", "", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4.trie", "PatriciaTrie", True, "PatriciaTrie", "", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] - ["org.apache.commons.collections4.trie", "UnmodifiableTrie", True, "unmodifiableTrie", "", "", "Argument[0].MapKey", "ReturnValue.MapKey", "value", "manual"] - ["org.apache.commons.collections4.trie", "UnmodifiableTrie", True, "unmodifiableTrie", "", "", "Argument[0].MapValue", "ReturnValue.MapValue", "value", "manual"] diff --git a/java/ql/lib/ext/org.apache.commons.compress.archivers.tar.model.yml b/java/ql/lib/ext/org.apache.commons.compress.archivers.tar.model.yml index bf565008fa0..6c1246a4fff 100644 --- a/java/ql/lib/ext/org.apache.commons.compress.archivers.tar.model.yml +++ b/java/ql/lib/ext/org.apache.commons.compress.archivers.tar.model.yml @@ -3,7 +3,7 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["org.apache.commons.compress.archivers.tar", "TarArchiveEntry", True, "TarArchiveEntry", "(String)", "", "Argument[0]", "Argument[-1]", "taint", "ai-generated"] - - ["org.apache.commons.compress.archivers.tar", "TarArchiveEntry", True, "TarArchiveEntry", "(String,boolean)", "", "Argument[0]", "Argument[-1]", "taint", "ai-generated"] - - ["org.apache.commons.compress.archivers.tar", "TarArchiveEntry", True, "TarArchiveEntry", "(String,byte)", "", "Argument[0]", "Argument[-1]", "taint", "ai-generated"] - - ["org.apache.commons.compress.archivers.tar", "TarArchiveEntry", True, "setLinkName", "(String)", "", "Argument[0]", "Argument[-1]", "taint", "ai-generated"] + - ["org.apache.commons.compress.archivers.tar", "TarArchiveEntry", True, "TarArchiveEntry", "(String)", "", "Argument[0]", "Argument[this]", "taint", "ai-generated"] + - ["org.apache.commons.compress.archivers.tar", "TarArchiveEntry", True, "TarArchiveEntry", "(String,boolean)", "", "Argument[0]", "Argument[this]", "taint", "ai-generated"] + - ["org.apache.commons.compress.archivers.tar", "TarArchiveEntry", True, "TarArchiveEntry", "(String,byte)", "", "Argument[0]", "Argument[this]", "taint", "ai-generated"] + - ["org.apache.commons.compress.archivers.tar", "TarArchiveEntry", True, "setLinkName", "(String)", "", "Argument[0]", "Argument[this]", "taint", "ai-generated"] diff --git a/java/ql/lib/ext/org.apache.commons.jexl2.model.yml b/java/ql/lib/ext/org.apache.commons.jexl2.model.yml index 2389ae1d183..f7ad474114e 100644 --- a/java/ql/lib/ext/org.apache.commons.jexl2.model.yml +++ b/java/ql/lib/ext/org.apache.commons.jexl2.model.yml @@ -3,18 +3,18 @@ extensions: pack: codeql/java-all extensible: sinkModel data: - - ["org.apache.commons.jexl2", "Expression", False, "callable", "", "", "Argument[-1]", "jexl", "manual"] - - ["org.apache.commons.jexl2", "Expression", False, "evaluate", "", "", "Argument[-1]", "jexl", "manual"] + - ["org.apache.commons.jexl2", "Expression", False, "callable", "", "", "Argument[this]", "jexl", "manual"] + - ["org.apache.commons.jexl2", "Expression", False, "evaluate", "", "", "Argument[this]", "jexl", "manual"] - ["org.apache.commons.jexl2", "JexlEngine", False, "getProperty", "(JexlContext,Object,String)", "", "Argument[2]", "jexl", "manual"] - ["org.apache.commons.jexl2", "JexlEngine", False, "getProperty", "(Object,String)", "", "Argument[1]", "jexl", "manual"] - ["org.apache.commons.jexl2", "JexlEngine", False, "setProperty", "(JexlContext,Object,String,Object)", "", "Argument[2]", "jexl", "manual"] - ["org.apache.commons.jexl2", "JexlEngine", False, "setProperty", "(Object,String,Object)", "", "Argument[1]", "jexl", "manual"] - - ["org.apache.commons.jexl2", "JexlExpression", False, "callable", "", "", "Argument[-1]", "jexl", "manual"] - - ["org.apache.commons.jexl2", "JexlExpression", False, "evaluate", "", "", "Argument[-1]", "jexl", "manual"] - - ["org.apache.commons.jexl2", "JexlScript", False, "callable", "", "", "Argument[-1]", "jexl", "manual"] - - ["org.apache.commons.jexl2", "JexlScript", False, "execute", "", "", "Argument[-1]", "jexl", "manual"] - - ["org.apache.commons.jexl2", "Script", False, "callable", "", "", "Argument[-1]", "jexl", "manual"] - - ["org.apache.commons.jexl2", "Script", False, "execute", "", "", "Argument[-1]", "jexl", "manual"] - - ["org.apache.commons.jexl2", "UnifiedJEXL$Expression", False, "evaluate", "", "", "Argument[-1]", "jexl", "manual"] - - ["org.apache.commons.jexl2", "UnifiedJEXL$Expression", False, "prepare", "", "", "Argument[-1]", "jexl", "manual"] - - ["org.apache.commons.jexl2", "UnifiedJEXL$Template", False, "evaluate", "", "", "Argument[-1]", "jexl", "manual"] + - ["org.apache.commons.jexl2", "JexlExpression", False, "callable", "", "", "Argument[this]", "jexl", "manual"] + - ["org.apache.commons.jexl2", "JexlExpression", False, "evaluate", "", "", "Argument[this]", "jexl", "manual"] + - ["org.apache.commons.jexl2", "JexlScript", False, "callable", "", "", "Argument[this]", "jexl", "manual"] + - ["org.apache.commons.jexl2", "JexlScript", False, "execute", "", "", "Argument[this]", "jexl", "manual"] + - ["org.apache.commons.jexl2", "Script", False, "callable", "", "", "Argument[this]", "jexl", "manual"] + - ["org.apache.commons.jexl2", "Script", False, "execute", "", "", "Argument[this]", "jexl", "manual"] + - ["org.apache.commons.jexl2", "UnifiedJEXL$Expression", False, "evaluate", "", "", "Argument[this]", "jexl", "manual"] + - ["org.apache.commons.jexl2", "UnifiedJEXL$Expression", False, "prepare", "", "", "Argument[this]", "jexl", "manual"] + - ["org.apache.commons.jexl2", "UnifiedJEXL$Template", False, "evaluate", "", "", "Argument[this]", "jexl", "manual"] diff --git a/java/ql/lib/ext/org.apache.commons.jexl3.model.yml b/java/ql/lib/ext/org.apache.commons.jexl3.model.yml index 206eb79420a..cbe04fc3e60 100644 --- a/java/ql/lib/ext/org.apache.commons.jexl3.model.yml +++ b/java/ql/lib/ext/org.apache.commons.jexl3.model.yml @@ -3,18 +3,18 @@ extensions: pack: codeql/java-all extensible: sinkModel data: - - ["org.apache.commons.jexl3", "Expression", False, "callable", "", "", "Argument[-1]", "jexl", "manual"] - - ["org.apache.commons.jexl3", "Expression", False, "evaluate", "", "", "Argument[-1]", "jexl", "manual"] + - ["org.apache.commons.jexl3", "Expression", False, "callable", "", "", "Argument[this]", "jexl", "manual"] + - ["org.apache.commons.jexl3", "Expression", False, "evaluate", "", "", "Argument[this]", "jexl", "manual"] - ["org.apache.commons.jexl3", "JexlEngine", False, "getProperty", "(JexlContext,Object,String)", "", "Argument[2]", "jexl", "manual"] - ["org.apache.commons.jexl3", "JexlEngine", False, "getProperty", "(Object,String)", "", "Argument[1]", "jexl", "manual"] - ["org.apache.commons.jexl3", "JexlEngine", False, "setProperty", "(JexlContext,Object,String)", "", "Argument[2]", "jexl", "manual"] - ["org.apache.commons.jexl3", "JexlEngine", False, "setProperty", "(Object,String,Object)", "", "Argument[1]", "jexl", "manual"] - - ["org.apache.commons.jexl3", "JexlExpression", False, "callable", "", "", "Argument[-1]", "jexl", "manual"] - - ["org.apache.commons.jexl3", "JexlExpression", False, "evaluate", "", "", "Argument[-1]", "jexl", "manual"] - - ["org.apache.commons.jexl3", "JexlScript", False, "callable", "", "", "Argument[-1]", "jexl", "manual"] - - ["org.apache.commons.jexl3", "JexlScript", False, "execute", "", "", "Argument[-1]", "jexl", "manual"] - - ["org.apache.commons.jexl3", "JxltEngine$Expression", False, "evaluate", "", "", "Argument[-1]", "jexl", "manual"] - - ["org.apache.commons.jexl3", "JxltEngine$Expression", False, "prepare", "", "", "Argument[-1]", "jexl", "manual"] - - ["org.apache.commons.jexl3", "JxltEngine$Template", False, "evaluate", "", "", "Argument[-1]", "jexl", "manual"] - - ["org.apache.commons.jexl3", "Script", False, "callable", "", "", "Argument[-1]", "jexl", "manual"] - - ["org.apache.commons.jexl3", "Script", False, "execute", "", "", "Argument[-1]", "jexl", "manual"] + - ["org.apache.commons.jexl3", "JexlExpression", False, "callable", "", "", "Argument[this]", "jexl", "manual"] + - ["org.apache.commons.jexl3", "JexlExpression", False, "evaluate", "", "", "Argument[this]", "jexl", "manual"] + - ["org.apache.commons.jexl3", "JexlScript", False, "callable", "", "", "Argument[this]", "jexl", "manual"] + - ["org.apache.commons.jexl3", "JexlScript", False, "execute", "", "", "Argument[this]", "jexl", "manual"] + - ["org.apache.commons.jexl3", "JxltEngine$Expression", False, "evaluate", "", "", "Argument[this]", "jexl", "manual"] + - ["org.apache.commons.jexl3", "JxltEngine$Expression", False, "prepare", "", "", "Argument[this]", "jexl", "manual"] + - ["org.apache.commons.jexl3", "JxltEngine$Template", False, "evaluate", "", "", "Argument[this]", "jexl", "manual"] + - ["org.apache.commons.jexl3", "Script", False, "callable", "", "", "Argument[this]", "jexl", "manual"] + - ["org.apache.commons.jexl3", "Script", False, "execute", "", "", "Argument[this]", "jexl", "manual"] diff --git a/java/ql/lib/ext/org.apache.commons.lang3.builder.model.yml b/java/ql/lib/ext/org.apache.commons.lang3.builder.model.yml index 88d2bbe4790..654eb626d84 100644 --- a/java/ql/lib/ext/org.apache.commons.lang3.builder.model.yml +++ b/java/ql/lib/ext/org.apache.commons.lang3.builder.model.yml @@ -3,20 +3,20 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["org.apache.commons.lang3.builder", "ToStringBuilder", False, "append", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.lang3.builder", "ToStringBuilder", False, "append", "(java.lang.Object)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.lang3.builder", "ToStringBuilder", False, "append", "(java.lang.Object[])", "", "Argument[0].ArrayElement", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.lang3.builder", "ToStringBuilder", False, "append", "(java.lang.String,boolean)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.lang3.builder", "ToStringBuilder", False, "append", "(java.lang.String,java.lang.Object)", "", "Argument[0..1]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.lang3.builder", "ToStringBuilder", False, "append", "(java.lang.String,java.lang.Object[])", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.lang3.builder", "ToStringBuilder", False, "append", "(java.lang.String,java.lang.Object[])", "", "Argument[1].ArrayElement", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.lang3.builder", "ToStringBuilder", False, "append", "(java.lang.String,java.lang.Object[],boolean)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.lang3.builder", "ToStringBuilder", False, "append", "(java.lang.String,java.lang.Object[],boolean)", "", "Argument[1].ArrayElement", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.lang3.builder", "ToStringBuilder", False, "appendAsObjectToString", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.lang3.builder", "ToStringBuilder", False, "appendSuper", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.lang3.builder", "ToStringBuilder", False, "appendSuper", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.lang3.builder", "ToStringBuilder", False, "appendToString", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.lang3.builder", "ToStringBuilder", False, "appendToString", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.lang3.builder", "ToStringBuilder", False, "build", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.lang3.builder", "ToStringBuilder", False, "getStringBuffer", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.lang3.builder", "ToStringBuilder", False, "toString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.lang3.builder", "ToStringBuilder", False, "append", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.lang3.builder", "ToStringBuilder", False, "append", "(java.lang.Object)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.lang3.builder", "ToStringBuilder", False, "append", "(java.lang.Object[])", "", "Argument[0].ArrayElement", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.lang3.builder", "ToStringBuilder", False, "append", "(java.lang.String,boolean)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.lang3.builder", "ToStringBuilder", False, "append", "(java.lang.String,java.lang.Object)", "", "Argument[0..1]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.lang3.builder", "ToStringBuilder", False, "append", "(java.lang.String,java.lang.Object[])", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.lang3.builder", "ToStringBuilder", False, "append", "(java.lang.String,java.lang.Object[])", "", "Argument[1].ArrayElement", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.lang3.builder", "ToStringBuilder", False, "append", "(java.lang.String,java.lang.Object[],boolean)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.lang3.builder", "ToStringBuilder", False, "append", "(java.lang.String,java.lang.Object[],boolean)", "", "Argument[1].ArrayElement", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.lang3.builder", "ToStringBuilder", False, "appendAsObjectToString", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.lang3.builder", "ToStringBuilder", False, "appendSuper", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.lang3.builder", "ToStringBuilder", False, "appendSuper", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.lang3.builder", "ToStringBuilder", False, "appendToString", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.lang3.builder", "ToStringBuilder", False, "appendToString", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.lang3.builder", "ToStringBuilder", False, "build", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.lang3.builder", "ToStringBuilder", False, "getStringBuffer", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.lang3.builder", "ToStringBuilder", False, "toString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] diff --git a/java/ql/lib/ext/org.apache.commons.lang3.mutable.model.yml b/java/ql/lib/ext/org.apache.commons.lang3.mutable.model.yml index 48816a4a9e2..b21f407a52a 100644 --- a/java/ql/lib/ext/org.apache.commons.lang3.mutable.model.yml +++ b/java/ql/lib/ext/org.apache.commons.lang3.mutable.model.yml @@ -3,6 +3,6 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["org.apache.commons.lang3.mutable", "Mutable", True, "getValue", "", "", "Argument[-1].SyntheticField[org.apache.commons.lang3.mutable.MutableObject.value]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.lang3.mutable", "Mutable", True, "setValue", "", "", "Argument[0]", "Argument[-1].SyntheticField[org.apache.commons.lang3.mutable.MutableObject.value]", "value", "manual"] - - ["org.apache.commons.lang3.mutable", "MutableObject", False, "MutableObject", "", "", "Argument[0]", "Argument[-1].SyntheticField[org.apache.commons.lang3.mutable.MutableObject.value]", "value", "manual"] + - ["org.apache.commons.lang3.mutable", "Mutable", True, "getValue", "", "", "Argument[this].SyntheticField[org.apache.commons.lang3.mutable.MutableObject.value]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.lang3.mutable", "Mutable", True, "setValue", "", "", "Argument[0]", "Argument[this].SyntheticField[org.apache.commons.lang3.mutable.MutableObject.value]", "value", "manual"] + - ["org.apache.commons.lang3.mutable", "MutableObject", False, "MutableObject", "", "", "Argument[0]", "Argument[this].SyntheticField[org.apache.commons.lang3.mutable.MutableObject.value]", "value", "manual"] diff --git a/java/ql/lib/ext/org.apache.commons.lang3.text.model.yml b/java/ql/lib/ext/org.apache.commons.lang3.text.model.yml index e11dfbaa34d..eff23bb7aed 100644 --- a/java/ql/lib/ext/org.apache.commons.lang3.text.model.yml +++ b/java/ql/lib/ext/org.apache.commons.lang3.text.model.yml @@ -3,111 +3,111 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["org.apache.commons.lang3.text", "StrBuilder", False, "StrBuilder", "(java.lang.String)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "append", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "append", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "append", "(char[])", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "append", "(char[],int,int)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "append", "(java.lang.CharSequence)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "append", "(java.lang.CharSequence,int,int)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "append", "(java.lang.Object)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "append", "(java.lang.String)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "append", "(java.lang.String,int,int)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "append", "(java.lang.String,java.lang.Object[])", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "append", "(java.lang.String,java.lang.Object[])", "", "Argument[1].ArrayElement", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "append", "(java.lang.StringBuffer)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "append", "(java.lang.StringBuffer,int,int)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "append", "(java.lang.StringBuilder)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "append", "(java.lang.StringBuilder,int,int)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "append", "(java.nio.CharBuffer)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "append", "(java.nio.CharBuffer,int,int)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "append", "(org.apache.commons.lang3.text.StrBuilder)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendAll", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendAll", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendAll", "(Iterable)", "", "Argument[0].Element", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendAll", "(Iterator)", "", "Argument[0].Element", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendAll", "(Object[])", "", "Argument[0].ArrayElement", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendFixedWidthPadLeft", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendFixedWidthPadLeft", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendFixedWidthPadLeft", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendFixedWidthPadRight", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendFixedWidthPadRight", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendFixedWidthPadRight", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendNewLine", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendNull", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendPadding", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendSeparator", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendSeparator", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendSeparator", "(java.lang.String)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendSeparator", "(java.lang.String,int)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendSeparator", "(java.lang.String,java.lang.String)", "", "Argument[0..1]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendTo", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendWithSeparators", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendWithSeparators", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendWithSeparators", "", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendWithSeparators", "(Iterable,String)", "", "Argument[0].Element", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendWithSeparators", "(Iterator,String)", "", "Argument[0].Element", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendWithSeparators", "(Object[],String)", "", "Argument[0].ArrayElement", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendln", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendln", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendln", "(char[])", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendln", "(char[],int,int)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendln", "(java.lang.Object)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendln", "(java.lang.String)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendln", "(java.lang.String,int,int)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendln", "(java.lang.String,java.lang.Object[])", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendln", "(java.lang.String,java.lang.Object[])", "", "Argument[1].ArrayElement", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendln", "(java.lang.StringBuffer)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendln", "(java.lang.StringBuffer,int,int)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendln", "(java.lang.StringBuilder)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendln", "(java.lang.StringBuilder,int,int)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendln", "(org.apache.commons.lang3.text.StrBuilder)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "asReader", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "asTokenizer", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "build", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "delete", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "deleteAll", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "deleteCharAt", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "deleteFirst", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "ensureCapacity", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "getChars", "(char[])", "", "Argument[-1]", "Argument[0]", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "getChars", "(char[])", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "getChars", "(int,int,char[],int)", "", "Argument[-1]", "Argument[2]", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "insert", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "insert", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "insert", "", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "leftString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "midString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "minimizeCapacity", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "readFrom", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "replace", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "replace", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "replace", "(int,int,java.lang.String)", "", "Argument[2]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "replace", "(org.apache.commons.lang3.text.StrMatcher,java.lang.String,int,int,int)", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "replaceAll", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "replaceAll", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "replaceAll", "", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "replaceFirst", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "replaceFirst", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "replaceFirst", "", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "reverse", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "rightString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "setCharAt", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "setLength", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "setNewLineText", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "setNullText", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "subSequence", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "substring", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "toCharArray", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "toString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "toStringBuffer", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "toStringBuilder", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrBuilder", False, "trim", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.lang3.text", "StrLookup", False, "lookup", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "StrBuilder", "(java.lang.String)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "append", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "append", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "append", "(char[])", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "append", "(char[],int,int)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "append", "(java.lang.CharSequence)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "append", "(java.lang.CharSequence,int,int)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "append", "(java.lang.Object)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "append", "(java.lang.String)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "append", "(java.lang.String,int,int)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "append", "(java.lang.String,java.lang.Object[])", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "append", "(java.lang.String,java.lang.Object[])", "", "Argument[1].ArrayElement", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "append", "(java.lang.StringBuffer)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "append", "(java.lang.StringBuffer,int,int)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "append", "(java.lang.StringBuilder)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "append", "(java.lang.StringBuilder,int,int)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "append", "(java.nio.CharBuffer)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "append", "(java.nio.CharBuffer,int,int)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "append", "(org.apache.commons.lang3.text.StrBuilder)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendAll", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendAll", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendAll", "(Iterable)", "", "Argument[0].Element", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendAll", "(Iterator)", "", "Argument[0].Element", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendAll", "(Object[])", "", "Argument[0].ArrayElement", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendFixedWidthPadLeft", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendFixedWidthPadLeft", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendFixedWidthPadLeft", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendFixedWidthPadRight", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendFixedWidthPadRight", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendFixedWidthPadRight", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendNewLine", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendNull", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendPadding", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendSeparator", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendSeparator", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendSeparator", "(java.lang.String)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendSeparator", "(java.lang.String,int)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendSeparator", "(java.lang.String,java.lang.String)", "", "Argument[0..1]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendTo", "", "", "Argument[this]", "Argument[0]", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendWithSeparators", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendWithSeparators", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendWithSeparators", "", "", "Argument[1]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendWithSeparators", "(Iterable,String)", "", "Argument[0].Element", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendWithSeparators", "(Iterator,String)", "", "Argument[0].Element", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendWithSeparators", "(Object[],String)", "", "Argument[0].ArrayElement", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendln", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendln", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendln", "(char[])", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendln", "(char[],int,int)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendln", "(java.lang.Object)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendln", "(java.lang.String)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendln", "(java.lang.String,int,int)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendln", "(java.lang.String,java.lang.Object[])", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendln", "(java.lang.String,java.lang.Object[])", "", "Argument[1].ArrayElement", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendln", "(java.lang.StringBuffer)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendln", "(java.lang.StringBuffer,int,int)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendln", "(java.lang.StringBuilder)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendln", "(java.lang.StringBuilder,int,int)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "appendln", "(org.apache.commons.lang3.text.StrBuilder)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "asReader", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "asTokenizer", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "build", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "delete", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "deleteAll", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "deleteCharAt", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "deleteFirst", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "ensureCapacity", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "getChars", "(char[])", "", "Argument[this]", "Argument[0]", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "getChars", "(char[])", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "getChars", "(int,int,char[],int)", "", "Argument[this]", "Argument[2]", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "insert", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "insert", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "insert", "", "", "Argument[1]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "leftString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "midString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "minimizeCapacity", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "readFrom", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "replace", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "replace", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "replace", "(int,int,java.lang.String)", "", "Argument[2]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "replace", "(org.apache.commons.lang3.text.StrMatcher,java.lang.String,int,int,int)", "", "Argument[1]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "replaceAll", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "replaceAll", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "replaceAll", "", "", "Argument[1]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "replaceFirst", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "replaceFirst", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "replaceFirst", "", "", "Argument[1]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "reverse", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "rightString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "setCharAt", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "setLength", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "setNewLineText", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "setNullText", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "subSequence", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "substring", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "toCharArray", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "toString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "toStringBuffer", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "toStringBuilder", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrBuilder", False, "trim", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.lang3.text", "StrLookup", False, "lookup", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["org.apache.commons.lang3.text", "StrLookup", False, "mapLookup", "", "", "Argument[0].MapValue", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrSubstitutor", False, "StrSubstitutor", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrSubstitutor", False, "StrSubstitutor", "", "", "Argument[0].MapValue", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrSubstitutor", False, "replace", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrSubstitutor", False, "StrSubstitutor", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrSubstitutor", False, "StrSubstitutor", "", "", "Argument[0].MapValue", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrSubstitutor", False, "replace", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["org.apache.commons.lang3.text", "StrSubstitutor", False, "replace", "(char[])", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["org.apache.commons.lang3.text", "StrSubstitutor", False, "replace", "(char[],int,int)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["org.apache.commons.lang3.text", "StrSubstitutor", False, "replace", "(java.lang.CharSequence)", "", "Argument[0]", "ReturnValue", "taint", "manual"] @@ -125,27 +125,27 @@ extensions: - ["org.apache.commons.lang3.text", "StrSubstitutor", False, "replace", "(java.lang.StringBuffer,int,int)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["org.apache.commons.lang3.text", "StrSubstitutor", False, "replace", "(org.apache.commons.lang3.text.StrBuilder)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["org.apache.commons.lang3.text", "StrSubstitutor", False, "replace", "(org.apache.commons.lang3.text.StrBuilder,int,int)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrSubstitutor", False, "replaceIn", "(java.lang.StringBuffer)", "", "Argument[-1]", "Argument[0]", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrSubstitutor", False, "replaceIn", "(java.lang.StringBuffer,int,int)", "", "Argument[-1]", "Argument[0]", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrSubstitutor", False, "replaceIn", "(java.lang.StringBuilder)", "", "Argument[-1]", "Argument[0]", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrSubstitutor", False, "replaceIn", "(java.lang.StringBuilder,int,int)", "", "Argument[-1]", "Argument[0]", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrSubstitutor", False, "replaceIn", "(org.apache.commons.lang3.text.StrBuilder)", "", "Argument[-1]", "Argument[0]", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrSubstitutor", False, "replaceIn", "(org.apache.commons.lang3.text.StrBuilder,int,int)", "", "Argument[-1]", "Argument[0]", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrSubstitutor", False, "setVariableResolver", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrTokenizer", False, "StrTokenizer", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrTokenizer", False, "clone", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrSubstitutor", False, "replaceIn", "(java.lang.StringBuffer)", "", "Argument[this]", "Argument[0]", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrSubstitutor", False, "replaceIn", "(java.lang.StringBuffer,int,int)", "", "Argument[this]", "Argument[0]", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrSubstitutor", False, "replaceIn", "(java.lang.StringBuilder)", "", "Argument[this]", "Argument[0]", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrSubstitutor", False, "replaceIn", "(java.lang.StringBuilder,int,int)", "", "Argument[this]", "Argument[0]", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrSubstitutor", False, "replaceIn", "(org.apache.commons.lang3.text.StrBuilder)", "", "Argument[this]", "Argument[0]", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrSubstitutor", False, "replaceIn", "(org.apache.commons.lang3.text.StrBuilder,int,int)", "", "Argument[this]", "Argument[0]", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrSubstitutor", False, "setVariableResolver", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrTokenizer", False, "StrTokenizer", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrTokenizer", False, "clone", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["org.apache.commons.lang3.text", "StrTokenizer", False, "getCSVInstance", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrTokenizer", False, "getContent", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrTokenizer", False, "getContent", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["org.apache.commons.lang3.text", "StrTokenizer", False, "getTSVInstance", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrTokenizer", False, "getTokenArray", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrTokenizer", False, "getTokenList", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrTokenizer", False, "next", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrTokenizer", False, "nextToken", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrTokenizer", False, "previous", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrTokenizer", False, "previousToken", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrTokenizer", False, "reset", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrTokenizer", False, "getTokenArray", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrTokenizer", False, "getTokenList", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrTokenizer", False, "next", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrTokenizer", False, "nextToken", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrTokenizer", False, "previous", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrTokenizer", False, "previousToken", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrTokenizer", False, "reset", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] - ["org.apache.commons.lang3.text", "StrTokenizer", False, "reset", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.lang3.text", "StrTokenizer", False, "toString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.lang3.text", "StrTokenizer", False, "toString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["org.apache.commons.lang3.text", "WordUtils", False, "capitalize", "(java.lang.String)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["org.apache.commons.lang3.text", "WordUtils", False, "capitalize", "(java.lang.String,char[])", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["org.apache.commons.lang3.text", "WordUtils", False, "capitalizeFully", "(java.lang.String)", "", "Argument[0]", "ReturnValue", "taint", "manual"] diff --git a/java/ql/lib/ext/org.apache.commons.lang3.tuple.model.yml b/java/ql/lib/ext/org.apache.commons.lang3.tuple.model.yml index ebd11508343..28badb09d54 100644 --- a/java/ql/lib/ext/org.apache.commons.lang3.tuple.model.yml +++ b/java/ql/lib/ext/org.apache.commons.lang3.tuple.model.yml @@ -3,50 +3,50 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["org.apache.commons.lang3.tuple", "ImmutablePair", False, "ImmutablePair", "(java.lang.Object,java.lang.Object)", "", "Argument[0]", "Argument[-1].Field[org.apache.commons.lang3.tuple.ImmutablePair.left]", "value", "manual"] - - ["org.apache.commons.lang3.tuple", "ImmutablePair", False, "ImmutablePair", "(java.lang.Object,java.lang.Object)", "", "Argument[1]", "Argument[-1].Field[org.apache.commons.lang3.tuple.ImmutablePair.right]", "value", "manual"] + - ["org.apache.commons.lang3.tuple", "ImmutablePair", False, "ImmutablePair", "(java.lang.Object,java.lang.Object)", "", "Argument[0]", "Argument[this].Field[org.apache.commons.lang3.tuple.ImmutablePair.left]", "value", "manual"] + - ["org.apache.commons.lang3.tuple", "ImmutablePair", False, "ImmutablePair", "(java.lang.Object,java.lang.Object)", "", "Argument[1]", "Argument[this].Field[org.apache.commons.lang3.tuple.ImmutablePair.right]", "value", "manual"] - ["org.apache.commons.lang3.tuple", "ImmutablePair", False, "left", "", "", "Argument[0]", "ReturnValue.Field[org.apache.commons.lang3.tuple.ImmutablePair.left]", "value", "manual"] - ["org.apache.commons.lang3.tuple", "ImmutablePair", False, "of", "(java.lang.Object,java.lang.Object)", "", "Argument[0]", "ReturnValue.Field[org.apache.commons.lang3.tuple.ImmutablePair.left]", "value", "manual"] - ["org.apache.commons.lang3.tuple", "ImmutablePair", False, "of", "(java.lang.Object,java.lang.Object)", "", "Argument[1]", "ReturnValue.Field[org.apache.commons.lang3.tuple.ImmutablePair.right]", "value", "manual"] - ["org.apache.commons.lang3.tuple", "ImmutablePair", False, "right", "", "", "Argument[0]", "ReturnValue.Field[org.apache.commons.lang3.tuple.ImmutablePair.right]", "value", "manual"] - - ["org.apache.commons.lang3.tuple", "ImmutableTriple", False, "ImmutableTriple", "(java.lang.Object,java.lang.Object,java.lang.Object)", "", "Argument[0]", "Argument[-1].Field[org.apache.commons.lang3.tuple.ImmutableTriple.left]", "value", "manual"] - - ["org.apache.commons.lang3.tuple", "ImmutableTriple", False, "ImmutableTriple", "(java.lang.Object,java.lang.Object,java.lang.Object)", "", "Argument[1]", "Argument[-1].Field[org.apache.commons.lang3.tuple.ImmutableTriple.middle]", "value", "manual"] - - ["org.apache.commons.lang3.tuple", "ImmutableTriple", False, "ImmutableTriple", "(java.lang.Object,java.lang.Object,java.lang.Object)", "", "Argument[2]", "Argument[-1].Field[org.apache.commons.lang3.tuple.ImmutableTriple.right]", "value", "manual"] + - ["org.apache.commons.lang3.tuple", "ImmutableTriple", False, "ImmutableTriple", "(java.lang.Object,java.lang.Object,java.lang.Object)", "", "Argument[0]", "Argument[this].Field[org.apache.commons.lang3.tuple.ImmutableTriple.left]", "value", "manual"] + - ["org.apache.commons.lang3.tuple", "ImmutableTriple", False, "ImmutableTriple", "(java.lang.Object,java.lang.Object,java.lang.Object)", "", "Argument[1]", "Argument[this].Field[org.apache.commons.lang3.tuple.ImmutableTriple.middle]", "value", "manual"] + - ["org.apache.commons.lang3.tuple", "ImmutableTriple", False, "ImmutableTriple", "(java.lang.Object,java.lang.Object,java.lang.Object)", "", "Argument[2]", "Argument[this].Field[org.apache.commons.lang3.tuple.ImmutableTriple.right]", "value", "manual"] - ["org.apache.commons.lang3.tuple", "ImmutableTriple", False, "of", "(java.lang.Object,java.lang.Object,java.lang.Object)", "", "Argument[0]", "ReturnValue.Field[org.apache.commons.lang3.tuple.ImmutableTriple.left]", "value", "manual"] - ["org.apache.commons.lang3.tuple", "ImmutableTriple", False, "of", "(java.lang.Object,java.lang.Object,java.lang.Object)", "", "Argument[1]", "ReturnValue.Field[org.apache.commons.lang3.tuple.ImmutableTriple.middle]", "value", "manual"] - ["org.apache.commons.lang3.tuple", "ImmutableTriple", False, "of", "(java.lang.Object,java.lang.Object,java.lang.Object)", "", "Argument[2]", "ReturnValue.Field[org.apache.commons.lang3.tuple.ImmutableTriple.right]", "value", "manual"] - - ["org.apache.commons.lang3.tuple", "MutablePair", False, "MutablePair", "(java.lang.Object,java.lang.Object)", "", "Argument[0]", "Argument[-1].Field[org.apache.commons.lang3.tuple.MutablePair.left]", "value", "manual"] - - ["org.apache.commons.lang3.tuple", "MutablePair", False, "MutablePair", "(java.lang.Object,java.lang.Object)", "", "Argument[1]", "Argument[-1].Field[org.apache.commons.lang3.tuple.MutablePair.right]", "value", "manual"] + - ["org.apache.commons.lang3.tuple", "MutablePair", False, "MutablePair", "(java.lang.Object,java.lang.Object)", "", "Argument[0]", "Argument[this].Field[org.apache.commons.lang3.tuple.MutablePair.left]", "value", "manual"] + - ["org.apache.commons.lang3.tuple", "MutablePair", False, "MutablePair", "(java.lang.Object,java.lang.Object)", "", "Argument[1]", "Argument[this].Field[org.apache.commons.lang3.tuple.MutablePair.right]", "value", "manual"] - ["org.apache.commons.lang3.tuple", "MutablePair", False, "of", "(java.lang.Object,java.lang.Object)", "", "Argument[0]", "ReturnValue.Field[org.apache.commons.lang3.tuple.MutablePair.left]", "value", "manual"] - ["org.apache.commons.lang3.tuple", "MutablePair", False, "of", "(java.lang.Object,java.lang.Object)", "", "Argument[1]", "ReturnValue.Field[org.apache.commons.lang3.tuple.MutablePair.right]", "value", "manual"] - - ["org.apache.commons.lang3.tuple", "MutablePair", False, "setLeft", "", "", "Argument[0]", "Argument[-1].Field[org.apache.commons.lang3.tuple.MutablePair.left]", "value", "manual"] - - ["org.apache.commons.lang3.tuple", "MutablePair", False, "setRight", "", "", "Argument[0]", "Argument[-1].Field[org.apache.commons.lang3.tuple.MutablePair.right]", "value", "manual"] - - ["org.apache.commons.lang3.tuple", "MutablePair", False, "setValue", "", "", "Argument[0]", "Argument[-1].Field[org.apache.commons.lang3.tuple.MutablePair.right]", "value", "manual"] - - ["org.apache.commons.lang3.tuple", "MutableTriple", False, "MutableTriple", "(java.lang.Object,java.lang.Object,java.lang.Object)", "", "Argument[0]", "Argument[-1].Field[org.apache.commons.lang3.tuple.MutableTriple.left]", "value", "manual"] - - ["org.apache.commons.lang3.tuple", "MutableTriple", False, "MutableTriple", "(java.lang.Object,java.lang.Object,java.lang.Object)", "", "Argument[1]", "Argument[-1].Field[org.apache.commons.lang3.tuple.MutableTriple.middle]", "value", "manual"] - - ["org.apache.commons.lang3.tuple", "MutableTriple", False, "MutableTriple", "(java.lang.Object,java.lang.Object,java.lang.Object)", "", "Argument[2]", "Argument[-1].Field[org.apache.commons.lang3.tuple.MutableTriple.right]", "value", "manual"] + - ["org.apache.commons.lang3.tuple", "MutablePair", False, "setLeft", "", "", "Argument[0]", "Argument[this].Field[org.apache.commons.lang3.tuple.MutablePair.left]", "value", "manual"] + - ["org.apache.commons.lang3.tuple", "MutablePair", False, "setRight", "", "", "Argument[0]", "Argument[this].Field[org.apache.commons.lang3.tuple.MutablePair.right]", "value", "manual"] + - ["org.apache.commons.lang3.tuple", "MutablePair", False, "setValue", "", "", "Argument[0]", "Argument[this].Field[org.apache.commons.lang3.tuple.MutablePair.right]", "value", "manual"] + - ["org.apache.commons.lang3.tuple", "MutableTriple", False, "MutableTriple", "(java.lang.Object,java.lang.Object,java.lang.Object)", "", "Argument[0]", "Argument[this].Field[org.apache.commons.lang3.tuple.MutableTriple.left]", "value", "manual"] + - ["org.apache.commons.lang3.tuple", "MutableTriple", False, "MutableTriple", "(java.lang.Object,java.lang.Object,java.lang.Object)", "", "Argument[1]", "Argument[this].Field[org.apache.commons.lang3.tuple.MutableTriple.middle]", "value", "manual"] + - ["org.apache.commons.lang3.tuple", "MutableTriple", False, "MutableTriple", "(java.lang.Object,java.lang.Object,java.lang.Object)", "", "Argument[2]", "Argument[this].Field[org.apache.commons.lang3.tuple.MutableTriple.right]", "value", "manual"] - ["org.apache.commons.lang3.tuple", "MutableTriple", False, "of", "(java.lang.Object,java.lang.Object,java.lang.Object)", "", "Argument[0]", "ReturnValue.Field[org.apache.commons.lang3.tuple.MutableTriple.left]", "value", "manual"] - ["org.apache.commons.lang3.tuple", "MutableTriple", False, "of", "(java.lang.Object,java.lang.Object,java.lang.Object)", "", "Argument[1]", "ReturnValue.Field[org.apache.commons.lang3.tuple.MutableTriple.middle]", "value", "manual"] - ["org.apache.commons.lang3.tuple", "MutableTriple", False, "of", "(java.lang.Object,java.lang.Object,java.lang.Object)", "", "Argument[2]", "ReturnValue.Field[org.apache.commons.lang3.tuple.MutableTriple.right]", "value", "manual"] - - ["org.apache.commons.lang3.tuple", "MutableTriple", False, "setLeft", "", "", "Argument[0]", "Argument[-1].Field[org.apache.commons.lang3.tuple.MutableTriple.left]", "value", "manual"] - - ["org.apache.commons.lang3.tuple", "MutableTriple", False, "setMiddle", "", "", "Argument[0]", "Argument[-1].Field[org.apache.commons.lang3.tuple.MutableTriple.middle]", "value", "manual"] - - ["org.apache.commons.lang3.tuple", "MutableTriple", False, "setRight", "", "", "Argument[0]", "Argument[-1].Field[org.apache.commons.lang3.tuple.MutableTriple.right]", "value", "manual"] - - ["org.apache.commons.lang3.tuple", "Pair", True, "getKey", "", "", "Argument[-1].Field[org.apache.commons.lang3.tuple.ImmutablePair.left]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.lang3.tuple", "Pair", True, "getKey", "", "", "Argument[-1].Field[org.apache.commons.lang3.tuple.MutablePair.left]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.lang3.tuple", "Pair", True, "getLeft", "", "", "Argument[-1].Field[org.apache.commons.lang3.tuple.ImmutablePair.left]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.lang3.tuple", "Pair", True, "getLeft", "", "", "Argument[-1].Field[org.apache.commons.lang3.tuple.MutablePair.left]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.lang3.tuple", "Pair", True, "getRight", "", "", "Argument[-1].Field[org.apache.commons.lang3.tuple.ImmutablePair.right]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.lang3.tuple", "Pair", True, "getRight", "", "", "Argument[-1].Field[org.apache.commons.lang3.tuple.MutablePair.right]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.lang3.tuple", "Pair", True, "getValue", "", "", "Argument[-1].Field[org.apache.commons.lang3.tuple.ImmutablePair.right]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.lang3.tuple", "Pair", True, "getValue", "", "", "Argument[-1].Field[org.apache.commons.lang3.tuple.MutablePair.right]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.lang3.tuple", "MutableTriple", False, "setLeft", "", "", "Argument[0]", "Argument[this].Field[org.apache.commons.lang3.tuple.MutableTriple.left]", "value", "manual"] + - ["org.apache.commons.lang3.tuple", "MutableTriple", False, "setMiddle", "", "", "Argument[0]", "Argument[this].Field[org.apache.commons.lang3.tuple.MutableTriple.middle]", "value", "manual"] + - ["org.apache.commons.lang3.tuple", "MutableTriple", False, "setRight", "", "", "Argument[0]", "Argument[this].Field[org.apache.commons.lang3.tuple.MutableTriple.right]", "value", "manual"] + - ["org.apache.commons.lang3.tuple", "Pair", True, "getKey", "", "", "Argument[this].Field[org.apache.commons.lang3.tuple.ImmutablePair.left]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.lang3.tuple", "Pair", True, "getKey", "", "", "Argument[this].Field[org.apache.commons.lang3.tuple.MutablePair.left]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.lang3.tuple", "Pair", True, "getLeft", "", "", "Argument[this].Field[org.apache.commons.lang3.tuple.ImmutablePair.left]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.lang3.tuple", "Pair", True, "getLeft", "", "", "Argument[this].Field[org.apache.commons.lang3.tuple.MutablePair.left]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.lang3.tuple", "Pair", True, "getRight", "", "", "Argument[this].Field[org.apache.commons.lang3.tuple.ImmutablePair.right]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.lang3.tuple", "Pair", True, "getRight", "", "", "Argument[this].Field[org.apache.commons.lang3.tuple.MutablePair.right]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.lang3.tuple", "Pair", True, "getValue", "", "", "Argument[this].Field[org.apache.commons.lang3.tuple.ImmutablePair.right]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.lang3.tuple", "Pair", True, "getValue", "", "", "Argument[this].Field[org.apache.commons.lang3.tuple.MutablePair.right]", "ReturnValue", "value", "manual"] - ["org.apache.commons.lang3.tuple", "Pair", False, "of", "(java.lang.Object,java.lang.Object)", "", "Argument[0]", "ReturnValue.Field[org.apache.commons.lang3.tuple.ImmutablePair.left]", "value", "manual"] - ["org.apache.commons.lang3.tuple", "Pair", False, "of", "(java.lang.Object,java.lang.Object)", "", "Argument[1]", "ReturnValue.Field[org.apache.commons.lang3.tuple.ImmutablePair.right]", "value", "manual"] - - ["org.apache.commons.lang3.tuple", "Triple", True, "getLeft", "", "", "Argument[-1].Field[org.apache.commons.lang3.tuple.ImmutableTriple.left]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.lang3.tuple", "Triple", True, "getLeft", "", "", "Argument[-1].Field[org.apache.commons.lang3.tuple.MutableTriple.left]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.lang3.tuple", "Triple", True, "getMiddle", "", "", "Argument[-1].Field[org.apache.commons.lang3.tuple.ImmutableTriple.middle]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.lang3.tuple", "Triple", True, "getMiddle", "", "", "Argument[-1].Field[org.apache.commons.lang3.tuple.MutableTriple.middle]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.lang3.tuple", "Triple", True, "getRight", "", "", "Argument[-1].Field[org.apache.commons.lang3.tuple.ImmutableTriple.right]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.lang3.tuple", "Triple", True, "getRight", "", "", "Argument[-1].Field[org.apache.commons.lang3.tuple.MutableTriple.right]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.lang3.tuple", "Triple", True, "getLeft", "", "", "Argument[this].Field[org.apache.commons.lang3.tuple.ImmutableTriple.left]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.lang3.tuple", "Triple", True, "getLeft", "", "", "Argument[this].Field[org.apache.commons.lang3.tuple.MutableTriple.left]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.lang3.tuple", "Triple", True, "getMiddle", "", "", "Argument[this].Field[org.apache.commons.lang3.tuple.ImmutableTriple.middle]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.lang3.tuple", "Triple", True, "getMiddle", "", "", "Argument[this].Field[org.apache.commons.lang3.tuple.MutableTriple.middle]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.lang3.tuple", "Triple", True, "getRight", "", "", "Argument[this].Field[org.apache.commons.lang3.tuple.ImmutableTriple.right]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.lang3.tuple", "Triple", True, "getRight", "", "", "Argument[this].Field[org.apache.commons.lang3.tuple.MutableTriple.right]", "ReturnValue", "value", "manual"] - ["org.apache.commons.lang3.tuple", "Triple", False, "of", "(java.lang.Object,java.lang.Object,java.lang.Object)", "", "Argument[0]", "ReturnValue.Field[org.apache.commons.lang3.tuple.ImmutableTriple.left]", "value", "manual"] - ["org.apache.commons.lang3.tuple", "Triple", False, "of", "(java.lang.Object,java.lang.Object,java.lang.Object)", "", "Argument[1]", "ReturnValue.Field[org.apache.commons.lang3.tuple.ImmutableTriple.middle]", "value", "manual"] - ["org.apache.commons.lang3.tuple", "Triple", False, "of", "(java.lang.Object,java.lang.Object,java.lang.Object)", "", "Argument[2]", "ReturnValue.Field[org.apache.commons.lang3.tuple.ImmutableTriple.right]", "value", "manual"] diff --git a/java/ql/lib/ext/org.apache.commons.ognl.enhance.model.yml b/java/ql/lib/ext/org.apache.commons.ognl.enhance.model.yml index 790c7640d9b..fd50ee91f0e 100644 --- a/java/ql/lib/ext/org.apache.commons.ognl.enhance.model.yml +++ b/java/ql/lib/ext/org.apache.commons.ognl.enhance.model.yml @@ -3,5 +3,5 @@ extensions: pack: codeql/java-all extensible: sinkModel data: - - ["org.apache.commons.ognl.enhance", "ExpressionAccessor", True, "get", "", "", "Argument[-1]", "ognl-injection", "manual"] - - ["org.apache.commons.ognl.enhance", "ExpressionAccessor", True, "set", "", "", "Argument[-1]", "ognl-injection", "manual"] + - ["org.apache.commons.ognl.enhance", "ExpressionAccessor", True, "get", "", "", "Argument[this]", "ognl-injection", "manual"] + - ["org.apache.commons.ognl.enhance", "ExpressionAccessor", True, "set", "", "", "Argument[this]", "ognl-injection", "manual"] diff --git a/java/ql/lib/ext/org.apache.commons.ognl.model.yml b/java/ql/lib/ext/org.apache.commons.ognl.model.yml index 9b00a781f53..a79b4b4dc11 100644 --- a/java/ql/lib/ext/org.apache.commons.ognl.model.yml +++ b/java/ql/lib/ext/org.apache.commons.ognl.model.yml @@ -3,7 +3,7 @@ extensions: pack: codeql/java-all extensible: sinkModel data: - - ["org.apache.commons.ognl", "Node", True, "getValue", "", "", "Argument[-1]", "ognl-injection", "manual"] - - ["org.apache.commons.ognl", "Node", True, "setValue", "", "", "Argument[-1]", "ognl-injection", "manual"] + - ["org.apache.commons.ognl", "Node", True, "getValue", "", "", "Argument[this]", "ognl-injection", "manual"] + - ["org.apache.commons.ognl", "Node", True, "setValue", "", "", "Argument[this]", "ognl-injection", "manual"] - ["org.apache.commons.ognl", "Ognl", False, "getValue", "", "", "Argument[0]", "ognl-injection", "manual"] - ["org.apache.commons.ognl", "Ognl", False, "setValue", "", "", "Argument[0]", "ognl-injection", "manual"] diff --git a/java/ql/lib/ext/org.apache.commons.text.lookup.model.yml b/java/ql/lib/ext/org.apache.commons.text.lookup.model.yml index b89855197f1..3e94263ef98 100644 --- a/java/ql/lib/ext/org.apache.commons.text.lookup.model.yml +++ b/java/ql/lib/ext/org.apache.commons.text.lookup.model.yml @@ -3,5 +3,5 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["org.apache.commons.text.lookup", "StringLookup", True, "lookup", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.text.lookup", "StringLookup", True, "lookup", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["org.apache.commons.text.lookup", "StringLookupFactory", False, "mapStringLookup", "", "", "Argument[0].MapValue", "ReturnValue", "taint", "manual"] diff --git a/java/ql/lib/ext/org.apache.commons.text.model.yml b/java/ql/lib/ext/org.apache.commons.text.model.yml index c0618224fe4..2e36598bdbf 100644 --- a/java/ql/lib/ext/org.apache.commons.text.model.yml +++ b/java/ql/lib/ext/org.apache.commons.text.model.yml @@ -3,123 +3,123 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["org.apache.commons.text", "StrBuilder", False, "StrBuilder", "(java.lang.String)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "append", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "append", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "append", "(char[])", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "append", "(char[],int,int)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "append", "(java.lang.CharSequence)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "append", "(java.lang.CharSequence,int,int)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "append", "(java.lang.Object)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "append", "(java.lang.String)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "append", "(java.lang.String,int,int)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "append", "(java.lang.String,java.lang.Object[])", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "append", "(java.lang.String,java.lang.Object[])", "", "Argument[1].ArrayElement", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "append", "(java.lang.StringBuffer)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "append", "(java.lang.StringBuffer,int,int)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "append", "(java.lang.StringBuilder)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "append", "(java.lang.StringBuilder,int,int)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "append", "(java.nio.CharBuffer)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "append", "(java.nio.CharBuffer,int,int)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "append", "(org.apache.commons.text.StrBuilder)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "appendAll", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "appendAll", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "appendAll", "(Iterable)", "", "Argument[0].Element", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "appendAll", "(Iterator)", "", "Argument[0].Element", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "appendAll", "(Object[])", "", "Argument[0].ArrayElement", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "appendFixedWidthPadLeft", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "appendFixedWidthPadLeft", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "appendFixedWidthPadLeft", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "appendFixedWidthPadRight", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "appendFixedWidthPadRight", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "appendFixedWidthPadRight", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "appendNewLine", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "appendNull", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "appendPadding", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "appendSeparator", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "appendSeparator", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "appendSeparator", "(java.lang.String)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "appendSeparator", "(java.lang.String,int)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "appendSeparator", "(java.lang.String,java.lang.String)", "", "Argument[0..1]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "appendTo", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "appendWithSeparators", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "appendWithSeparators", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "appendWithSeparators", "", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "appendWithSeparators", "(Iterable,String)", "", "Argument[0].Element", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "appendWithSeparators", "(Iterator,String)", "", "Argument[0].Element", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "appendWithSeparators", "(Object[],String)", "", "Argument[0].ArrayElement", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "appendln", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "appendln", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "appendln", "(char[])", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "appendln", "(char[],int,int)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "appendln", "(java.lang.Object)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "appendln", "(java.lang.String)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "appendln", "(java.lang.String,int,int)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "appendln", "(java.lang.String,java.lang.Object[])", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "appendln", "(java.lang.String,java.lang.Object[])", "", "Argument[1].ArrayElement", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "appendln", "(java.lang.StringBuffer)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "appendln", "(java.lang.StringBuffer,int,int)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "appendln", "(java.lang.StringBuilder)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "appendln", "(java.lang.StringBuilder,int,int)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "appendln", "(org.apache.commons.text.StrBuilder)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "asReader", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "asTokenizer", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "build", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "delete", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "deleteAll", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "deleteCharAt", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "deleteFirst", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "ensureCapacity", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "getChars", "(char[])", "", "Argument[-1]", "Argument[0]", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "getChars", "(char[])", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "getChars", "(int,int,char[],int)", "", "Argument[-1]", "Argument[2]", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "insert", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "insert", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "insert", "", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "leftString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "midString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "minimizeCapacity", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "readFrom", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "replace", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "replace", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "replace", "(int,int,java.lang.String)", "", "Argument[2]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "replace", "(org.apache.commons.text.StrMatcher,java.lang.String,int,int,int)", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "replaceAll", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "replaceAll", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "replaceAll", "", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "replaceFirst", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "replaceFirst", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "replaceFirst", "", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "reverse", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "rightString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "setCharAt", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "setLength", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "setNewLineText", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "setNullText", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "subSequence", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "substring", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "toCharArray", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "toString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "toStringBuffer", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "toStringBuilder", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.text", "StrBuilder", False, "trim", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.text", "StrTokenizer", False, "StrTokenizer", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "StrTokenizer", False, "clone", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "StrBuilder", "(java.lang.String)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "append", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "append", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "append", "(char[])", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "append", "(char[],int,int)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "append", "(java.lang.CharSequence)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "append", "(java.lang.CharSequence,int,int)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "append", "(java.lang.Object)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "append", "(java.lang.String)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "append", "(java.lang.String,int,int)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "append", "(java.lang.String,java.lang.Object[])", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "append", "(java.lang.String,java.lang.Object[])", "", "Argument[1].ArrayElement", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "append", "(java.lang.StringBuffer)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "append", "(java.lang.StringBuffer,int,int)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "append", "(java.lang.StringBuilder)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "append", "(java.lang.StringBuilder,int,int)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "append", "(java.nio.CharBuffer)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "append", "(java.nio.CharBuffer,int,int)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "append", "(org.apache.commons.text.StrBuilder)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "appendAll", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "appendAll", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "appendAll", "(Iterable)", "", "Argument[0].Element", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "appendAll", "(Iterator)", "", "Argument[0].Element", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "appendAll", "(Object[])", "", "Argument[0].ArrayElement", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "appendFixedWidthPadLeft", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "appendFixedWidthPadLeft", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "appendFixedWidthPadLeft", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "appendFixedWidthPadRight", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "appendFixedWidthPadRight", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "appendFixedWidthPadRight", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "appendNewLine", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "appendNull", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "appendPadding", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "appendSeparator", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "appendSeparator", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "appendSeparator", "(java.lang.String)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "appendSeparator", "(java.lang.String,int)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "appendSeparator", "(java.lang.String,java.lang.String)", "", "Argument[0..1]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "appendTo", "", "", "Argument[this]", "Argument[0]", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "appendWithSeparators", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "appendWithSeparators", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "appendWithSeparators", "", "", "Argument[1]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "appendWithSeparators", "(Iterable,String)", "", "Argument[0].Element", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "appendWithSeparators", "(Iterator,String)", "", "Argument[0].Element", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "appendWithSeparators", "(Object[],String)", "", "Argument[0].ArrayElement", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "appendln", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "appendln", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "appendln", "(char[])", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "appendln", "(char[],int,int)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "appendln", "(java.lang.Object)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "appendln", "(java.lang.String)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "appendln", "(java.lang.String,int,int)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "appendln", "(java.lang.String,java.lang.Object[])", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "appendln", "(java.lang.String,java.lang.Object[])", "", "Argument[1].ArrayElement", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "appendln", "(java.lang.StringBuffer)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "appendln", "(java.lang.StringBuffer,int,int)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "appendln", "(java.lang.StringBuilder)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "appendln", "(java.lang.StringBuilder,int,int)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "appendln", "(org.apache.commons.text.StrBuilder)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "asReader", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "asTokenizer", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "build", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "delete", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "deleteAll", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "deleteCharAt", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "deleteFirst", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "ensureCapacity", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "getChars", "(char[])", "", "Argument[this]", "Argument[0]", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "getChars", "(char[])", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "getChars", "(int,int,char[],int)", "", "Argument[this]", "Argument[2]", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "insert", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "insert", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "insert", "", "", "Argument[1]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "leftString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "midString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "minimizeCapacity", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "readFrom", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "replace", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "replace", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "replace", "(int,int,java.lang.String)", "", "Argument[2]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "replace", "(org.apache.commons.text.StrMatcher,java.lang.String,int,int,int)", "", "Argument[1]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "replaceAll", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "replaceAll", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "replaceAll", "", "", "Argument[1]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "replaceFirst", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "replaceFirst", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "replaceFirst", "", "", "Argument[1]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "reverse", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "rightString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "setCharAt", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "setLength", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "setNewLineText", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "setNullText", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "subSequence", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "substring", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "toCharArray", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "toString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "toStringBuffer", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "toStringBuilder", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.text", "StrBuilder", False, "trim", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.text", "StrTokenizer", False, "StrTokenizer", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "StrTokenizer", False, "clone", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["org.apache.commons.text", "StrTokenizer", False, "getCSVInstance", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.text", "StrTokenizer", False, "getContent", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.text", "StrTokenizer", False, "getContent", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["org.apache.commons.text", "StrTokenizer", False, "getTSVInstance", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.text", "StrTokenizer", False, "getTokenArray", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.text", "StrTokenizer", False, "getTokenList", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.text", "StrTokenizer", False, "next", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.text", "StrTokenizer", False, "nextToken", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.text", "StrTokenizer", False, "previous", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.text", "StrTokenizer", False, "previousToken", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.text", "StrTokenizer", False, "reset", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] + - ["org.apache.commons.text", "StrTokenizer", False, "getTokenArray", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.text", "StrTokenizer", False, "getTokenList", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.text", "StrTokenizer", False, "next", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.text", "StrTokenizer", False, "nextToken", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.text", "StrTokenizer", False, "previous", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.text", "StrTokenizer", False, "previousToken", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.text", "StrTokenizer", False, "reset", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] - ["org.apache.commons.text", "StrTokenizer", False, "reset", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.text", "StrTokenizer", False, "toString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.text", "StringSubstitutor", False, "StringSubstitutor", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "StringSubstitutor", False, "StringSubstitutor", "", "", "Argument[0].MapValue", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "StringSubstitutor", False, "replace", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.text", "StrTokenizer", False, "toString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.text", "StringSubstitutor", False, "StringSubstitutor", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "StringSubstitutor", False, "StringSubstitutor", "", "", "Argument[0].MapValue", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "StringSubstitutor", False, "replace", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["org.apache.commons.text", "StringSubstitutor", False, "replace", "(char[])", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["org.apache.commons.text", "StringSubstitutor", False, "replace", "(char[],int,int)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["org.apache.commons.text", "StringSubstitutor", False, "replace", "(java.lang.CharSequence)", "", "Argument[0]", "ReturnValue", "taint", "manual"] @@ -137,128 +137,128 @@ extensions: - ["org.apache.commons.text", "StringSubstitutor", False, "replace", "(java.lang.StringBuffer,int,int)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["org.apache.commons.text", "StringSubstitutor", False, "replace", "(org.apache.commons.text.TextStringBuilder)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["org.apache.commons.text", "StringSubstitutor", False, "replace", "(org.apache.commons.text.TextStringBuilder,int,int)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.text", "StringSubstitutor", False, "replaceIn", "(java.lang.StringBuffer)", "", "Argument[-1]", "Argument[0]", "taint", "manual"] - - ["org.apache.commons.text", "StringSubstitutor", False, "replaceIn", "(java.lang.StringBuffer,int,int)", "", "Argument[-1]", "Argument[0]", "taint", "manual"] - - ["org.apache.commons.text", "StringSubstitutor", False, "replaceIn", "(java.lang.StringBuilder)", "", "Argument[-1]", "Argument[0]", "taint", "manual"] - - ["org.apache.commons.text", "StringSubstitutor", False, "replaceIn", "(java.lang.StringBuilder,int,int)", "", "Argument[-1]", "Argument[0]", "taint", "manual"] - - ["org.apache.commons.text", "StringSubstitutor", False, "replaceIn", "(org.apache.commons.text.TextStringBuilder)", "", "Argument[-1]", "Argument[0]", "taint", "manual"] - - ["org.apache.commons.text", "StringSubstitutor", False, "replaceIn", "(org.apache.commons.text.TextStringBuilder,int,int)", "", "Argument[-1]", "Argument[0]", "taint", "manual"] - - ["org.apache.commons.text", "StringSubstitutor", False, "setVariableResolver", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "StringTokenizer", False, "StringTokenizer", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "StringTokenizer", False, "clone", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.text", "StringSubstitutor", False, "replaceIn", "(java.lang.StringBuffer)", "", "Argument[this]", "Argument[0]", "taint", "manual"] + - ["org.apache.commons.text", "StringSubstitutor", False, "replaceIn", "(java.lang.StringBuffer,int,int)", "", "Argument[this]", "Argument[0]", "taint", "manual"] + - ["org.apache.commons.text", "StringSubstitutor", False, "replaceIn", "(java.lang.StringBuilder)", "", "Argument[this]", "Argument[0]", "taint", "manual"] + - ["org.apache.commons.text", "StringSubstitutor", False, "replaceIn", "(java.lang.StringBuilder,int,int)", "", "Argument[this]", "Argument[0]", "taint", "manual"] + - ["org.apache.commons.text", "StringSubstitutor", False, "replaceIn", "(org.apache.commons.text.TextStringBuilder)", "", "Argument[this]", "Argument[0]", "taint", "manual"] + - ["org.apache.commons.text", "StringSubstitutor", False, "replaceIn", "(org.apache.commons.text.TextStringBuilder,int,int)", "", "Argument[this]", "Argument[0]", "taint", "manual"] + - ["org.apache.commons.text", "StringSubstitutor", False, "setVariableResolver", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "StringTokenizer", False, "StringTokenizer", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "StringTokenizer", False, "clone", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["org.apache.commons.text", "StringTokenizer", False, "getCSVInstance", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.text", "StringTokenizer", False, "getContent", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.text", "StringTokenizer", False, "getContent", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["org.apache.commons.text", "StringTokenizer", False, "getTSVInstance", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.text", "StringTokenizer", False, "getTokenArray", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.text", "StringTokenizer", False, "getTokenList", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.text", "StringTokenizer", False, "next", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.text", "StringTokenizer", False, "nextToken", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.text", "StringTokenizer", False, "previous", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.text", "StringTokenizer", False, "previousToken", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.text", "StringTokenizer", False, "reset", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] + - ["org.apache.commons.text", "StringTokenizer", False, "getTokenArray", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.text", "StringTokenizer", False, "getTokenList", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.text", "StringTokenizer", False, "next", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.text", "StringTokenizer", False, "nextToken", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.text", "StringTokenizer", False, "previous", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.text", "StringTokenizer", False, "previousToken", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.text", "StringTokenizer", False, "reset", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] - ["org.apache.commons.text", "StringTokenizer", False, "reset", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.text", "StringTokenizer", False, "toString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "TextStringBuilder", "(java.lang.CharSequence)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "TextStringBuilder", "(java.lang.String)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "append", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "append", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "append", "(char[])", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "append", "(char[],int,int)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "append", "(java.lang.CharSequence)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "append", "(java.lang.CharSequence,int,int)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "append", "(java.lang.Object)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "append", "(java.lang.String)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "append", "(java.lang.String,int,int)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "append", "(java.lang.String,java.lang.Object[])", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "append", "(java.lang.String,java.lang.Object[])", "", "Argument[1].ArrayElement", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "append", "(java.lang.StringBuffer)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "append", "(java.lang.StringBuffer,int,int)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "append", "(java.lang.StringBuilder)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "append", "(java.lang.StringBuilder,int,int)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "append", "(java.nio.CharBuffer)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "append", "(java.nio.CharBuffer,int,int)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "append", "(org.apache.commons.text.TextStringBuilder)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "appendAll", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "appendAll", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "appendAll", "(Iterable)", "", "Argument[0].Element", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "appendAll", "(Iterator)", "", "Argument[0].Element", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "appendAll", "(Object[])", "", "Argument[0].ArrayElement", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "appendFixedWidthPadLeft", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "appendFixedWidthPadLeft", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "appendFixedWidthPadLeft", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "appendFixedWidthPadRight", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "appendFixedWidthPadRight", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "appendFixedWidthPadRight", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "appendNewLine", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "appendNull", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "appendPadding", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "appendSeparator", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "appendSeparator", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "appendSeparator", "(java.lang.String)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "appendSeparator", "(java.lang.String,int)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "appendSeparator", "(java.lang.String,java.lang.String)", "", "Argument[0..1]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "appendTo", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "appendWithSeparators", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "appendWithSeparators", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "appendWithSeparators", "", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "appendWithSeparators", "(Iterable,String)", "", "Argument[0].Element", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "appendWithSeparators", "(Iterator,String)", "", "Argument[0].Element", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "appendWithSeparators", "(Object[],String)", "", "Argument[0].ArrayElement", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "appendln", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "appendln", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "appendln", "(char[])", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "appendln", "(char[],int,int)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "appendln", "(java.lang.Object)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "appendln", "(java.lang.String)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "appendln", "(java.lang.String,int,int)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "appendln", "(java.lang.String,java.lang.Object[])", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "appendln", "(java.lang.String,java.lang.Object[])", "", "Argument[1].ArrayElement", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "appendln", "(java.lang.StringBuffer)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "appendln", "(java.lang.StringBuffer,int,int)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "appendln", "(java.lang.StringBuilder)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "appendln", "(java.lang.StringBuilder,int,int)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "appendln", "(org.apache.commons.text.TextStringBuilder)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "asReader", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "asTokenizer", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "build", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "delete", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "deleteAll", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "deleteCharAt", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "deleteFirst", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "ensureCapacity", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "getChars", "(char[])", "", "Argument[-1]", "Argument[0]", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "getChars", "(char[])", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "getChars", "(int,int,char[],int)", "", "Argument[-1]", "Argument[2]", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "insert", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "insert", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "insert", "", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "leftString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "midString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "minimizeCapacity", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "readFrom", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "replace", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "replace", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "replace", "(int,int,java.lang.String)", "", "Argument[2]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "replace", "(org.apache.commons.text.matcher.StringMatcher,java.lang.String,int,int,int)", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "replaceAll", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "replaceAll", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "replaceAll", "", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "replaceFirst", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "replaceFirst", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "replaceFirst", "", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "reverse", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "rightString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "setCharAt", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "setLength", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "setNewLineText", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "setNullText", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "subSequence", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "substring", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "toCharArray", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "toString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "toStringBuffer", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "toStringBuilder", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.commons.text", "TextStringBuilder", False, "trim", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.text", "StringTokenizer", False, "toString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "TextStringBuilder", "(java.lang.CharSequence)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "TextStringBuilder", "(java.lang.String)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "append", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "append", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "append", "(char[])", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "append", "(char[],int,int)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "append", "(java.lang.CharSequence)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "append", "(java.lang.CharSequence,int,int)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "append", "(java.lang.Object)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "append", "(java.lang.String)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "append", "(java.lang.String,int,int)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "append", "(java.lang.String,java.lang.Object[])", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "append", "(java.lang.String,java.lang.Object[])", "", "Argument[1].ArrayElement", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "append", "(java.lang.StringBuffer)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "append", "(java.lang.StringBuffer,int,int)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "append", "(java.lang.StringBuilder)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "append", "(java.lang.StringBuilder,int,int)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "append", "(java.nio.CharBuffer)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "append", "(java.nio.CharBuffer,int,int)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "append", "(org.apache.commons.text.TextStringBuilder)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "appendAll", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "appendAll", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "appendAll", "(Iterable)", "", "Argument[0].Element", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "appendAll", "(Iterator)", "", "Argument[0].Element", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "appendAll", "(Object[])", "", "Argument[0].ArrayElement", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "appendFixedWidthPadLeft", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "appendFixedWidthPadLeft", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "appendFixedWidthPadLeft", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "appendFixedWidthPadRight", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "appendFixedWidthPadRight", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "appendFixedWidthPadRight", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "appendNewLine", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "appendNull", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "appendPadding", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "appendSeparator", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "appendSeparator", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "appendSeparator", "(java.lang.String)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "appendSeparator", "(java.lang.String,int)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "appendSeparator", "(java.lang.String,java.lang.String)", "", "Argument[0..1]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "appendTo", "", "", "Argument[this]", "Argument[0]", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "appendWithSeparators", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "appendWithSeparators", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "appendWithSeparators", "", "", "Argument[1]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "appendWithSeparators", "(Iterable,String)", "", "Argument[0].Element", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "appendWithSeparators", "(Iterator,String)", "", "Argument[0].Element", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "appendWithSeparators", "(Object[],String)", "", "Argument[0].ArrayElement", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "appendln", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "appendln", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "appendln", "(char[])", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "appendln", "(char[],int,int)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "appendln", "(java.lang.Object)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "appendln", "(java.lang.String)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "appendln", "(java.lang.String,int,int)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "appendln", "(java.lang.String,java.lang.Object[])", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "appendln", "(java.lang.String,java.lang.Object[])", "", "Argument[1].ArrayElement", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "appendln", "(java.lang.StringBuffer)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "appendln", "(java.lang.StringBuffer,int,int)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "appendln", "(java.lang.StringBuilder)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "appendln", "(java.lang.StringBuilder,int,int)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "appendln", "(org.apache.commons.text.TextStringBuilder)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "asReader", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "asTokenizer", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "build", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "delete", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "deleteAll", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "deleteCharAt", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "deleteFirst", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "ensureCapacity", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "getChars", "(char[])", "", "Argument[this]", "Argument[0]", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "getChars", "(char[])", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "getChars", "(int,int,char[],int)", "", "Argument[this]", "Argument[2]", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "insert", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "insert", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "insert", "", "", "Argument[1]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "leftString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "midString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "minimizeCapacity", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "readFrom", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "replace", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "replace", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "replace", "(int,int,java.lang.String)", "", "Argument[2]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "replace", "(org.apache.commons.text.matcher.StringMatcher,java.lang.String,int,int,int)", "", "Argument[1]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "replaceAll", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "replaceAll", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "replaceAll", "", "", "Argument[1]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "replaceFirst", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "replaceFirst", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "replaceFirst", "", "", "Argument[1]", "Argument[this]", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "reverse", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "rightString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "setCharAt", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "setLength", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "setNewLineText", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "setNullText", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "subSequence", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "substring", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "toCharArray", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "toString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "toStringBuffer", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "toStringBuilder", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.commons.text", "TextStringBuilder", False, "trim", "", "", "Argument[this]", "ReturnValue", "value", "manual"] - ["org.apache.commons.text", "WordUtils", False, "abbreviate", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["org.apache.commons.text", "WordUtils", False, "abbreviate", "", "", "Argument[3]", "ReturnValue", "taint", "manual"] - ["org.apache.commons.text", "WordUtils", False, "capitalize", "(java.lang.String)", "", "Argument[0]", "ReturnValue", "taint", "manual"] diff --git a/java/ql/lib/ext/org.apache.hc.core5.function.model.yml b/java/ql/lib/ext/org.apache.hc.core5.function.model.yml index 2763da9cd3d..59211885d2c 100644 --- a/java/ql/lib/ext/org.apache.hc.core5.function.model.yml +++ b/java/ql/lib/ext/org.apache.hc.core5.function.model.yml @@ -3,4 +3,4 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["org.apache.hc.core5.function", "Supplier", True, "get", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["org.apache.hc.core5.function", "Supplier", True, "get", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] diff --git a/java/ql/lib/ext/org.apache.hc.core5.http.io.entity.model.yml b/java/ql/lib/ext/org.apache.hc.core5.http.io.entity.model.yml index 2b7b1a4eaf3..1cde9909d82 100644 --- a/java/ql/lib/ext/org.apache.hc.core5.http.io.entity.model.yml +++ b/java/ql/lib/ext/org.apache.hc.core5.http.io.entity.model.yml @@ -5,7 +5,7 @@ extensions: data: - ["org.apache.hc.core5.http.io.entity", "BasicHttpEntity", True, "BasicHttpEntity", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["org.apache.hc.core5.http.io.entity", "BufferedHttpEntity", True, "BufferedHttpEntity", "(HttpEntity)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["org.apache.hc.core5.http.io.entity", "ByteArrayEntity", True, "ByteArrayEntity", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] + - ["org.apache.hc.core5.http.io.entity", "ByteArrayEntity", True, "ByteArrayEntity", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] - ["org.apache.hc.core5.http.io.entity", "EntityUtils", True, "parse", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["org.apache.hc.core5.http.io.entity", "EntityUtils", True, "toByteArray", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["org.apache.hc.core5.http.io.entity", "EntityUtils", True, "toString", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] @@ -16,4 +16,4 @@ extensions: - ["org.apache.hc.core5.http.io.entity", "HttpEntities", True, "withTrailers", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["org.apache.hc.core5.http.io.entity", "HttpEntityWrapper", True, "HttpEntityWrapper", "(HttpEntity)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["org.apache.hc.core5.http.io.entity", "InputStreamEntity", True, "InputStreamEntity", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["org.apache.hc.core5.http.io.entity", "StringEntity", True, "StringEntity", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] + - ["org.apache.hc.core5.http.io.entity", "StringEntity", True, "StringEntity", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] diff --git a/java/ql/lib/ext/org.apache.hc.core5.http.message.model.yml b/java/ql/lib/ext/org.apache.hc.core5.http.message.model.yml index bf8ab791ccf..0aacdae643b 100644 --- a/java/ql/lib/ext/org.apache.hc.core5.http.message.model.yml +++ b/java/ql/lib/ext/org.apache.hc.core5.http.message.model.yml @@ -3,8 +3,8 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["org.apache.hc.core5.http.message", "RequestLine", True, "RequestLine", "(HttpRequest)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.hc.core5.http.message", "RequestLine", True, "RequestLine", "(String,String,ProtocolVersion)", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["org.apache.hc.core5.http.message", "RequestLine", True, "getMethod", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.hc.core5.http.message", "RequestLine", True, "getUri", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.hc.core5.http.message", "RequestLine", True, "toString", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["org.apache.hc.core5.http.message", "RequestLine", True, "RequestLine", "(HttpRequest)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.hc.core5.http.message", "RequestLine", True, "RequestLine", "(String,String,ProtocolVersion)", "", "Argument[1]", "Argument[this]", "taint", "manual"] + - ["org.apache.hc.core5.http.message", "RequestLine", True, "getMethod", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.hc.core5.http.message", "RequestLine", True, "getUri", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.hc.core5.http.message", "RequestLine", True, "toString", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] diff --git a/java/ql/lib/ext/org.apache.hc.core5.http.model.yml b/java/ql/lib/ext/org.apache.hc.core5.http.model.yml index c0fcdc852dc..6dbb7bf51de 100644 --- a/java/ql/lib/ext/org.apache.hc.core5.http.model.yml +++ b/java/ql/lib/ext/org.apache.hc.core5.http.model.yml @@ -8,23 +8,23 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["org.apache.hc.core5.http", "EntityDetails", True, "getContentEncoding", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.hc.core5.http", "EntityDetails", True, "getContentType", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.hc.core5.http", "EntityDetails", True, "getTrailerNames", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.hc.core5.http", "HttpEntity", True, "getContent", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.hc.core5.http", "HttpEntity", True, "getTrailers", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.hc.core5.http", "HttpEntityContainer", True, "getEntity", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.hc.core5.http", "HttpRequest", True, "getAuthority", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.hc.core5.http", "HttpRequest", True, "getMethod", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.hc.core5.http", "HttpRequest", True, "getPath", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.hc.core5.http", "HttpRequest", True, "getRequestUri", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.hc.core5.http", "HttpRequest", True, "getUri", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.hc.core5.http", "MessageHeaders", True, "getFirstHeader", "(String)", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.hc.core5.http", "MessageHeaders", True, "getHeader", "(String)", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.hc.core5.http", "MessageHeaders", True, "getHeaders", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.hc.core5.http", "MessageHeaders", True, "getHeaders", "(String)", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.hc.core5.http", "MessageHeaders", True, "getLastHeader", "(String)", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.hc.core5.http", "MessageHeaders", True, "headerIterator", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.hc.core5.http", "MessageHeaders", True, "headerIterator", "(String)", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.hc.core5.http", "NameValuePair", True, "getName", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.hc.core5.http", "NameValuePair", True, "getValue", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["org.apache.hc.core5.http", "EntityDetails", True, "getContentEncoding", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.hc.core5.http", "EntityDetails", True, "getContentType", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.hc.core5.http", "EntityDetails", True, "getTrailerNames", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.hc.core5.http", "HttpEntity", True, "getContent", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.hc.core5.http", "HttpEntity", True, "getTrailers", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.hc.core5.http", "HttpEntityContainer", True, "getEntity", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.hc.core5.http", "HttpRequest", True, "getAuthority", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.hc.core5.http", "HttpRequest", True, "getMethod", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.hc.core5.http", "HttpRequest", True, "getPath", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.hc.core5.http", "HttpRequest", True, "getRequestUri", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.hc.core5.http", "HttpRequest", True, "getUri", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.hc.core5.http", "MessageHeaders", True, "getFirstHeader", "(String)", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.hc.core5.http", "MessageHeaders", True, "getHeader", "(String)", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.hc.core5.http", "MessageHeaders", True, "getHeaders", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.hc.core5.http", "MessageHeaders", True, "getHeaders", "(String)", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.hc.core5.http", "MessageHeaders", True, "getLastHeader", "(String)", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.hc.core5.http", "MessageHeaders", True, "headerIterator", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.hc.core5.http", "MessageHeaders", True, "headerIterator", "(String)", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.hc.core5.http", "NameValuePair", True, "getName", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.hc.core5.http", "NameValuePair", True, "getValue", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] diff --git a/java/ql/lib/ext/org.apache.hc.core5.net.model.yml b/java/ql/lib/ext/org.apache.hc.core5.net.model.yml index e16c8b150c3..f779d62053c 100644 --- a/java/ql/lib/ext/org.apache.hc.core5.net.model.yml +++ b/java/ql/lib/ext/org.apache.hc.core5.net.model.yml @@ -3,5 +3,5 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["org.apache.hc.core5.net", "URIAuthority", True, "getHostName", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.hc.core5.net", "URIAuthority", True, "toString", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["org.apache.hc.core5.net", "URIAuthority", True, "getHostName", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.hc.core5.net", "URIAuthority", True, "toString", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] diff --git a/java/ql/lib/ext/org.apache.hc.core5.util.model.yml b/java/ql/lib/ext/org.apache.hc.core5.util.model.yml index 2023ad04f6e..450f859d589 100644 --- a/java/ql/lib/ext/org.apache.hc.core5.util.model.yml +++ b/java/ql/lib/ext/org.apache.hc.core5.util.model.yml @@ -9,21 +9,21 @@ extensions: - ["org.apache.hc.core5.util", "Args", True, "notEmpty", "(Collection,String)", "", "Argument[0]", "ReturnValue", "value", "manual"] - ["org.apache.hc.core5.util", "Args", True, "notEmpty", "(Object,String)", "", "Argument[0]", "ReturnValue", "value", "manual"] - ["org.apache.hc.core5.util", "Args", True, "notNull", "(Object,String)", "", "Argument[0]", "ReturnValue", "value", "manual"] - - ["org.apache.hc.core5.util", "ByteArrayBuffer", True, "append", "(CharArrayBuffer,int,int)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.hc.core5.util", "ByteArrayBuffer", True, "append", "(byte[],int,int)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.hc.core5.util", "ByteArrayBuffer", True, "append", "(char[],int,int)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.hc.core5.util", "ByteArrayBuffer", True, "array", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.hc.core5.util", "ByteArrayBuffer", True, "toByteArray", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.hc.core5.util", "CharArrayBuffer", True, "append", "(ByteArrayBuffer,int,int)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.hc.core5.util", "CharArrayBuffer", True, "append", "(CharArrayBuffer)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.hc.core5.util", "CharArrayBuffer", True, "append", "(CharArrayBuffer,int,int)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.hc.core5.util", "CharArrayBuffer", True, "append", "(Object)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.hc.core5.util", "CharArrayBuffer", True, "append", "(String)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.hc.core5.util", "CharArrayBuffer", True, "append", "(byte[],int,int)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.hc.core5.util", "CharArrayBuffer", True, "append", "(char[],int,int)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.hc.core5.util", "CharArrayBuffer", True, "array", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.hc.core5.util", "CharArrayBuffer", True, "subSequence", "(int,int)", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.hc.core5.util", "CharArrayBuffer", True, "substring", "(int,int)", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.hc.core5.util", "CharArrayBuffer", True, "substringTrimmed", "(int,int)", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.hc.core5.util", "CharArrayBuffer", True, "toCharArray", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.hc.core5.util", "CharArrayBuffer", True, "toString", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["org.apache.hc.core5.util", "ByteArrayBuffer", True, "append", "(CharArrayBuffer,int,int)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.hc.core5.util", "ByteArrayBuffer", True, "append", "(byte[],int,int)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.hc.core5.util", "ByteArrayBuffer", True, "append", "(char[],int,int)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.hc.core5.util", "ByteArrayBuffer", True, "array", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.hc.core5.util", "ByteArrayBuffer", True, "toByteArray", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.hc.core5.util", "CharArrayBuffer", True, "append", "(ByteArrayBuffer,int,int)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.hc.core5.util", "CharArrayBuffer", True, "append", "(CharArrayBuffer)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.hc.core5.util", "CharArrayBuffer", True, "append", "(CharArrayBuffer,int,int)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.hc.core5.util", "CharArrayBuffer", True, "append", "(Object)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.hc.core5.util", "CharArrayBuffer", True, "append", "(String)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.hc.core5.util", "CharArrayBuffer", True, "append", "(byte[],int,int)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.hc.core5.util", "CharArrayBuffer", True, "append", "(char[],int,int)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.hc.core5.util", "CharArrayBuffer", True, "array", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.hc.core5.util", "CharArrayBuffer", True, "subSequence", "(int,int)", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.hc.core5.util", "CharArrayBuffer", True, "substring", "(int,int)", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.hc.core5.util", "CharArrayBuffer", True, "substringTrimmed", "(int,int)", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.hc.core5.util", "CharArrayBuffer", True, "toCharArray", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.hc.core5.util", "CharArrayBuffer", True, "toString", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] diff --git a/java/ql/lib/ext/org.apache.http.client.utils.model.yml b/java/ql/lib/ext/org.apache.http.client.utils.model.yml index e184ff0cdc8..46e00c8facf 100644 --- a/java/ql/lib/ext/org.apache.http.client.utils.model.yml +++ b/java/ql/lib/ext/org.apache.http.client.utils.model.yml @@ -3,10 +3,10 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["org.apache.http.client.utils", "URIBuilder", True, "setHost", "(String)", "", "Argument[0]", "Argument[-1]", "taint", "ai-generated"] + - ["org.apache.http.client.utils", "URIBuilder", True, "setHost", "(String)", "", "Argument[0]", "Argument[this]", "taint", "ai-generated"] - ["org.apache.http.client.utils", "URIBuilder", True, "setHost", "(String)", "", "Argument[0]", "ReturnValue", "taint", "ai-generated"] - - ["org.apache.http.client.utils", "URIBuilder", True, "setPath", "(String)", "", "Argument[0]", "Argument[-1].SyntheticField[org.apache.http.client.utils.URIBuilder.path]", "taint", "ai-generated"] - - ["org.apache.http.client.utils", "URIBuilder", True, "setPathSegments", "(List)", "", "Argument[0]", "Argument[-1].SyntheticField[org.apache.http.client.utils.URIBuilder.path]", "taint", "ai-generated"] - - ["org.apache.http.client.utils", "URIBuilder", True, "URIBuilder", "(String)", "", "Argument[0]", "Argument[-1]", "taint", "ai-generated"] - - ["org.apache.http.client.utils", "URIBuilder", True, "URIBuilder", "(URI)", "", "Argument[0]", "Argument[-1]", "taint", "ai-generated"] + - ["org.apache.http.client.utils", "URIBuilder", True, "setPath", "(String)", "", "Argument[0]", "Argument[this].SyntheticField[org.apache.http.client.utils.URIBuilder.path]", "taint", "ai-generated"] + - ["org.apache.http.client.utils", "URIBuilder", True, "setPathSegments", "(List)", "", "Argument[0]", "Argument[this].SyntheticField[org.apache.http.client.utils.URIBuilder.path]", "taint", "ai-generated"] + - ["org.apache.http.client.utils", "URIBuilder", True, "URIBuilder", "(String)", "", "Argument[0]", "Argument[this]", "taint", "ai-generated"] + - ["org.apache.http.client.utils", "URIBuilder", True, "URIBuilder", "(URI)", "", "Argument[0]", "Argument[this]", "taint", "ai-generated"] - ["org.apache.http.client.utils", "URLEncodedUtils", True, "parse", "(URI,String)", "", "Argument[0]", "ReturnValue.Element", "taint", "ai-generated"] diff --git a/java/ql/lib/ext/org.apache.http.entity.model.yml b/java/ql/lib/ext/org.apache.http.entity.model.yml index 4105b55a634..4d0f0d60466 100644 --- a/java/ql/lib/ext/org.apache.http.entity.model.yml +++ b/java/ql/lib/ext/org.apache.http.entity.model.yml @@ -3,9 +3,9 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["org.apache.http.entity", "BasicHttpEntity", True, "setContent", "(InputStream)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] + - ["org.apache.http.entity", "BasicHttpEntity", True, "setContent", "(InputStream)", "", "Argument[0]", "Argument[this]", "taint", "manual"] - ["org.apache.http.entity", "BufferedHttpEntity", True, "BufferedHttpEntity", "(HttpEntity)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["org.apache.http.entity", "ByteArrayEntity", True, "ByteArrayEntity", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] + - ["org.apache.http.entity", "ByteArrayEntity", True, "ByteArrayEntity", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] - ["org.apache.http.entity", "HttpEntityWrapper", True, "HttpEntityWrapper", "(HttpEntity)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["org.apache.http.entity", "InputStreamEntity", True, "InputStreamEntity", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["org.apache.http.entity", "StringEntity", True, "StringEntity", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] + - ["org.apache.http.entity", "StringEntity", True, "StringEntity", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] diff --git a/java/ql/lib/ext/org.apache.http.message.model.yml b/java/ql/lib/ext/org.apache.http.message.model.yml index da798c12017..c727b57b210 100644 --- a/java/ql/lib/ext/org.apache.http.message.model.yml +++ b/java/ql/lib/ext/org.apache.http.message.model.yml @@ -13,4 +13,4 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["org.apache.http.message", "BasicRequestLine", False, "BasicRequestLine", "", "", "Argument[1]", "Argument[-1]", "taint", "manual"] + - ["org.apache.http.message", "BasicRequestLine", False, "BasicRequestLine", "", "", "Argument[1]", "Argument[this]", "taint", "manual"] diff --git a/java/ql/lib/ext/org.apache.http.model.yml b/java/ql/lib/ext/org.apache.http.model.yml index 25c5847ad0a..3e902ae7217 100644 --- a/java/ql/lib/ext/org.apache.http.model.yml +++ b/java/ql/lib/ext/org.apache.http.model.yml @@ -15,28 +15,28 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["org.apache.http", "Header", True, "getElements", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.http", "HeaderElement", True, "getName", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.http", "HeaderElement", True, "getParameter", "(int)", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.http", "HeaderElement", True, "getParameterByName", "(String)", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.http", "HeaderElement", True, "getParameters", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.http", "HeaderElement", True, "getValue", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.http", "HeaderIterator", True, "nextHeader", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.http", "HttpEntity", True, "getContent", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.http", "HttpEntity", True, "getContentEncoding", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.http", "HttpEntity", True, "getContentType", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.http", "HttpEntityEnclosingRequest", True, "getEntity", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.http", "HttpMessage", True, "getAllHeaders", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.http", "HttpMessage", True, "getFirstHeader", "(String)", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.http", "HttpMessage", True, "getHeaders", "(String)", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.http", "HttpMessage", True, "getLastHeader", "(String)", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.http", "HttpMessage", True, "getParams", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.http", "HttpMessage", True, "headerIterator", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.http", "HttpMessage", True, "headerIterator", "(String)", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.http", "HttpRequest", True, "getRequestLine", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.http", "NameValuePair", True, "getName", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.http", "NameValuePair", True, "getValue", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.http", "RequestLine", True, "getMethod", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.http", "RequestLine", True, "getUri", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.http", "RequestLine", True, "getUri", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.http", "RequestLine", True, "toString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["org.apache.http", "Header", True, "getElements", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.http", "HeaderElement", True, "getName", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.http", "HeaderElement", True, "getParameter", "(int)", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.http", "HeaderElement", True, "getParameterByName", "(String)", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.http", "HeaderElement", True, "getParameters", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.http", "HeaderElement", True, "getValue", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.http", "HeaderIterator", True, "nextHeader", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.http", "HttpEntity", True, "getContent", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.http", "HttpEntity", True, "getContentEncoding", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.http", "HttpEntity", True, "getContentType", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.http", "HttpEntityEnclosingRequest", True, "getEntity", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.http", "HttpMessage", True, "getAllHeaders", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.http", "HttpMessage", True, "getFirstHeader", "(String)", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.http", "HttpMessage", True, "getHeaders", "(String)", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.http", "HttpMessage", True, "getLastHeader", "(String)", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.http", "HttpMessage", True, "getParams", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.http", "HttpMessage", True, "headerIterator", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.http", "HttpMessage", True, "headerIterator", "(String)", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.http", "HttpRequest", True, "getRequestLine", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.http", "NameValuePair", True, "getName", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.http", "NameValuePair", True, "getValue", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.http", "RequestLine", True, "getMethod", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.http", "RequestLine", True, "getUri", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.http", "RequestLine", True, "getUri", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.http", "RequestLine", True, "toString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] diff --git a/java/ql/lib/ext/org.apache.http.params.model.yml b/java/ql/lib/ext/org.apache.http.params.model.yml index 35cd5b5c8a3..ed5d0497021 100644 --- a/java/ql/lib/ext/org.apache.http.params.model.yml +++ b/java/ql/lib/ext/org.apache.http.params.model.yml @@ -3,10 +3,10 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["org.apache.http.params", "HttpParams", True, "getDoubleParameter", "(String,double)", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["org.apache.http.params", "HttpParams", True, "getDoubleParameter", "(String,double)", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["org.apache.http.params", "HttpParams", True, "getDoubleParameter", "(String,double)", "", "Argument[1]", "ReturnValue", "value", "manual"] - - ["org.apache.http.params", "HttpParams", True, "getIntParameter", "(String,int)", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["org.apache.http.params", "HttpParams", True, "getIntParameter", "(String,int)", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["org.apache.http.params", "HttpParams", True, "getIntParameter", "(String,int)", "", "Argument[1]", "ReturnValue", "value", "manual"] - - ["org.apache.http.params", "HttpParams", True, "getLongParameter", "(String,long)", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["org.apache.http.params", "HttpParams", True, "getLongParameter", "(String,long)", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["org.apache.http.params", "HttpParams", True, "getLongParameter", "(String,long)", "", "Argument[1]", "ReturnValue", "value", "manual"] - - ["org.apache.http.params", "HttpParams", True, "getParameter", "(String)", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["org.apache.http.params", "HttpParams", True, "getParameter", "(String)", "", "Argument[this]", "ReturnValue", "taint", "manual"] diff --git a/java/ql/lib/ext/org.apache.http.util.model.yml b/java/ql/lib/ext/org.apache.http.util.model.yml index 34fb87b5cb9..d5469664ab6 100644 --- a/java/ql/lib/ext/org.apache.http.util.model.yml +++ b/java/ql/lib/ext/org.apache.http.util.model.yml @@ -13,24 +13,24 @@ extensions: - ["org.apache.http.util", "Args", True, "notEmpty", "(CharSequence,String)", "", "Argument[0]", "ReturnValue", "value", "manual"] - ["org.apache.http.util", "Args", True, "notEmpty", "(Collection,String)", "", "Argument[0]", "ReturnValue", "value", "manual"] - ["org.apache.http.util", "Args", True, "notNull", "(Object,String)", "", "Argument[0]", "ReturnValue", "value", "manual"] - - ["org.apache.http.util", "ByteArrayBuffer", True, "append", "(CharArrayBuffer,int,int)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.http.util", "ByteArrayBuffer", True, "append", "(byte[],int,int)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.http.util", "ByteArrayBuffer", True, "append", "(char[],int,int)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.http.util", "ByteArrayBuffer", True, "buffer", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.http.util", "ByteArrayBuffer", True, "toByteArray", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.http.util", "CharArrayBuffer", True, "append", "(ByteArrayBuffer,int,int)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.http.util", "CharArrayBuffer", True, "append", "(CharArrayBuffer)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.http.util", "CharArrayBuffer", True, "append", "(CharArrayBuffer,int,int)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.http.util", "CharArrayBuffer", True, "append", "(Object)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.http.util", "CharArrayBuffer", True, "append", "(String)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.http.util", "CharArrayBuffer", True, "append", "(byte[],int,int)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.http.util", "CharArrayBuffer", True, "append", "(char[],int,int)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.http.util", "CharArrayBuffer", True, "buffer", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.http.util", "CharArrayBuffer", True, "subSequence", "(int,int)", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.http.util", "CharArrayBuffer", True, "substring", "(int,int)", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.http.util", "CharArrayBuffer", True, "substringTrimmed", "(int,int)", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.http.util", "CharArrayBuffer", True, "toCharArray", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.apache.http.util", "CharArrayBuffer", True, "toString", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["org.apache.http.util", "ByteArrayBuffer", True, "append", "(CharArrayBuffer,int,int)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.http.util", "ByteArrayBuffer", True, "append", "(byte[],int,int)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.http.util", "ByteArrayBuffer", True, "append", "(char[],int,int)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.http.util", "ByteArrayBuffer", True, "buffer", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.http.util", "ByteArrayBuffer", True, "toByteArray", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.http.util", "CharArrayBuffer", True, "append", "(ByteArrayBuffer,int,int)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.http.util", "CharArrayBuffer", True, "append", "(CharArrayBuffer)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.http.util", "CharArrayBuffer", True, "append", "(CharArrayBuffer,int,int)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.http.util", "CharArrayBuffer", True, "append", "(Object)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.http.util", "CharArrayBuffer", True, "append", "(String)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.http.util", "CharArrayBuffer", True, "append", "(byte[],int,int)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.http.util", "CharArrayBuffer", True, "append", "(char[],int,int)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.http.util", "CharArrayBuffer", True, "buffer", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.http.util", "CharArrayBuffer", True, "subSequence", "(int,int)", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.http.util", "CharArrayBuffer", True, "substring", "(int,int)", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.http.util", "CharArrayBuffer", True, "substringTrimmed", "(int,int)", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.http.util", "CharArrayBuffer", True, "toCharArray", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.apache.http.util", "CharArrayBuffer", True, "toString", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["org.apache.http.util", "EncodingUtils", True, "getAsciiBytes", "(String)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["org.apache.http.util", "EncodingUtils", True, "getAsciiString", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["org.apache.http.util", "EncodingUtils", True, "getBytes", "(String,String)", "", "Argument[0]", "ReturnValue", "taint", "manual"] diff --git a/java/ql/lib/ext/org.apache.ibatis.jdbc.model.yml b/java/ql/lib/ext/org.apache.ibatis.jdbc.model.yml index 05dac3d7f10..e966d7bd735 100644 --- a/java/ql/lib/ext/org.apache.ibatis.jdbc.model.yml +++ b/java/ql/lib/ext/org.apache.ibatis.jdbc.model.yml @@ -13,60 +13,60 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "DELETE_FROM", "(String)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "FETCH_FIRST_ROWS_ONLY", "(String)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "FROM", "(String)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "FROM", "(String)", "", "Argument[0].ArrayElement", "Argument[-1]", "taint", "manual"] - - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "FROM", "(String[])", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "FROM", "(String[])", "", "Argument[0].ArrayElement", "Argument[-1]", "taint", "manual"] - - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "GROUP_BY", "(String)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "GROUP_BY", "(String)", "", "Argument[0].ArrayElement", "Argument[-1]", "taint", "manual"] - - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "GROUP_BY", "(String[])", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "GROUP_BY", "(String[])", "", "Argument[0].ArrayElement", "Argument[-1]", "taint", "manual"] - - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "HAVING", "(String)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "HAVING", "(String)", "", "Argument[0].ArrayElement", "Argument[-1]", "taint", "manual"] - - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "HAVING", "(String[])", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "HAVING", "(String[])", "", "Argument[0].ArrayElement", "Argument[-1]", "taint", "manual"] - - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "INNER_JOIN", "(String)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "INNER_JOIN", "(String)", "", "Argument[0].ArrayElement", "Argument[-1]", "taint", "manual"] - - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "INNER_JOIN", "(String[])", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "INNER_JOIN", "(String[])", "", "Argument[0].ArrayElement", "Argument[-1]", "taint", "manual"] - - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "INSERT_INTO", "(String)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "INTO_COLUMNS", "(String[])", "", "Argument[0].ArrayElement", "Argument[-1]", "taint", "manual"] - - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "INTO_VALUES", "(String[])", "", "Argument[0].ArrayElement", "Argument[-1]", "taint", "manual"] - - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "JOIN", "(String[])", "", "Argument[0].ArrayElement", "Argument[-1]", "taint", "manual"] - - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "LEFT_OUTER_JOIN", "(String)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "LEFT_OUTER_JOIN", "(String)", "", "Argument[0].ArrayElement", "Argument[-1]", "taint", "manual"] - - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "LEFT_OUTER_JOIN", "(String[])", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "LEFT_OUTER_JOIN", "(String[])", "", "Argument[0].ArrayElement", "Argument[-1]", "taint", "manual"] - - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "LIMIT", "(String)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "OFFSET", "(String)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "OFFSET_ROWS", "(String)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "ORDER_BY", "(String)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "ORDER_BY", "(String)", "", "Argument[0].ArrayElement", "Argument[-1]", "taint", "manual"] - - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "ORDER_BY", "(String[])", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "ORDER_BY", "(String[])", "", "Argument[0].ArrayElement", "Argument[-1]", "taint", "manual"] - - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "OUTER_JOIN", "(String)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "OUTER_JOIN", "(String)", "", "Argument[0].ArrayElement", "Argument[-1]", "taint", "manual"] - - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "OUTER_JOIN", "(String[])", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "OUTER_JOIN", "(String[])", "", "Argument[0].ArrayElement", "Argument[-1]", "taint", "manual"] - - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "RIGHT_OUTER_JOIN", "(String)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "RIGHT_OUTER_JOIN", "(String)", "", "Argument[0].ArrayElement", "Argument[-1]", "taint", "manual"] - - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "RIGHT_OUTER_JOIN", "(String[])", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "RIGHT_OUTER_JOIN", "(String[])", "", "Argument[0].ArrayElement", "Argument[-1]", "taint", "manual"] - - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "SELECT", "(String)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "SELECT_DISTINCT", "(String)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "SELECT_DISTINCT", "(String)", "", "Argument[0].ArrayElement", "Argument[-1]", "taint", "manual"] - - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "SELECT_DISTINCT", "(String[])", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "SELECT_DISTINCT", "(String[])", "", "Argument[0].ArrayElement", "Argument[-1]", "taint", "manual"] - - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "SET", "(String)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "SET", "(String)", "", "Argument[0].ArrayElement", "Argument[-1]", "taint", "manual"] - - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "SET", "(String[])", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "SET", "(String[])", "", "Argument[0].ArrayElement", "Argument[-1]", "taint", "manual"] - - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "UPDATE", "(String)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "VALUES", "(String,String)", "", "Argument[0..1]", "Argument[-1]", "taint", "manual"] - - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "WHERE", "(String)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "WHERE", "(String)", "", "Argument[0].ArrayElement", "Argument[-1]", "taint", "manual"] - - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "WHERE", "(String[])", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "WHERE", "(String[])", "", "Argument[0].ArrayElement", "Argument[-1]", "taint", "manual"] - - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "toString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "DELETE_FROM", "(String)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "FETCH_FIRST_ROWS_ONLY", "(String)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "FROM", "(String)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "FROM", "(String)", "", "Argument[0].ArrayElement", "Argument[this]", "taint", "manual"] + - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "FROM", "(String[])", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "FROM", "(String[])", "", "Argument[0].ArrayElement", "Argument[this]", "taint", "manual"] + - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "GROUP_BY", "(String)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "GROUP_BY", "(String)", "", "Argument[0].ArrayElement", "Argument[this]", "taint", "manual"] + - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "GROUP_BY", "(String[])", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "GROUP_BY", "(String[])", "", "Argument[0].ArrayElement", "Argument[this]", "taint", "manual"] + - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "HAVING", "(String)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "HAVING", "(String)", "", "Argument[0].ArrayElement", "Argument[this]", "taint", "manual"] + - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "HAVING", "(String[])", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "HAVING", "(String[])", "", "Argument[0].ArrayElement", "Argument[this]", "taint", "manual"] + - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "INNER_JOIN", "(String)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "INNER_JOIN", "(String)", "", "Argument[0].ArrayElement", "Argument[this]", "taint", "manual"] + - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "INNER_JOIN", "(String[])", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "INNER_JOIN", "(String[])", "", "Argument[0].ArrayElement", "Argument[this]", "taint", "manual"] + - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "INSERT_INTO", "(String)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "INTO_COLUMNS", "(String[])", "", "Argument[0].ArrayElement", "Argument[this]", "taint", "manual"] + - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "INTO_VALUES", "(String[])", "", "Argument[0].ArrayElement", "Argument[this]", "taint", "manual"] + - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "JOIN", "(String[])", "", "Argument[0].ArrayElement", "Argument[this]", "taint", "manual"] + - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "LEFT_OUTER_JOIN", "(String)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "LEFT_OUTER_JOIN", "(String)", "", "Argument[0].ArrayElement", "Argument[this]", "taint", "manual"] + - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "LEFT_OUTER_JOIN", "(String[])", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "LEFT_OUTER_JOIN", "(String[])", "", "Argument[0].ArrayElement", "Argument[this]", "taint", "manual"] + - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "LIMIT", "(String)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "OFFSET", "(String)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "OFFSET_ROWS", "(String)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "ORDER_BY", "(String)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "ORDER_BY", "(String)", "", "Argument[0].ArrayElement", "Argument[this]", "taint", "manual"] + - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "ORDER_BY", "(String[])", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "ORDER_BY", "(String[])", "", "Argument[0].ArrayElement", "Argument[this]", "taint", "manual"] + - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "OUTER_JOIN", "(String)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "OUTER_JOIN", "(String)", "", "Argument[0].ArrayElement", "Argument[this]", "taint", "manual"] + - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "OUTER_JOIN", "(String[])", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "OUTER_JOIN", "(String[])", "", "Argument[0].ArrayElement", "Argument[this]", "taint", "manual"] + - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "RIGHT_OUTER_JOIN", "(String)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "RIGHT_OUTER_JOIN", "(String)", "", "Argument[0].ArrayElement", "Argument[this]", "taint", "manual"] + - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "RIGHT_OUTER_JOIN", "(String[])", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "RIGHT_OUTER_JOIN", "(String[])", "", "Argument[0].ArrayElement", "Argument[this]", "taint", "manual"] + - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "SELECT", "(String)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "SELECT_DISTINCT", "(String)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "SELECT_DISTINCT", "(String)", "", "Argument[0].ArrayElement", "Argument[this]", "taint", "manual"] + - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "SELECT_DISTINCT", "(String[])", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "SELECT_DISTINCT", "(String[])", "", "Argument[0].ArrayElement", "Argument[this]", "taint", "manual"] + - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "SET", "(String)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "SET", "(String)", "", "Argument[0].ArrayElement", "Argument[this]", "taint", "manual"] + - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "SET", "(String[])", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "SET", "(String[])", "", "Argument[0].ArrayElement", "Argument[this]", "taint", "manual"] + - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "UPDATE", "(String)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "VALUES", "(String,String)", "", "Argument[0..1]", "Argument[this]", "taint", "manual"] + - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "WHERE", "(String)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "WHERE", "(String)", "", "Argument[0].ArrayElement", "Argument[this]", "taint", "manual"] + - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "WHERE", "(String[])", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "WHERE", "(String[])", "", "Argument[0].ArrayElement", "Argument[this]", "taint", "manual"] + - ["org.apache.ibatis.jdbc", "AbstractSQL", True, "toString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] diff --git a/java/ql/lib/ext/org.apache.tools.zip.model.yml b/java/ql/lib/ext/org.apache.tools.zip.model.yml index e70c0fa6ed5..8aae0eda191 100644 --- a/java/ql/lib/ext/org.apache.tools.zip.model.yml +++ b/java/ql/lib/ext/org.apache.tools.zip.model.yml @@ -3,4 +3,4 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["org.apache.tools.zip", "ZipEntry", True, "ZipEntry", "(String)", "", "Argument[0]", "Argument[-1]", "taint", "ai-generated"] + - ["org.apache.tools.zip", "ZipEntry", True, "ZipEntry", "(String)", "", "Argument[0]", "Argument[this]", "taint", "ai-generated"] diff --git a/java/ql/lib/ext/org.codehaus.groovy.control.model.yml b/java/ql/lib/ext/org.codehaus.groovy.control.model.yml index 77b03818172..61ec26f4482 100644 --- a/java/ql/lib/ext/org.codehaus.groovy.control.model.yml +++ b/java/ql/lib/ext/org.codehaus.groovy.control.model.yml @@ -3,4 +3,4 @@ extensions: pack: codeql/java-all extensible: sinkModel data: - - ["org.codehaus.groovy.control", "CompilationUnit", False, "compile", "", "", "Argument[-1]", "groovy", "manual"] + - ["org.codehaus.groovy.control", "CompilationUnit", False, "compile", "", "", "Argument[this]", "groovy", "manual"] diff --git a/java/ql/lib/ext/org.json.model.yml b/java/ql/lib/ext/org.json.model.yml index da97dfadb38..1680b193e03 100644 --- a/java/ql/lib/ext/org.json.model.yml +++ b/java/ql/lib/ext/org.json.model.yml @@ -16,212 +16,212 @@ extensions: - ["org.json", "CookieList", False, "toString", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["org.json", "HTTP", False, "toJSONObject", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["org.json", "HTTP", False, "toString", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["org.json", "HTTPTokener", False, "HTTPTokener", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.json", "HTTPTokener", False, "nextToken", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.json", "JSONArray", False, "JSONArray", "(Collection)", "", "Argument[0].Element", "Argument[-1]", "taint", "manual"] - - ["org.json", "JSONArray", False, "JSONArray", "(Iterable)", "", "Argument[0].Element", "Argument[-1]", "taint", "manual"] - - ["org.json", "JSONArray", False, "JSONArray", "(JSONArray)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.json", "JSONArray", False, "JSONArray", "(JSONTokener)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.json", "JSONArray", False, "JSONArray", "(Object)", "", "Argument[0].ArrayElement", "Argument[-1]", "taint", "manual"] - - ["org.json", "JSONArray", False, "JSONArray", "(String)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.json", "JSONArray", False, "get", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.json", "JSONArray", False, "getBigDecimal", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.json", "JSONArray", False, "getBigInteger", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.json", "JSONArray", False, "getBoolean", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.json", "JSONArray", False, "getDouble", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.json", "JSONArray", False, "getEnum", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.json", "JSONArray", False, "getFloat", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.json", "JSONArray", False, "getInt", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.json", "JSONArray", False, "getJSONArray", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.json", "JSONArray", False, "getJSONObject", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.json", "JSONArray", False, "getLong", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.json", "JSONArray", False, "getNumber", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.json", "JSONArray", False, "getString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.json", "JSONArray", False, "iterator", "", "", "Argument[-1]", "ReturnValue.Element", "taint", "manual"] - - ["org.json", "JSONArray", False, "join", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["org.json", "HTTPTokener", False, "HTTPTokener", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.json", "HTTPTokener", False, "nextToken", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONArray", False, "JSONArray", "(Collection)", "", "Argument[0].Element", "Argument[this]", "taint", "manual"] + - ["org.json", "JSONArray", False, "JSONArray", "(Iterable)", "", "Argument[0].Element", "Argument[this]", "taint", "manual"] + - ["org.json", "JSONArray", False, "JSONArray", "(JSONArray)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.json", "JSONArray", False, "JSONArray", "(JSONTokener)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.json", "JSONArray", False, "JSONArray", "(Object)", "", "Argument[0].ArrayElement", "Argument[this]", "taint", "manual"] + - ["org.json", "JSONArray", False, "JSONArray", "(String)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.json", "JSONArray", False, "get", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONArray", False, "getBigDecimal", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONArray", False, "getBigInteger", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONArray", False, "getBoolean", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONArray", False, "getDouble", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONArray", False, "getEnum", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONArray", False, "getFloat", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONArray", False, "getInt", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONArray", False, "getJSONArray", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONArray", False, "getJSONObject", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONArray", False, "getLong", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONArray", False, "getNumber", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONArray", False, "getString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONArray", False, "iterator", "", "", "Argument[this]", "ReturnValue.Element", "taint", "manual"] + - ["org.json", "JSONArray", False, "join", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["org.json", "JSONArray", False, "join", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["org.json", "JSONArray", False, "opt", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.json", "JSONArray", False, "optBigDecimal", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONArray", False, "opt", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONArray", False, "optBigDecimal", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["org.json", "JSONArray", False, "optBigDecimal", "", "", "Argument[1]", "ReturnValue", "value", "manual"] - - ["org.json", "JSONArray", False, "optBigInteger", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONArray", False, "optBigInteger", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["org.json", "JSONArray", False, "optBigInteger", "", "", "Argument[1]", "ReturnValue", "value", "manual"] - - ["org.json", "JSONArray", False, "optBoolean", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONArray", False, "optBoolean", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["org.json", "JSONArray", False, "optBoolean", "", "", "Argument[1]", "ReturnValue", "value", "manual"] - - ["org.json", "JSONArray", False, "optDouble", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONArray", False, "optDouble", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["org.json", "JSONArray", False, "optDouble", "", "", "Argument[1]", "ReturnValue", "value", "manual"] - - ["org.json", "JSONArray", False, "optEnum", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONArray", False, "optEnum", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["org.json", "JSONArray", False, "optEnum", "", "", "Argument[2]", "ReturnValue", "value", "manual"] - - ["org.json", "JSONArray", False, "optFloat", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONArray", False, "optFloat", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["org.json", "JSONArray", False, "optFloat", "", "", "Argument[1]", "ReturnValue", "value", "manual"] - - ["org.json", "JSONArray", False, "optInt", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONArray", False, "optInt", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["org.json", "JSONArray", False, "optInt", "", "", "Argument[1]", "ReturnValue", "value", "manual"] - - ["org.json", "JSONArray", False, "optJSONArray", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.json", "JSONArray", False, "optJSONObject", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.json", "JSONArray", False, "optLong", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONArray", False, "optJSONArray", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONArray", False, "optJSONObject", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONArray", False, "optLong", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["org.json", "JSONArray", False, "optLong", "", "", "Argument[1]", "ReturnValue", "value", "manual"] - - ["org.json", "JSONArray", False, "optNumber", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONArray", False, "optNumber", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["org.json", "JSONArray", False, "optNumber", "", "", "Argument[1]", "ReturnValue", "value", "manual"] - - ["org.json", "JSONArray", False, "optQuery", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.json", "JSONArray", False, "optString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONArray", False, "optQuery", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONArray", False, "optString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["org.json", "JSONArray", False, "optString", "", "", "Argument[1]", "ReturnValue", "value", "manual"] - - ["org.json", "JSONArray", False, "put", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.json", "JSONArray", False, "put", "(Collection)", "", "Argument[0].Element", "Argument[-1]", "taint", "manual"] - - ["org.json", "JSONArray", False, "put", "(Map)", "", "Argument[0].MapKey", "Argument[-1]", "taint", "manual"] - - ["org.json", "JSONArray", False, "put", "(Map)", "", "Argument[0].MapValue", "Argument[-1]", "taint", "manual"] - - ["org.json", "JSONArray", False, "put", "(Object)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.json", "JSONArray", False, "put", "(boolean)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.json", "JSONArray", False, "put", "(double)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.json", "JSONArray", False, "put", "(float)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.json", "JSONArray", False, "put", "(int)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.json", "JSONArray", False, "put", "(int,Collection)", "", "Argument[1].Element", "Argument[-1]", "taint", "manual"] - - ["org.json", "JSONArray", False, "put", "(int,Map)", "", "Argument[1].MapKey", "Argument[-1]", "taint", "manual"] - - ["org.json", "JSONArray", False, "put", "(int,Map)", "", "Argument[1].MapValue", "Argument[-1]", "taint", "manual"] - - ["org.json", "JSONArray", False, "put", "(int,Object)", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["org.json", "JSONArray", False, "put", "(int,boolean)", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["org.json", "JSONArray", False, "put", "(int,double)", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["org.json", "JSONArray", False, "put", "(int,float)", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["org.json", "JSONArray", False, "put", "(int,int)", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["org.json", "JSONArray", False, "put", "(int,long)", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["org.json", "JSONArray", False, "put", "(long)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.json", "JSONArray", False, "putAll", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.json", "JSONArray", False, "putAll", "(Collection)", "", "Argument[0].Element", "Argument[-1]", "taint", "manual"] - - ["org.json", "JSONArray", False, "putAll", "(Iterable)", "", "Argument[0].Element", "Argument[-1]", "taint", "manual"] - - ["org.json", "JSONArray", False, "putAll", "(JSONArray)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.json", "JSONArray", False, "putAll", "(Object)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.json", "JSONArray", False, "query", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.json", "JSONArray", False, "remove", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.json", "JSONArray", False, "toJSONObject", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONArray", False, "put", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.json", "JSONArray", False, "put", "(Collection)", "", "Argument[0].Element", "Argument[this]", "taint", "manual"] + - ["org.json", "JSONArray", False, "put", "(Map)", "", "Argument[0].MapKey", "Argument[this]", "taint", "manual"] + - ["org.json", "JSONArray", False, "put", "(Map)", "", "Argument[0].MapValue", "Argument[this]", "taint", "manual"] + - ["org.json", "JSONArray", False, "put", "(Object)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.json", "JSONArray", False, "put", "(boolean)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.json", "JSONArray", False, "put", "(double)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.json", "JSONArray", False, "put", "(float)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.json", "JSONArray", False, "put", "(int)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.json", "JSONArray", False, "put", "(int,Collection)", "", "Argument[1].Element", "Argument[this]", "taint", "manual"] + - ["org.json", "JSONArray", False, "put", "(int,Map)", "", "Argument[1].MapKey", "Argument[this]", "taint", "manual"] + - ["org.json", "JSONArray", False, "put", "(int,Map)", "", "Argument[1].MapValue", "Argument[this]", "taint", "manual"] + - ["org.json", "JSONArray", False, "put", "(int,Object)", "", "Argument[1]", "Argument[this]", "taint", "manual"] + - ["org.json", "JSONArray", False, "put", "(int,boolean)", "", "Argument[1]", "Argument[this]", "taint", "manual"] + - ["org.json", "JSONArray", False, "put", "(int,double)", "", "Argument[1]", "Argument[this]", "taint", "manual"] + - ["org.json", "JSONArray", False, "put", "(int,float)", "", "Argument[1]", "Argument[this]", "taint", "manual"] + - ["org.json", "JSONArray", False, "put", "(int,int)", "", "Argument[1]", "Argument[this]", "taint", "manual"] + - ["org.json", "JSONArray", False, "put", "(int,long)", "", "Argument[1]", "Argument[this]", "taint", "manual"] + - ["org.json", "JSONArray", False, "put", "(long)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.json", "JSONArray", False, "putAll", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.json", "JSONArray", False, "putAll", "(Collection)", "", "Argument[0].Element", "Argument[this]", "taint", "manual"] + - ["org.json", "JSONArray", False, "putAll", "(Iterable)", "", "Argument[0].Element", "Argument[this]", "taint", "manual"] + - ["org.json", "JSONArray", False, "putAll", "(JSONArray)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.json", "JSONArray", False, "putAll", "(Object)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.json", "JSONArray", False, "query", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONArray", False, "remove", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONArray", False, "toJSONObject", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["org.json", "JSONArray", False, "toJSONObject", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["org.json", "JSONArray", False, "toList", "", "", "Argument[0]", "ReturnValue.Element", "taint", "manual"] - ["org.json", "JSONArray", False, "toString", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["org.json", "JSONArray", False, "write", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"] + - ["org.json", "JSONArray", False, "write", "", "", "Argument[this]", "Argument[0]", "taint", "manual"] - ["org.json", "JSONArray", False, "write", "", "", "Argument[0]", "ReturnValue", "value", "manual"] - ["org.json", "JSONML", False, "toJSONArray", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["org.json", "JSONML", False, "toJSONObject", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["org.json", "JSONML", False, "toString", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["org.json", "JSONObject", False, "JSONObject", "(JSONObject,String[])", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.json", "JSONObject", False, "JSONObject", "(JSONObject,String[])", "", "Argument[1].ArrayElement", "Argument[-1]", "taint", "manual"] - - ["org.json", "JSONObject", False, "JSONObject", "(JSONTokener)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.json", "JSONObject", False, "JSONObject", "(Map)", "", "Argument[0].MapKey", "Argument[-1]", "taint", "manual"] - - ["org.json", "JSONObject", False, "JSONObject", "(Map)", "", "Argument[0].MapValue", "Argument[-1]", "taint", "manual"] - - ["org.json", "JSONObject", False, "JSONObject", "(Object)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.json", "JSONObject", False, "JSONObject", "(Object,String[])", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.json", "JSONObject", False, "JSONObject", "(Object,String[])", "", "Argument[1].ArrayElement", "Argument[-1]", "taint", "manual"] - - ["org.json", "JSONObject", False, "JSONObject", "(String)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.json", "JSONObject", False, "JSONObject", "(String,Locale)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.json", "JSONObject", False, "accumulate", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.json", "JSONObject", False, "accumulate", "", "", "Argument[0..1]", "Argument[-1]", "taint", "manual"] - - ["org.json", "JSONObject", False, "append", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.json", "JSONObject", False, "append", "", "", "Argument[0..1]", "Argument[-1]", "taint", "manual"] + - ["org.json", "JSONObject", False, "JSONObject", "(JSONObject,String[])", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.json", "JSONObject", False, "JSONObject", "(JSONObject,String[])", "", "Argument[1].ArrayElement", "Argument[this]", "taint", "manual"] + - ["org.json", "JSONObject", False, "JSONObject", "(JSONTokener)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.json", "JSONObject", False, "JSONObject", "(Map)", "", "Argument[0].MapKey", "Argument[this]", "taint", "manual"] + - ["org.json", "JSONObject", False, "JSONObject", "(Map)", "", "Argument[0].MapValue", "Argument[this]", "taint", "manual"] + - ["org.json", "JSONObject", False, "JSONObject", "(Object)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.json", "JSONObject", False, "JSONObject", "(Object,String[])", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.json", "JSONObject", False, "JSONObject", "(Object,String[])", "", "Argument[1].ArrayElement", "Argument[this]", "taint", "manual"] + - ["org.json", "JSONObject", False, "JSONObject", "(String)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.json", "JSONObject", False, "JSONObject", "(String,Locale)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.json", "JSONObject", False, "accumulate", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.json", "JSONObject", False, "accumulate", "", "", "Argument[0..1]", "Argument[this]", "taint", "manual"] + - ["org.json", "JSONObject", False, "append", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.json", "JSONObject", False, "append", "", "", "Argument[0..1]", "Argument[this]", "taint", "manual"] - ["org.json", "JSONObject", False, "doubleToString", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["org.json", "JSONObject", True, "entrySet", "", "", "Argument[-1]", "ReturnValue.Element", "taint", "manual"] - - ["org.json", "JSONObject", False, "get", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.json", "JSONObject", False, "getBigDecimal", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.json", "JSONObject", False, "getBigInteger", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.json", "JSONObject", False, "getBoolean", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.json", "JSONObject", False, "getDouble", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.json", "JSONObject", False, "getEnum", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.json", "JSONObject", False, "getFloat", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.json", "JSONObject", False, "getInt", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.json", "JSONObject", False, "getJSONArray", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.json", "JSONObject", False, "getJSONObject", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.json", "JSONObject", False, "getLong", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONObject", True, "entrySet", "", "", "Argument[this]", "ReturnValue.Element", "taint", "manual"] + - ["org.json", "JSONObject", False, "get", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONObject", False, "getBigDecimal", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONObject", False, "getBigInteger", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONObject", False, "getBoolean", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONObject", False, "getDouble", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONObject", False, "getEnum", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONObject", False, "getFloat", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONObject", False, "getInt", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONObject", False, "getJSONArray", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONObject", False, "getJSONObject", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONObject", False, "getLong", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["org.json", "JSONObject", False, "getNames", "", "", "Argument[0]", "ReturnValue.ArrayElement", "taint", "manual"] - - ["org.json", "JSONObject", False, "getNumber", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.json", "JSONObject", False, "getString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.json", "JSONObject", False, "increment", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.json", "JSONObject", False, "increment", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.json", "JSONObject", False, "keySet", "", "", "Argument[-1]", "ReturnValue.Element", "taint", "manual"] - - ["org.json", "JSONObject", False, "keys", "", "", "Argument[-1]", "ReturnValue.Element", "taint", "manual"] - - ["org.json", "JSONObject", False, "names", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONObject", False, "getNumber", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONObject", False, "getString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONObject", False, "increment", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.json", "JSONObject", False, "increment", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.json", "JSONObject", False, "keySet", "", "", "Argument[this]", "ReturnValue.Element", "taint", "manual"] + - ["org.json", "JSONObject", False, "keys", "", "", "Argument[this]", "ReturnValue.Element", "taint", "manual"] + - ["org.json", "JSONObject", False, "names", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["org.json", "JSONObject", False, "numberToString", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["org.json", "JSONObject", False, "opt", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.json", "JSONObject", False, "optBigDecimal", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONObject", False, "opt", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONObject", False, "optBigDecimal", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["org.json", "JSONObject", False, "optBigDecimal", "", "", "Argument[1]", "ReturnValue", "value", "manual"] - - ["org.json", "JSONObject", False, "optBigInteger", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONObject", False, "optBigInteger", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["org.json", "JSONObject", False, "optBigInteger", "", "", "Argument[1]", "ReturnValue", "value", "manual"] - - ["org.json", "JSONObject", False, "optBoolean", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONObject", False, "optBoolean", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["org.json", "JSONObject", False, "optBoolean", "", "", "Argument[1]", "ReturnValue", "value", "manual"] - - ["org.json", "JSONObject", False, "optDouble", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONObject", False, "optDouble", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["org.json", "JSONObject", False, "optDouble", "", "", "Argument[1]", "ReturnValue", "value", "manual"] - - ["org.json", "JSONObject", False, "optEnum", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONObject", False, "optEnum", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["org.json", "JSONObject", False, "optEnum", "", "", "Argument[2]", "ReturnValue", "value", "manual"] - - ["org.json", "JSONObject", False, "optFloat", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONObject", False, "optFloat", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["org.json", "JSONObject", False, "optFloat", "", "", "Argument[1]", "ReturnValue", "value", "manual"] - - ["org.json", "JSONObject", False, "optInt", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONObject", False, "optInt", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["org.json", "JSONObject", False, "optInt", "", "", "Argument[1]", "ReturnValue", "value", "manual"] - - ["org.json", "JSONObject", False, "optJSONArray", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.json", "JSONObject", False, "optJSONObject", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.json", "JSONObject", False, "optLong", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONObject", False, "optJSONArray", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONObject", False, "optJSONObject", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONObject", False, "optLong", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["org.json", "JSONObject", False, "optLong", "", "", "Argument[1]", "ReturnValue", "value", "manual"] - - ["org.json", "JSONObject", False, "optNumber", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONObject", False, "optNumber", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["org.json", "JSONObject", False, "optNumber", "", "", "Argument[1]", "ReturnValue", "value", "manual"] - - ["org.json", "JSONObject", False, "optQuery", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.json", "JSONObject", False, "optString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONObject", False, "optQuery", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONObject", False, "optString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["org.json", "JSONObject", False, "optString", "", "", "Argument[1]", "ReturnValue", "value", "manual"] - - ["org.json", "JSONObject", False, "put", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.json", "JSONObject", False, "put", "(String,Collection)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.json", "JSONObject", False, "put", "(String,Collection)", "", "Argument[1].Element", "Argument[-1]", "taint", "manual"] - - ["org.json", "JSONObject", False, "put", "(String,Map)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.json", "JSONObject", False, "put", "(String,Map)", "", "Argument[1].MapKey", "Argument[-1]", "taint", "manual"] - - ["org.json", "JSONObject", False, "put", "(String,Map)", "", "Argument[1].MapValue", "Argument[-1]", "taint", "manual"] - - ["org.json", "JSONObject", False, "put", "(String,Object)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.json", "JSONObject", False, "put", "(String,Object)", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["org.json", "JSONObject", False, "put", "(String,boolean)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.json", "JSONObject", False, "put", "(String,boolean)", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["org.json", "JSONObject", False, "put", "(String,double)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.json", "JSONObject", False, "put", "(String,double)", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["org.json", "JSONObject", False, "put", "(String,float)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.json", "JSONObject", False, "put", "(String,float)", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["org.json", "JSONObject", False, "put", "(String,int)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.json", "JSONObject", False, "put", "(String,int)", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["org.json", "JSONObject", False, "put", "(String,long)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.json", "JSONObject", False, "put", "(String,long)", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["org.json", "JSONObject", False, "putOnce", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.json", "JSONObject", False, "putOnce", "", "", "Argument[0..1]", "Argument[-1]", "taint", "manual"] - - ["org.json", "JSONObject", False, "putOpt", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.json", "JSONObject", False, "putOpt", "", "", "Argument[0..1]", "Argument[-1]", "taint", "manual"] - - ["org.json", "JSONObject", False, "query", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONObject", False, "put", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.json", "JSONObject", False, "put", "(String,Collection)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.json", "JSONObject", False, "put", "(String,Collection)", "", "Argument[1].Element", "Argument[this]", "taint", "manual"] + - ["org.json", "JSONObject", False, "put", "(String,Map)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.json", "JSONObject", False, "put", "(String,Map)", "", "Argument[1].MapKey", "Argument[this]", "taint", "manual"] + - ["org.json", "JSONObject", False, "put", "(String,Map)", "", "Argument[1].MapValue", "Argument[this]", "taint", "manual"] + - ["org.json", "JSONObject", False, "put", "(String,Object)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.json", "JSONObject", False, "put", "(String,Object)", "", "Argument[1]", "Argument[this]", "taint", "manual"] + - ["org.json", "JSONObject", False, "put", "(String,boolean)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.json", "JSONObject", False, "put", "(String,boolean)", "", "Argument[1]", "Argument[this]", "taint", "manual"] + - ["org.json", "JSONObject", False, "put", "(String,double)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.json", "JSONObject", False, "put", "(String,double)", "", "Argument[1]", "Argument[this]", "taint", "manual"] + - ["org.json", "JSONObject", False, "put", "(String,float)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.json", "JSONObject", False, "put", "(String,float)", "", "Argument[1]", "Argument[this]", "taint", "manual"] + - ["org.json", "JSONObject", False, "put", "(String,int)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.json", "JSONObject", False, "put", "(String,int)", "", "Argument[1]", "Argument[this]", "taint", "manual"] + - ["org.json", "JSONObject", False, "put", "(String,long)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.json", "JSONObject", False, "put", "(String,long)", "", "Argument[1]", "Argument[this]", "taint", "manual"] + - ["org.json", "JSONObject", False, "putOnce", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.json", "JSONObject", False, "putOnce", "", "", "Argument[0..1]", "Argument[this]", "taint", "manual"] + - ["org.json", "JSONObject", False, "putOpt", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.json", "JSONObject", False, "putOpt", "", "", "Argument[0..1]", "Argument[this]", "taint", "manual"] + - ["org.json", "JSONObject", False, "query", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["org.json", "JSONObject", False, "quote", "(String)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["org.json", "JSONObject", False, "quote", "(String,Writer)", "", "Argument[0]", "Argument[1]", "taint", "manual"] - ["org.json", "JSONObject", False, "quote", "(String,Writer)", "", "Argument[1]", "ReturnValue", "value", "manual"] - - ["org.json", "JSONObject", False, "remove", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONObject", False, "remove", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["org.json", "JSONObject", False, "stringToValue", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["org.json", "JSONObject", False, "toJSONArray", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.json", "JSONObject", False, "toMap", "", "", "Argument[-1]", "ReturnValue.MapKey", "taint", "manual"] - - ["org.json", "JSONObject", False, "toMap", "", "", "Argument[-1]", "ReturnValue.MapValue", "taint", "manual"] - - ["org.json", "JSONObject", False, "toString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONObject", False, "toJSONArray", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONObject", False, "toMap", "", "", "Argument[this]", "ReturnValue.MapKey", "taint", "manual"] + - ["org.json", "JSONObject", False, "toMap", "", "", "Argument[this]", "ReturnValue.MapValue", "taint", "manual"] + - ["org.json", "JSONObject", False, "toString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["org.json", "JSONObject", False, "valueToString", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["org.json", "JSONObject", False, "wrap", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["org.json", "JSONObject", False, "write", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"] + - ["org.json", "JSONObject", False, "write", "", "", "Argument[this]", "Argument[0]", "taint", "manual"] - ["org.json", "JSONObject", False, "write", "", "", "Argument[0]", "ReturnValue", "value", "manual"] - - ["org.json", "JSONPointer", False, "JSONPointer", "(List)", "", "Argument[0].Element", "Argument[-1]", "taint", "manual"] - - ["org.json", "JSONPointer", False, "JSONPointer", "(String)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] + - ["org.json", "JSONPointer", False, "JSONPointer", "(List)", "", "Argument[0].Element", "Argument[this]", "taint", "manual"] + - ["org.json", "JSONPointer", False, "JSONPointer", "(String)", "", "Argument[0]", "Argument[this]", "taint", "manual"] - ["org.json", "JSONPointer", False, "queryFrom", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["org.json", "JSONPointer", False, "toString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.json", "JSONPointer", False, "toURIFragment", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.json", "JSONPointer$Builder", False, "append", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.json", "JSONPointer$Builder", False, "append", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.json", "JSONPointer$Builder", False, "build", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.json", "JSONString", True, "toJSONString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.json", "JSONStringer", False, "toString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.json", "JSONTokener", True, "JSONTokener", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.json", "JSONTokener", True, "next", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.json", "JSONTokener", True, "nextClean", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.json", "JSONTokener", True, "nextString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.json", "JSONTokener", True, "nextTo", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.json", "JSONTokener", True, "nextValue", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONPointer", False, "toString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONPointer", False, "toURIFragment", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONPointer$Builder", False, "append", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.json", "JSONPointer$Builder", False, "append", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.json", "JSONPointer$Builder", False, "build", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONString", True, "toJSONString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONStringer", False, "toString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONTokener", True, "JSONTokener", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.json", "JSONTokener", True, "next", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONTokener", True, "nextClean", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONTokener", True, "nextString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONTokener", True, "nextTo", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONTokener", True, "nextValue", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["org.json", "JSONTokener", True, "syntaxError", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["org.json", "JSONTokener", True, "toString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.json", "JSONWriter", True, "JSONWriter", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"] - - ["org.json", "JSONWriter", True, "array", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.json", "JSONWriter", True, "endArray", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.json", "JSONWriter", True, "endObject", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.json", "JSONWriter", True, "key", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.json", "JSONWriter", True, "key", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.json", "JSONWriter", True, "object", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.json", "JSONWriter", True, "value", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.json", "JSONWriter", True, "value", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] + - ["org.json", "JSONTokener", True, "toString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.json", "JSONWriter", True, "JSONWriter", "", "", "Argument[this]", "Argument[0]", "taint", "manual"] + - ["org.json", "JSONWriter", True, "array", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.json", "JSONWriter", True, "endArray", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.json", "JSONWriter", True, "endObject", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.json", "JSONWriter", True, "key", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.json", "JSONWriter", True, "key", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.json", "JSONWriter", True, "object", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.json", "JSONWriter", True, "value", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.json", "JSONWriter", True, "value", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] - ["org.json", "JSONWriter", True, "valueToString", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["org.json", "Property", False, "toJSONObject", "", "", "Argument[0].MapKey", "ReturnValue", "taint", "manual"] - ["org.json", "Property", False, "toJSONObject", "", "", "Argument[0].MapValue", "ReturnValue", "taint", "manual"] @@ -232,10 +232,10 @@ extensions: - ["org.json", "XML", False, "toJSONObject", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["org.json", "XML", False, "toString", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - ["org.json", "XML", False, "unescape", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["org.json", "XMLTokener", False, "XMLTokener", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.json", "XMLTokener", False, "nextCDATA", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.json", "XMLTokener", False, "nextContent", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.json", "XMLTokener", False, "nextEntity", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.json", "XMLTokener", False, "nextMeta", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.json", "XMLTokener", False, "nextToken", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["org.json", "XMLTokener", False, "XMLTokener", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.json", "XMLTokener", False, "nextCDATA", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.json", "XMLTokener", False, "nextContent", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.json", "XMLTokener", False, "nextEntity", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.json", "XMLTokener", False, "nextMeta", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.json", "XMLTokener", False, "nextToken", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["org.json", "XMLXsiTypeConverter", True, "convert", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] diff --git a/java/ql/lib/ext/org.kohsuke.stapler.framework.adjunct.model.yml b/java/ql/lib/ext/org.kohsuke.stapler.framework.adjunct.model.yml index 2d855a9aa42..858cd0190bc 100644 --- a/java/ql/lib/ext/org.kohsuke.stapler.framework.adjunct.model.yml +++ b/java/ql/lib/ext/org.kohsuke.stapler.framework.adjunct.model.yml @@ -3,4 +3,4 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["org.kohsuke.stapler.framework.adjunct", "AdjunctManager", True, "AdjunctManager", "(ServletContext,ClassLoader,String,long)", "", "Argument[2]", "Argument[-1].Field[org.kohsuke.stapler.framework.adjunct.AdjunctManager.rootURL]", "taint", "ai-generated"] # the class never accesses the URL, but the field is public + - ["org.kohsuke.stapler.framework.adjunct", "AdjunctManager", True, "AdjunctManager", "(ServletContext,ClassLoader,String,long)", "", "Argument[2]", "Argument[this].Field[org.kohsuke.stapler.framework.adjunct.AdjunctManager.rootURL]", "taint", "ai-generated"] # the class never accesses the URL, but the field is public diff --git a/java/ql/lib/ext/org.mvel2.compiler.model.yml b/java/ql/lib/ext/org.mvel2.compiler.model.yml index 0e7f68faea0..6ca33c8cdb0 100644 --- a/java/ql/lib/ext/org.mvel2.compiler.model.yml +++ b/java/ql/lib/ext/org.mvel2.compiler.model.yml @@ -3,7 +3,7 @@ extensions: pack: codeql/java-all extensible: sinkModel data: - - ["org.mvel2.compiler", "Accessor", False, "getValue", "", "", "Argument[-1]", "mvel", "manual"] - - ["org.mvel2.compiler", "CompiledAccExpression", False, "getValue", "", "", "Argument[-1]", "mvel", "manual"] - - ["org.mvel2.compiler", "CompiledExpression", False, "getDirectValue", "", "", "Argument[-1]", "mvel", "manual"] - - ["org.mvel2.compiler", "ExecutableStatement", False, "getValue", "", "", "Argument[-1]", "mvel", "manual"] + - ["org.mvel2.compiler", "Accessor", False, "getValue", "", "", "Argument[this]", "mvel", "manual"] + - ["org.mvel2.compiler", "CompiledAccExpression", False, "getValue", "", "", "Argument[this]", "mvel", "manual"] + - ["org.mvel2.compiler", "CompiledExpression", False, "getDirectValue", "", "", "Argument[this]", "mvel", "manual"] + - ["org.mvel2.compiler", "ExecutableStatement", False, "getValue", "", "", "Argument[this]", "mvel", "manual"] diff --git a/java/ql/lib/ext/org.mvel2.jsr223.model.yml b/java/ql/lib/ext/org.mvel2.jsr223.model.yml index eeb0cbc7984..6a63bbcf57c 100644 --- a/java/ql/lib/ext/org.mvel2.jsr223.model.yml +++ b/java/ql/lib/ext/org.mvel2.jsr223.model.yml @@ -3,6 +3,6 @@ extensions: pack: codeql/java-all extensible: sinkModel data: - - ["org.mvel2.jsr223", "MvelCompiledScript", False, "eval", "", "", "Argument[-1]", "mvel", "manual"] + - ["org.mvel2.jsr223", "MvelCompiledScript", False, "eval", "", "", "Argument[this]", "mvel", "manual"] - ["org.mvel2.jsr223", "MvelScriptEngine", False, "eval", "", "", "Argument[0]", "mvel", "manual"] - ["org.mvel2.jsr223", "MvelScriptEngine", False, "evaluate", "", "", "Argument[0]", "mvel", "manual"] diff --git a/java/ql/lib/ext/org.slf4j.spi.model.yml b/java/ql/lib/ext/org.slf4j.spi.model.yml index 59e4d144157..197131b6e17 100644 --- a/java/ql/lib/ext/org.slf4j.spi.model.yml +++ b/java/ql/lib/ext/org.slf4j.spi.model.yml @@ -12,9 +12,9 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["org.slf4j.spi", "LoggingEventBuilder", True, "addArgument", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.slf4j.spi", "LoggingEventBuilder", True, "addArgument", "", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["org.slf4j.spi", "LoggingEventBuilder", True, "addKeyValue", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.slf4j.spi", "LoggingEventBuilder", True, "addKeyValue", "", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["org.slf4j.spi", "LoggingEventBuilder", True, "addMarker", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.slf4j.spi", "LoggingEventBuilder", True, "setCause", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] + - ["org.slf4j.spi", "LoggingEventBuilder", True, "addArgument", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.slf4j.spi", "LoggingEventBuilder", True, "addArgument", "", "", "Argument[1]", "Argument[this]", "taint", "manual"] + - ["org.slf4j.spi", "LoggingEventBuilder", True, "addKeyValue", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.slf4j.spi", "LoggingEventBuilder", True, "addKeyValue", "", "", "Argument[1]", "Argument[this]", "taint", "manual"] + - ["org.slf4j.spi", "LoggingEventBuilder", True, "addMarker", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.slf4j.spi", "LoggingEventBuilder", True, "setCause", "", "", "Argument[this]", "ReturnValue", "value", "manual"] diff --git a/java/ql/lib/ext/org.springframework.beans.model.yml b/java/ql/lib/ext/org.springframework.beans.model.yml index d3579370ec9..13a9eab7ba4 100644 --- a/java/ql/lib/ext/org.springframework.beans.model.yml +++ b/java/ql/lib/ext/org.springframework.beans.model.yml @@ -3,33 +3,33 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["org.springframework.beans", "MutablePropertyValues", True, "MutablePropertyValues", "(List)", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.springframework.beans", "MutablePropertyValues", True, "MutablePropertyValues", "(Map)", "", "Argument[0].MapKey", "Argument[-1].Element.MapKey", "value", "manual"] - - ["org.springframework.beans", "MutablePropertyValues", True, "MutablePropertyValues", "(Map)", "", "Argument[0].MapValue", "Argument[-1].Element.MapValue", "value", "manual"] - - ["org.springframework.beans", "MutablePropertyValues", True, "MutablePropertyValues", "(PropertyValues)", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.springframework.beans", "MutablePropertyValues", True, "add", "(String,Object)", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.springframework.beans", "MutablePropertyValues", True, "add", "(String,Object)", "", "Argument[0]", "Argument[-1].Element.MapKey", "value", "manual"] - - ["org.springframework.beans", "MutablePropertyValues", True, "add", "(String,Object)", "", "Argument[1]", "Argument[-1].Element.MapValue", "value", "manual"] - - ["org.springframework.beans", "MutablePropertyValues", True, "addPropertyValue", "(PropertyValue)", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.springframework.beans", "MutablePropertyValues", True, "addPropertyValue", "(PropertyValue)", "", "Argument[0]", "Argument[-1].Element", "value", "manual"] - - ["org.springframework.beans", "MutablePropertyValues", True, "addPropertyValue", "(String,Object)", "", "Argument[0]", "Argument[-1].Element.MapKey", "value", "manual"] - - ["org.springframework.beans", "MutablePropertyValues", True, "addPropertyValue", "(String,Object)", "", "Argument[1]", "Argument[-1].Element.MapValue", "value", "manual"] - - ["org.springframework.beans", "MutablePropertyValues", True, "addPropertyValues", "(Map)", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.springframework.beans", "MutablePropertyValues", True, "addPropertyValues", "(Map)", "", "Argument[0].MapKey", "Argument[-1].Element.MapKey", "value", "manual"] - - ["org.springframework.beans", "MutablePropertyValues", True, "addPropertyValues", "(Map)", "", "Argument[0].MapValue", "Argument[-1].Element.MapValue", "value", "manual"] - - ["org.springframework.beans", "MutablePropertyValues", True, "addPropertyValues", "(PropertyValues)", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.springframework.beans", "MutablePropertyValues", True, "addPropertyValues", "(PropertyValues)", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.springframework.beans", "MutablePropertyValues", True, "get", "", "", "Argument[-1].Element.MapValue", "ReturnValue", "value", "manual"] - - ["org.springframework.beans", "MutablePropertyValues", True, "getPropertyValue", "", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] - - ["org.springframework.beans", "MutablePropertyValues", True, "getPropertyValueList", "", "", "Argument[-1].Element", "ReturnValue.Element", "value", "manual"] - - ["org.springframework.beans", "MutablePropertyValues", True, "getPropertyValues", "", "", "Argument[-1].Element", "ReturnValue.ArrayElement", "value", "manual"] - - ["org.springframework.beans", "MutablePropertyValues", True, "setPropertyValueAt", "", "", "Argument[0]", "Argument[-1].Element", "value", "manual"] - - ["org.springframework.beans", "PropertyValue", False, "PropertyValue", "(PropertyValue)", "", "Argument[0]", "Argument[-1]", "value", "manual"] - - ["org.springframework.beans", "PropertyValue", False, "PropertyValue", "(PropertyValue,Object)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.springframework.beans", "PropertyValue", False, "PropertyValue", "(PropertyValue,Object)", "", "Argument[1]", "Argument[-1].MapValue", "value", "manual"] - - ["org.springframework.beans", "PropertyValue", False, "PropertyValue", "(String,Object)", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["org.springframework.beans", "PropertyValue", False, "PropertyValue", "(String,Object)", "", "Argument[1]", "Argument[-1].MapValue", "value", "manual"] - - ["org.springframework.beans", "PropertyValue", False, "getName", "", "", "Argument[-1].MapKey", "ReturnValue", "value", "manual"] - - ["org.springframework.beans", "PropertyValue", False, "getValue", "", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] - - ["org.springframework.beans", "PropertyValues", True, "getPropertyValue", "", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] - - ["org.springframework.beans", "PropertyValues", True, "getPropertyValues", "", "", "Argument[-1].Element", "ReturnValue.ArrayElement", "value", "manual"] + - ["org.springframework.beans", "MutablePropertyValues", True, "MutablePropertyValues", "(List)", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.springframework.beans", "MutablePropertyValues", True, "MutablePropertyValues", "(Map)", "", "Argument[0].MapKey", "Argument[this].Element.MapKey", "value", "manual"] + - ["org.springframework.beans", "MutablePropertyValues", True, "MutablePropertyValues", "(Map)", "", "Argument[0].MapValue", "Argument[this].Element.MapValue", "value", "manual"] + - ["org.springframework.beans", "MutablePropertyValues", True, "MutablePropertyValues", "(PropertyValues)", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.springframework.beans", "MutablePropertyValues", True, "add", "(String,Object)", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.springframework.beans", "MutablePropertyValues", True, "add", "(String,Object)", "", "Argument[0]", "Argument[this].Element.MapKey", "value", "manual"] + - ["org.springframework.beans", "MutablePropertyValues", True, "add", "(String,Object)", "", "Argument[1]", "Argument[this].Element.MapValue", "value", "manual"] + - ["org.springframework.beans", "MutablePropertyValues", True, "addPropertyValue", "(PropertyValue)", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.springframework.beans", "MutablePropertyValues", True, "addPropertyValue", "(PropertyValue)", "", "Argument[0]", "Argument[this].Element", "value", "manual"] + - ["org.springframework.beans", "MutablePropertyValues", True, "addPropertyValue", "(String,Object)", "", "Argument[0]", "Argument[this].Element.MapKey", "value", "manual"] + - ["org.springframework.beans", "MutablePropertyValues", True, "addPropertyValue", "(String,Object)", "", "Argument[1]", "Argument[this].Element.MapValue", "value", "manual"] + - ["org.springframework.beans", "MutablePropertyValues", True, "addPropertyValues", "(Map)", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.springframework.beans", "MutablePropertyValues", True, "addPropertyValues", "(Map)", "", "Argument[0].MapKey", "Argument[this].Element.MapKey", "value", "manual"] + - ["org.springframework.beans", "MutablePropertyValues", True, "addPropertyValues", "(Map)", "", "Argument[0].MapValue", "Argument[this].Element.MapValue", "value", "manual"] + - ["org.springframework.beans", "MutablePropertyValues", True, "addPropertyValues", "(PropertyValues)", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.springframework.beans", "MutablePropertyValues", True, "addPropertyValues", "(PropertyValues)", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.springframework.beans", "MutablePropertyValues", True, "get", "", "", "Argument[this].Element.MapValue", "ReturnValue", "value", "manual"] + - ["org.springframework.beans", "MutablePropertyValues", True, "getPropertyValue", "", "", "Argument[this].Element", "ReturnValue", "value", "manual"] + - ["org.springframework.beans", "MutablePropertyValues", True, "getPropertyValueList", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["org.springframework.beans", "MutablePropertyValues", True, "getPropertyValues", "", "", "Argument[this].Element", "ReturnValue.ArrayElement", "value", "manual"] + - ["org.springframework.beans", "MutablePropertyValues", True, "setPropertyValueAt", "", "", "Argument[0]", "Argument[this].Element", "value", "manual"] + - ["org.springframework.beans", "PropertyValue", False, "PropertyValue", "(PropertyValue)", "", "Argument[0]", "Argument[this]", "value", "manual"] + - ["org.springframework.beans", "PropertyValue", False, "PropertyValue", "(PropertyValue,Object)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.springframework.beans", "PropertyValue", False, "PropertyValue", "(PropertyValue,Object)", "", "Argument[1]", "Argument[this].MapValue", "value", "manual"] + - ["org.springframework.beans", "PropertyValue", False, "PropertyValue", "(String,Object)", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["org.springframework.beans", "PropertyValue", False, "PropertyValue", "(String,Object)", "", "Argument[1]", "Argument[this].MapValue", "value", "manual"] + - ["org.springframework.beans", "PropertyValue", False, "getName", "", "", "Argument[this].MapKey", "ReturnValue", "value", "manual"] + - ["org.springframework.beans", "PropertyValue", False, "getValue", "", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["org.springframework.beans", "PropertyValues", True, "getPropertyValue", "", "", "Argument[this].Element", "ReturnValue", "value", "manual"] + - ["org.springframework.beans", "PropertyValues", True, "getPropertyValues", "", "", "Argument[this].Element", "ReturnValue.ArrayElement", "value", "manual"] diff --git a/java/ql/lib/ext/org.springframework.cache.model.yml b/java/ql/lib/ext/org.springframework.cache.model.yml index 6fd3cf4610d..db1f6ff26f1 100644 --- a/java/ql/lib/ext/org.springframework.cache.model.yml +++ b/java/ql/lib/ext/org.springframework.cache.model.yml @@ -3,16 +3,16 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["org.springframework.cache", "Cache", True, "get", "(Object)", "", "Argument[-1].MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["org.springframework.cache", "Cache", True, "get", "(Object,Callable)", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] - - ["org.springframework.cache", "Cache", True, "get", "(Object,Class)", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] - - ["org.springframework.cache", "Cache", True, "getNativeCache", "", "", "Argument[-1].MapKey", "ReturnValue.MapKey", "value", "manual"] - - ["org.springframework.cache", "Cache", True, "getNativeCache", "", "", "Argument[-1].MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["org.springframework.cache", "Cache", True, "put", "", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["org.springframework.cache", "Cache", True, "put", "", "", "Argument[1]", "Argument[-1].MapValue", "value", "manual"] - - ["org.springframework.cache", "Cache", True, "putIfAbsent", "", "", "Argument[-1].MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["org.springframework.cache", "Cache", True, "putIfAbsent", "", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["org.springframework.cache", "Cache", True, "putIfAbsent", "", "", "Argument[1]", "Argument[-1].MapValue", "value", "manual"] - - ["org.springframework.cache", "Cache$ValueRetrievalException", False, "ValueRetrievalException", "", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["org.springframework.cache", "Cache$ValueRetrievalException", False, "getKey", "", "", "Argument[-1].MapKey", "ReturnValue", "value", "manual"] - - ["org.springframework.cache", "Cache$ValueWrapper", True, "get", "", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] + - ["org.springframework.cache", "Cache", True, "get", "(Object)", "", "Argument[this].MapValue", "ReturnValue.MapValue", "value", "manual"] + - ["org.springframework.cache", "Cache", True, "get", "(Object,Callable)", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["org.springframework.cache", "Cache", True, "get", "(Object,Class)", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["org.springframework.cache", "Cache", True, "getNativeCache", "", "", "Argument[this].MapKey", "ReturnValue.MapKey", "value", "manual"] + - ["org.springframework.cache", "Cache", True, "getNativeCache", "", "", "Argument[this].MapValue", "ReturnValue.MapValue", "value", "manual"] + - ["org.springframework.cache", "Cache", True, "put", "", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["org.springframework.cache", "Cache", True, "put", "", "", "Argument[1]", "Argument[this].MapValue", "value", "manual"] + - ["org.springframework.cache", "Cache", True, "putIfAbsent", "", "", "Argument[this].MapValue", "ReturnValue.MapValue", "value", "manual"] + - ["org.springframework.cache", "Cache", True, "putIfAbsent", "", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["org.springframework.cache", "Cache", True, "putIfAbsent", "", "", "Argument[1]", "Argument[this].MapValue", "value", "manual"] + - ["org.springframework.cache", "Cache$ValueRetrievalException", False, "ValueRetrievalException", "", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["org.springframework.cache", "Cache$ValueRetrievalException", False, "getKey", "", "", "Argument[this].MapKey", "ReturnValue", "value", "manual"] + - ["org.springframework.cache", "Cache$ValueWrapper", True, "get", "", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] diff --git a/java/ql/lib/ext/org.springframework.http.model.yml b/java/ql/lib/ext/org.springframework.http.model.yml index 2dac7192da2..f90398ff8e9 100644 --- a/java/ql/lib/ext/org.springframework.http.model.yml +++ b/java/ql/lib/ext/org.springframework.http.model.yml @@ -21,73 +21,73 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["org.springframework.http", "HttpEntity", True, "HttpEntity", "(MultiValueMap)", "", "Argument[0].MapKey", "Argument[-1]", "taint", "manual"] - - ["org.springframework.http", "HttpEntity", True, "HttpEntity", "(MultiValueMap)", "", "Argument[0].MapValue.Element", "Argument[-1]", "taint", "manual"] - - ["org.springframework.http", "HttpEntity", True, "HttpEntity", "(Object)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.springframework.http", "HttpEntity", True, "HttpEntity", "(Object,MultiValueMap)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.springframework.http", "HttpEntity", True, "HttpEntity", "(Object,MultiValueMap)", "", "Argument[1].MapKey", "Argument[-1]", "taint", "manual"] - - ["org.springframework.http", "HttpEntity", True, "HttpEntity", "(Object,MultiValueMap)", "", "Argument[1].MapValue.Element", "Argument[-1]", "taint", "manual"] - - ["org.springframework.http", "HttpEntity", True, "getBody", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.springframework.http", "HttpEntity", True, "getHeaders", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.springframework.http", "HttpHeaders", True, "HttpHeaders", "(MultiValueMap)", "", "Argument[0].MapKey", "Argument[-1]", "taint", "manual"] - - ["org.springframework.http", "HttpHeaders", True, "HttpHeaders", "(MultiValueMap)", "", "Argument[0].MapValue.Element", "Argument[-1]", "taint", "manual"] - - ["org.springframework.http", "HttpHeaders", True, "add", "(String,String)", "", "Argument[0..1]", "Argument[-1]", "taint", "manual"] - - ["org.springframework.http", "HttpHeaders", True, "addAll", "(MultiValueMap)", "", "Argument[0].MapKey", "Argument[-1]", "taint", "manual"] - - ["org.springframework.http", "HttpHeaders", True, "addAll", "(MultiValueMap)", "", "Argument[0].MapValue.Element", "Argument[-1]", "taint", "manual"] - - ["org.springframework.http", "HttpHeaders", True, "addAll", "(String,List)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.springframework.http", "HttpHeaders", True, "addAll", "(String,List)", "", "Argument[1].Element", "Argument[-1]", "taint", "manual"] + - ["org.springframework.http", "HttpEntity", True, "HttpEntity", "(MultiValueMap)", "", "Argument[0].MapKey", "Argument[this]", "taint", "manual"] + - ["org.springframework.http", "HttpEntity", True, "HttpEntity", "(MultiValueMap)", "", "Argument[0].MapValue.Element", "Argument[this]", "taint", "manual"] + - ["org.springframework.http", "HttpEntity", True, "HttpEntity", "(Object)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.springframework.http", "HttpEntity", True, "HttpEntity", "(Object,MultiValueMap)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.springframework.http", "HttpEntity", True, "HttpEntity", "(Object,MultiValueMap)", "", "Argument[1].MapKey", "Argument[this]", "taint", "manual"] + - ["org.springframework.http", "HttpEntity", True, "HttpEntity", "(Object,MultiValueMap)", "", "Argument[1].MapValue.Element", "Argument[this]", "taint", "manual"] + - ["org.springframework.http", "HttpEntity", True, "getBody", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.springframework.http", "HttpEntity", True, "getHeaders", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.springframework.http", "HttpHeaders", True, "HttpHeaders", "(MultiValueMap)", "", "Argument[0].MapKey", "Argument[this]", "taint", "manual"] + - ["org.springframework.http", "HttpHeaders", True, "HttpHeaders", "(MultiValueMap)", "", "Argument[0].MapValue.Element", "Argument[this]", "taint", "manual"] + - ["org.springframework.http", "HttpHeaders", True, "add", "(String,String)", "", "Argument[0..1]", "Argument[this]", "taint", "manual"] + - ["org.springframework.http", "HttpHeaders", True, "addAll", "(MultiValueMap)", "", "Argument[0].MapKey", "Argument[this]", "taint", "manual"] + - ["org.springframework.http", "HttpHeaders", True, "addAll", "(MultiValueMap)", "", "Argument[0].MapValue.Element", "Argument[this]", "taint", "manual"] + - ["org.springframework.http", "HttpHeaders", True, "addAll", "(String,List)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.springframework.http", "HttpHeaders", True, "addAll", "(String,List)", "", "Argument[1].Element", "Argument[this]", "taint", "manual"] - ["org.springframework.http", "HttpHeaders", True, "encodeBasicAuth", "(String,String,Charset)", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - ["org.springframework.http", "HttpHeaders", True, "formatHeaders", "(MultiValueMap)", "", "Argument[0].MapKey", "ReturnValue", "taint", "manual"] - ["org.springframework.http", "HttpHeaders", True, "formatHeaders", "(MultiValueMap)", "", "Argument[0].MapValue.Element", "ReturnValue", "taint", "manual"] - - ["org.springframework.http", "HttpHeaders", True, "get", "(Object)", "", "Argument[-1]", "ReturnValue.Element", "taint", "manual"] - - ["org.springframework.http", "HttpHeaders", True, "getAccessControlAllowHeaders", "()", "", "Argument[-1]", "ReturnValue.Element", "taint", "manual"] - - ["org.springframework.http", "HttpHeaders", True, "getAccessControlAllowOrigin", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.springframework.http", "HttpHeaders", True, "getAccessControlExposeHeaders", "()", "", "Argument[-1]", "ReturnValue.Element", "taint", "manual"] - - ["org.springframework.http", "HttpHeaders", True, "getAccessControlRequestHeaders", "()", "", "Argument[-1]", "ReturnValue.Element", "taint", "manual"] - - ["org.springframework.http", "HttpHeaders", True, "getCacheControl", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.springframework.http", "HttpHeaders", True, "getConnection", "()", "", "Argument[-1]", "ReturnValue.Element", "taint", "manual"] - - ["org.springframework.http", "HttpHeaders", True, "getETag", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.springframework.http", "HttpHeaders", True, "getETagValuesAsList", "(String)", "", "Argument[-1]", "ReturnValue.Element", "taint", "manual"] - - ["org.springframework.http", "HttpHeaders", True, "getFieldValues", "(String)", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.springframework.http", "HttpHeaders", True, "getFirst", "(String)", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.springframework.http", "HttpHeaders", True, "getHost", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.springframework.http", "HttpHeaders", True, "getIfMatch", "()", "", "Argument[-1]", "ReturnValue.Element", "taint", "manual"] - - ["org.springframework.http", "HttpHeaders", True, "getIfNoneMatch", "()", "", "Argument[-1]", "ReturnValue.Element", "taint", "manual"] - - ["org.springframework.http", "HttpHeaders", True, "getLocation", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.springframework.http", "HttpHeaders", True, "getOrEmpty", "(Object)", "", "Argument[-1]", "ReturnValue.Element", "taint", "manual"] - - ["org.springframework.http", "HttpHeaders", True, "getOrigin", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.springframework.http", "HttpHeaders", True, "getPragma", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.springframework.http", "HttpHeaders", True, "getUpgrade", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.springframework.http", "HttpHeaders", True, "getValuesAsList", "(String)", "", "Argument[-1]", "ReturnValue.Element", "taint", "manual"] - - ["org.springframework.http", "HttpHeaders", True, "getVary", "()", "", "Argument[-1]", "ReturnValue.Element", "taint", "manual"] - - ["org.springframework.http", "HttpHeaders", True, "set", "(String,String)", "", "Argument[0..1]", "Argument[-1]", "taint", "manual"] - - ["org.springframework.http", "RequestEntity", True, "getUrl", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.springframework.http", "ResponseEntity", True, "ResponseEntity", "(MultiValueMap,HttpStatus)", "", "Argument[0].MapKey", "Argument[-1]", "taint", "manual"] - - ["org.springframework.http", "ResponseEntity", True, "ResponseEntity", "(MultiValueMap,HttpStatus)", "", "Argument[0].MapValue.Element", "Argument[-1]", "taint", "manual"] - - ["org.springframework.http", "ResponseEntity", True, "ResponseEntity", "(Object,HttpStatus)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.springframework.http", "ResponseEntity", True, "ResponseEntity", "(Object,MultiValueMap,HttpStatus)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.springframework.http", "ResponseEntity", True, "ResponseEntity", "(Object,MultiValueMap,HttpStatus)", "", "Argument[1].MapKey", "Argument[-1]", "taint", "manual"] - - ["org.springframework.http", "ResponseEntity", True, "ResponseEntity", "(Object,MultiValueMap,HttpStatus)", "", "Argument[1].MapValue.Element", "Argument[-1]", "taint", "manual"] - - ["org.springframework.http", "ResponseEntity", True, "ResponseEntity", "(Object,MultiValueMap,int)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.springframework.http", "ResponseEntity", True, "ResponseEntity", "(Object,MultiValueMap,int)", "", "Argument[1].MapKey", "Argument[-1]", "taint", "manual"] - - ["org.springframework.http", "ResponseEntity", True, "ResponseEntity", "(Object,MultiValueMap,int)", "", "Argument[1].MapValue.Element", "Argument[-1]", "taint", "manual"] + - ["org.springframework.http", "HttpHeaders", True, "get", "(Object)", "", "Argument[this]", "ReturnValue.Element", "taint", "manual"] + - ["org.springframework.http", "HttpHeaders", True, "getAccessControlAllowHeaders", "()", "", "Argument[this]", "ReturnValue.Element", "taint", "manual"] + - ["org.springframework.http", "HttpHeaders", True, "getAccessControlAllowOrigin", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.springframework.http", "HttpHeaders", True, "getAccessControlExposeHeaders", "()", "", "Argument[this]", "ReturnValue.Element", "taint", "manual"] + - ["org.springframework.http", "HttpHeaders", True, "getAccessControlRequestHeaders", "()", "", "Argument[this]", "ReturnValue.Element", "taint", "manual"] + - ["org.springframework.http", "HttpHeaders", True, "getCacheControl", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.springframework.http", "HttpHeaders", True, "getConnection", "()", "", "Argument[this]", "ReturnValue.Element", "taint", "manual"] + - ["org.springframework.http", "HttpHeaders", True, "getETag", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.springframework.http", "HttpHeaders", True, "getETagValuesAsList", "(String)", "", "Argument[this]", "ReturnValue.Element", "taint", "manual"] + - ["org.springframework.http", "HttpHeaders", True, "getFieldValues", "(String)", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.springframework.http", "HttpHeaders", True, "getFirst", "(String)", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.springframework.http", "HttpHeaders", True, "getHost", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.springframework.http", "HttpHeaders", True, "getIfMatch", "()", "", "Argument[this]", "ReturnValue.Element", "taint", "manual"] + - ["org.springframework.http", "HttpHeaders", True, "getIfNoneMatch", "()", "", "Argument[this]", "ReturnValue.Element", "taint", "manual"] + - ["org.springframework.http", "HttpHeaders", True, "getLocation", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.springframework.http", "HttpHeaders", True, "getOrEmpty", "(Object)", "", "Argument[this]", "ReturnValue.Element", "taint", "manual"] + - ["org.springframework.http", "HttpHeaders", True, "getOrigin", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.springframework.http", "HttpHeaders", True, "getPragma", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.springframework.http", "HttpHeaders", True, "getUpgrade", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.springframework.http", "HttpHeaders", True, "getValuesAsList", "(String)", "", "Argument[this]", "ReturnValue.Element", "taint", "manual"] + - ["org.springframework.http", "HttpHeaders", True, "getVary", "()", "", "Argument[this]", "ReturnValue.Element", "taint", "manual"] + - ["org.springframework.http", "HttpHeaders", True, "set", "(String,String)", "", "Argument[0..1]", "Argument[this]", "taint", "manual"] + - ["org.springframework.http", "RequestEntity", True, "getUrl", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.springframework.http", "ResponseEntity", True, "ResponseEntity", "(MultiValueMap,HttpStatus)", "", "Argument[0].MapKey", "Argument[this]", "taint", "manual"] + - ["org.springframework.http", "ResponseEntity", True, "ResponseEntity", "(MultiValueMap,HttpStatus)", "", "Argument[0].MapValue.Element", "Argument[this]", "taint", "manual"] + - ["org.springframework.http", "ResponseEntity", True, "ResponseEntity", "(Object,HttpStatus)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.springframework.http", "ResponseEntity", True, "ResponseEntity", "(Object,MultiValueMap,HttpStatus)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.springframework.http", "ResponseEntity", True, "ResponseEntity", "(Object,MultiValueMap,HttpStatus)", "", "Argument[1].MapKey", "Argument[this]", "taint", "manual"] + - ["org.springframework.http", "ResponseEntity", True, "ResponseEntity", "(Object,MultiValueMap,HttpStatus)", "", "Argument[1].MapValue.Element", "Argument[this]", "taint", "manual"] + - ["org.springframework.http", "ResponseEntity", True, "ResponseEntity", "(Object,MultiValueMap,int)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.springframework.http", "ResponseEntity", True, "ResponseEntity", "(Object,MultiValueMap,int)", "", "Argument[1].MapKey", "Argument[this]", "taint", "manual"] + - ["org.springframework.http", "ResponseEntity", True, "ResponseEntity", "(Object,MultiValueMap,int)", "", "Argument[1].MapValue.Element", "Argument[this]", "taint", "manual"] - ["org.springframework.http", "ResponseEntity", True, "created", "(URI)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["org.springframework.http", "ResponseEntity", True, "of", "(Optional)", "", "Argument[0].Element", "ReturnValue", "taint", "manual"] - ["org.springframework.http", "ResponseEntity", True, "ok", "(Object)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["org.springframework.http", "ResponseEntity$BodyBuilder", True, "body", "(Object)", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] - - ["org.springframework.http", "ResponseEntity$BodyBuilder", True, "contentLength", "(long)", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.springframework.http", "ResponseEntity$BodyBuilder", True, "contentType", "(MediaType)", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.springframework.http", "ResponseEntity$HeadersBuilder", True, "allow", "(HttpMethod[])", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.springframework.http", "ResponseEntity$HeadersBuilder", True, "build", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.springframework.http", "ResponseEntity$HeadersBuilder", True, "eTag", "(String)", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.springframework.http", "ResponseEntity$HeadersBuilder", True, "eTag", "(String)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.springframework.http", "ResponseEntity$HeadersBuilder", True, "header", "(String,String[])", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.springframework.http", "ResponseEntity$HeadersBuilder", True, "header", "(String,String[])", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.springframework.http", "ResponseEntity$HeadersBuilder", True, "header", "(String,String[])", "", "Argument[1].ArrayElement", "Argument[-1]", "taint", "manual"] - - ["org.springframework.http", "ResponseEntity$HeadersBuilder", True, "headers", "(Consumer)", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.springframework.http", "ResponseEntity$HeadersBuilder", True, "headers", "(HttpHeaders)", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.springframework.http", "ResponseEntity$HeadersBuilder", True, "headers", "(HttpHeaders)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.springframework.http", "ResponseEntity$HeadersBuilder", True, "lastModified", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.springframework.http", "ResponseEntity$HeadersBuilder", True, "location", "(URI)", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.springframework.http", "ResponseEntity$HeadersBuilder", True, "location", "(URI)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.springframework.http", "ResponseEntity$HeadersBuilder", True, "varyBy", "(String[])", "", "Argument[-1]", "ReturnValue", "value", "manual"] + - ["org.springframework.http", "ResponseEntity$BodyBuilder", True, "contentLength", "(long)", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.springframework.http", "ResponseEntity$BodyBuilder", True, "contentType", "(MediaType)", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.springframework.http", "ResponseEntity$HeadersBuilder", True, "allow", "(HttpMethod[])", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.springframework.http", "ResponseEntity$HeadersBuilder", True, "build", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.springframework.http", "ResponseEntity$HeadersBuilder", True, "eTag", "(String)", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.springframework.http", "ResponseEntity$HeadersBuilder", True, "eTag", "(String)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.springframework.http", "ResponseEntity$HeadersBuilder", True, "header", "(String,String[])", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.springframework.http", "ResponseEntity$HeadersBuilder", True, "header", "(String,String[])", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.springframework.http", "ResponseEntity$HeadersBuilder", True, "header", "(String,String[])", "", "Argument[1].ArrayElement", "Argument[this]", "taint", "manual"] + - ["org.springframework.http", "ResponseEntity$HeadersBuilder", True, "headers", "(Consumer)", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.springframework.http", "ResponseEntity$HeadersBuilder", True, "headers", "(HttpHeaders)", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.springframework.http", "ResponseEntity$HeadersBuilder", True, "headers", "(HttpHeaders)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.springframework.http", "ResponseEntity$HeadersBuilder", True, "lastModified", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.springframework.http", "ResponseEntity$HeadersBuilder", True, "location", "(URI)", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.springframework.http", "ResponseEntity$HeadersBuilder", True, "location", "(URI)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.springframework.http", "ResponseEntity$HeadersBuilder", True, "varyBy", "(String[])", "", "Argument[this]", "ReturnValue", "value", "manual"] diff --git a/java/ql/lib/ext/org.springframework.ui.model.yml b/java/ql/lib/ext/org.springframework.ui.model.yml index 7e230d11f2f..414508bd1fa 100644 --- a/java/ql/lib/ext/org.springframework.ui.model.yml +++ b/java/ql/lib/ext/org.springframework.ui.model.yml @@ -3,35 +3,35 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["org.springframework.ui", "ConcurrentModel", False, "ConcurrentModel", "(Object)", "", "Argument[0]", "Argument[-1].MapValue", "value", "manual"] - - ["org.springframework.ui", "ConcurrentModel", False, "ConcurrentModel", "(String,Object)", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["org.springframework.ui", "ConcurrentModel", False, "ConcurrentModel", "(String,Object)", "", "Argument[1]", "Argument[-1].MapValue", "value", "manual"] - - ["org.springframework.ui", "Model", True, "addAllAttributes", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.springframework.ui", "Model", True, "addAllAttributes", "(Collection)", "", "Argument[0].Element", "Argument[-1].MapValue", "value", "manual"] - - ["org.springframework.ui", "Model", True, "addAllAttributes", "(Map)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.springframework.ui", "Model", True, "addAllAttributes", "(Map)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.springframework.ui", "Model", True, "addAttribute", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.springframework.ui", "Model", True, "addAttribute", "(Object)", "", "Argument[0]", "Argument[-1].MapValue", "value", "manual"] - - ["org.springframework.ui", "Model", True, "addAttribute", "(String,Object)", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["org.springframework.ui", "Model", True, "addAttribute", "(String,Object)", "", "Argument[1]", "Argument[-1].MapValue", "value", "manual"] - - ["org.springframework.ui", "Model", True, "asMap", "", "", "Argument[-1].MapKey", "ReturnValue.MapKey", "value", "manual"] - - ["org.springframework.ui", "Model", True, "asMap", "", "", "Argument[-1].MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["org.springframework.ui", "Model", True, "getAttribute", "", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] - - ["org.springframework.ui", "Model", True, "mergeAttributes", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.springframework.ui", "Model", True, "mergeAttributes", "", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.springframework.ui", "Model", True, "mergeAttributes", "", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.springframework.ui", "ModelMap", False, "ModelMap", "(Object)", "", "Argument[0]", "Argument[-1].MapValue", "value", "manual"] - - ["org.springframework.ui", "ModelMap", False, "ModelMap", "(String,Object)", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["org.springframework.ui", "ModelMap", False, "ModelMap", "(String,Object)", "", "Argument[1]", "Argument[-1].MapValue", "value", "manual"] - - ["org.springframework.ui", "ModelMap", False, "addAllAttributes", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.springframework.ui", "ModelMap", False, "addAllAttributes", "(Collection)", "", "Argument[0].Element", "Argument[-1].MapValue", "value", "manual"] - - ["org.springframework.ui", "ModelMap", False, "addAllAttributes", "(Map)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.springframework.ui", "ModelMap", False, "addAllAttributes", "(Map)", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] - - ["org.springframework.ui", "ModelMap", False, "addAttribute", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.springframework.ui", "ModelMap", False, "addAttribute", "(Object)", "", "Argument[0]", "Argument[-1].MapValue", "value", "manual"] - - ["org.springframework.ui", "ModelMap", False, "addAttribute", "(String,Object)", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["org.springframework.ui", "ModelMap", False, "addAttribute", "(String,Object)", "", "Argument[1]", "Argument[-1].MapValue", "value", "manual"] - - ["org.springframework.ui", "ModelMap", False, "getAttribute", "", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] - - ["org.springframework.ui", "ModelMap", False, "mergeAttributes", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.springframework.ui", "ModelMap", False, "mergeAttributes", "", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.springframework.ui", "ModelMap", False, "mergeAttributes", "", "", "Argument[0].MapValue", "Argument[-1].MapValue", "value", "manual"] + - ["org.springframework.ui", "ConcurrentModel", False, "ConcurrentModel", "(Object)", "", "Argument[0]", "Argument[this].MapValue", "value", "manual"] + - ["org.springframework.ui", "ConcurrentModel", False, "ConcurrentModel", "(String,Object)", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["org.springframework.ui", "ConcurrentModel", False, "ConcurrentModel", "(String,Object)", "", "Argument[1]", "Argument[this].MapValue", "value", "manual"] + - ["org.springframework.ui", "Model", True, "addAllAttributes", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.springframework.ui", "Model", True, "addAllAttributes", "(Collection)", "", "Argument[0].Element", "Argument[this].MapValue", "value", "manual"] + - ["org.springframework.ui", "Model", True, "addAllAttributes", "(Map)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.springframework.ui", "Model", True, "addAllAttributes", "(Map)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.springframework.ui", "Model", True, "addAttribute", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.springframework.ui", "Model", True, "addAttribute", "(Object)", "", "Argument[0]", "Argument[this].MapValue", "value", "manual"] + - ["org.springframework.ui", "Model", True, "addAttribute", "(String,Object)", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["org.springframework.ui", "Model", True, "addAttribute", "(String,Object)", "", "Argument[1]", "Argument[this].MapValue", "value", "manual"] + - ["org.springframework.ui", "Model", True, "asMap", "", "", "Argument[this].MapKey", "ReturnValue.MapKey", "value", "manual"] + - ["org.springframework.ui", "Model", True, "asMap", "", "", "Argument[this].MapValue", "ReturnValue.MapValue", "value", "manual"] + - ["org.springframework.ui", "Model", True, "getAttribute", "", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["org.springframework.ui", "Model", True, "mergeAttributes", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.springframework.ui", "Model", True, "mergeAttributes", "", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.springframework.ui", "Model", True, "mergeAttributes", "", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.springframework.ui", "ModelMap", False, "ModelMap", "(Object)", "", "Argument[0]", "Argument[this].MapValue", "value", "manual"] + - ["org.springframework.ui", "ModelMap", False, "ModelMap", "(String,Object)", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["org.springframework.ui", "ModelMap", False, "ModelMap", "(String,Object)", "", "Argument[1]", "Argument[this].MapValue", "value", "manual"] + - ["org.springframework.ui", "ModelMap", False, "addAllAttributes", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.springframework.ui", "ModelMap", False, "addAllAttributes", "(Collection)", "", "Argument[0].Element", "Argument[this].MapValue", "value", "manual"] + - ["org.springframework.ui", "ModelMap", False, "addAllAttributes", "(Map)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.springframework.ui", "ModelMap", False, "addAllAttributes", "(Map)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.springframework.ui", "ModelMap", False, "addAttribute", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.springframework.ui", "ModelMap", False, "addAttribute", "(Object)", "", "Argument[0]", "Argument[this].MapValue", "value", "manual"] + - ["org.springframework.ui", "ModelMap", False, "addAttribute", "(String,Object)", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["org.springframework.ui", "ModelMap", False, "addAttribute", "(String,Object)", "", "Argument[1]", "Argument[this].MapValue", "value", "manual"] + - ["org.springframework.ui", "ModelMap", False, "getAttribute", "", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["org.springframework.ui", "ModelMap", False, "mergeAttributes", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.springframework.ui", "ModelMap", False, "mergeAttributes", "", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.springframework.ui", "ModelMap", False, "mergeAttributes", "", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] diff --git a/java/ql/lib/ext/org.springframework.util.model.yml b/java/ql/lib/ext/org.springframework.util.model.yml index 817f9b43c01..5cc903bdc7e 100644 --- a/java/ql/lib/ext/org.springframework.util.model.yml +++ b/java/ql/lib/ext/org.springframework.util.model.yml @@ -9,8 +9,8 @@ extensions: - ["org.springframework.util", "AntPathMatcher", False, "extractUriTemplateVariables", "", "", "Argument[1]", "ReturnValue.MapValue", "taint", "manual"] - ["org.springframework.util", "AntPathMatcher", False, "tokenizePath", "", "", "Argument[0]", "ReturnValue.ArrayElement", "taint", "manual"] - ["org.springframework.util", "AntPathMatcher", False, "tokenizePattern", "", "", "Argument[0]", "ReturnValue.ArrayElement", "taint", "manual"] - - ["org.springframework.util", "AutoPopulatingList", False, "AutoPopulatingList", "(java.util.List,java.lang.Class)", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.springframework.util", "AutoPopulatingList", False, "AutoPopulatingList", "(java.util.List,org.springframework.util.AutoPopulatingList.ElementFactory)", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] + - ["org.springframework.util", "AutoPopulatingList", False, "AutoPopulatingList", "(java.util.List,java.lang.Class)", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.springframework.util", "AutoPopulatingList", False, "AutoPopulatingList", "(java.util.List,org.springframework.util.AutoPopulatingList.ElementFactory)", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] - ["org.springframework.util", "Base64Utils", False, "decode", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["org.springframework.util", "Base64Utils", False, "decodeFromString", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["org.springframework.util", "Base64Utils", False, "decodeFromUrlSafeString", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] @@ -33,40 +33,40 @@ extensions: - ["org.springframework.util", "CollectionUtils", False, "toMultiValueMap", "", "", "Argument[0].MapValue.Element", "ReturnValue.MapValue.Element", "value", "manual"] - ["org.springframework.util", "CollectionUtils", False, "unmodifiableMultiValueMap", "", "", "Argument[0].MapKey", "ReturnValue.MapKey", "value", "manual"] - ["org.springframework.util", "CollectionUtils", False, "unmodifiableMultiValueMap", "", "", "Argument[0].MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["org.springframework.util", "CompositeIterator", False, "add", "", "", "Argument[0].Element", "Argument[-1].Element", "value", "manual"] - - ["org.springframework.util", "ConcurrentReferenceHashMap", False, "getReference", "", "", "Argument[-1].MapKey", "ReturnValue.MapKey", "value", "manual"] - - ["org.springframework.util", "ConcurrentReferenceHashMap", False, "getReference", "", "", "Argument[-1].MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["org.springframework.util", "ConcurrentReferenceHashMap", False, "getSegment", "", "", "Argument[-1].MapKey", "ReturnValue.MapKey", "value", "manual"] - - ["org.springframework.util", "ConcurrentReferenceHashMap", False, "getSegment", "", "", "Argument[-1].MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["org.springframework.util", "FastByteArrayOutputStream", False, "getInputStream", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.springframework.util", "FastByteArrayOutputStream", False, "toByteArray", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.springframework.util", "FastByteArrayOutputStream", False, "write", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.springframework.util", "FastByteArrayOutputStream", False, "writeTo", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"] + - ["org.springframework.util", "CompositeIterator", False, "add", "", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] + - ["org.springframework.util", "ConcurrentReferenceHashMap", False, "getReference", "", "", "Argument[this].MapKey", "ReturnValue.MapKey", "value", "manual"] + - ["org.springframework.util", "ConcurrentReferenceHashMap", False, "getReference", "", "", "Argument[this].MapValue", "ReturnValue.MapValue", "value", "manual"] + - ["org.springframework.util", "ConcurrentReferenceHashMap", False, "getSegment", "", "", "Argument[this].MapKey", "ReturnValue.MapKey", "value", "manual"] + - ["org.springframework.util", "ConcurrentReferenceHashMap", False, "getSegment", "", "", "Argument[this].MapValue", "ReturnValue.MapValue", "value", "manual"] + - ["org.springframework.util", "FastByteArrayOutputStream", False, "getInputStream", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.springframework.util", "FastByteArrayOutputStream", False, "toByteArray", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.springframework.util", "FastByteArrayOutputStream", False, "write", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.springframework.util", "FastByteArrayOutputStream", False, "writeTo", "", "", "Argument[this]", "Argument[0]", "taint", "manual"] - ["org.springframework.util", "FileCopyUtils", False, "copy", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] - ["org.springframework.util", "FileCopyUtils", False, "copyToByteArray", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["org.springframework.util", "FileCopyUtils", False, "copyToString", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["org.springframework.util", "FileSystemUtils", False, "copyRecursively", "(java.io.File,java.io.File)", "", "Argument[0]", "Argument[1]", "taint", "manual"] - - ["org.springframework.util", "LinkedMultiValueMap", False, "LinkedMultiValueMap", "(java.util.Map)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.springframework.util", "LinkedMultiValueMap", False, "LinkedMultiValueMap", "(java.util.Map)", "", "Argument[0].MapValue.Element", "Argument[-1].MapValue.Element", "value", "manual"] - - ["org.springframework.util", "LinkedMultiValueMap", False, "deepCopy", "", "", "Argument[-1].MapKey", "ReturnValue.MapKey", "value", "manual"] - - ["org.springframework.util", "LinkedMultiValueMap", False, "deepCopy", "", "", "Argument[-1].MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["org.springframework.util", "MultiValueMap", True, "add", "", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["org.springframework.util", "MultiValueMap", True, "add", "", "", "Argument[1]", "Argument[-1].MapValue.Element", "value", "manual"] - - ["org.springframework.util", "MultiValueMap", True, "addAll", "(java.lang.Object,java.util.List)", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["org.springframework.util", "MultiValueMap", True, "addAll", "(java.lang.Object,java.util.List)", "", "Argument[1].Element", "Argument[-1].MapValue.Element", "value", "manual"] - - ["org.springframework.util", "MultiValueMap", True, "addAll", "(org.springframework.util.MultiValueMap)", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.springframework.util", "MultiValueMap", True, "addAll", "(org.springframework.util.MultiValueMap)", "", "Argument[0].MapValue.Element", "Argument[-1].MapValue.Element", "value", "manual"] - - ["org.springframework.util", "MultiValueMap", True, "addIfAbsent", "", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["org.springframework.util", "MultiValueMap", True, "addIfAbsent", "", "", "Argument[1]", "Argument[-1].MapValue.Element", "value", "manual"] - - ["org.springframework.util", "MultiValueMap", True, "getFirst", "", "", "Argument[-1].MapValue.Element", "ReturnValue", "value", "manual"] - - ["org.springframework.util", "MultiValueMap", True, "set", "", "", "Argument[0]", "Argument[-1].MapKey", "value", "manual"] - - ["org.springframework.util", "MultiValueMap", True, "set", "", "", "Argument[1]", "Argument[-1].MapValue.Element", "value", "manual"] - - ["org.springframework.util", "MultiValueMap", True, "setAll", "", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.springframework.util", "MultiValueMap", True, "setAll", "", "", "Argument[0].MapValue", "Argument[-1].MapValue.Element", "value", "manual"] - - ["org.springframework.util", "MultiValueMap", True, "toSingleValueMap", "", "", "Argument[-1].MapKey", "ReturnValue.MapKey", "value", "manual"] - - ["org.springframework.util", "MultiValueMap", True, "toSingleValueMap", "", "", "Argument[-1].MapValue.Element", "ReturnValue.MapValue", "value", "manual"] - - ["org.springframework.util", "MultiValueMapAdapter", False, "MultiValueMapAdapter", "", "", "Argument[0].MapKey", "Argument[-1].MapKey", "value", "manual"] - - ["org.springframework.util", "MultiValueMapAdapter", False, "MultiValueMapAdapter", "", "", "Argument[0].MapValue.Element", "Argument[-1].MapValue.Element", "value", "manual"] + - ["org.springframework.util", "LinkedMultiValueMap", False, "LinkedMultiValueMap", "(java.util.Map)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.springframework.util", "LinkedMultiValueMap", False, "LinkedMultiValueMap", "(java.util.Map)", "", "Argument[0].MapValue.Element", "Argument[this].MapValue.Element", "value", "manual"] + - ["org.springframework.util", "LinkedMultiValueMap", False, "deepCopy", "", "", "Argument[this].MapKey", "ReturnValue.MapKey", "value", "manual"] + - ["org.springframework.util", "LinkedMultiValueMap", False, "deepCopy", "", "", "Argument[this].MapValue", "ReturnValue.MapValue", "value", "manual"] + - ["org.springframework.util", "MultiValueMap", True, "add", "", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["org.springframework.util", "MultiValueMap", True, "add", "", "", "Argument[1]", "Argument[this].MapValue.Element", "value", "manual"] + - ["org.springframework.util", "MultiValueMap", True, "addAll", "(java.lang.Object,java.util.List)", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["org.springframework.util", "MultiValueMap", True, "addAll", "(java.lang.Object,java.util.List)", "", "Argument[1].Element", "Argument[this].MapValue.Element", "value", "manual"] + - ["org.springframework.util", "MultiValueMap", True, "addAll", "(org.springframework.util.MultiValueMap)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.springframework.util", "MultiValueMap", True, "addAll", "(org.springframework.util.MultiValueMap)", "", "Argument[0].MapValue.Element", "Argument[this].MapValue.Element", "value", "manual"] + - ["org.springframework.util", "MultiValueMap", True, "addIfAbsent", "", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["org.springframework.util", "MultiValueMap", True, "addIfAbsent", "", "", "Argument[1]", "Argument[this].MapValue.Element", "value", "manual"] + - ["org.springframework.util", "MultiValueMap", True, "getFirst", "", "", "Argument[this].MapValue.Element", "ReturnValue", "value", "manual"] + - ["org.springframework.util", "MultiValueMap", True, "set", "", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["org.springframework.util", "MultiValueMap", True, "set", "", "", "Argument[1]", "Argument[this].MapValue.Element", "value", "manual"] + - ["org.springframework.util", "MultiValueMap", True, "setAll", "", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.springframework.util", "MultiValueMap", True, "setAll", "", "", "Argument[0].MapValue", "Argument[this].MapValue.Element", "value", "manual"] + - ["org.springframework.util", "MultiValueMap", True, "toSingleValueMap", "", "", "Argument[this].MapKey", "ReturnValue.MapKey", "value", "manual"] + - ["org.springframework.util", "MultiValueMap", True, "toSingleValueMap", "", "", "Argument[this].MapValue.Element", "ReturnValue.MapValue", "value", "manual"] + - ["org.springframework.util", "MultiValueMapAdapter", False, "MultiValueMapAdapter", "", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.springframework.util", "MultiValueMapAdapter", False, "MultiValueMapAdapter", "", "", "Argument[0].MapValue.Element", "Argument[this].MapValue.Element", "value", "manual"] - ["org.springframework.util", "ObjectUtils", False, "addObjectToArray", "", "", "Argument[0].ArrayElement", "ReturnValue.ArrayElement", "value", "manual"] - ["org.springframework.util", "ObjectUtils", False, "addObjectToArray", "", "", "Argument[1]", "ReturnValue.ArrayElement", "value", "manual"] - ["org.springframework.util", "ObjectUtils", False, "toObjectArray", "", "", "Argument[0].ArrayElement", "ReturnValue.ArrayElement", "value", "manual"] @@ -77,7 +77,7 @@ extensions: - ["org.springframework.util", "PropertiesPersister", True, "store", "", "", "Argument[2]", "Argument[1]", "taint", "manual"] - ["org.springframework.util", "PropertiesPersister", True, "storeToXml", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] - ["org.springframework.util", "PropertiesPersister", True, "storeToXml", "", "", "Argument[2]", "Argument[1]", "taint", "manual"] - - ["org.springframework.util", "PropertyPlaceholderHelper", False, "PropertyPlaceholderHelper", "", "", "Argument[0..1]", "Argument[-1]", "taint", "manual"] + - ["org.springframework.util", "PropertyPlaceholderHelper", False, "PropertyPlaceholderHelper", "", "", "Argument[0..1]", "Argument[this]", "taint", "manual"] - ["org.springframework.util", "PropertyPlaceholderHelper", False, "parseStringValue", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["org.springframework.util", "PropertyPlaceholderHelper", False, "replacePlaceholders", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["org.springframework.util", "PropertyPlaceholderHelper", False, "replacePlaceholders", "(java.lang.String,java.util.Properties)", "", "Argument[1].MapValue", "ReturnValue", "taint", "manual"] diff --git a/java/ql/lib/ext/org.springframework.validation.model.yml b/java/ql/lib/ext/org.springframework.validation.model.yml index 190254ad2d1..0198472b417 100644 --- a/java/ql/lib/ext/org.springframework.validation.model.yml +++ b/java/ql/lib/ext/org.springframework.validation.model.yml @@ -3,16 +3,16 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["org.springframework.validation", "Errors", True, "addAllErrors", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.springframework.validation", "Errors", True, "getAllErrors", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.springframework.validation", "Errors", True, "getFieldError", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.springframework.validation", "Errors", True, "getFieldErrors", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.springframework.validation", "Errors", True, "getGlobalError", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.springframework.validation", "Errors", True, "getGlobalErrors", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.springframework.validation", "Errors", True, "reject", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.springframework.validation", "Errors", True, "reject", "", "", "Argument[1].ArrayElement", "Argument[-1]", "taint", "manual"] - - ["org.springframework.validation", "Errors", True, "reject", "", "", "Argument[2]", "Argument[-1]", "taint", "manual"] - - ["org.springframework.validation", "Errors", True, "rejectValue", "", "", "Argument[1]", "Argument[-1]", "taint", "manual"] - - ["org.springframework.validation", "Errors", True, "rejectValue", "", "", "Argument[3]", "Argument[-1]", "taint", "manual"] - - ["org.springframework.validation", "Errors", True, "rejectValue", "(java.lang.String,java.lang.String,java.lang.Object[],java.lang.String)", "", "Argument[2].ArrayElement", "Argument[-1]", "taint", "manual"] - - ["org.springframework.validation", "Errors", True, "rejectValue", "(java.lang.String,java.lang.String,java.lang.String)", "", "Argument[2]", "Argument[-1]", "taint", "manual"] + - ["org.springframework.validation", "Errors", True, "addAllErrors", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.springframework.validation", "Errors", True, "getAllErrors", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.springframework.validation", "Errors", True, "getFieldError", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.springframework.validation", "Errors", True, "getFieldErrors", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.springframework.validation", "Errors", True, "getGlobalError", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.springframework.validation", "Errors", True, "getGlobalErrors", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.springframework.validation", "Errors", True, "reject", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.springframework.validation", "Errors", True, "reject", "", "", "Argument[1].ArrayElement", "Argument[this]", "taint", "manual"] + - ["org.springframework.validation", "Errors", True, "reject", "", "", "Argument[2]", "Argument[this]", "taint", "manual"] + - ["org.springframework.validation", "Errors", True, "rejectValue", "", "", "Argument[1]", "Argument[this]", "taint", "manual"] + - ["org.springframework.validation", "Errors", True, "rejectValue", "", "", "Argument[3]", "Argument[this]", "taint", "manual"] + - ["org.springframework.validation", "Errors", True, "rejectValue", "(java.lang.String,java.lang.String,java.lang.Object[],java.lang.String)", "", "Argument[2].ArrayElement", "Argument[this]", "taint", "manual"] + - ["org.springframework.validation", "Errors", True, "rejectValue", "(java.lang.String,java.lang.String,java.lang.String)", "", "Argument[2]", "Argument[this]", "taint", "manual"] diff --git a/java/ql/lib/ext/org.springframework.web.multipart.model.yml b/java/ql/lib/ext/org.springframework.web.multipart.model.yml index 7c0505cbcc4..86cce206ece 100644 --- a/java/ql/lib/ext/org.springframework.web.multipart.model.yml +++ b/java/ql/lib/ext/org.springframework.web.multipart.model.yml @@ -19,16 +19,16 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["org.springframework.web.multipart", "MultipartFile", True, "getBytes", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.springframework.web.multipart", "MultipartFile", True, "getInputStream", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.springframework.web.multipart", "MultipartFile", True, "getName", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.springframework.web.multipart", "MultipartFile", True, "getOriginalFilename", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.springframework.web.multipart", "MultipartFile", True, "getResource", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.springframework.web.multipart", "MultipartHttpServletRequest", True, "getMultipartHeaders", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.springframework.web.multipart", "MultipartHttpServletRequest", True, "getRequestHeaders", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.springframework.web.multipart", "MultipartRequest", True, "getFile", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.springframework.web.multipart", "MultipartRequest", True, "getFileMap", "", "", "Argument[-1]", "ReturnValue.MapValue", "taint", "manual"] - - ["org.springframework.web.multipart", "MultipartRequest", True, "getFileNames", "", "", "Argument[-1]", "ReturnValue.Element", "taint", "manual"] - - ["org.springframework.web.multipart", "MultipartRequest", True, "getFiles", "", "", "Argument[-1]", "ReturnValue.Element", "taint", "manual"] - - ["org.springframework.web.multipart", "MultipartRequest", True, "getMultiFileMap", "", "", "Argument[-1]", "ReturnValue.MapValue", "taint", "manual"] + - ["org.springframework.web.multipart", "MultipartFile", True, "getBytes", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.springframework.web.multipart", "MultipartFile", True, "getInputStream", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.springframework.web.multipart", "MultipartFile", True, "getName", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.springframework.web.multipart", "MultipartFile", True, "getOriginalFilename", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.springframework.web.multipart", "MultipartFile", True, "getResource", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.springframework.web.multipart", "MultipartHttpServletRequest", True, "getMultipartHeaders", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.springframework.web.multipart", "MultipartHttpServletRequest", True, "getRequestHeaders", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.springframework.web.multipart", "MultipartRequest", True, "getFile", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.springframework.web.multipart", "MultipartRequest", True, "getFileMap", "", "", "Argument[this]", "ReturnValue.MapValue", "taint", "manual"] + - ["org.springframework.web.multipart", "MultipartRequest", True, "getFileNames", "", "", "Argument[this]", "ReturnValue.Element", "taint", "manual"] + - ["org.springframework.web.multipart", "MultipartRequest", True, "getFiles", "", "", "Argument[this]", "ReturnValue.Element", "taint", "manual"] + - ["org.springframework.web.multipart", "MultipartRequest", True, "getMultiFileMap", "", "", "Argument[this]", "ReturnValue.MapValue", "taint", "manual"] - ["org.springframework.web.multipart", "MultipartResolver", True, "resolveMultipart", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] diff --git a/java/ql/lib/ext/org.springframework.web.util.model.yml b/java/ql/lib/ext/org.springframework.web.util.model.yml index 336d22b8696..70db4ceb2ef 100644 --- a/java/ql/lib/ext/org.springframework.web.util.model.yml +++ b/java/ql/lib/ext/org.springframework.web.util.model.yml @@ -3,20 +3,20 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["org.springframework.web.util", "AbstractUriTemplateHandler", True, "getBaseUrl", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.springframework.web.util", "AbstractUriTemplateHandler", True, "setBaseUrl", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.springframework.web.util", "AbstractUriTemplateHandler", True, "setDefaultUriVariables", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] + - ["org.springframework.web.util", "AbstractUriTemplateHandler", True, "getBaseUrl", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.springframework.web.util", "AbstractUriTemplateHandler", True, "setBaseUrl", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.springframework.web.util", "AbstractUriTemplateHandler", True, "setDefaultUriVariables", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] # Writing to a `Request` or `Response` currently doesn't propagate taint to the object itself. - - ["org.springframework.web.util", "ContentCachingRequestWrapper", False, "ContentCachingRequestWrapper", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.springframework.web.util", "ContentCachingRequestWrapper", False, "getContentAsByteArray", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.springframework.web.util", "ContentCachingResponseWrapper", False, "ContentCachingResponseWrapper", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.springframework.web.util", "ContentCachingResponseWrapper", False, "getContentAsByteArray", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.springframework.web.util", "ContentCachingResponseWrapper", False, "getContentInputStream", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.springframework.web.util", "DefaultUriBuilderFactory", False, "DefaultUriBuilderFactory", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.springframework.web.util", "DefaultUriBuilderFactory", False, "builder", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.springframework.web.util", "DefaultUriBuilderFactory", False, "getDefaultUriVariables", "", "", "Argument[-1]", "ReturnValue.MapValue", "taint", "manual"] - - ["org.springframework.web.util", "DefaultUriBuilderFactory", False, "setDefaultUriVariables", "", "", "Argument[0].MapValue", "Argument[-1]", "taint", "manual"] - - ["org.springframework.web.util", "DefaultUriBuilderFactory", False, "uriString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["org.springframework.web.util", "ContentCachingRequestWrapper", False, "ContentCachingRequestWrapper", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.springframework.web.util", "ContentCachingRequestWrapper", False, "getContentAsByteArray", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.springframework.web.util", "ContentCachingResponseWrapper", False, "ContentCachingResponseWrapper", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.springframework.web.util", "ContentCachingResponseWrapper", False, "getContentAsByteArray", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.springframework.web.util", "ContentCachingResponseWrapper", False, "getContentInputStream", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.springframework.web.util", "DefaultUriBuilderFactory", False, "DefaultUriBuilderFactory", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.springframework.web.util", "DefaultUriBuilderFactory", False, "builder", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.springframework.web.util", "DefaultUriBuilderFactory", False, "getDefaultUriVariables", "", "", "Argument[this]", "ReturnValue.MapValue", "taint", "manual"] + - ["org.springframework.web.util", "DefaultUriBuilderFactory", False, "setDefaultUriVariables", "", "", "Argument[0].MapValue", "Argument[this]", "taint", "manual"] + - ["org.springframework.web.util", "DefaultUriBuilderFactory", False, "uriString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["org.springframework.web.util", "HtmlUtils", False, "htmlEscape", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["org.springframework.web.util", "HtmlUtils", False, "htmlEscapeDecimal", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["org.springframework.web.util", "HtmlUtils", False, "htmlEscapeHex", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] @@ -27,75 +27,75 @@ extensions: - ["org.springframework.web.util", "ServletRequestPathUtils", False, "getParsedRequestPath", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["org.springframework.web.util", "ServletRequestPathUtils", False, "parseAndCache", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["org.springframework.web.util", "ServletRequestPathUtils", False, "setParsedRequestPath", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] - - ["org.springframework.web.util", "UriBuilder", True, "build", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.springframework.web.util", "UriBuilder", True, "build", "(Map)", "", "Argument[0].MapValue", "Argument[-1]", "taint", "manual"] + - ["org.springframework.web.util", "UriBuilder", True, "build", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.springframework.web.util", "UriBuilder", True, "build", "(Map)", "", "Argument[0].MapValue", "Argument[this]", "taint", "manual"] - ["org.springframework.web.util", "UriBuilder", True, "build", "(Map)", "", "Argument[0].MapValue", "ReturnValue", "taint", "manual"] - ["org.springframework.web.util", "UriBuilder", True, "build", "(Object[])", "", "Argument[0].ArrayElement", "ReturnValue", "taint", "manual"] - - ["org.springframework.web.util", "UriBuilder", True, "fragment", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.springframework.web.util", "UriBuilder", True, "fragment", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.springframework.web.util", "UriBuilder", True, "host", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.springframework.web.util", "UriBuilder", True, "host", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.springframework.web.util", "UriBuilder", True, "path", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.springframework.web.util", "UriBuilder", True, "path", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.springframework.web.util", "UriBuilder", True, "pathSegment", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.springframework.web.util", "UriBuilder", True, "pathSegment", "", "", "Argument[0].ArrayElement", "Argument[-1]", "taint", "manual"] - - ["org.springframework.web.util", "UriBuilder", True, "port", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.springframework.web.util", "UriBuilder", True, "port", "(java.lang.String)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.springframework.web.util", "UriBuilder", True, "query", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.springframework.web.util", "UriBuilder", True, "query", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.springframework.web.util", "UriBuilder", True, "queryParam", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.springframework.web.util", "UriBuilder", True, "queryParam", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.springframework.web.util", "UriBuilder", True, "queryParam", "(String,Collection)", "", "Argument[1].Element", "Argument[-1]", "taint", "manual"] - - ["org.springframework.web.util", "UriBuilder", True, "queryParam", "(String,Object[])", "", "Argument[1].ArrayElement", "Argument[-1]", "taint", "manual"] - - ["org.springframework.web.util", "UriBuilder", True, "queryParamIfPresent", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.springframework.web.util", "UriBuilder", True, "queryParamIfPresent", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.springframework.web.util", "UriBuilder", True, "queryParamIfPresent", "", "", "Argument[1].Element", "Argument[-1]", "taint", "manual"] - - ["org.springframework.web.util", "UriBuilder", True, "queryParams", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.springframework.web.util", "UriBuilder", True, "queryParams", "", "", "Argument[0].MapKey", "Argument[-1]", "taint", "manual"] - - ["org.springframework.web.util", "UriBuilder", True, "queryParams", "", "", "Argument[0].MapValue.Element", "Argument[-1]", "taint", "manual"] - - ["org.springframework.web.util", "UriBuilder", True, "replacePath", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.springframework.web.util", "UriBuilder", True, "replacePath", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.springframework.web.util", "UriBuilder", True, "replaceQuery", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.springframework.web.util", "UriBuilder", True, "replaceQuery", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.springframework.web.util", "UriBuilder", True, "replaceQueryParam", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.springframework.web.util", "UriBuilder", True, "replaceQueryParam", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.springframework.web.util", "UriBuilder", True, "replaceQueryParam", "(String,Collection)", "", "Argument[1].Element", "Argument[-1]", "taint", "manual"] - - ["org.springframework.web.util", "UriBuilder", True, "replaceQueryParam", "(String,Object[])", "", "Argument[1].ArrayElement", "Argument[-1]", "taint", "manual"] - - ["org.springframework.web.util", "UriBuilder", True, "replaceQueryParams", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.springframework.web.util", "UriBuilder", True, "replaceQueryParams", "", "", "Argument[0].MapKey", "Argument[-1]", "taint", "manual"] - - ["org.springframework.web.util", "UriBuilder", True, "replaceQueryParams", "", "", "Argument[0].MapValue.Element", "Argument[-1]", "taint", "manual"] - - ["org.springframework.web.util", "UriBuilder", True, "scheme", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.springframework.web.util", "UriBuilder", True, "scheme", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.springframework.web.util", "UriBuilder", True, "userInfo", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.springframework.web.util", "UriBuilder", True, "userInfo", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.springframework.web.util", "UriBuilderFactory", True, "builder", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["org.springframework.web.util", "UriBuilder", True, "fragment", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.springframework.web.util", "UriBuilder", True, "fragment", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.springframework.web.util", "UriBuilder", True, "host", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.springframework.web.util", "UriBuilder", True, "host", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.springframework.web.util", "UriBuilder", True, "path", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.springframework.web.util", "UriBuilder", True, "path", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.springframework.web.util", "UriBuilder", True, "pathSegment", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.springframework.web.util", "UriBuilder", True, "pathSegment", "", "", "Argument[0].ArrayElement", "Argument[this]", "taint", "manual"] + - ["org.springframework.web.util", "UriBuilder", True, "port", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.springframework.web.util", "UriBuilder", True, "port", "(java.lang.String)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.springframework.web.util", "UriBuilder", True, "query", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.springframework.web.util", "UriBuilder", True, "query", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.springframework.web.util", "UriBuilder", True, "queryParam", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.springframework.web.util", "UriBuilder", True, "queryParam", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.springframework.web.util", "UriBuilder", True, "queryParam", "(String,Collection)", "", "Argument[1].Element", "Argument[this]", "taint", "manual"] + - ["org.springframework.web.util", "UriBuilder", True, "queryParam", "(String,Object[])", "", "Argument[1].ArrayElement", "Argument[this]", "taint", "manual"] + - ["org.springframework.web.util", "UriBuilder", True, "queryParamIfPresent", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.springframework.web.util", "UriBuilder", True, "queryParamIfPresent", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.springframework.web.util", "UriBuilder", True, "queryParamIfPresent", "", "", "Argument[1].Element", "Argument[this]", "taint", "manual"] + - ["org.springframework.web.util", "UriBuilder", True, "queryParams", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.springframework.web.util", "UriBuilder", True, "queryParams", "", "", "Argument[0].MapKey", "Argument[this]", "taint", "manual"] + - ["org.springframework.web.util", "UriBuilder", True, "queryParams", "", "", "Argument[0].MapValue.Element", "Argument[this]", "taint", "manual"] + - ["org.springframework.web.util", "UriBuilder", True, "replacePath", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.springframework.web.util", "UriBuilder", True, "replacePath", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.springframework.web.util", "UriBuilder", True, "replaceQuery", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.springframework.web.util", "UriBuilder", True, "replaceQuery", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.springframework.web.util", "UriBuilder", True, "replaceQueryParam", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.springframework.web.util", "UriBuilder", True, "replaceQueryParam", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.springframework.web.util", "UriBuilder", True, "replaceQueryParam", "(String,Collection)", "", "Argument[1].Element", "Argument[this]", "taint", "manual"] + - ["org.springframework.web.util", "UriBuilder", True, "replaceQueryParam", "(String,Object[])", "", "Argument[1].ArrayElement", "Argument[this]", "taint", "manual"] + - ["org.springframework.web.util", "UriBuilder", True, "replaceQueryParams", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.springframework.web.util", "UriBuilder", True, "replaceQueryParams", "", "", "Argument[0].MapKey", "Argument[this]", "taint", "manual"] + - ["org.springframework.web.util", "UriBuilder", True, "replaceQueryParams", "", "", "Argument[0].MapValue.Element", "Argument[this]", "taint", "manual"] + - ["org.springframework.web.util", "UriBuilder", True, "scheme", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.springframework.web.util", "UriBuilder", True, "scheme", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.springframework.web.util", "UriBuilder", True, "userInfo", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.springframework.web.util", "UriBuilder", True, "userInfo", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.springframework.web.util", "UriBuilderFactory", True, "builder", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["org.springframework.web.util", "UriBuilderFactory", True, "uriString", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] - - ["org.springframework.web.util", "UriComponents", False, "UriComponents", "", "", "Argument[0..1]", "Argument[-1]", "taint", "manual"] - - ["org.springframework.web.util", "UriComponents", False, "copyToUriComponentsBuilder", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"] - - ["org.springframework.web.util", "UriComponents", False, "encode", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["org.springframework.web.util", "UriComponents", False, "UriComponents", "", "", "Argument[0..1]", "Argument[this]", "taint", "manual"] + - ["org.springframework.web.util", "UriComponents", False, "copyToUriComponentsBuilder", "", "", "Argument[this]", "Argument[0]", "taint", "manual"] + - ["org.springframework.web.util", "UriComponents", False, "encode", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["org.springframework.web.util", "UriComponents", False, "expand", "(Map)", "", "Argument[0].MapValue", "ReturnValue", "taint", "manual"] - ["org.springframework.web.util", "UriComponents", False, "expand", "(Object[])", "", "Argument[0].ArrayElement", "ReturnValue", "taint", "manual"] - ["org.springframework.web.util", "UriComponents", False, "expand", "(UriTemplateVariables)", "", "Argument[0].MapValue", "ReturnValue", "taint", "manual"] - - ["org.springframework.web.util", "UriComponents", False, "getFragment", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.springframework.web.util", "UriComponents", False, "getHost", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.springframework.web.util", "UriComponents", False, "getPath", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.springframework.web.util", "UriComponents", False, "getPathSegments", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.springframework.web.util", "UriComponents", False, "getQuery", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.springframework.web.util", "UriComponents", False, "getQueryParams", "", "", "Argument[-1]", "ReturnValue.MapKey", "taint", "manual"] - - ["org.springframework.web.util", "UriComponents", False, "getQueryParams", "", "", "Argument[-1]", "ReturnValue.MapValue.Element", "taint", "manual"] - - ["org.springframework.web.util", "UriComponents", False, "getScheme", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.springframework.web.util", "UriComponents", False, "getSchemeSpecificPart", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.springframework.web.util", "UriComponents", False, "getUserInfo", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.springframework.web.util", "UriComponents", False, "normalize", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.springframework.web.util", "UriComponents", False, "toString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.springframework.web.util", "UriComponents", False, "toUri", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.springframework.web.util", "UriComponents", False, "toUriString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.springframework.web.util", "UriComponents$UriTemplateVariables", True, "getValue", "", "", "Argument[-1].MapValue", "ReturnValue", "value", "manual"] - - ["org.springframework.web.util", "UriComponentsBuilder", False, "build", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["org.springframework.web.util", "UriComponents", False, "getFragment", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.springframework.web.util", "UriComponents", False, "getHost", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.springframework.web.util", "UriComponents", False, "getPath", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.springframework.web.util", "UriComponents", False, "getPathSegments", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.springframework.web.util", "UriComponents", False, "getQuery", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.springframework.web.util", "UriComponents", False, "getQueryParams", "", "", "Argument[this]", "ReturnValue.MapKey", "taint", "manual"] + - ["org.springframework.web.util", "UriComponents", False, "getQueryParams", "", "", "Argument[this]", "ReturnValue.MapValue.Element", "taint", "manual"] + - ["org.springframework.web.util", "UriComponents", False, "getScheme", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.springframework.web.util", "UriComponents", False, "getSchemeSpecificPart", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.springframework.web.util", "UriComponents", False, "getUserInfo", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.springframework.web.util", "UriComponents", False, "normalize", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.springframework.web.util", "UriComponents", False, "toString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.springframework.web.util", "UriComponents", False, "toUri", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.springframework.web.util", "UriComponents", False, "toUriString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.springframework.web.util", "UriComponents$UriTemplateVariables", True, "getValue", "", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["org.springframework.web.util", "UriComponentsBuilder", False, "build", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["org.springframework.web.util", "UriComponentsBuilder", False, "buildAndExpand", "(Map)", "", "Argument[0].MapValue", "ReturnValue", "taint", "manual"] - ["org.springframework.web.util", "UriComponentsBuilder", False, "buildAndExpand", "(Object[])", "", "Argument[0].ArrayElement", "ReturnValue", "taint", "manual"] - - ["org.springframework.web.util", "UriComponentsBuilder", False, "cloneBuilder", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.springframework.web.util", "UriComponentsBuilder", False, "encode", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] + - ["org.springframework.web.util", "UriComponentsBuilder", False, "cloneBuilder", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.springframework.web.util", "UriComponentsBuilder", False, "encode", "", "", "Argument[this]", "ReturnValue", "value", "manual"] - ["org.springframework.web.util", "UriComponentsBuilder", False, "fromHttpRequest", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["org.springframework.web.util", "UriComponentsBuilder", False, "fromHttpUrl", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["org.springframework.web.util", "UriComponentsBuilder", False, "fromOriginHeader", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] @@ -103,20 +103,20 @@ extensions: - ["org.springframework.web.util", "UriComponentsBuilder", False, "fromUri", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["org.springframework.web.util", "UriComponentsBuilder", False, "fromUriString", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["org.springframework.web.util", "UriComponentsBuilder", False, "parseForwardedFor", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual"] - - ["org.springframework.web.util", "UriComponentsBuilder", False, "schemeSpecificPart", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.springframework.web.util", "UriComponentsBuilder", False, "schemeSpecificPart", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.springframework.web.util", "UriComponentsBuilder", False, "toUriString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["org.springframework.web.util", "UriComponentsBuilder", False, "uri", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.springframework.web.util", "UriComponentsBuilder", False, "uri", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.springframework.web.util", "UriComponentsBuilder", False, "uriComponents", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.springframework.web.util", "UriComponentsBuilder", False, "uriComponents", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.springframework.web.util", "UriComponentsBuilder", False, "uriVariables", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["org.springframework.web.util", "UriComponentsBuilder", False, "uriVariables", "", "", "Argument[0].MapValue", "Argument[-1]", "taint", "manual"] + - ["org.springframework.web.util", "UriComponentsBuilder", False, "schemeSpecificPart", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.springframework.web.util", "UriComponentsBuilder", False, "schemeSpecificPart", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.springframework.web.util", "UriComponentsBuilder", False, "toUriString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.springframework.web.util", "UriComponentsBuilder", False, "uri", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.springframework.web.util", "UriComponentsBuilder", False, "uri", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.springframework.web.util", "UriComponentsBuilder", False, "uriComponents", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.springframework.web.util", "UriComponentsBuilder", False, "uriComponents", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.springframework.web.util", "UriComponentsBuilder", False, "uriVariables", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["org.springframework.web.util", "UriComponentsBuilder", False, "uriVariables", "", "", "Argument[0].MapValue", "Argument[this]", "taint", "manual"] - ["org.springframework.web.util", "UriTemplate", False, "expand", "(Map)", "", "Argument[0].MapValue", "ReturnValue", "taint", "manual"] - ["org.springframework.web.util", "UriTemplate", False, "expand", "(Object[])", "", "Argument[0].ArrayElement", "ReturnValue", "taint", "manual"] - - ["org.springframework.web.util", "UriTemplate", False, "getVariableNames", "", "", "Argument[-1]", "ReturnValue.Element", "taint", "manual"] + - ["org.springframework.web.util", "UriTemplate", False, "getVariableNames", "", "", "Argument[this]", "ReturnValue.Element", "taint", "manual"] - ["org.springframework.web.util", "UriTemplate", False, "match", "", "", "Argument[0]", "ReturnValue.MapValue", "taint", "manual"] - - ["org.springframework.web.util", "UriTemplate", False, "toString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["org.springframework.web.util", "UriTemplate", False, "toString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["org.springframework.web.util", "UriTemplateHandler", True, "expand", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] - ["org.springframework.web.util", "UriTemplateHandler", True, "expand", "(String,Map)", "", "Argument[1].MapValue", "ReturnValue", "taint", "manual"] - ["org.springframework.web.util", "UriTemplateHandler", True, "expand", "(String,Object[])", "", "Argument[1].ArrayElement", "ReturnValue", "taint", "manual"] diff --git a/java/ql/lib/ext/org.thymeleaf.model.yml b/java/ql/lib/ext/org.thymeleaf.model.yml index fb294acafe6..66361b05836 100644 --- a/java/ql/lib/ext/org.thymeleaf.model.yml +++ b/java/ql/lib/ext/org.thymeleaf.model.yml @@ -9,5 +9,5 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["org.thymeleaf", "TemplateSpec", False, "TemplateSpec", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["org.thymeleaf", "TemplateSpec", False, "getTemplate", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["org.thymeleaf", "TemplateSpec", False, "TemplateSpec", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["org.thymeleaf", "TemplateSpec", False, "getTemplate", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] diff --git a/java/ql/lib/ext/org.xml.sax.model.yml b/java/ql/lib/ext/org.xml.sax.model.yml index 71f1194a94e..84bfa6c2435 100644 --- a/java/ql/lib/ext/org.xml.sax.model.yml +++ b/java/ql/lib/ext/org.xml.sax.model.yml @@ -3,4 +3,4 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["org.xml.sax", "InputSource", False, "InputSource", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] + - ["org.xml.sax", "InputSource", False, "InputSource", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] diff --git a/java/ql/lib/ext/ratpack.core.form.model.yml b/java/ql/lib/ext/ratpack.core.form.model.yml index f3df142cf9d..960285b3094 100644 --- a/java/ql/lib/ext/ratpack.core.form.model.yml +++ b/java/ql/lib/ext/ratpack.core.form.model.yml @@ -3,6 +3,6 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["ratpack.core.form", "Form", True, "file", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["ratpack.core.form", "Form", True, "files", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["ratpack.core.form", "UploadedFile", True, "getFileName", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["ratpack.core.form", "Form", True, "file", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["ratpack.core.form", "Form", True, "files", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["ratpack.core.form", "UploadedFile", True, "getFileName", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] diff --git a/java/ql/lib/ext/ratpack.core.http.model.yml b/java/ql/lib/ext/ratpack.core.http.model.yml index 2f6bc7fa17c..6f10e5ee70d 100644 --- a/java/ql/lib/ext/ratpack.core.http.model.yml +++ b/java/ql/lib/ext/ratpack.core.http.model.yml @@ -17,13 +17,13 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["ratpack.core.http", "Headers", True, "asMultiValueMap", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["ratpack.core.http", "Headers", True, "get", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["ratpack.core.http", "Headers", True, "getAll", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["ratpack.core.http", "Headers", True, "getNames", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["ratpack.core.http", "TypedData", True, "getBuffer", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["ratpack.core.http", "TypedData", True, "getBytes", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["ratpack.core.http", "TypedData", True, "getContentType", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["ratpack.core.http", "TypedData", True, "getInputStream", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["ratpack.core.http", "TypedData", True, "getText", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["ratpack.core.http", "TypedData", True, "writeTo", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"] + - ["ratpack.core.http", "Headers", True, "asMultiValueMap", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["ratpack.core.http", "Headers", True, "get", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["ratpack.core.http", "Headers", True, "getAll", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["ratpack.core.http", "Headers", True, "getNames", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["ratpack.core.http", "TypedData", True, "getBuffer", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["ratpack.core.http", "TypedData", True, "getBytes", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["ratpack.core.http", "TypedData", True, "getContentType", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["ratpack.core.http", "TypedData", True, "getInputStream", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["ratpack.core.http", "TypedData", True, "getText", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["ratpack.core.http", "TypedData", True, "writeTo", "", "", "Argument[this]", "Argument[0]", "taint", "manual"] diff --git a/java/ql/lib/ext/ratpack.exec.model.yml b/java/ql/lib/ext/ratpack.exec.model.yml index b2c0b2a2922..44da63c29b7 100644 --- a/java/ql/lib/ext/ratpack.exec.model.yml +++ b/java/ql/lib/ext/ratpack.exec.model.yml @@ -3,51 +3,51 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["ratpack.exec", "Promise", True, "apply", "", "", "Argument[-1].Element", "Argument[0].Parameter[0].Element", "value", "manual"] + - ["ratpack.exec", "Promise", True, "apply", "", "", "Argument[this].Element", "Argument[0].Parameter[0].Element", "value", "manual"] - ["ratpack.exec", "Promise", True, "apply", "", "", "Argument[0].ReturnValue.Element", "ReturnValue.Element", "value", "manual"] - - ["ratpack.exec", "Promise", True, "blockingMap", "", "", "Argument[-1].Element", "Argument[0].Parameter[0]", "value", "manual"] + - ["ratpack.exec", "Promise", True, "blockingMap", "", "", "Argument[this].Element", "Argument[0].Parameter[0]", "value", "manual"] - ["ratpack.exec", "Promise", True, "blockingMap", "", "", "Argument[0].ReturnValue", "ReturnValue.Element", "value", "manual"] - - ["ratpack.exec", "Promise", True, "blockingOp", "", "", "Argument[-1].Element", "Argument[0].Parameter[0]", "value", "manual"] - - ["ratpack.exec", "Promise", True, "cacheIf", "", "", "Argument[-1].Element", "Argument[0].Parameter[0]", "value", "manual"] - - ["ratpack.exec", "Promise", True, "flatLeft", "", "", "Argument[-1].Element", "ReturnValue.Element.Field[ratpack.func.Pair.right]", "value", "manual"] - - ["ratpack.exec", "Promise", True, "flatLeft", "(Function)", "", "Argument[-1].Element", "Argument[0].Parameter[0]", "value", "manual"] + - ["ratpack.exec", "Promise", True, "blockingOp", "", "", "Argument[this].Element", "Argument[0].Parameter[0]", "value", "manual"] + - ["ratpack.exec", "Promise", True, "cacheIf", "", "", "Argument[this].Element", "Argument[0].Parameter[0]", "value", "manual"] + - ["ratpack.exec", "Promise", True, "flatLeft", "", "", "Argument[this].Element", "ReturnValue.Element.Field[ratpack.func.Pair.right]", "value", "manual"] + - ["ratpack.exec", "Promise", True, "flatLeft", "(Function)", "", "Argument[this].Element", "Argument[0].Parameter[0]", "value", "manual"] - ["ratpack.exec", "Promise", True, "flatLeft", "(Function)", "", "Argument[0].ReturnValue.Element", "ReturnValue.Element.Field[ratpack.func.Pair.left]", "value", "manual"] - - ["ratpack.exec", "Promise", True, "flatMap", "", "", "Argument[-1].Element", "Argument[0].Parameter[0]", "value", "manual"] + - ["ratpack.exec", "Promise", True, "flatMap", "", "", "Argument[this].Element", "Argument[0].Parameter[0]", "value", "manual"] - ["ratpack.exec", "Promise", True, "flatMap", "", "", "Argument[0].ReturnValue.Element", "ReturnValue.Element", "value", "manual"] - ["ratpack.exec", "Promise", True, "flatMapError", "", "", "Argument[1].ReturnValue.Element", "ReturnValue.Element", "value", "manual"] - - ["ratpack.exec", "Promise", True, "flatOp", "", "", "Argument[-1].Element", "Argument[0].Parameter[0]", "value", "manual"] - - ["ratpack.exec", "Promise", True, "flatRight", "", "", "Argument[-1].Element", "ReturnValue.Element.Field[ratpack.func.Pair.left]", "value", "manual"] - - ["ratpack.exec", "Promise", True, "flatRight", "(Function)", "", "Argument[-1].Element", "Argument[0].Parameter[0]", "value", "manual"] + - ["ratpack.exec", "Promise", True, "flatOp", "", "", "Argument[this].Element", "Argument[0].Parameter[0]", "value", "manual"] + - ["ratpack.exec", "Promise", True, "flatRight", "", "", "Argument[this].Element", "ReturnValue.Element.Field[ratpack.func.Pair.left]", "value", "manual"] + - ["ratpack.exec", "Promise", True, "flatRight", "(Function)", "", "Argument[this].Element", "Argument[0].Parameter[0]", "value", "manual"] - ["ratpack.exec", "Promise", True, "flatRight", "(Function)", "", "Argument[0].ReturnValue.Element", "ReturnValue.Element.Field[ratpack.func.Pair.right]", "value", "manual"] - ["ratpack.exec", "Promise", True, "flatten", "", "", "Argument[0].ReturnValue.Element", "ReturnValue.Element", "value", "manual"] - - ["ratpack.exec", "Promise", True, "left", "", "", "Argument[-1].Element", "ReturnValue.Element.Field[ratpack.func.Pair.right]", "value", "manual"] - - ["ratpack.exec", "Promise", True, "left", "(Function)", "", "Argument[-1].Element", "Argument[0].Parameter[0]", "value", "manual"] + - ["ratpack.exec", "Promise", True, "left", "", "", "Argument[this].Element", "ReturnValue.Element.Field[ratpack.func.Pair.right]", "value", "manual"] + - ["ratpack.exec", "Promise", True, "left", "(Function)", "", "Argument[this].Element", "Argument[0].Parameter[0]", "value", "manual"] - ["ratpack.exec", "Promise", True, "left", "(Function)", "", "Argument[0].ReturnValue", "ReturnValue.Element.Field[ratpack.func.Pair.left]", "value", "manual"] - ["ratpack.exec", "Promise", True, "left", "(Promise)", "", "Argument[0].Element", "ReturnValue.Element.Field[ratpack.func.Pair.left]", "value", "manual"] - - ["ratpack.exec", "Promise", True, "map", "", "", "Argument[-1].Element", "Argument[0].Parameter[0]", "value", "manual"] + - ["ratpack.exec", "Promise", True, "map", "", "", "Argument[this].Element", "Argument[0].Parameter[0]", "value", "manual"] - ["ratpack.exec", "Promise", True, "map", "", "", "Argument[0].ReturnValue", "ReturnValue.Element", "value", "manual"] - ["ratpack.exec", "Promise", True, "mapError", "", "", "Argument[1].ReturnValue", "ReturnValue.Element", "value", "manual"] - - ["ratpack.exec", "Promise", True, "mapIf", "", "", "Argument[-1].Element", "Argument[0].Parameter[0]", "value", "manual"] - - ["ratpack.exec", "Promise", True, "mapIf", "", "", "Argument[-1].Element", "Argument[1].Parameter[0]", "value", "manual"] - - ["ratpack.exec", "Promise", True, "mapIf", "", "", "Argument[-1].Element", "Argument[2].Parameter[0]", "value", "manual"] + - ["ratpack.exec", "Promise", True, "mapIf", "", "", "Argument[this].Element", "Argument[0].Parameter[0]", "value", "manual"] + - ["ratpack.exec", "Promise", True, "mapIf", "", "", "Argument[this].Element", "Argument[1].Parameter[0]", "value", "manual"] + - ["ratpack.exec", "Promise", True, "mapIf", "", "", "Argument[this].Element", "Argument[2].Parameter[0]", "value", "manual"] - ["ratpack.exec", "Promise", True, "mapIf", "", "", "Argument[1].ReturnValue", "ReturnValue.Element", "value", "manual"] - ["ratpack.exec", "Promise", True, "mapIf", "", "", "Argument[2].ReturnValue", "ReturnValue.Element", "value", "manual"] - - ["ratpack.exec", "Promise", True, "next", "", "", "Argument[-1].Element", "Argument[0].Parameter[0]", "value", "manual"] - - ["ratpack.exec", "Promise", True, "nextOp", "", "", "Argument[-1].Element", "Argument[0].Parameter[0]", "value", "manual"] - - ["ratpack.exec", "Promise", True, "nextOpIf", "", "", "Argument[-1].Element", "Argument[0].Parameter[0]", "value", "manual"] - - ["ratpack.exec", "Promise", True, "nextOpIf", "", "", "Argument[-1].Element", "Argument[1].Parameter[0]", "value", "manual"] + - ["ratpack.exec", "Promise", True, "next", "", "", "Argument[this].Element", "Argument[0].Parameter[0]", "value", "manual"] + - ["ratpack.exec", "Promise", True, "nextOp", "", "", "Argument[this].Element", "Argument[0].Parameter[0]", "value", "manual"] + - ["ratpack.exec", "Promise", True, "nextOpIf", "", "", "Argument[this].Element", "Argument[0].Parameter[0]", "value", "manual"] + - ["ratpack.exec", "Promise", True, "nextOpIf", "", "", "Argument[this].Element", "Argument[1].Parameter[0]", "value", "manual"] - ["ratpack.exec", "Promise", True, "replace", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - - ["ratpack.exec", "Promise", True, "right", "", "", "Argument[-1].Element", "ReturnValue.Element.Field[ratpack.func.Pair.left]", "value", "manual"] - - ["ratpack.exec", "Promise", True, "right", "(Function)", "", "Argument[-1].Element", "Argument[0].Parameter[0]", "value", "manual"] + - ["ratpack.exec", "Promise", True, "right", "", "", "Argument[this].Element", "ReturnValue.Element.Field[ratpack.func.Pair.left]", "value", "manual"] + - ["ratpack.exec", "Promise", True, "right", "(Function)", "", "Argument[this].Element", "Argument[0].Parameter[0]", "value", "manual"] - ["ratpack.exec", "Promise", True, "right", "(Function)", "", "Argument[0].ReturnValue", "ReturnValue.Element.Field[ratpack.func.Pair.right]", "value", "manual"] - ["ratpack.exec", "Promise", True, "right", "(Promise)", "", "Argument[0].Element", "ReturnValue.Element.Field[ratpack.func.Pair.right]", "value", "manual"] - - ["ratpack.exec", "Promise", True, "route", "", "", "Argument[-1]", "ReturnValue", "value", "manual"] - - ["ratpack.exec", "Promise", True, "route", "", "", "Argument[-1].Element", "Argument[0].Parameter[0]", "value", "manual"] - - ["ratpack.exec", "Promise", True, "route", "", "", "Argument[-1].Element", "Argument[1].Parameter[0]", "value", "manual"] + - ["ratpack.exec", "Promise", True, "route", "", "", "Argument[this]", "ReturnValue", "value", "manual"] + - ["ratpack.exec", "Promise", True, "route", "", "", "Argument[this].Element", "Argument[0].Parameter[0]", "value", "manual"] + - ["ratpack.exec", "Promise", True, "route", "", "", "Argument[this].Element", "Argument[1].Parameter[0]", "value", "manual"] - ["ratpack.exec", "Promise", True, "sync", "", "", "Argument[0].ReturnValue", "ReturnValue.Element", "value", "manual"] - - ["ratpack.exec", "Promise", True, "then", "", "", "Argument[-1].Element", "Argument[0].Parameter[0]", "value", "manual"] + - ["ratpack.exec", "Promise", True, "then", "", "", "Argument[this].Element", "Argument[0].Parameter[0]", "value", "manual"] - ["ratpack.exec", "Promise", True, "value", "", "", "Argument[0]", "ReturnValue.Element", "value", "manual"] - - ["ratpack.exec", "Promise", True, "wiretap", "", "", "Argument[-1].Element", "Argument[0].Parameter[0].Element", "value", "manual"] - - ["ratpack.exec", "Result", True, "getValue", "", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] - - ["ratpack.exec", "Result", True, "getValueOrThrow", "", "", "Argument[-1].Element", "ReturnValue", "value", "manual"] + - ["ratpack.exec", "Promise", True, "wiretap", "", "", "Argument[this].Element", "Argument[0].Parameter[0].Element", "value", "manual"] + - ["ratpack.exec", "Result", True, "getValue", "", "", "Argument[this].Element", "ReturnValue", "value", "manual"] + - ["ratpack.exec", "Result", True, "getValueOrThrow", "", "", "Argument[this].Element", "ReturnValue", "value", "manual"] - ["ratpack.exec", "Result", True, "success", "", "", "Argument[0]", "ReturnValue.Element", "value", "manual"] diff --git a/java/ql/lib/ext/ratpack.form.model.yml b/java/ql/lib/ext/ratpack.form.model.yml index 3c4f6b2dd2b..4ec1d01edc0 100644 --- a/java/ql/lib/ext/ratpack.form.model.yml +++ b/java/ql/lib/ext/ratpack.form.model.yml @@ -3,6 +3,6 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["ratpack.form", "Form", True, "file", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["ratpack.form", "Form", True, "files", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["ratpack.form", "UploadedFile", True, "getFileName", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["ratpack.form", "Form", True, "file", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["ratpack.form", "Form", True, "files", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["ratpack.form", "UploadedFile", True, "getFileName", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] diff --git a/java/ql/lib/ext/ratpack.func.model.yml b/java/ql/lib/ext/ratpack.func.model.yml index 6cd78dc39d9..f9f34219a02 100644 --- a/java/ql/lib/ext/ratpack.func.model.yml +++ b/java/ql/lib/ext/ratpack.func.model.yml @@ -3,42 +3,42 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["ratpack.func", "MultiValueMap", True, "asMultimap", "", "", "Argument[-1].MapKey", "ReturnValue.MapKey", "value", "manual"] - - ["ratpack.func", "MultiValueMap", True, "asMultimap", "", "", "Argument[-1].MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["ratpack.func", "MultiValueMap", True, "getAll", "", "", "Argument[-1].MapKey", "ReturnValue.MapKey", "value", "manual"] - - ["ratpack.func", "MultiValueMap", True, "getAll", "()", "", "Argument[-1].MapValue", "ReturnValue.MapValue.Element", "value", "manual"] - - ["ratpack.func", "MultiValueMap", True, "getAll", "(Object)", "", "Argument[-1].MapValue", "ReturnValue.Element", "value", "manual"] - - ["ratpack.func", "Pair", True, "getLeft", "", "", "Argument[-1].Field[ratpack.func.Pair.left]", "ReturnValue", "value", "manual"] - - ["ratpack.func", "Pair", True, "getRight", "", "", "Argument[-1].Field[ratpack.func.Pair.right]", "ReturnValue", "value", "manual"] - - ["ratpack.func", "Pair", True, "left", "()", "", "Argument[-1].Field[ratpack.func.Pair.left]", "ReturnValue", "value", "manual"] - - ["ratpack.func", "Pair", True, "left", "(Object)", "", "Argument[-1].Field[ratpack.func.Pair.right]", "ReturnValue.Field[ratpack.func.Pair.right]", "value", "manual"] + - ["ratpack.func", "MultiValueMap", True, "asMultimap", "", "", "Argument[this].MapKey", "ReturnValue.MapKey", "value", "manual"] + - ["ratpack.func", "MultiValueMap", True, "asMultimap", "", "", "Argument[this].MapValue", "ReturnValue.MapValue", "value", "manual"] + - ["ratpack.func", "MultiValueMap", True, "getAll", "", "", "Argument[this].MapKey", "ReturnValue.MapKey", "value", "manual"] + - ["ratpack.func", "MultiValueMap", True, "getAll", "()", "", "Argument[this].MapValue", "ReturnValue.MapValue.Element", "value", "manual"] + - ["ratpack.func", "MultiValueMap", True, "getAll", "(Object)", "", "Argument[this].MapValue", "ReturnValue.Element", "value", "manual"] + - ["ratpack.func", "Pair", True, "getLeft", "", "", "Argument[this].Field[ratpack.func.Pair.left]", "ReturnValue", "value", "manual"] + - ["ratpack.func", "Pair", True, "getRight", "", "", "Argument[this].Field[ratpack.func.Pair.right]", "ReturnValue", "value", "manual"] + - ["ratpack.func", "Pair", True, "left", "()", "", "Argument[this].Field[ratpack.func.Pair.left]", "ReturnValue", "value", "manual"] + - ["ratpack.func", "Pair", True, "left", "(Object)", "", "Argument[this].Field[ratpack.func.Pair.right]", "ReturnValue.Field[ratpack.func.Pair.right]", "value", "manual"] - ["ratpack.func", "Pair", True, "left", "(Object)", "", "Argument[0]", "ReturnValue.Field[ratpack.func.Pair.left]", "value", "manual"] # `map` maps over the `Pair` - - ["ratpack.func", "Pair", True, "map", "", "", "Argument[-1]", "Argument[0].Parameter[0]", "value", "manual"] + - ["ratpack.func", "Pair", True, "map", "", "", "Argument[this]", "Argument[0].Parameter[0]", "value", "manual"] - ["ratpack.func", "Pair", True, "map", "", "", "Argument[0].ReturnValue", "ReturnValue", "value", "manual"] # `mapLeft` & `mapRight` map over their respective fields - - ["ratpack.func", "Pair", True, "mapLeft", "", "", "Argument[-1].Field[ratpack.func.Pair.left]", "Argument[0].Parameter[0]", "value", "manual"] - - ["ratpack.func", "Pair", True, "mapLeft", "", "", "Argument[-1].Field[ratpack.func.Pair.right]", "ReturnValue.Field[ratpack.func.Pair.right]", "value", "manual"] + - ["ratpack.func", "Pair", True, "mapLeft", "", "", "Argument[this].Field[ratpack.func.Pair.left]", "Argument[0].Parameter[0]", "value", "manual"] + - ["ratpack.func", "Pair", True, "mapLeft", "", "", "Argument[this].Field[ratpack.func.Pair.right]", "ReturnValue.Field[ratpack.func.Pair.right]", "value", "manual"] - ["ratpack.func", "Pair", True, "mapLeft", "", "", "Argument[0].ReturnValue", "ReturnValue.Field[ratpack.func.Pair.left]", "value", "manual"] - - ["ratpack.func", "Pair", True, "mapRight", "", "", "Argument[-1].Field[ratpack.func.Pair.left]", "ReturnValue.Field[ratpack.func.Pair.left]", "value", "manual"] - - ["ratpack.func", "Pair", True, "mapRight", "", "", "Argument[-1].Field[ratpack.func.Pair.right]", "Argument[0].Parameter[0]", "value", "manual"] + - ["ratpack.func", "Pair", True, "mapRight", "", "", "Argument[this].Field[ratpack.func.Pair.left]", "ReturnValue.Field[ratpack.func.Pair.left]", "value", "manual"] + - ["ratpack.func", "Pair", True, "mapRight", "", "", "Argument[this].Field[ratpack.func.Pair.right]", "Argument[0].Parameter[0]", "value", "manual"] - ["ratpack.func", "Pair", True, "mapRight", "", "", "Argument[0].ReturnValue", "ReturnValue.Field[ratpack.func.Pair.right]", "value", "manual"] # `nestLeft` Pair<A, B>.nestLeft(C) -> Pair<Pair<C, A>, B> - - ["ratpack.func", "Pair", True, "nestLeft", "(Object)", "", "Argument[-1].Field[ratpack.func.Pair.left]", "ReturnValue.Field[ratpack.func.Pair.left].Field[ratpack.func.Pair.right]", "value", "manual"] - - ["ratpack.func", "Pair", True, "nestLeft", "(Object)", "", "Argument[-1].Field[ratpack.func.Pair.right]", "ReturnValue.Field[ratpack.func.Pair.right]", "value", "manual"] + - ["ratpack.func", "Pair", True, "nestLeft", "(Object)", "", "Argument[this].Field[ratpack.func.Pair.left]", "ReturnValue.Field[ratpack.func.Pair.left].Field[ratpack.func.Pair.right]", "value", "manual"] + - ["ratpack.func", "Pair", True, "nestLeft", "(Object)", "", "Argument[this].Field[ratpack.func.Pair.right]", "ReturnValue.Field[ratpack.func.Pair.right]", "value", "manual"] - ["ratpack.func", "Pair", True, "nestLeft", "(Object)", "", "Argument[0]", "ReturnValue.Field[ratpack.func.Pair.left].Field[ratpack.func.Pair.left]", "value", "manual"] # `nestRight` Pair<A, B>.nestRight(C) -> Pair<A, Pair<C, B>> - - ["ratpack.func", "Pair", True, "nestRight", "(Object)", "", "Argument[-1].Field[ratpack.func.Pair.left]", "ReturnValue.Field[ratpack.func.Pair.left]", "value", "manual"] - - ["ratpack.func", "Pair", True, "nestRight", "(Object)", "", "Argument[-1].Field[ratpack.func.Pair.right]", "ReturnValue.Field[ratpack.func.Pair.right].Field[ratpack.func.Pair.right]", "value", "manual"] + - ["ratpack.func", "Pair", True, "nestRight", "(Object)", "", "Argument[this].Field[ratpack.func.Pair.left]", "ReturnValue.Field[ratpack.func.Pair.left]", "value", "manual"] + - ["ratpack.func", "Pair", True, "nestRight", "(Object)", "", "Argument[this].Field[ratpack.func.Pair.right]", "ReturnValue.Field[ratpack.func.Pair.right].Field[ratpack.func.Pair.right]", "value", "manual"] - ["ratpack.func", "Pair", True, "nestRight", "(Object)", "", "Argument[0]", "ReturnValue.Field[ratpack.func.Pair.right].Field[ratpack.func.Pair.left]", "value", "manual"] - ["ratpack.func", "Pair", True, "of", "", "", "Argument[0]", "ReturnValue.Field[ratpack.func.Pair.left]", "value", "manual"] - ["ratpack.func", "Pair", True, "of", "", "", "Argument[1]", "ReturnValue.Field[ratpack.func.Pair.right]", "value", "manual"] - ["ratpack.func", "Pair", True, "pair", "", "", "Argument[0]", "ReturnValue.Field[ratpack.func.Pair.left]", "value", "manual"] - ["ratpack.func", "Pair", True, "pair", "", "", "Argument[1]", "ReturnValue.Field[ratpack.func.Pair.right]", "value", "manual"] - - ["ratpack.func", "Pair", True, "pushLeft", "(Object)", "", "Argument[-1]", "ReturnValue.Field[ratpack.func.Pair.right]", "value", "manual"] + - ["ratpack.func", "Pair", True, "pushLeft", "(Object)", "", "Argument[this]", "ReturnValue.Field[ratpack.func.Pair.right]", "value", "manual"] - ["ratpack.func", "Pair", True, "pushLeft", "(Object)", "", "Argument[0]", "ReturnValue.Field[ratpack.func.Pair.left]", "value", "manual"] - - ["ratpack.func", "Pair", True, "pushRight", "(Object)", "", "Argument[-1]", "ReturnValue.Field[ratpack.func.Pair.left]", "value", "manual"] + - ["ratpack.func", "Pair", True, "pushRight", "(Object)", "", "Argument[this]", "ReturnValue.Field[ratpack.func.Pair.left]", "value", "manual"] - ["ratpack.func", "Pair", True, "pushRight", "(Object)", "", "Argument[0]", "ReturnValue.Field[ratpack.func.Pair.right]", "value", "manual"] - - ["ratpack.func", "Pair", True, "right", "()", "", "Argument[-1].Field[ratpack.func.Pair.right]", "ReturnValue", "value", "manual"] - - ["ratpack.func", "Pair", True, "right", "(Object)", "", "Argument[-1].Field[ratpack.func.Pair.left]", "ReturnValue.Field[ratpack.func.Pair.left]", "value", "manual"] + - ["ratpack.func", "Pair", True, "right", "()", "", "Argument[this].Field[ratpack.func.Pair.right]", "ReturnValue", "value", "manual"] + - ["ratpack.func", "Pair", True, "right", "(Object)", "", "Argument[this].Field[ratpack.func.Pair.left]", "ReturnValue.Field[ratpack.func.Pair.left]", "value", "manual"] - ["ratpack.func", "Pair", True, "right", "(Object)", "", "Argument[0]", "ReturnValue.Field[ratpack.func.Pair.right]", "value", "manual"] diff --git a/java/ql/lib/ext/ratpack.http.model.yml b/java/ql/lib/ext/ratpack.http.model.yml index 340d3d29905..acd2ddcf21f 100644 --- a/java/ql/lib/ext/ratpack.http.model.yml +++ b/java/ql/lib/ext/ratpack.http.model.yml @@ -17,13 +17,13 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["ratpack.http", "Headers", True, "asMultiValueMap", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["ratpack.http", "Headers", True, "get", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["ratpack.http", "Headers", True, "getAll", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["ratpack.http", "Headers", True, "getNames", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["ratpack.http", "TypedData", True, "getBuffer", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["ratpack.http", "TypedData", True, "getBytes", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["ratpack.http", "TypedData", True, "getContentType", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["ratpack.http", "TypedData", True, "getInputStream", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["ratpack.http", "TypedData", True, "getText", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["ratpack.http", "TypedData", True, "writeTo", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"] + - ["ratpack.http", "Headers", True, "asMultiValueMap", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["ratpack.http", "Headers", True, "get", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["ratpack.http", "Headers", True, "getAll", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["ratpack.http", "Headers", True, "getNames", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["ratpack.http", "TypedData", True, "getBuffer", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["ratpack.http", "TypedData", True, "getBytes", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["ratpack.http", "TypedData", True, "getContentType", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["ratpack.http", "TypedData", True, "getInputStream", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["ratpack.http", "TypedData", True, "getText", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["ratpack.http", "TypedData", True, "writeTo", "", "", "Argument[this]", "Argument[0]", "taint", "manual"] diff --git a/java/ql/lib/ext/ratpack.util.model.yml b/java/ql/lib/ext/ratpack.util.model.yml index 0510897c4c6..80b7113d355 100644 --- a/java/ql/lib/ext/ratpack.util.model.yml +++ b/java/ql/lib/ext/ratpack.util.model.yml @@ -3,42 +3,42 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["ratpack.util", "MultiValueMap", True, "asMultimap", "", "", "Argument[-1].MapKey", "ReturnValue.MapKey", "value", "manual"] - - ["ratpack.util", "MultiValueMap", True, "asMultimap", "", "", "Argument[-1].MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["ratpack.util", "MultiValueMap", True, "getAll", "", "", "Argument[-1].MapKey", "ReturnValue.MapKey", "value", "manual"] - - ["ratpack.util", "MultiValueMap", True, "getAll", "()", "", "Argument[-1].MapValue", "ReturnValue.MapValue.Element", "value", "manual"] - - ["ratpack.util", "MultiValueMap", True, "getAll", "(Object)", "", "Argument[-1].MapValue", "ReturnValue.Element", "value", "manual"] - - ["ratpack.util", "Pair", True, "getLeft", "", "", "Argument[-1].Field[ratpack.func.Pair.left]", "ReturnValue", "value", "manual"] - - ["ratpack.util", "Pair", True, "getRight", "", "", "Argument[-1].Field[ratpack.func.Pair.right]", "ReturnValue", "value", "manual"] - - ["ratpack.util", "Pair", True, "left", "()", "", "Argument[-1].Field[ratpack.func.Pair.left]", "ReturnValue", "value", "manual"] - - ["ratpack.util", "Pair", True, "left", "(Object)", "", "Argument[-1].Field[ratpack.func.Pair.right]", "ReturnValue.Field[ratpack.func.Pair.right]", "value", "manual"] + - ["ratpack.util", "MultiValueMap", True, "asMultimap", "", "", "Argument[this].MapKey", "ReturnValue.MapKey", "value", "manual"] + - ["ratpack.util", "MultiValueMap", True, "asMultimap", "", "", "Argument[this].MapValue", "ReturnValue.MapValue", "value", "manual"] + - ["ratpack.util", "MultiValueMap", True, "getAll", "", "", "Argument[this].MapKey", "ReturnValue.MapKey", "value", "manual"] + - ["ratpack.util", "MultiValueMap", True, "getAll", "()", "", "Argument[this].MapValue", "ReturnValue.MapValue.Element", "value", "manual"] + - ["ratpack.util", "MultiValueMap", True, "getAll", "(Object)", "", "Argument[this].MapValue", "ReturnValue.Element", "value", "manual"] + - ["ratpack.util", "Pair", True, "getLeft", "", "", "Argument[this].Field[ratpack.func.Pair.left]", "ReturnValue", "value", "manual"] + - ["ratpack.util", "Pair", True, "getRight", "", "", "Argument[this].Field[ratpack.func.Pair.right]", "ReturnValue", "value", "manual"] + - ["ratpack.util", "Pair", True, "left", "()", "", "Argument[this].Field[ratpack.func.Pair.left]", "ReturnValue", "value", "manual"] + - ["ratpack.util", "Pair", True, "left", "(Object)", "", "Argument[this].Field[ratpack.func.Pair.right]", "ReturnValue.Field[ratpack.func.Pair.right]", "value", "manual"] - ["ratpack.util", "Pair", True, "left", "(Object)", "", "Argument[0]", "ReturnValue.Field[ratpack.func.Pair.left]", "value", "manual"] # `map` maps over the `Pair` - - ["ratpack.util", "Pair", True, "map", "", "", "Argument[-1]", "Argument[0].Parameter[0]", "value", "manual"] + - ["ratpack.util", "Pair", True, "map", "", "", "Argument[this]", "Argument[0].Parameter[0]", "value", "manual"] - ["ratpack.util", "Pair", True, "map", "", "", "Argument[0].ReturnValue", "ReturnValue", "value", "manual"] # `mapLeft` & `mapRight` map over their respective fields - - ["ratpack.util", "Pair", True, "mapLeft", "", "", "Argument[-1].Field[ratpack.func.Pair.left]", "Argument[0].Parameter[0]", "value", "manual"] - - ["ratpack.util", "Pair", True, "mapLeft", "", "", "Argument[-1].Field[ratpack.func.Pair.right]", "ReturnValue.Field[ratpack.func.Pair.right]", "value", "manual"] + - ["ratpack.util", "Pair", True, "mapLeft", "", "", "Argument[this].Field[ratpack.func.Pair.left]", "Argument[0].Parameter[0]", "value", "manual"] + - ["ratpack.util", "Pair", True, "mapLeft", "", "", "Argument[this].Field[ratpack.func.Pair.right]", "ReturnValue.Field[ratpack.func.Pair.right]", "value", "manual"] - ["ratpack.util", "Pair", True, "mapLeft", "", "", "Argument[0].ReturnValue", "ReturnValue.Field[ratpack.func.Pair.left]", "value", "manual"] - - ["ratpack.util", "Pair", True, "mapRight", "", "", "Argument[-1].Field[ratpack.func.Pair.left]", "ReturnValue.Field[ratpack.func.Pair.left]", "value", "manual"] - - ["ratpack.util", "Pair", True, "mapRight", "", "", "Argument[-1].Field[ratpack.func.Pair.right]", "Argument[0].Parameter[0]", "value", "manual"] + - ["ratpack.util", "Pair", True, "mapRight", "", "", "Argument[this].Field[ratpack.func.Pair.left]", "ReturnValue.Field[ratpack.func.Pair.left]", "value", "manual"] + - ["ratpack.util", "Pair", True, "mapRight", "", "", "Argument[this].Field[ratpack.func.Pair.right]", "Argument[0].Parameter[0]", "value", "manual"] - ["ratpack.util", "Pair", True, "mapRight", "", "", "Argument[0].ReturnValue", "ReturnValue.Field[ratpack.func.Pair.right]", "value", "manual"] # `nestLeft` Pair<A, B>.nestLeft(C) -> Pair<Pair<C, A>, B> - - ["ratpack.util", "Pair", True, "nestLeft", "(Object)", "", "Argument[-1].Field[ratpack.func.Pair.left]", "ReturnValue.Field[ratpack.func.Pair.left].Field[ratpack.func.Pair.right]", "value", "manual"] - - ["ratpack.util", "Pair", True, "nestLeft", "(Object)", "", "Argument[-1].Field[ratpack.func.Pair.right]", "ReturnValue.Field[ratpack.func.Pair.right]", "value", "manual"] + - ["ratpack.util", "Pair", True, "nestLeft", "(Object)", "", "Argument[this].Field[ratpack.func.Pair.left]", "ReturnValue.Field[ratpack.func.Pair.left].Field[ratpack.func.Pair.right]", "value", "manual"] + - ["ratpack.util", "Pair", True, "nestLeft", "(Object)", "", "Argument[this].Field[ratpack.func.Pair.right]", "ReturnValue.Field[ratpack.func.Pair.right]", "value", "manual"] - ["ratpack.util", "Pair", True, "nestLeft", "(Object)", "", "Argument[0]", "ReturnValue.Field[ratpack.func.Pair.left].Field[ratpack.func.Pair.left]", "value", "manual"] # `nestRight` Pair<A, B>.nestRight(C) -> Pair<A, Pair<C, B>> - - ["ratpack.util", "Pair", True, "nestRight", "(Object)", "", "Argument[-1].Field[ratpack.func.Pair.left]", "ReturnValue.Field[ratpack.func.Pair.left]", "value", "manual"] - - ["ratpack.util", "Pair", True, "nestRight", "(Object)", "", "Argument[-1].Field[ratpack.func.Pair.right]", "ReturnValue.Field[ratpack.func.Pair.right].Field[ratpack.func.Pair.right]", "value", "manual"] + - ["ratpack.util", "Pair", True, "nestRight", "(Object)", "", "Argument[this].Field[ratpack.func.Pair.left]", "ReturnValue.Field[ratpack.func.Pair.left]", "value", "manual"] + - ["ratpack.util", "Pair", True, "nestRight", "(Object)", "", "Argument[this].Field[ratpack.func.Pair.right]", "ReturnValue.Field[ratpack.func.Pair.right].Field[ratpack.func.Pair.right]", "value", "manual"] - ["ratpack.util", "Pair", True, "nestRight", "(Object)", "", "Argument[0]", "ReturnValue.Field[ratpack.func.Pair.right].Field[ratpack.func.Pair.left]", "value", "manual"] - ["ratpack.util", "Pair", True, "of", "", "", "Argument[0]", "ReturnValue.Field[ratpack.func.Pair.left]", "value", "manual"] - ["ratpack.util", "Pair", True, "of", "", "", "Argument[1]", "ReturnValue.Field[ratpack.func.Pair.right]", "value", "manual"] - ["ratpack.util", "Pair", True, "pair", "", "", "Argument[0]", "ReturnValue.Field[ratpack.func.Pair.left]", "value", "manual"] - ["ratpack.util", "Pair", True, "pair", "", "", "Argument[1]", "ReturnValue.Field[ratpack.func.Pair.right]", "value", "manual"] - - ["ratpack.util", "Pair", True, "pushLeft", "(Object)", "", "Argument[-1]", "ReturnValue.Field[ratpack.func.Pair.right]", "value", "manual"] + - ["ratpack.util", "Pair", True, "pushLeft", "(Object)", "", "Argument[this]", "ReturnValue.Field[ratpack.func.Pair.right]", "value", "manual"] - ["ratpack.util", "Pair", True, "pushLeft", "(Object)", "", "Argument[0]", "ReturnValue.Field[ratpack.func.Pair.left]", "value", "manual"] - - ["ratpack.util", "Pair", True, "pushRight", "(Object)", "", "Argument[-1]", "ReturnValue.Field[ratpack.func.Pair.left]", "value", "manual"] + - ["ratpack.util", "Pair", True, "pushRight", "(Object)", "", "Argument[this]", "ReturnValue.Field[ratpack.func.Pair.left]", "value", "manual"] - ["ratpack.util", "Pair", True, "pushRight", "(Object)", "", "Argument[0]", "ReturnValue.Field[ratpack.func.Pair.right]", "value", "manual"] - - ["ratpack.util", "Pair", True, "right", "()", "", "Argument[-1].Field[ratpack.func.Pair.right]", "ReturnValue", "value", "manual"] - - ["ratpack.util", "Pair", True, "right", "(Object)", "", "Argument[-1].Field[ratpack.func.Pair.left]", "ReturnValue.Field[ratpack.func.Pair.left]", "value", "manual"] + - ["ratpack.util", "Pair", True, "right", "()", "", "Argument[this].Field[ratpack.func.Pair.right]", "ReturnValue", "value", "manual"] + - ["ratpack.util", "Pair", True, "right", "(Object)", "", "Argument[this].Field[ratpack.func.Pair.left]", "ReturnValue.Field[ratpack.func.Pair.left]", "value", "manual"] - ["ratpack.util", "Pair", True, "right", "(Object)", "", "Argument[0]", "ReturnValue.Field[ratpack.func.Pair.right]", "value", "manual"] diff --git a/java/ql/src/utils/modelgenerator/internal/CaptureSummaryFlow.qll b/java/ql/src/utils/modelgenerator/internal/CaptureSummaryFlow.qll index 04e87d9a385..b859fef0ebb 100644 --- a/java/ql/src/utils/modelgenerator/internal/CaptureSummaryFlow.qll +++ b/java/ql/src/utils/modelgenerator/internal/CaptureSummaryFlow.qll @@ -37,8 +37,8 @@ private class Activate extends ActiveConfiguration { * ``` * Captured Models: * ``` - * p;Foo;true;returnsTainted;;Argument[-1];ReturnValue;taint - * p;Foo;true;putsTaintIntoParameter;(List);Argument[-1];Argument[0];taint + * p;Foo;true;returnsTainted;;Argument[this];ReturnValue;taint + * p;Foo;true;putsTaintIntoParameter;(List);Argument[this];Argument[0];taint * ``` * * ```java @@ -49,7 +49,7 @@ private class Activate extends ActiveConfiguration { * } * ``` * Captured Model: - * ```p;Foo;true;doSomething;(String);Argument[0];Argument[-1];taint``` + * ```p;Foo;true;doSomething;(String);Argument[0];Argument[this];taint``` * * ```java * public class Foo { diff --git a/java/ql/test/kotlin/library-tests/dataflow/notnullexpr/test.ext.yml b/java/ql/test/kotlin/library-tests/dataflow/notnullexpr/test.ext.yml index 7e049c5de11..589c787bf9a 100644 --- a/java/ql/test/kotlin/library-tests/dataflow/notnullexpr/test.ext.yml +++ b/java/ql/test/kotlin/library-tests/dataflow/notnullexpr/test.ext.yml @@ -3,4 +3,4 @@ extensions: pack: codeql/java-tests extensible: summaryModel data: - - ["", "Uri", False, "getQueryParameter", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "Uri", False, "getQueryParameter", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] diff --git a/java/ql/test/kotlin/library-tests/dataflow/whenexpr/test.ext.yml b/java/ql/test/kotlin/library-tests/dataflow/whenexpr/test.ext.yml index 7e049c5de11..589c787bf9a 100644 --- a/java/ql/test/kotlin/library-tests/dataflow/whenexpr/test.ext.yml +++ b/java/ql/test/kotlin/library-tests/dataflow/whenexpr/test.ext.yml @@ -3,4 +3,4 @@ extensions: pack: codeql/java-tests extensible: summaryModel data: - - ["", "Uri", False, "getQueryParameter", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["", "Uri", False, "getQueryParameter", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] diff --git a/java/ql/test/library-tests/dataflow/collections/B.java b/java/ql/test/library-tests/dataflow/collections/B.java index 5b1f4a7cc92..0bb2b74d749 100644 --- a/java/ql/test/library-tests/dataflow/collections/B.java +++ b/java/ql/test/library-tests/dataflow/collections/B.java @@ -49,67 +49,67 @@ public class B { void foo() throws InterruptedException { { - // "java.util;Map$Entry;true;getKey;;;MapKey of Argument[-1];ReturnValue;value;manual", + // "java.util;Map$Entry;true;getKey;;;MapKey of Argument[this];ReturnValue;value;manual", Object out = null; Object in = storeMapKeyEntry(source()); out = ((Map.Entry)in).getKey(); sink(out); // $ hasValueFlow } { - // "java.util;Map$Entry;true;getValue;;;MapValue of Argument[-1];ReturnValue;value;manual", + // "java.util;Map$Entry;true;getValue;;;MapValue of Argument[this];ReturnValue;value;manual", Object out = null; Object in = storeMapValueEntry(source()); out = ((Map.Entry)in).getValue(); sink(out); // $ hasValueFlow } { - // "java.util;Map$Entry;true;setValue;;;MapValue of Argument[-1];ReturnValue;value;manual", + // "java.util;Map$Entry;true;setValue;;;MapValue of Argument[this];ReturnValue;value;manual", Object out = null; Object in = storeMapValueEntry(source()); out = ((Map.Entry)in).setValue(null); sink(out); // $ hasValueFlow } { - // "java.util;Map$Entry;true;setValue;;;Argument[0];MapValue of Argument[-1];value;manual", + // "java.util;Map$Entry;true;setValue;;;Argument[0];MapValue of Argument[this];value;manual", Map.Entry out = null; Object in = source(); out.setValue(in); sink(readMapValue(out)); // $ hasValueFlow } { - // "java.lang;Iterable;true;iterator;();;Element of Argument[-1];Element of ReturnValue;value;manual", + // "java.lang;Iterable;true;iterator;();;Element of Argument[this];Element of ReturnValue;value;manual", Iterator out = null; Iterable in = storeElementList(source()); out = in.iterator(); sink(readElement(out)); // $ hasValueFlow } { - // "java.lang;Iterable;true;spliterator;();;Element of Argument[-1];Element of ReturnValue;value;manual", + // "java.lang;Iterable;true;spliterator;();;Element of Argument[this];Element of ReturnValue;value;manual", Spliterator out = null; Iterable in = storeElementList(source()); out = in.spliterator(); sink(readElement(out)); // $ hasValueFlow } { - // "java.util;Iterator;true;next;;;Element of Argument[-1];ReturnValue;value;manual", + // "java.util;Iterator;true;next;;;Element of Argument[this];ReturnValue;value;manual", Object out = null; Iterator in = storeElementListIterator(source()); out = in.next(); sink(out); // $ hasValueFlow } { - // "java.util;ListIterator;true;previous;;;Element of Argument[-1];ReturnValue;value;manual", + // "java.util;ListIterator;true;previous;;;Element of Argument[this];ReturnValue;value;manual", Object out = null; ListIterator in = storeElementListIterator(source()); out = in.previous(); sink(out); // $ hasValueFlow } { - // "java.util;ListIterator;true;add;(Object);;Argument[0];Element of Argument[-1];value;manual", + // "java.util;ListIterator;true;add;(Object);;Argument[0];Element of Argument[this];value;manual", ListIterator out = null; Object in = source(); out.add(in); sink(readElement(out)); // $ hasValueFlow } { - // "java.util;ListIterator;true;set;(Object);;Argument[0];Element of Argument[-1];value;manual", + // "java.util;ListIterator;true;set;(Object);;Argument[0];Element of Argument[this];value;manual", ListIterator out = null; Object in = source(); out.set(in); sink(readElement(out)); // $ hasValueFlow } { - // "java.util;Enumeration;true;asIterator;;;Element of Argument[-1];Element of ReturnValue;value;manual", + // "java.util;Enumeration;true;asIterator;;;Element of Argument[this];Element of ReturnValue;value;manual", Iterator out = null; Enumeration in = storeElementEnumeration(source()); out = in.asIterator(); sink(readElement(out)); // $ hasValueFlow } { - // "java.util;Enumeration;true;nextElement;;;Element of Argument[-1];ReturnValue;value;manual", + // "java.util;Enumeration;true;nextElement;;;Element of Argument[this];ReturnValue;value;manual", Object out = null; Enumeration in = storeElementEnumeration(source()); out = in.nextElement(); sink(out); // $ hasValueFlow } { - // "java.util;Map;true;computeIfAbsent;;;MapValue of Argument[-1];ReturnValue;value;manual", + // "java.util;Map;true;computeIfAbsent;;;MapValue of Argument[this];ReturnValue;value;manual", Object out = null; Object in = storeMapValue(source()); out = ((Map)in).computeIfAbsent(null,null); sink(out); // $ hasValueFlow } @@ -118,27 +118,27 @@ public class B { Object out = ((Map)null).computeIfAbsent(null,k -> source()); sink(out); // $ hasValueFlow } { - // "java.util;Map;true;computeIfAbsent;;;ReturnValue of Argument[1];MapValue of Argument[-1];value;manual", + // "java.util;Map;true;computeIfAbsent;;;ReturnValue of Argument[1];MapValue of Argument[this];value;manual", Map out = null; out.computeIfAbsent(null,k -> source()); sink(readMapValue(out)); // $ hasValueFlow } { - // "java.util;Map;true;entrySet;;;MapValue of Argument[-1];MapValue of Element of ReturnValue;value;manual", + // "java.util;Map;true;entrySet;;;MapValue of Argument[this];MapValue of Element of ReturnValue;value;manual", Set<Map.Entry> out = null; Object in = storeMapValue(source()); out = ((Map)in).entrySet(); sink(readMapValue(readElement(out))); // $ hasValueFlow } { - // "java.util;Map;true;entrySet;;;MapKey of Argument[-1];MapKey of Element of ReturnValue;value;manual", + // "java.util;Map;true;entrySet;;;MapKey of Argument[this];MapKey of Element of ReturnValue;value;manual", Set<Map.Entry> out = null; Object in = storeMapKey(source()); out = ((Map)in).entrySet(); sink(readMapKey(readElement(out))); // $ hasValueFlow } { - // "java.util;Map;true;get;;;MapValue of Argument[-1];ReturnValue;value;manual", + // "java.util;Map;true;get;;;MapValue of Argument[this];ReturnValue;value;manual", Object out = null; Object in = storeMapValue(source()); out = ((Map)in).get(null); sink(out); // $ hasValueFlow } { - // "java.util;Map;true;getOrDefault;;;MapValue of Argument[-1];ReturnValue;value;manual", + // "java.util;Map;true;getOrDefault;;;MapValue of Argument[this];ReturnValue;value;manual", Object out = null; Object in = storeMapValue(source()); out = ((Map)in).getOrDefault(null,null); sink(out); // $ hasValueFlow } @@ -148,662 +148,662 @@ public class B { Object in = source(); out = ((Map)null).getOrDefault(null,in); sink(out); // $ hasValueFlow } { - // "java.util;Map;true;put;;;MapValue of Argument[-1];ReturnValue;value;manual", + // "java.util;Map;true;put;;;MapValue of Argument[this];ReturnValue;value;manual", Object out = null; Object in = storeMapValue(source()); out = ((Map)in).put(null,null); sink(out); // $ hasValueFlow } { - // "java.util;Map;true;put;;;Argument[0];MapKey of Argument[-1];value;manual", + // "java.util;Map;true;put;;;Argument[0];MapKey of Argument[this];value;manual", Map out = null; Object in = source(); out.put(in,null); sink(readMapKey(out)); // $ hasValueFlow } { - // "java.util;Map;true;put;;;Argument[1];MapValue of Argument[-1];value;manual", + // "java.util;Map;true;put;;;Argument[1];MapValue of Argument[this];value;manual", Map out = null; Object in = source(); out.put(null,in); sink(readMapValue(out)); // $ hasValueFlow } { - // "java.util;Map;true;putIfAbsent;;;MapValue of Argument[-1];ReturnValue;value;manual", + // "java.util;Map;true;putIfAbsent;;;MapValue of Argument[this];ReturnValue;value;manual", Object out = null; Object in = storeMapValue(source()); out = ((Map)in).putIfAbsent(null,null); sink(out); // $ hasValueFlow } { - // "java.util;Map;true;putIfAbsent;;;Argument[0];MapKey of Argument[-1];value;manual", + // "java.util;Map;true;putIfAbsent;;;Argument[0];MapKey of Argument[this];value;manual", Map out = null; Object in = source(); out.putIfAbsent(in,null); sink(readMapKey(out)); // $ hasValueFlow } { - // "java.util;Map;true;putIfAbsent;;;Argument[1];MapValue of Argument[-1];value;manual", + // "java.util;Map;true;putIfAbsent;;;Argument[1];MapValue of Argument[this];value;manual", Map out = null; Object in = source(); out.putIfAbsent(null,in); sink(readMapValue(out)); // $ hasValueFlow } { - // "java.util;Map;true;remove;(Object);;MapValue of Argument[-1];ReturnValue;value;manual", + // "java.util;Map;true;remove;(Object);;MapValue of Argument[this];ReturnValue;value;manual", Object out = null; Object in = storeMapValue(source()); out = ((Map)in).remove(null); sink(out); // $ hasValueFlow } { - // "java.util;Map;true;replace;(Object,Object);;MapValue of Argument[-1];ReturnValue;value;manual", + // "java.util;Map;true;replace;(Object,Object);;MapValue of Argument[this];ReturnValue;value;manual", Object out = null; Object in = storeMapValue(source()); out = ((Map)in).replace(null,null); sink(out); // $ hasValueFlow } { - // "java.util;Map;true;replace;(Object,Object);;Argument[0];MapKey of Argument[-1];value;manual", + // "java.util;Map;true;replace;(Object,Object);;Argument[0];MapKey of Argument[this];value;manual", Map out = null; Object in = source(); out.replace(in,null); sink(readMapKey(out)); // $ hasValueFlow } { - // "java.util;Map;true;replace;(Object,Object);;Argument[1];MapValue of Argument[-1];value;manual", + // "java.util;Map;true;replace;(Object,Object);;Argument[1];MapValue of Argument[this];value;manual", Map out = null; Object in = source(); out.replace(null,in); sink(readMapValue(out)); // $ hasValueFlow } { - // "java.util;Map;true;replace;(Object,Object,Object);;Argument[0];MapKey of Argument[-1];value;manual", + // "java.util;Map;true;replace;(Object,Object,Object);;Argument[0];MapKey of Argument[this];value;manual", Map out = null; Object in = source(); out.replace(in,null,null); sink(readMapKey(out)); // $ hasValueFlow } { - // "java.util;Map;true;replace;(Object,Object,Object);;Argument[2];MapValue of Argument[-1];value;manual", + // "java.util;Map;true;replace;(Object,Object,Object);;Argument[2];MapValue of Argument[this];value;manual", Map out = null; Object in = source(); out.replace(null,null,in); sink(readMapValue(out)); // $ hasValueFlow } { - // "java.util;Map;true;keySet;();;MapKey of Argument[-1];Element of ReturnValue;value;manual", + // "java.util;Map;true;keySet;();;MapKey of Argument[this];Element of ReturnValue;value;manual", Set out = null; Object in = storeMapKey(source()); out = ((Map)in).keySet(); sink(readElement(out)); // $ hasValueFlow } { - // "java.util;Map;true;values;();;MapValue of Argument[-1];Element of ReturnValue;value;manual", + // "java.util;Map;true;values;();;MapValue of Argument[this];Element of ReturnValue;value;manual", Iterable out = null; Object in = storeMapValue(source()); out = ((Map)in).values(); sink(readElement(out)); // $ hasValueFlow } { - // "java.util;Map;true;merge;(Object,Object,BiFunction);;Argument[1];MapValue of Argument[-1];value;manual", + // "java.util;Map;true;merge;(Object,Object,BiFunction);;Argument[1];MapValue of Argument[this];value;manual", Map out = null; Object in = source(); out.merge(null,in,null); sink(readMapValue(out)); // $ hasValueFlow } { - // "java.util;Map;true;putAll;(Map);;MapKey of Argument[0];MapKey of Argument[-1];value;manual", + // "java.util;Map;true;putAll;(Map);;MapKey of Argument[0];MapKey of Argument[this];value;manual", Map out = null; Object in = storeMapKey(source()); out.putAll((Map)in); sink(readMapKey(out)); // $ hasValueFlow } { - // "java.util;Map;true;putAll;(Map);;MapValue of Argument[0];MapValue of Argument[-1];value;manual", + // "java.util;Map;true;putAll;(Map);;MapValue of Argument[0];MapValue of Argument[this];value;manual", Map out = null; Object in = storeMapValue(source()); out.putAll((Map)in); sink(readMapValue(out)); // $ hasValueFlow } { - // "java.util;Collection;true;parallelStream;();;Element of Argument[-1];Element of ReturnValue;value;manual", + // "java.util;Collection;true;parallelStream;();;Element of Argument[this];Element of ReturnValue;value;manual", Stream out = null; Collection in = storeElementList(source()); out = in.parallelStream(); sink(readElement(out)); // $ hasValueFlow } { - // "java.util;Collection;true;stream;();;Element of Argument[-1];Element of ReturnValue;value;manual", + // "java.util;Collection;true;stream;();;Element of Argument[this];Element of ReturnValue;value;manual", Stream out = null; Collection in = storeElementList(source()); out = in.stream(); sink(readElement(out)); // $ hasValueFlow } { - // "java.util;Collection;true;toArray;;;Element of Argument[-1];ArrayElement of ReturnValue;value;manual", + // "java.util;Collection;true;toArray;;;Element of Argument[this];ArrayElement of ReturnValue;value;manual", Object[] out = null; Collection in = storeElementList(source()); out = in.toArray(); sink(readArrayElement(out)); // $ hasValueFlow } { - // "java.util;Collection;true;toArray;;;Element of Argument[-1];ArrayElement of Argument[0];value;manual", + // "java.util;Collection;true;toArray;;;Element of Argument[this];ArrayElement of Argument[0];value;manual", Object[] out = null; Collection in = storeElementList(source()); in.toArray(out); sink(readArrayElement(out)); // $ hasValueFlow } { - // "java.util;Collection;true;add;;;Argument[0];Element of Argument[-1];value;manual", + // "java.util;Collection;true;add;;;Argument[0];Element of Argument[this];value;manual", Collection out = null; Object in = source(); out.add(in); sink(readElement(out)); // $ hasValueFlow } { - // "java.util;Collection;true;addAll;;;Element of Argument[0];Element of Argument[-1];value;manual", + // "java.util;Collection;true;addAll;;;Element of Argument[0];Element of Argument[this];value;manual", Collection out = null; Collection in = storeElementList(source()); out.addAll(in); sink(readElement(out)); // $ hasValueFlow } { - // "java.util;List;true;get;(int);;Element of Argument[-1];ReturnValue;value;manual", + // "java.util;List;true;get;(int);;Element of Argument[this];ReturnValue;value;manual", Object out = null; List in = storeElementList(source()); out = in.get(0); sink(out); // $ hasValueFlow } { - // "java.util;List;true;listIterator;;;Element of Argument[-1];Element of ReturnValue;value;manual", + // "java.util;List;true;listIterator;;;Element of Argument[this];Element of ReturnValue;value;manual", ListIterator out = null; List in = storeElementList(source()); out = in.listIterator(); sink(readElement(out)); // $ hasValueFlow } { - // "java.util;List;true;remove;(int);;Element of Argument[-1];ReturnValue;value;manual", + // "java.util;List;true;remove;(int);;Element of Argument[this];ReturnValue;value;manual", Object out = null; List in = storeElementList(source()); out = in.remove(0); sink(out); // $ hasValueFlow } { - // "java.util;List;true;set;(int,Object);;Element of Argument[-1];ReturnValue;value;manual", + // "java.util;List;true;set;(int,Object);;Element of Argument[this];ReturnValue;value;manual", Object out = null; List in = storeElementList(source()); out = in.set(0,null); sink(out); // $ hasValueFlow } { - // "java.util;List;true;set;(int,Object);;Argument[1];Element of Argument[-1];value;manual", + // "java.util;List;true;set;(int,Object);;Argument[1];Element of Argument[this];value;manual", List out = null; Object in = source(); out.set(0,in); sink(readElement(out)); // $ hasValueFlow } { - // "java.util;List;true;subList;;;Element of Argument[-1];Element of ReturnValue;value;manual", + // "java.util;List;true;subList;;;Element of Argument[this];Element of ReturnValue;value;manual", List out = null; List in = storeElementList(source()); out = in.subList(0,0); sink(readElement(out)); // $ hasValueFlow } { - // "java.util;List;true;add;(int,Object);;Argument[1];Element of Argument[-1];value;manual", + // "java.util;List;true;add;(int,Object);;Argument[1];Element of Argument[this];value;manual", List out = null; Object in = source(); out.add(0,in); sink(readElement(out)); // $ hasValueFlow } { - // "java.util;List;true;addAll;(int,Collection);;Element of Argument[1];Element of Argument[-1];value;manual", + // "java.util;List;true;addAll;(int,Collection);;Element of Argument[1];Element of Argument[this];value;manual", List out = null; Collection in = storeElementList(source()); out.addAll(0,in); sink(readElement(out)); // $ hasValueFlow } { - // "java.util;Vector;true;elementAt;(int);;Element of Argument[-1];ReturnValue;value;manual", + // "java.util;Vector;true;elementAt;(int);;Element of Argument[this];ReturnValue;value;manual", Object out = null; Vector in = storeElementStack(source()); out = in.elementAt(0); sink(out); // $ hasValueFlow } { - // "java.util;Vector;true;elements;();;Element of Argument[-1];Element of ReturnValue;value;manual", + // "java.util;Vector;true;elements;();;Element of Argument[this];Element of ReturnValue;value;manual", Enumeration out = null; Vector in = storeElementStack(source()); out = in.elements(); sink(readElement(out)); // $ hasValueFlow } { - // "java.util;Vector;true;firstElement;();;Element of Argument[-1];ReturnValue;value;manual", + // "java.util;Vector;true;firstElement;();;Element of Argument[this];ReturnValue;value;manual", Object out = null; Vector in = storeElementStack(source()); out = in.firstElement(); sink(out); // $ hasValueFlow } { - // "java.util;Vector;true;lastElement;();;Element of Argument[-1];ReturnValue;value;manual", + // "java.util;Vector;true;lastElement;();;Element of Argument[this];ReturnValue;value;manual", Object out = null; Vector in = storeElementStack(source()); out = in.lastElement(); sink(out); // $ hasValueFlow } { - // "java.util;Vector;true;addElement;(Object);;Argument[0];Element of Argument[-1];value;manual", + // "java.util;Vector;true;addElement;(Object);;Argument[0];Element of Argument[this];value;manual", Vector out = null; Object in = source(); out.addElement(in); sink(readElement(out)); // $ hasValueFlow } { - // "java.util;Vector;true;insertElementAt;(Object,int);;Argument[0];Element of Argument[-1];value;manual", + // "java.util;Vector;true;insertElementAt;(Object,int);;Argument[0];Element of Argument[this];value;manual", Vector out = null; Object in = source(); out.insertElementAt(in,0); sink(readElement(out)); // $ hasValueFlow } { - // "java.util;Vector;true;setElementAt;(Object,int);;Argument[0];Element of Argument[-1];value;manual", + // "java.util;Vector;true;setElementAt;(Object,int);;Argument[0];Element of Argument[this];value;manual", Vector out = null; Object in = source(); out.setElementAt(in,0); sink(readElement(out)); // $ hasValueFlow } { - // "java.util;Vector;true;copyInto;(Object[]);;Element of Argument[-1];ArrayElement of Argument[0];value;manual", + // "java.util;Vector;true;copyInto;(Object[]);;Element of Argument[this];ArrayElement of Argument[0];value;manual", Object[] out = null; Vector in = storeElementStack(source()); in.copyInto(out); sink(readArrayElement(out)); // $ hasValueFlow } { - // "java.util;Stack;true;peek;();;Element of Argument[-1];ReturnValue;value;manual", + // "java.util;Stack;true;peek;();;Element of Argument[this];ReturnValue;value;manual", Object out = null; Stack in = storeElementStack(source()); out = in.peek(); sink(out); // $ hasValueFlow } { - // "java.util;Stack;true;pop;();;Element of Argument[-1];ReturnValue;value;manual", + // "java.util;Stack;true;pop;();;Element of Argument[this];ReturnValue;value;manual", Object out = null; Stack in = storeElementStack(source()); out = in.pop(); sink(out); // $ hasValueFlow } { - // "java.util;Stack;true;push;(Object);;Argument[0];Element of Argument[-1];value;manual", + // "java.util;Stack;true;push;(Object);;Argument[0];Element of Argument[this];value;manual", Stack out = null; Object in = source(); out.push(in); sink(readElement(out)); // $ hasValueFlow } { - // "java.util;Queue;true;element;();;Element of Argument[-1];ReturnValue;value;manual", + // "java.util;Queue;true;element;();;Element of Argument[this];ReturnValue;value;manual", Object out = null; Queue in = storeElementBlockingDeque(source()); out = in.element(); sink(out); // $ hasValueFlow } { - // "java.util;Queue;true;peek;();;Element of Argument[-1];ReturnValue;value;manual", + // "java.util;Queue;true;peek;();;Element of Argument[this];ReturnValue;value;manual", Object out = null; Queue in = storeElementBlockingDeque(source()); out = in.peek(); sink(out); // $ hasValueFlow } { - // "java.util;Queue;true;poll;();;Element of Argument[-1];ReturnValue;value;manual", + // "java.util;Queue;true;poll;();;Element of Argument[this];ReturnValue;value;manual", Object out = null; Queue in = storeElementBlockingDeque(source()); out = in.poll(); sink(out); // $ hasValueFlow } { - // "java.util;Queue;true;remove;();;Element of Argument[-1];ReturnValue;value;manual", + // "java.util;Queue;true;remove;();;Element of Argument[this];ReturnValue;value;manual", Object out = null; Queue in = storeElementBlockingDeque(source()); out = in.remove(); sink(out); // $ hasValueFlow } { - // "java.util;Queue;true;offer;(Object);;Argument[0];Element of Argument[-1];value;manual", + // "java.util;Queue;true;offer;(Object);;Argument[0];Element of Argument[this];value;manual", Queue out = null; Object in = source(); out.offer(in); sink(readElement(out)); // $ hasValueFlow } { - // "java.util;Deque;true;descendingIterator;();;Element of Argument[-1];Element of ReturnValue;value;manual", + // "java.util;Deque;true;descendingIterator;();;Element of Argument[this];Element of ReturnValue;value;manual", Iterator out = null; Deque in = storeElementBlockingDeque(source()); out = in.descendingIterator(); sink(readElement(out)); // $ hasValueFlow } { - // "java.util;Deque;true;getFirst;();;Element of Argument[-1];ReturnValue;value;manual", + // "java.util;Deque;true;getFirst;();;Element of Argument[this];ReturnValue;value;manual", Object out = null; Deque in = storeElementBlockingDeque(source()); out = in.getFirst(); sink(out); // $ hasValueFlow } { - // "java.util;Deque;true;getLast;();;Element of Argument[-1];ReturnValue;value;manual", + // "java.util;Deque;true;getLast;();;Element of Argument[this];ReturnValue;value;manual", Object out = null; Deque in = storeElementBlockingDeque(source()); out = in.getLast(); sink(out); // $ hasValueFlow } { - // "java.util;Deque;true;peekFirst;();;Element of Argument[-1];ReturnValue;value;manual", + // "java.util;Deque;true;peekFirst;();;Element of Argument[this];ReturnValue;value;manual", Object out = null; Deque in = storeElementBlockingDeque(source()); out = in.peekFirst(); sink(out); // $ hasValueFlow } { - // "java.util;Deque;true;peekLast;();;Element of Argument[-1];ReturnValue;value;manual", + // "java.util;Deque;true;peekLast;();;Element of Argument[this];ReturnValue;value;manual", Object out = null; Deque in = storeElementBlockingDeque(source()); out = in.peekLast(); sink(out); // $ hasValueFlow } { - // "java.util;Deque;true;pollFirst;();;Element of Argument[-1];ReturnValue;value;manual", + // "java.util;Deque;true;pollFirst;();;Element of Argument[this];ReturnValue;value;manual", Object out = null; Deque in = storeElementBlockingDeque(source()); out = in.pollFirst(); sink(out); // $ hasValueFlow } { - // "java.util;Deque;true;pollLast;();;Element of Argument[-1];ReturnValue;value;manual", + // "java.util;Deque;true;pollLast;();;Element of Argument[this];ReturnValue;value;manual", Object out = null; Deque in = storeElementBlockingDeque(source()); out = in.pollLast(); sink(out); // $ hasValueFlow } { - // "java.util;Deque;true;pop;();;Element of Argument[-1];ReturnValue;value;manual", + // "java.util;Deque;true;pop;();;Element of Argument[this];ReturnValue;value;manual", Object out = null; Deque in = storeElementBlockingDeque(source()); out = in.pop(); sink(out); // $ hasValueFlow } { - // "java.util;Deque;true;removeFirst;();;Element of Argument[-1];ReturnValue;value;manual", + // "java.util;Deque;true;removeFirst;();;Element of Argument[this];ReturnValue;value;manual", Object out = null; Deque in = storeElementBlockingDeque(source()); out = in.removeFirst(); sink(out); // $ hasValueFlow } { - // "java.util;Deque;true;removeLast;();;Element of Argument[-1];ReturnValue;value;manual", + // "java.util;Deque;true;removeLast;();;Element of Argument[this];ReturnValue;value;manual", Object out = null; Deque in = storeElementBlockingDeque(source()); out = in.removeLast(); sink(out); // $ hasValueFlow } { - // "java.util;Deque;true;push;(Object);;Argument[0];Element of Argument[-1];value;manual", + // "java.util;Deque;true;push;(Object);;Argument[0];Element of Argument[this];value;manual", Deque out = null; Object in = source(); out.push(in); sink(readElement(out)); // $ hasValueFlow } { - // "java.util;Deque;true;offerLast;(Object);;Argument[0];Element of Argument[-1];value;manual", + // "java.util;Deque;true;offerLast;(Object);;Argument[0];Element of Argument[this];value;manual", Deque out = null; Object in = source(); out.offerLast(in); sink(readElement(out)); // $ hasValueFlow } { - // "java.util;Deque;true;offerFirst;(Object);;Argument[0];Element of Argument[-1];value;manual", + // "java.util;Deque;true;offerFirst;(Object);;Argument[0];Element of Argument[this];value;manual", Deque out = null; Object in = source(); out.offerFirst(in); sink(readElement(out)); // $ hasValueFlow } { - // "java.util;Deque;true;addLast;(Object);;Argument[0];Element of Argument[-1];value;manual", + // "java.util;Deque;true;addLast;(Object);;Argument[0];Element of Argument[this];value;manual", Deque out = null; Object in = source(); out.addLast(in); sink(readElement(out)); // $ hasValueFlow } { - // "java.util;Deque;true;addFirst;(Object);;Argument[0];Element of Argument[-1];value;manual", + // "java.util;Deque;true;addFirst;(Object);;Argument[0];Element of Argument[this];value;manual", Deque out = null; Object in = source(); out.addFirst(in); sink(readElement(out)); // $ hasValueFlow } { - // "java.util.concurrent;BlockingDeque;true;pollFirst;(long,TimeUnit);;Element of Argument[-1];ReturnValue;value;manual", + // "java.util.concurrent;BlockingDeque;true;pollFirst;(long,TimeUnit);;Element of Argument[this];ReturnValue;value;manual", Object out = null; BlockingDeque in = storeElementBlockingDeque(source()); out = in.pollFirst(0,null); sink(out); // $ hasValueFlow } { - // "java.util.concurrent;BlockingDeque;true;pollLast;(long,TimeUnit);;Element of Argument[-1];ReturnValue;value;manual", + // "java.util.concurrent;BlockingDeque;true;pollLast;(long,TimeUnit);;Element of Argument[this];ReturnValue;value;manual", Object out = null; BlockingDeque in = storeElementBlockingDeque(source()); out = in.pollLast(0,null); sink(out); // $ hasValueFlow } { - // "java.util.concurrent;BlockingDeque;true;takeFirst;();;Element of Argument[-1];ReturnValue;value;manual", + // "java.util.concurrent;BlockingDeque;true;takeFirst;();;Element of Argument[this];ReturnValue;value;manual", Object out = null; BlockingDeque in = storeElementBlockingDeque(source()); out = in.takeFirst(); sink(out); // $ hasValueFlow } { - // "java.util.concurrent;BlockingDeque;true;takeLast;();;Element of Argument[-1];ReturnValue;value;manual", + // "java.util.concurrent;BlockingDeque;true;takeLast;();;Element of Argument[this];ReturnValue;value;manual", Object out = null; BlockingDeque in = storeElementBlockingDeque(source()); out = in.takeLast(); sink(out); // $ hasValueFlow } { - // "java.util.concurrent;BlockingQueue;true;poll;(long,TimeUnit);;Element of Argument[-1];ReturnValue;value;manual", + // "java.util.concurrent;BlockingQueue;true;poll;(long,TimeUnit);;Element of Argument[this];ReturnValue;value;manual", Object out = null; BlockingQueue in = storeElementBlockingDeque(source()); out = in.poll(0,null); sink(out); // $ hasValueFlow } { - // "java.util.concurrent;BlockingQueue;true;take;();;Element of Argument[-1];ReturnValue;value;manual", + // "java.util.concurrent;BlockingQueue;true;take;();;Element of Argument[this];ReturnValue;value;manual", Object out = null; BlockingQueue in = storeElementBlockingDeque(source()); out = in.take(); sink(out); // $ hasValueFlow } { - // "java.util.concurrent;BlockingQueue;true;offer;(Object,long,TimeUnit);;Argument[0];Element of Argument[-1];value;manual", + // "java.util.concurrent;BlockingQueue;true;offer;(Object,long,TimeUnit);;Argument[0];Element of Argument[this];value;manual", BlockingQueue out = null; Object in = source(); out.offer(in,0,null); sink(readElement(out)); // $ hasValueFlow } { - // "java.util.concurrent;BlockingQueue;true;put;(Object);;Argument[0];Element of Argument[-1];value;manual", + // "java.util.concurrent;BlockingQueue;true;put;(Object);;Argument[0];Element of Argument[this];value;manual", BlockingQueue out = null; Object in = source(); out.put(in); sink(readElement(out)); // $ hasValueFlow } { - // "java.util.concurrent;BlockingDeque;true;offerLast;(Object,long,TimeUnit);;Argument[0];Element of Argument[-1];value;manual", + // "java.util.concurrent;BlockingDeque;true;offerLast;(Object,long,TimeUnit);;Argument[0];Element of Argument[this];value;manual", BlockingDeque out = null; Object in = source(); out.offerLast(in,0,null); sink(readElement(out)); // $ hasValueFlow } { - // "java.util.concurrent;BlockingDeque;true;offerFirst;(Object,long,TimeUnit);;Argument[0];Element of Argument[-1];value;manual", + // "java.util.concurrent;BlockingDeque;true;offerFirst;(Object,long,TimeUnit);;Argument[0];Element of Argument[this];value;manual", BlockingDeque out = null; Object in = source(); out.offerFirst(in,0,null); sink(readElement(out)); // $ hasValueFlow } { - // "java.util.concurrent;BlockingDeque;true;putLast;(Object);;Argument[0];Element of Argument[-1];value;manual", + // "java.util.concurrent;BlockingDeque;true;putLast;(Object);;Argument[0];Element of Argument[this];value;manual", BlockingDeque out = null; Object in = source(); out.putLast(in); sink(readElement(out)); // $ hasValueFlow } { - // "java.util.concurrent;BlockingDeque;true;putFirst;(Object);;Argument[0];Element of Argument[-1];value;manual", + // "java.util.concurrent;BlockingDeque;true;putFirst;(Object);;Argument[0];Element of Argument[this];value;manual", BlockingDeque out = null; Object in = source(); out.putFirst(in); sink(readElement(out)); // $ hasValueFlow } { - // "java.util.concurrent;BlockingQueue;true;drainTo;(Collection,int);;Element of Argument[-1];Element of Argument[0];value;manual", + // "java.util.concurrent;BlockingQueue;true;drainTo;(Collection,int);;Element of Argument[this];Element of Argument[0];value;manual", Collection out = null; BlockingQueue in = storeElementBlockingDeque(source()); in.drainTo(out,0); sink(readElement(out)); // $ hasValueFlow } { - // "java.util.concurrent;BlockingQueue;true;drainTo;(Collection);;Element of Argument[-1];Element of Argument[0];value;manual", + // "java.util.concurrent;BlockingQueue;true;drainTo;(Collection);;Element of Argument[this];Element of Argument[0];value;manual", Collection out = null; BlockingQueue in = storeElementBlockingDeque(source()); in.drainTo(out); sink(readElement(out)); // $ hasValueFlow } { - // "java.util.concurrent;ConcurrentHashMap;true;elements;();;MapValue of Argument[-1];Element of ReturnValue;value;manual", + // "java.util.concurrent;ConcurrentHashMap;true;elements;();;MapValue of Argument[this];Element of ReturnValue;value;manual", Enumeration out = null; Object in = storeMapValue(source()); out = ((ConcurrentHashMap)in).elements(); sink(readElement(out)); // $ hasValueFlow } { - // "java.util;Dictionary;true;elements;();;MapValue of Argument[-1];Element of ReturnValue;value;manual", + // "java.util;Dictionary;true;elements;();;MapValue of Argument[this];Element of ReturnValue;value;manual", Enumeration out = null; Object in = storeMapValue(source()); out = ((Dictionary)in).elements(); sink(readElement(out)); // $ hasValueFlow } { - // "java.util;Dictionary;true;get;(Object);;MapValue of Argument[-1];ReturnValue;value;manual", + // "java.util;Dictionary;true;get;(Object);;MapValue of Argument[this];ReturnValue;value;manual", Object out = null; Object in = storeMapValue(source()); out = ((Dictionary)in).get(null); sink(out); // $ hasValueFlow } { - // "java.util;Dictionary;true;put;(Object,Object);;MapValue of Argument[-1];ReturnValue;value;manual", + // "java.util;Dictionary;true;put;(Object,Object);;MapValue of Argument[this];ReturnValue;value;manual", Object out = null; Object in = storeMapValue(source()); out = ((Dictionary)in).put(null,null); sink(out); // $ hasValueFlow } { - // "java.util;Dictionary;true;put;(Object,Object);;Argument[0];MapKey of Argument[-1];value;manual", + // "java.util;Dictionary;true;put;(Object,Object);;Argument[0];MapKey of Argument[this];value;manual", Dictionary out = null; Object in = source(); out.put(in,null); sink(readMapKey(out)); // $ hasValueFlow } { - // "java.util;Dictionary;true;put;(Object,Object);;Argument[1];MapValue of Argument[-1];value;manual", + // "java.util;Dictionary;true;put;(Object,Object);;Argument[1];MapValue of Argument[this];value;manual", Dictionary out = null; Object in = source(); out.put(null,in); sink(readMapValue(out)); // $ hasValueFlow } { - // "java.util;Dictionary;true;remove;(Object);;MapValue of Argument[-1];ReturnValue;value;manual", + // "java.util;Dictionary;true;remove;(Object);;MapValue of Argument[this];ReturnValue;value;manual", Object out = null; Object in = storeMapValue(source()); out = ((Dictionary)in).remove(null); sink(out); // $ hasValueFlow } { - // "java.util;NavigableMap;true;ceilingEntry;(Object);;MapKey of Argument[-1];MapKey of ReturnValue;value;manual", + // "java.util;NavigableMap;true;ceilingEntry;(Object);;MapKey of Argument[this];MapKey of ReturnValue;value;manual", Map.Entry out = null; Object in = storeMapKey(source()); out = ((NavigableMap)in).ceilingEntry(null); sink(readMapKey(out)); // $ hasValueFlow } { - // "java.util;NavigableMap;true;ceilingEntry;(Object);;MapValue of Argument[-1];MapValue of ReturnValue;value;manual", + // "java.util;NavigableMap;true;ceilingEntry;(Object);;MapValue of Argument[this];MapValue of ReturnValue;value;manual", Map.Entry out = null; Object in = storeMapValue(source()); out = ((NavigableMap)in).ceilingEntry(null); sink(readMapValue(out)); // $ hasValueFlow } { - // "java.util;NavigableMap;true;descendingMap;();;MapKey of Argument[-1];MapKey of ReturnValue;value;manual", + // "java.util;NavigableMap;true;descendingMap;();;MapKey of Argument[this];MapKey of ReturnValue;value;manual", Map out = null; Object in = storeMapKey(source()); out = ((NavigableMap)in).descendingMap(); sink(readMapKey(out)); // $ hasValueFlow } { - // "java.util;NavigableMap;true;descendingMap;();;MapValue of Argument[-1];MapValue of ReturnValue;value;manual", + // "java.util;NavigableMap;true;descendingMap;();;MapValue of Argument[this];MapValue of ReturnValue;value;manual", Map out = null; Object in = storeMapValue(source()); out = ((NavigableMap)in).descendingMap(); sink(readMapValue(out)); // $ hasValueFlow } { - // "java.util;NavigableMap;true;firstEntry;();;MapKey of Argument[-1];MapKey of ReturnValue;value;manual", + // "java.util;NavigableMap;true;firstEntry;();;MapKey of Argument[this];MapKey of ReturnValue;value;manual", Map.Entry out = null; Object in = storeMapKey(source()); out = ((NavigableMap)in).firstEntry(); sink(readMapKey(out)); // $ hasValueFlow } { - // "java.util;NavigableMap;true;firstEntry;();;MapValue of Argument[-1];MapValue of ReturnValue;value;manual", + // "java.util;NavigableMap;true;firstEntry;();;MapValue of Argument[this];MapValue of ReturnValue;value;manual", Map.Entry out = null; Object in = storeMapValue(source()); out = ((NavigableMap)in).firstEntry(); sink(readMapValue(out)); // $ hasValueFlow } { - // "java.util;NavigableMap;true;floorEntry;(Object);;MapKey of Argument[-1];MapKey of ReturnValue;value;manual", + // "java.util;NavigableMap;true;floorEntry;(Object);;MapKey of Argument[this];MapKey of ReturnValue;value;manual", Map.Entry out = null; Object in = storeMapKey(source()); out = ((NavigableMap)in).floorEntry(null); sink(readMapKey(out)); // $ hasValueFlow } { - // "java.util;NavigableMap;true;floorEntry;(Object);;MapValue of Argument[-1];MapValue of ReturnValue;value;manual", + // "java.util;NavigableMap;true;floorEntry;(Object);;MapValue of Argument[this];MapValue of ReturnValue;value;manual", Map.Entry out = null; Object in = storeMapValue(source()); out = ((NavigableMap)in).floorEntry(null); sink(readMapValue(out)); // $ hasValueFlow } { - // "java.util;NavigableMap;true;headMap;(Object,boolean);;MapKey of Argument[-1];MapKey of ReturnValue;value;manual", + // "java.util;NavigableMap;true;headMap;(Object,boolean);;MapKey of Argument[this];MapKey of ReturnValue;value;manual", Map out = null; Object in = storeMapKey(source()); out = ((NavigableMap)in).headMap(null,true); sink(readMapKey(out)); // $ hasValueFlow } { - // "java.util;NavigableMap;true;headMap;(Object,boolean);;MapValue of Argument[-1];MapValue of ReturnValue;value;manual", + // "java.util;NavigableMap;true;headMap;(Object,boolean);;MapValue of Argument[this];MapValue of ReturnValue;value;manual", Map out = null; Object in = storeMapValue(source()); out = ((NavigableMap)in).headMap(null,true); sink(readMapValue(out)); // $ hasValueFlow } { - // "java.util;NavigableMap;true;higherEntry;(Object);;MapKey of Argument[-1];MapKey of ReturnValue;value;manual", + // "java.util;NavigableMap;true;higherEntry;(Object);;MapKey of Argument[this];MapKey of ReturnValue;value;manual", Map.Entry out = null; Object in = storeMapKey(source()); out = ((NavigableMap)in).higherEntry(null); sink(readMapKey(out)); // $ hasValueFlow } { - // "java.util;NavigableMap;true;higherEntry;(Object);;MapValue of Argument[-1];MapValue of ReturnValue;value;manual", + // "java.util;NavigableMap;true;higherEntry;(Object);;MapValue of Argument[this];MapValue of ReturnValue;value;manual", Map.Entry out = null; Object in = storeMapValue(source()); out = ((NavigableMap)in).higherEntry(null); sink(readMapValue(out)); // $ hasValueFlow } { - // "java.util;NavigableMap;true;lastEntry;();;MapKey of Argument[-1];MapKey of ReturnValue;value;manual", + // "java.util;NavigableMap;true;lastEntry;();;MapKey of Argument[this];MapKey of ReturnValue;value;manual", Map.Entry out = null; Object in = storeMapKey(source()); out = ((NavigableMap)in).lastEntry(); sink(readMapKey(out)); // $ hasValueFlow } { - // "java.util;NavigableMap;true;lastEntry;();;MapValue of Argument[-1];MapValue of ReturnValue;value;manual", + // "java.util;NavigableMap;true;lastEntry;();;MapValue of Argument[this];MapValue of ReturnValue;value;manual", Map.Entry out = null; Object in = storeMapValue(source()); out = ((NavigableMap)in).lastEntry(); sink(readMapValue(out)); // $ hasValueFlow } { - // "java.util;NavigableMap;true;lowerEntry;(Object);;MapKey of Argument[-1];MapKey of ReturnValue;value;manual", + // "java.util;NavigableMap;true;lowerEntry;(Object);;MapKey of Argument[this];MapKey of ReturnValue;value;manual", Map.Entry out = null; Object in = storeMapKey(source()); out = ((NavigableMap)in).lowerEntry(null); sink(readMapKey(out)); // $ hasValueFlow } { - // "java.util;NavigableMap;true;lowerEntry;(Object);;MapValue of Argument[-1];MapValue of ReturnValue;value;manual", + // "java.util;NavigableMap;true;lowerEntry;(Object);;MapValue of Argument[this];MapValue of ReturnValue;value;manual", Map.Entry out = null; Object in = storeMapValue(source()); out = ((NavigableMap)in).lowerEntry(null); sink(readMapValue(out)); // $ hasValueFlow } { - // "java.util;NavigableMap;true;pollFirstEntry;();;MapKey of Argument[-1];MapKey of ReturnValue;value;manual", + // "java.util;NavigableMap;true;pollFirstEntry;();;MapKey of Argument[this];MapKey of ReturnValue;value;manual", Map.Entry out = null; Object in = storeMapKey(source()); out = ((NavigableMap)in).pollFirstEntry(); sink(readMapKey(out)); // $ hasValueFlow } { - // "java.util;NavigableMap;true;pollFirstEntry;();;MapValue of Argument[-1];MapValue of ReturnValue;value;manual", + // "java.util;NavigableMap;true;pollFirstEntry;();;MapValue of Argument[this];MapValue of ReturnValue;value;manual", Map.Entry out = null; Object in = storeMapValue(source()); out = ((NavigableMap)in).pollFirstEntry(); sink(readMapValue(out)); // $ hasValueFlow } { - // "java.util;NavigableMap;true;pollLastEntry;();;MapKey of Argument[-1];MapKey of ReturnValue;value;manual", + // "java.util;NavigableMap;true;pollLastEntry;();;MapKey of Argument[this];MapKey of ReturnValue;value;manual", Map.Entry out = null; Object in = storeMapKey(source()); out = ((NavigableMap)in).pollLastEntry(); sink(readMapKey(out)); // $ hasValueFlow } { - // "java.util;NavigableMap;true;pollLastEntry;();;MapValue of Argument[-1];MapValue of ReturnValue;value;manual", + // "java.util;NavigableMap;true;pollLastEntry;();;MapValue of Argument[this];MapValue of ReturnValue;value;manual", Map.Entry out = null; Object in = storeMapValue(source()); out = ((NavigableMap)in).pollLastEntry(); sink(readMapValue(out)); // $ hasValueFlow } { - // "java.util;NavigableMap;true;subMap;(Object,boolean,Object,boolean);;MapKey of Argument[-1];MapKey of ReturnValue;value;manual", + // "java.util;NavigableMap;true;subMap;(Object,boolean,Object,boolean);;MapKey of Argument[this];MapKey of ReturnValue;value;manual", Map out = null; Object in = storeMapKey(source()); out = ((NavigableMap)in).subMap(null,true,null,true); sink(readMapKey(out)); // $ hasValueFlow } { - // "java.util;NavigableMap;true;subMap;(Object,boolean,Object,boolean);;MapValue of Argument[-1];MapValue of ReturnValue;value;manual", + // "java.util;NavigableMap;true;subMap;(Object,boolean,Object,boolean);;MapValue of Argument[this];MapValue of ReturnValue;value;manual", Map out = null; Object in = storeMapValue(source()); out = ((NavigableMap)in).subMap(null,true,null,true); sink(readMapValue(out)); // $ hasValueFlow } { - // "java.util;NavigableMap;true;tailMap;(Object,boolean);;MapKey of Argument[-1];MapKey of ReturnValue;value;manual", + // "java.util;NavigableMap;true;tailMap;(Object,boolean);;MapKey of Argument[this];MapKey of ReturnValue;value;manual", Map out = null; Object in = storeMapKey(source()); out = ((NavigableMap)in).tailMap(null,true); sink(readMapKey(out)); // $ hasValueFlow } { - // "java.util;NavigableMap;true;tailMap;(Object,boolean);;MapValue of Argument[-1];MapValue of ReturnValue;value;manual", + // "java.util;NavigableMap;true;tailMap;(Object,boolean);;MapValue of Argument[this];MapValue of ReturnValue;value;manual", Map out = null; Object in = storeMapValue(source()); out = ((NavigableMap)in).tailMap(null,true); sink(readMapValue(out)); // $ hasValueFlow } { - // "java.util;NavigableSet;true;ceiling;(Object);;Element of Argument[-1];ReturnValue;value;manual", + // "java.util;NavigableSet;true;ceiling;(Object);;Element of Argument[this];ReturnValue;value;manual", Object out = null; NavigableSet in = storeElementNavSet(source()); out = in.ceiling(null); sink(out); // $ hasValueFlow } { - // "java.util;NavigableSet;true;descendingIterator;();;Element of Argument[-1];Element of ReturnValue;value;manual", + // "java.util;NavigableSet;true;descendingIterator;();;Element of Argument[this];Element of ReturnValue;value;manual", Iterator out = null; NavigableSet in = storeElementNavSet(source()); out = in.descendingIterator(); sink(readElement(out)); // $ hasValueFlow } { - // "java.util;NavigableSet;true;descendingSet;();;Element of Argument[-1];Element of ReturnValue;value;manual", + // "java.util;NavigableSet;true;descendingSet;();;Element of Argument[this];Element of ReturnValue;value;manual", Set out = null; NavigableSet in = storeElementNavSet(source()); out = in.descendingSet(); sink(readElement(out)); // $ hasValueFlow } { - // "java.util;NavigableSet;true;floor;(Object);;Element of Argument[-1];ReturnValue;value;manual", + // "java.util;NavigableSet;true;floor;(Object);;Element of Argument[this];ReturnValue;value;manual", Object out = null; NavigableSet in = storeElementNavSet(source()); out = in.floor(null); sink(out); // $ hasValueFlow } { - // "java.util;NavigableSet;true;headSet;(Object,boolean);;Element of Argument[-1];Element of ReturnValue;value;manual", + // "java.util;NavigableSet;true;headSet;(Object,boolean);;Element of Argument[this];Element of ReturnValue;value;manual", Set out = null; NavigableSet in = storeElementNavSet(source()); out = in.headSet(null,true); sink(readElement(out)); // $ hasValueFlow } { - // "java.util;NavigableSet;true;higher;(Object);;Element of Argument[-1];ReturnValue;value;manual", + // "java.util;NavigableSet;true;higher;(Object);;Element of Argument[this];ReturnValue;value;manual", Object out = null; NavigableSet in = storeElementNavSet(source()); out = in.higher(null); sink(out); // $ hasValueFlow } { - // "java.util;NavigableSet;true;lower;(Object);;Element of Argument[-1];ReturnValue;value;manual", + // "java.util;NavigableSet;true;lower;(Object);;Element of Argument[this];ReturnValue;value;manual", Object out = null; NavigableSet in = storeElementNavSet(source()); out = in.lower(null); sink(out); // $ hasValueFlow } { - // "java.util;NavigableSet;true;pollFirst;();;Element of Argument[-1];ReturnValue;value;manual", + // "java.util;NavigableSet;true;pollFirst;();;Element of Argument[this];ReturnValue;value;manual", Object out = null; NavigableSet in = storeElementNavSet(source()); out = in.pollFirst(); sink(out); // $ hasValueFlow } { - // "java.util;NavigableSet;true;pollLast;();;Element of Argument[-1];ReturnValue;value;manual", + // "java.util;NavigableSet;true;pollLast;();;Element of Argument[this];ReturnValue;value;manual", Object out = null; NavigableSet in = storeElementNavSet(source()); out = in.pollLast(); sink(out); // $ hasValueFlow } { - // "java.util;NavigableSet;true;subSet;(Object,boolean,Object,boolean);;Element of Argument[-1];Element of ReturnValue;value;manual", + // "java.util;NavigableSet;true;subSet;(Object,boolean,Object,boolean);;Element of Argument[this];Element of ReturnValue;value;manual", Set out = null; NavigableSet in = storeElementNavSet(source()); out = in.subSet(null,true,null,true); sink(readElement(out)); // $ hasValueFlow } { - // "java.util;NavigableSet;true;tailSet;(Object,boolean);;Element of Argument[-1];Element of ReturnValue;value;manual", + // "java.util;NavigableSet;true;tailSet;(Object,boolean);;Element of Argument[this];Element of ReturnValue;value;manual", Set out = null; NavigableSet in = storeElementNavSet(source()); out = in.tailSet(null,true); sink(readElement(out)); // $ hasValueFlow } { - // "java.util;SortedMap;true;headMap;(Object);;MapKey of Argument[-1];MapKey of ReturnValue;value;manual", + // "java.util;SortedMap;true;headMap;(Object);;MapKey of Argument[this];MapKey of ReturnValue;value;manual", Map out = null; Object in = storeMapKey(source()); out = ((SortedMap)in).headMap(null); sink(readMapKey(out)); // $ hasValueFlow } { - // "java.util;SortedMap;true;headMap;(Object);;MapValue of Argument[-1];MapValue of ReturnValue;value;manual", + // "java.util;SortedMap;true;headMap;(Object);;MapValue of Argument[this];MapValue of ReturnValue;value;manual", Map out = null; Object in = storeMapValue(source()); out = ((SortedMap)in).headMap(null); sink(readMapValue(out)); // $ hasValueFlow } { - // "java.util;SortedMap;true;subMap;(Object,Object);;MapKey of Argument[-1];MapKey of ReturnValue;value;manual", + // "java.util;SortedMap;true;subMap;(Object,Object);;MapKey of Argument[this];MapKey of ReturnValue;value;manual", Map out = null; Object in = storeMapKey(source()); out = ((SortedMap)in).subMap(null,null); sink(readMapKey(out)); // $ hasValueFlow } { - // "java.util;SortedMap;true;subMap;(Object,Object);;MapValue of Argument[-1];MapValue of ReturnValue;value;manual", + // "java.util;SortedMap;true;subMap;(Object,Object);;MapValue of Argument[this];MapValue of ReturnValue;value;manual", Map out = null; Object in = storeMapValue(source()); out = ((SortedMap)in).subMap(null,null); sink(readMapValue(out)); // $ hasValueFlow } { - // "java.util;SortedMap;true;tailMap;(Object);;MapKey of Argument[-1];MapKey of ReturnValue;value;manual", + // "java.util;SortedMap;true;tailMap;(Object);;MapKey of Argument[this];MapKey of ReturnValue;value;manual", Map out = null; Object in = storeMapKey(source()); out = ((SortedMap)in).tailMap(null); sink(readMapKey(out)); // $ hasValueFlow } { - // "java.util;SortedMap;true;tailMap;(Object);;MapValue of Argument[-1];MapValue of ReturnValue;value;manual", + // "java.util;SortedMap;true;tailMap;(Object);;MapValue of Argument[this];MapValue of ReturnValue;value;manual", Map out = null; Object in = storeMapValue(source()); out = ((SortedMap)in).tailMap(null); sink(readMapValue(out)); // $ hasValueFlow } { - // "java.util;SortedSet;true;first;();;Element of Argument[-1];ReturnValue;value;manual", + // "java.util;SortedSet;true;first;();;Element of Argument[this];ReturnValue;value;manual", Object out = null; SortedSet in = storeElementNavSet(source()); out = in.first(); sink(out); // $ hasValueFlow } { - // "java.util;SortedSet;true;headSet;(Object);;Element of Argument[-1];Element of ReturnValue;value;manual", + // "java.util;SortedSet;true;headSet;(Object);;Element of Argument[this];Element of ReturnValue;value;manual", Set out = null; SortedSet in = storeElementNavSet(source()); out = in.headSet(null); sink(readElement(out)); // $ hasValueFlow } { - // "java.util;SortedSet;true;last;();;Element of Argument[-1];ReturnValue;value;manual", + // "java.util;SortedSet;true;last;();;Element of Argument[this];ReturnValue;value;manual", Object out = null; SortedSet in = storeElementNavSet(source()); out = in.last(); sink(out); // $ hasValueFlow } { - // "java.util;SortedSet;true;subSet;(Object,Object);;Element of Argument[-1];Element of ReturnValue;value;manual", + // "java.util;SortedSet;true;subSet;(Object,Object);;Element of Argument[this];Element of ReturnValue;value;manual", Set out = null; SortedSet in = storeElementNavSet(source()); out = in.subSet(null,null); sink(readElement(out)); // $ hasValueFlow } { - // "java.util;SortedSet;true;tailSet;(Object);;Element of Argument[-1];Element of ReturnValue;value;manual", + // "java.util;SortedSet;true;tailSet;(Object);;Element of Argument[this];Element of ReturnValue;value;manual", Set out = null; SortedSet in = storeElementNavSet(source()); out = in.tailSet(null); sink(readElement(out)); // $ hasValueFlow } { - // "java.util.concurrent;TransferQueue;true;tryTransfer;(Object,long,TimeUnit);;Argument[0];Element of Argument[-1];value;manual", + // "java.util.concurrent;TransferQueue;true;tryTransfer;(Object,long,TimeUnit);;Argument[0];Element of Argument[this];value;manual", TransferQueue out = null; Object in = source(); out.tryTransfer(in,0,null); sink(readElement(out)); // $ hasValueFlow } { - // "java.util.concurrent;TransferQueue;true;transfer;(Object);;Argument[0];Element of Argument[-1];value;manual", + // "java.util.concurrent;TransferQueue;true;transfer;(Object);;Argument[0];Element of Argument[this];value;manual", TransferQueue out = null; Object in = source(); out.transfer(in); sink(readElement(out)); // $ hasValueFlow } { - // "java.util.concurrent;TransferQueue;true;tryTransfer;(Object);;Argument[0];Element of Argument[-1];value;manual", + // "java.util.concurrent;TransferQueue;true;tryTransfer;(Object);;Argument[0];Element of Argument[this];value;manual", TransferQueue out = null; Object in = source(); out.tryTransfer(in); sink(readElement(out)); // $ hasValueFlow } diff --git a/java/ql/test/library-tests/dataflow/collections/Constructors.java b/java/ql/test/library-tests/dataflow/collections/Constructors.java index 671830b1ac7..83e6c13f2c6 100644 --- a/java/ql/test/library-tests/dataflow/collections/Constructors.java +++ b/java/ql/test/library-tests/dataflow/collections/Constructors.java @@ -36,245 +36,245 @@ public class Constructors { public void test() { { - // "java.util;AbstractMap$SimpleEntry;false;SimpleEntry;(Entry);;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "java.util;AbstractMap$SimpleEntry;false;SimpleEntry;(Entry);;MapKey of Argument[0];MapKey of Argument[this];value;manual" AbstractMap.SimpleEntry out = null; Map.Entry in = new AbstractMap.SimpleEntry(source(), null); out = new AbstractMap.SimpleEntry(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "java.util;AbstractMap$SimpleEntry;false;SimpleEntry;(Entry);;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "java.util;AbstractMap$SimpleEntry;false;SimpleEntry;(Entry);;MapValue of Argument[0];MapValue of Argument[this];value;manual" AbstractMap.SimpleEntry out = null; Map.Entry in = new AbstractMap.SimpleEntry(null, source());; out = new AbstractMap.SimpleEntry(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "java.util;AbstractMap$SimpleEntry;false;SimpleEntry;(Object,Object);;Argument[0];MapKey of Argument[-1];value;manual" + // "java.util;AbstractMap$SimpleEntry;false;SimpleEntry;(Object,Object);;Argument[0];MapKey of Argument[this];value;manual" AbstractMap.SimpleEntry out = null; Object in = source(); out = new AbstractMap.SimpleEntry(in, null); sink(getMapKey(out)); // $ hasValueFlow } { - // "java.util;AbstractMap$SimpleEntry;false;SimpleEntry;(Object,Object);;Argument[1];MapValue of Argument[-1];value;manual" + // "java.util;AbstractMap$SimpleEntry;false;SimpleEntry;(Object,Object);;Argument[1];MapValue of Argument[this];value;manual" AbstractMap.SimpleEntry out = null; Object in = source(); out = new AbstractMap.SimpleEntry(null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "java.util;AbstractMap$SimpleImmutableEntry;false;SimpleImmutableEntry;(Entry);;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "java.util;AbstractMap$SimpleImmutableEntry;false;SimpleImmutableEntry;(Entry);;MapKey of Argument[0];MapKey of Argument[this];value;manual" AbstractMap.SimpleImmutableEntry out = null; Map.Entry in = new AbstractMap.SimpleEntry(source(), null); out = new AbstractMap.SimpleImmutableEntry(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "java.util;AbstractMap$SimpleImmutableEntry;false;SimpleImmutableEntry;(Entry);;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "java.util;AbstractMap$SimpleImmutableEntry;false;SimpleImmutableEntry;(Entry);;MapValue of Argument[0];MapValue of Argument[this];value;manual" AbstractMap.SimpleImmutableEntry out = null; Map.Entry in = new AbstractMap.SimpleEntry(null, source()); out = new AbstractMap.SimpleImmutableEntry(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "java.util;ArrayDeque;false;ArrayDeque;(Collection);;Element of Argument[0];Element of Argument[-1];value;manual" + // "java.util;ArrayDeque;false;ArrayDeque;(Collection);;Element of Argument[0];Element of Argument[this];value;manual" ArrayDeque out = null; Collection in = List.of(source()); out = new ArrayDeque(in); sink(getElement(out)); // $ hasValueFlow } { - // "java.util;ArrayList;false;ArrayList;(Collection);;Element of Argument[0];Element of Argument[-1];value;manual" + // "java.util;ArrayList;false;ArrayList;(Collection);;Element of Argument[0];Element of Argument[this];value;manual" ArrayList out = null; Collection in = List.of(source()); out = new ArrayList(in); sink(getElement(out)); // $ hasValueFlow } { - // "java.util;EnumMap;false;EnumMap;(EnumMap);;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "java.util;EnumMap;false;EnumMap;(EnumMap);;MapKey of Argument[0];MapKey of Argument[this];value;manual" EnumMap out = null; EnumMap in = new EnumMap(Map.of(source(), null)); out = new EnumMap(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "java.util;EnumMap;false;EnumMap;(EnumMap);;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "java.util;EnumMap;false;EnumMap;(EnumMap);;MapValue of Argument[0];MapValue of Argument[this];value;manual" EnumMap out = null; EnumMap in = new EnumMap(Map.of(null, source())); out = new EnumMap(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "java.util;EnumMap;false;EnumMap;(Map);;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "java.util;EnumMap;false;EnumMap;(Map);;MapKey of Argument[0];MapKey of Argument[this];value;manual" EnumMap out = null; Map in = Map.of(source(), null); out = new EnumMap(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "java.util;EnumMap;false;EnumMap;(Map);;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "java.util;EnumMap;false;EnumMap;(Map);;MapValue of Argument[0];MapValue of Argument[this];value;manual" EnumMap out = null; Map in = Map.of(null, source()); out = new EnumMap(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "java.util;HashMap;false;HashMap;(Map);;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "java.util;HashMap;false;HashMap;(Map);;MapKey of Argument[0];MapKey of Argument[this];value;manual" HashMap out = null; Map in = Map.of(source(), null); out = new HashMap(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "java.util;HashMap;false;HashMap;(Map);;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "java.util;HashMap;false;HashMap;(Map);;MapValue of Argument[0];MapValue of Argument[this];value;manual" HashMap out = null; Map in = Map.of(null, source()); out = new HashMap(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "java.util;HashSet;false;HashSet;(Collection);;Element of Argument[0];Element of Argument[-1];value;manual" + // "java.util;HashSet;false;HashSet;(Collection);;Element of Argument[0];Element of Argument[this];value;manual" HashSet out = null; Collection in = List.of(source()); out = new HashSet(in); sink(getElement(out)); // $ hasValueFlow } { - // "java.util;Hashtable;false;Hashtable;(Map);;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "java.util;Hashtable;false;Hashtable;(Map);;MapKey of Argument[0];MapKey of Argument[this];value;manual" Hashtable out = null; Map in = Map.of(source(), null); out = new Hashtable(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "java.util;Hashtable;false;Hashtable;(Map);;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "java.util;Hashtable;false;Hashtable;(Map);;MapValue of Argument[0];MapValue of Argument[this];value;manual" Hashtable out = null; Map in = Map.of(null, source()); out = new Hashtable(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "java.util;IdentityHashMap;false;IdentityHashMap;(Map);;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "java.util;IdentityHashMap;false;IdentityHashMap;(Map);;MapKey of Argument[0];MapKey of Argument[this];value;manual" IdentityHashMap out = null; Map in = Map.of(source(), null); out = new IdentityHashMap(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "java.util;IdentityHashMap;false;IdentityHashMap;(Map);;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "java.util;IdentityHashMap;false;IdentityHashMap;(Map);;MapValue of Argument[0];MapValue of Argument[this];value;manual" IdentityHashMap out = null; Map in = Map.of(null, source()); out = new IdentityHashMap(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "java.util;LinkedHashMap;false;LinkedHashMap;(Map);;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "java.util;LinkedHashMap;false;LinkedHashMap;(Map);;MapKey of Argument[0];MapKey of Argument[this];value;manual" LinkedHashMap out = null; Map in = Map.of(source(), null); out = new LinkedHashMap(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "java.util;LinkedHashMap;false;LinkedHashMap;(Map);;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "java.util;LinkedHashMap;false;LinkedHashMap;(Map);;MapValue of Argument[0];MapValue of Argument[this];value;manual" LinkedHashMap out = null; Map in = Map.of(null, source()); out = new LinkedHashMap(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "java.util;LinkedHashSet;false;LinkedHashSet;(Collection);;Element of Argument[0];Element of Argument[-1];value;manual" + // "java.util;LinkedHashSet;false;LinkedHashSet;(Collection);;Element of Argument[0];Element of Argument[this];value;manual" LinkedHashSet out = null; Collection in = List.of(source()); out = new LinkedHashSet(in); sink(getElement(out)); // $ hasValueFlow } { - // "java.util;LinkedList;false;LinkedList;(Collection);;Element of Argument[0];Element of Argument[-1];value;manual" + // "java.util;LinkedList;false;LinkedList;(Collection);;Element of Argument[0];Element of Argument[this];value;manual" LinkedList out = null; Collection in = List.of(source()); out = new LinkedList(in); sink(getElement(out)); // $ hasValueFlow } { - // "java.util;PriorityQueue;false;PriorityQueue;(Collection);;Element of Argument[0];Element of Argument[-1];value;manual" + // "java.util;PriorityQueue;false;PriorityQueue;(Collection);;Element of Argument[0];Element of Argument[this];value;manual" PriorityQueue out = null; Collection in = List.of(source()); out = new PriorityQueue(in); sink(getElement(out)); // $ hasValueFlow } { - // "java.util;PriorityQueue;false;PriorityQueue;(PriorityQueue);;Element of Argument[0];Element of Argument[-1];value;manual" + // "java.util;PriorityQueue;false;PriorityQueue;(PriorityQueue);;Element of Argument[0];Element of Argument[this];value;manual" PriorityQueue out = null; PriorityQueue in = new PriorityQueue(List.of(source())); out = new PriorityQueue(in); sink(getElement(out)); // $ hasValueFlow } { - // "java.util;PriorityQueue;false;PriorityQueue;(SortedSet);;Element of Argument[0];Element of Argument[-1];value;manual" + // "java.util;PriorityQueue;false;PriorityQueue;(SortedSet);;Element of Argument[0];Element of Argument[this];value;manual" PriorityQueue out = null; SortedSet in = new TreeSet(List.of(source())); out = new PriorityQueue(in); sink(getElement(out)); // $ hasValueFlow } { - // "java.util;TreeMap;false;TreeMap;(Map);;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "java.util;TreeMap;false;TreeMap;(Map);;MapKey of Argument[0];MapKey of Argument[this];value;manual" TreeMap out = null; Map in = Map.of(source(), null); out = new TreeMap(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "java.util;TreeMap;false;TreeMap;(Map);;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "java.util;TreeMap;false;TreeMap;(Map);;MapValue of Argument[0];MapValue of Argument[this];value;manual" TreeMap out = null; Map in = Map.of(null, source()); out = new TreeMap(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "java.util;TreeMap;false;TreeMap;(SortedMap);;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "java.util;TreeMap;false;TreeMap;(SortedMap);;MapKey of Argument[0];MapKey of Argument[this];value;manual" TreeMap out = null; SortedMap in = new TreeMap(Map.of(source(), null)); out = new TreeMap(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "java.util;TreeMap;false;TreeMap;(SortedMap);;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "java.util;TreeMap;false;TreeMap;(SortedMap);;MapValue of Argument[0];MapValue of Argument[this];value;manual" TreeMap out = null; SortedMap in = new TreeMap(Map.of(null, source())); out = new TreeMap(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "java.util;TreeSet;false;TreeSet;(Collection);;Element of Argument[0];Element of Argument[-1];value;manual" + // "java.util;TreeSet;false;TreeSet;(Collection);;Element of Argument[0];Element of Argument[this];value;manual" TreeSet out = null; Collection in = List.of(source()); out = new TreeSet(in); sink(getElement(out)); // $ hasValueFlow } { - // "java.util;TreeSet;false;TreeSet;(SortedSet);;Element of Argument[0];Element of Argument[-1];value;manual" + // "java.util;TreeSet;false;TreeSet;(SortedSet);;Element of Argument[0];Element of Argument[this];value;manual" TreeSet out = null; SortedSet in = new TreeSet(List.of(source())); out = new TreeSet(in); sink(getElement(out)); // $ hasValueFlow } { - // "java.util;Vector;false;Vector;(Collection);;Element of Argument[0];Element of Argument[-1];value;manual" + // "java.util;Vector;false;Vector;(Collection);;Element of Argument[0];Element of Argument[this];value;manual" Vector out = null; Collection in = List.of(source()); out = new Vector(in); sink(getElement(out)); // $ hasValueFlow } { - // "java.util;WeakHashMap;false;WeakHashMap;(Map);;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "java.util;WeakHashMap;false;WeakHashMap;(Map);;MapKey of Argument[0];MapKey of Argument[this];value;manual" WeakHashMap out = null; Map in = Map.of(source(), null); out = new WeakHashMap(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "java.util;WeakHashMap;false;WeakHashMap;(Map);;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "java.util;WeakHashMap;false;WeakHashMap;(Map);;MapValue of Argument[0];MapValue of Argument[this];value;manual" WeakHashMap out = null; Map in = Map.of(null, source()); out = new WeakHashMap(in); diff --git a/java/ql/test/library-tests/dataflow/external-models/steps.ext.yml b/java/ql/test/library-tests/dataflow/external-models/steps.ext.yml index d68e50ce558..ef192e0f9f6 100644 --- a/java/ql/test/library-tests/dataflow/external-models/steps.ext.yml +++ b/java/ql/test/library-tests/dataflow/external-models/steps.ext.yml @@ -5,9 +5,9 @@ extensions: data: - ["my.qltest", "C", False, "stepArgRes", "(Object)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["my.qltest", "C", False, "stepArgArg", "(Object,Object)", "", "Argument[0]", "Argument[1]", "taint", "manual"] - - ["my.qltest", "C", False, "stepArgQual", "(Object)", "", "Argument[0]", "Argument[-1]", "taint", "manual"] - - ["my.qltest", "C", False, "stepQualRes", "()", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["my.qltest", "C", False, "stepQualArg", "(Object)", "", "Argument[-1]", "Argument[0]", "taint", "manual"] + - ["my.qltest", "C", False, "stepArgQual", "(Object)", "", "Argument[0]", "Argument[this]", "taint", "manual"] + - ["my.qltest", "C", False, "stepQualRes", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["my.qltest", "C", False, "stepQualArg", "(Object)", "", "Argument[this]", "Argument[0]", "taint", "manual"] - ["my.qltest", "C", False, "stepArgResGenerated", "(Object)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["my.qltest", "C", False, "stepArgResGeneratedIgnored", "(Object,Object)", "", "Argument[0]", "ReturnValue", "taint", "generated"] - ["my.qltest", "C", False, "stepArgResGeneratedIgnored", "(Object,Object)", "", "Argument[1]", "ReturnValue", "taint", "manual"] diff --git a/java/ql/test/library-tests/frameworks/android/content-provider-summaries/Test.java b/java/ql/test/library-tests/frameworks/android/content-provider-summaries/Test.java index eb9de7bcca6..dbfda49f2e5 100644 --- a/java/ql/test/library-tests/frameworks/android/content-provider-summaries/Test.java +++ b/java/ql/test/library-tests/frameworks/android/content-provider-summaries/Test.java @@ -42,203 +42,203 @@ public class Test { public void test() throws Exception { { - // "android.content;ContentProviderClient;true;applyBatch;;;Argument[-1];ReturnValue;taint;manual" + // "android.content;ContentProviderClient;true;applyBatch;;;Argument[this];ReturnValue;taint;manual" ContentProviderResult[] out = null; ContentProviderClient in = (ContentProviderClient) source(); out = in.applyBatch(null); sink(out); // $ hasTaintFlow } { - // "android.content;ContentProviderClient;true;applyBatch;;;Argument[-1];ReturnValue;taint;manual" + // "android.content;ContentProviderClient;true;applyBatch;;;Argument[this];ReturnValue;taint;manual" ContentProviderResult[] out = null; ContentProviderClient in = (ContentProviderClient) source(); out = in.applyBatch(null, null); sink(out); // $ hasTaintFlow } { - // "android.content;ContentProviderClient;true;call;;;Argument[-1];ReturnValue;taint;manual" + // "android.content;ContentProviderClient;true;call;;;Argument[this];ReturnValue;taint;manual" Bundle out = null; ContentProviderClient in = (ContentProviderClient) source(); out = in.call(null, null, null); sink(out); // $ hasTaintFlow } { - // "android.content;ContentProviderClient;true;call;;;Argument[-1];ReturnValue;taint;manual" + // "android.content;ContentProviderClient;true;call;;;Argument[this];ReturnValue;taint;manual" Bundle out = null; ContentProviderClient in = (ContentProviderClient) source(); out = in.call(null, null, null, null); sink(out); // $ hasTaintFlow } { - // "android.content;ContentProviderClient;true;canonicalize;;;Argument[-1];ReturnValue;taint;manual" + // "android.content;ContentProviderClient;true;canonicalize;;;Argument[this];ReturnValue;taint;manual" Uri out = null; ContentProviderClient in = (ContentProviderClient) source(); out = in.canonicalize(null); sink(out); // $ hasTaintFlow } { - // "android.content;ContentProviderClient;true;getLocalContentProvider;;;Argument[-1];ReturnValue;taint;manual" + // "android.content;ContentProviderClient;true;getLocalContentProvider;;;Argument[this];ReturnValue;taint;manual" ContentProvider out = null; ContentProviderClient in = (ContentProviderClient) source(); out = in.getLocalContentProvider(); sink(out); // $ hasTaintFlow } { - // "android.content;ContentProviderClient;true;getStreamTypes;;;Argument[-1];ReturnValue;taint;manual" + // "android.content;ContentProviderClient;true;getStreamTypes;;;Argument[this];ReturnValue;taint;manual" String[] out = null; ContentProviderClient in = (ContentProviderClient) source(); out = in.getStreamTypes(null, null); sink(out); // $ hasTaintFlow } { - // "android.content;ContentProviderClient;true;insert;;;Argument[-1];ReturnValue;taint;manual" + // "android.content;ContentProviderClient;true;insert;;;Argument[this];ReturnValue;taint;manual" Uri out = null; ContentProviderClient in = (ContentProviderClient) source(); out = in.insert(null, null); sink(out); // $ hasTaintFlow } { - // "android.content;ContentProviderClient;true;insert;;;Argument[-1];ReturnValue;taint;manual" + // "android.content;ContentProviderClient;true;insert;;;Argument[this];ReturnValue;taint;manual" Uri out = null; ContentProviderClient in = (ContentProviderClient) source(); out = in.insert(null, null, null); sink(out); // $ hasTaintFlow } { - // "android.content;ContentProviderClient;true;query;;;Argument[-1];ReturnValue;taint;manual" + // "android.content;ContentProviderClient;true;query;;;Argument[this];ReturnValue;taint;manual" Cursor out = null; ContentProviderClient in = (ContentProviderClient) source(); out = in.query(null, null, null, null); sink(out); // $ hasTaintFlow } { - // "android.content;ContentProviderClient;true;query;;;Argument[-1];ReturnValue;taint;manual" + // "android.content;ContentProviderClient;true;query;;;Argument[this];ReturnValue;taint;manual" Cursor out = null; ContentProviderClient in = (ContentProviderClient) source(); out = in.query(null, null, null, null, null); sink(out); // $ hasTaintFlow } { - // "android.content;ContentProviderClient;true;query;;;Argument[-1];ReturnValue;taint;manual" + // "android.content;ContentProviderClient;true;query;;;Argument[this];ReturnValue;taint;manual" Cursor out = null; ContentProviderClient in = (ContentProviderClient) source(); out = in.query(null, null, null, null, null, null); sink(out); // $ hasTaintFlow } { - // "android.content;ContentProviderClient;true;uncanonicalize;;;Argument[-1];ReturnValue;taint;manual" + // "android.content;ContentProviderClient;true;uncanonicalize;;;Argument[this];ReturnValue;taint;manual" Uri out = null; ContentProviderClient in = (ContentProviderClient) source(); out = in.uncanonicalize(null); sink(out); // $ hasTaintFlow } { - // "android.content;ContentProviderOperation$Builder;false;build;;;Argument[-1];ReturnValue;taint;manual" + // "android.content;ContentProviderOperation$Builder;false;build;;;Argument[this];ReturnValue;taint;manual" ContentProviderOperation out = null; ContentProviderOperation.Builder in = (ContentProviderOperation.Builder) source(); out = in.build(); sink(out); // $ hasTaintFlow } { - // "android.content;ContentProviderOperation$Builder;false;withExceptionAllowed;;;Argument[-1];ReturnValue;value;manual" + // "android.content;ContentProviderOperation$Builder;false;withExceptionAllowed;;;Argument[this];ReturnValue;value;manual" ContentProviderOperation.Builder out = null; ContentProviderOperation.Builder in = (ContentProviderOperation.Builder) source(); out = in.withExceptionAllowed(false); sink(out); // $ hasValueFlow } { - // "android.content;ContentProviderOperation$Builder;false;withExpectedCount;;;Argument[-1];ReturnValue;value;manual" + // "android.content;ContentProviderOperation$Builder;false;withExpectedCount;;;Argument[this];ReturnValue;value;manual" ContentProviderOperation.Builder out = null; ContentProviderOperation.Builder in = (ContentProviderOperation.Builder) source(); out = in.withExpectedCount(0); sink(out); // $ hasValueFlow } { - // "android.content;ContentProviderOperation$Builder;false;withExtra;;;Argument[-1];ReturnValue;value;manual" + // "android.content;ContentProviderOperation$Builder;false;withExtra;;;Argument[this];ReturnValue;value;manual" ContentProviderOperation.Builder out = null; ContentProviderOperation.Builder in = (ContentProviderOperation.Builder) source(); out = in.withExtra(null, null); sink(out); // $ hasValueFlow } { - // "android.content;ContentProviderOperation$Builder;false;withExtraBackReference;;;Argument[-1];ReturnValue;value;manual" + // "android.content;ContentProviderOperation$Builder;false;withExtraBackReference;;;Argument[this];ReturnValue;value;manual" ContentProviderOperation.Builder out = null; ContentProviderOperation.Builder in = (ContentProviderOperation.Builder) source(); out = in.withExtraBackReference(null, 0); sink(out); // $ hasValueFlow } { - // "android.content;ContentProviderOperation$Builder;false;withExtraBackReference;;;Argument[-1];ReturnValue;value;manual" + // "android.content;ContentProviderOperation$Builder;false;withExtraBackReference;;;Argument[this];ReturnValue;value;manual" ContentProviderOperation.Builder out = null; ContentProviderOperation.Builder in = (ContentProviderOperation.Builder) source(); out = in.withExtraBackReference(null, 0, null); sink(out); // $ hasValueFlow } { - // "android.content;ContentProviderOperation$Builder;false;withExtras;;;Argument[-1];ReturnValue;value;manual" + // "android.content;ContentProviderOperation$Builder;false;withExtras;;;Argument[this];ReturnValue;value;manual" ContentProviderOperation.Builder out = null; ContentProviderOperation.Builder in = (ContentProviderOperation.Builder) source(); out = in.withExtras(null); sink(out); // $ hasValueFlow } { - // "android.content;ContentProviderOperation$Builder;false;withSelection;;;Argument[-1];ReturnValue;value;manual" + // "android.content;ContentProviderOperation$Builder;false;withSelection;;;Argument[this];ReturnValue;value;manual" ContentProviderOperation.Builder out = null; ContentProviderOperation.Builder in = (ContentProviderOperation.Builder) source(); out = in.withSelection(null, null); sink(out); // $ hasValueFlow } { - // "android.content;ContentProviderOperation$Builder;false;withSelectionBackReference;;;Argument[-1];ReturnValue;value;manual" + // "android.content;ContentProviderOperation$Builder;false;withSelectionBackReference;;;Argument[this];ReturnValue;value;manual" ContentProviderOperation.Builder out = null; ContentProviderOperation.Builder in = (ContentProviderOperation.Builder) source(); out = in.withSelectionBackReference(0, 0); sink(out); // $ hasValueFlow } { - // "android.content;ContentProviderOperation$Builder;false;withSelectionBackReference;;;Argument[-1];ReturnValue;value;manual" + // "android.content;ContentProviderOperation$Builder;false;withSelectionBackReference;;;Argument[this];ReturnValue;value;manual" ContentProviderOperation.Builder out = null; ContentProviderOperation.Builder in = (ContentProviderOperation.Builder) source(); out = in.withSelectionBackReference(0, 0, null); sink(out); // $ hasValueFlow } { - // "android.content;ContentProviderOperation$Builder;false;withValue;;;Argument[-1];ReturnValue;value;manual" + // "android.content;ContentProviderOperation$Builder;false;withValue;;;Argument[this];ReturnValue;value;manual" ContentProviderOperation.Builder out = null; ContentProviderOperation.Builder in = (ContentProviderOperation.Builder) source(); out = in.withValue(null, null); sink(out); // $ hasValueFlow } { - // "android.content;ContentProviderOperation$Builder;false;withValueBackReference;;;Argument[-1];ReturnValue;value;manual" + // "android.content;ContentProviderOperation$Builder;false;withValueBackReference;;;Argument[this];ReturnValue;value;manual" ContentProviderOperation.Builder out = null; ContentProviderOperation.Builder in = (ContentProviderOperation.Builder) source(); out = in.withValueBackReference(null, 0); sink(out); // $ hasValueFlow } { - // "android.content;ContentProviderOperation$Builder;false;withValueBackReference;;;Argument[-1];ReturnValue;value;manual" + // "android.content;ContentProviderOperation$Builder;false;withValueBackReference;;;Argument[this];ReturnValue;value;manual" ContentProviderOperation.Builder out = null; ContentProviderOperation.Builder in = (ContentProviderOperation.Builder) source(); out = in.withValueBackReference(null, 0, null); sink(out); // $ hasValueFlow } { - // "android.content;ContentProviderOperation$Builder;false;withValues;;;Argument[-1];ReturnValue;value;manual" + // "android.content;ContentProviderOperation$Builder;false;withValues;;;Argument[this];ReturnValue;value;manual" ContentProviderOperation.Builder out = null; ContentProviderOperation.Builder in = (ContentProviderOperation.Builder) source(); out = in.withValues(null); sink(out); // $ hasValueFlow } { - // "android.content;ContentProviderOperation$Builder;false;withYieldAllowed;;;Argument[-1];ReturnValue;value;manual" + // "android.content;ContentProviderOperation$Builder;false;withYieldAllowed;;;Argument[this];ReturnValue;value;manual" ContentProviderOperation.Builder out = null; ContentProviderOperation.Builder in = (ContentProviderOperation.Builder) source(); out = in.withYieldAllowed(false); sink(out); // $ hasValueFlow } { - // "android.content;ContentProviderOperation;false;apply;;;Argument[-1];ReturnValue;taint;manual" + // "android.content;ContentProviderOperation;false;apply;;;Argument[this];ReturnValue;taint;manual" ContentProviderResult out = null; ContentProviderOperation in = (ContentProviderOperation) source(); out = in.apply(null, null, 0); @@ -253,7 +253,7 @@ public class Test { sink(out); // $ hasTaintFlow } { - // "android.content;ContentProviderOperation;false;getUri;;;Argument[-1];ReturnValue;taint;manual" + // "android.content;ContentProviderOperation;false;getUri;;;Argument[this];ReturnValue;taint;manual" Uri out = null; ContentProviderOperation in = (ContentProviderOperation) source(); out = in.getUri(); @@ -319,28 +319,28 @@ public class Test { sink(out); // $ hasTaintFlow } { - // "android.content;ContentProviderResult;false;ContentProviderResult;(Bundle);;Argument[0];Argument[-1].Field[android.content.ContentProviderResult.extras];value;manual" + // "android.content;ContentProviderResult;false;ContentProviderResult;(Bundle);;Argument[0];Argument[this].Field[android.content.ContentProviderResult.extras];value;manual" ContentProviderResult out = null; Bundle in = (Bundle) source(); out = new ContentProviderResult(in); sink(out.extras); // $ hasValueFlow } { - // "android.content;ContentProviderResult;false;ContentProviderResult;(Parcel);;Argument[0];Argument[-1];taint;manual" + // "android.content;ContentProviderResult;false;ContentProviderResult;(Parcel);;Argument[0];Argument[this];taint;manual" ContentProviderResult out = null; Parcel in = (Parcel) source(); out = new ContentProviderResult(in); sink(out); // $ hasTaintFlow } { - // "android.content;ContentProviderResult;false;ContentProviderResult;(Throwable);;Argument[0];Argument[-1].Field[android.content.ContentProviderResult.exception];value;manual" + // "android.content;ContentProviderResult;false;ContentProviderResult;(Throwable);;Argument[0];Argument[this].Field[android.content.ContentProviderResult.exception];value;manual" ContentProviderResult out = null; Throwable in = (Throwable) source(); out = new ContentProviderResult(in); sink(out.exception); // $ hasValueFlow } { - // "android.content;ContentProviderResult;false;ContentProviderResult;(Uri);;Argument[0];Argument[-1].Field[android.content.ContentProviderResult.uri];value;manual" + // "android.content;ContentProviderResult;false;ContentProviderResult;(Uri);;Argument[0];Argument[this].Field[android.content.ContentProviderResult.uri];value;manual" ContentProviderResult out = null; Uri in = (Uri) source(); out = new ContentProviderResult(in); @@ -489,203 +489,203 @@ public class Test { sink(out); // $ hasTaintFlow } { - // "android.content;ContentValues;false;put;;;Argument[0];Argument[-1].MapKey;value;manual" + // "android.content;ContentValues;false;put;;;Argument[0];Argument[this].MapKey;value;manual" ContentValues out = null; String in = (String) source(); out.put(in, (Boolean) null); sink(getMapKeyDefault(out)); // $ hasValueFlow } { - // "android.content;ContentValues;false;put;;;Argument[0];Argument[-1].MapKey;value;manual" + // "android.content;ContentValues;false;put;;;Argument[0];Argument[this].MapKey;value;manual" ContentValues out = null; String in = (String) source(); out.put(in, (Byte) null); sink(getMapKeyDefault(out)); // $ hasValueFlow } { - // "android.content;ContentValues;false;put;;;Argument[0];Argument[-1].MapKey;value;manual" + // "android.content;ContentValues;false;put;;;Argument[0];Argument[this].MapKey;value;manual" ContentValues out = null; String in = (String) source(); out.put(in, (Double) null); sink(getMapKeyDefault(out)); // $ hasValueFlow } { - // "android.content;ContentValues;false;put;;;Argument[0];Argument[-1].MapKey;value;manual" + // "android.content;ContentValues;false;put;;;Argument[0];Argument[this].MapKey;value;manual" ContentValues out = null; String in = (String) source(); out.put(in, (Float) null); sink(getMapKeyDefault(out)); // $ hasValueFlow } { - // "android.content;ContentValues;false;put;;;Argument[0];Argument[-1].MapKey;value;manual" + // "android.content;ContentValues;false;put;;;Argument[0];Argument[this].MapKey;value;manual" ContentValues out = null; String in = (String) source(); out.put(in, (Integer) null); sink(getMapKeyDefault(out)); // $ hasValueFlow } { - // "android.content;ContentValues;false;put;;;Argument[0];Argument[-1].MapKey;value;manual" + // "android.content;ContentValues;false;put;;;Argument[0];Argument[this].MapKey;value;manual" ContentValues out = null; String in = (String) source(); out.put(in, (Long) null); sink(getMapKeyDefault(out)); // $ hasValueFlow } { - // "android.content;ContentValues;false;put;;;Argument[0];Argument[-1].MapKey;value;manual" + // "android.content;ContentValues;false;put;;;Argument[0];Argument[this].MapKey;value;manual" ContentValues out = null; String in = (String) source(); out.put(in, (Short) null); sink(getMapKeyDefault(out)); // $ hasValueFlow } { - // "android.content;ContentValues;false;put;;;Argument[0];Argument[-1].MapKey;value;manual" + // "android.content;ContentValues;false;put;;;Argument[0];Argument[this].MapKey;value;manual" ContentValues out = null; String in = (String) source(); out.put(in, (String) null); sink(getMapKeyDefault(out)); // $ hasValueFlow } { - // "android.content;ContentValues;false;put;;;Argument[0];Argument[-1].MapKey;value;manual" + // "android.content;ContentValues;false;put;;;Argument[0];Argument[this].MapKey;value;manual" ContentValues out = null; String in = (String) source(); out.put(in, (byte[]) null); sink(getMapKeyDefault(out)); // $ hasValueFlow } { - // "android.content;ContentValues;false;put;;;Argument[1];Argument[-1].MapValue;value;manual" + // "android.content;ContentValues;false;put;;;Argument[1];Argument[this].MapValue;value;manual" ContentValues out = null; Boolean in = (Boolean) source(); out.put((String) null, in); sink(getMapValueDefault(out)); // $ hasValueFlow } { - // "android.content;ContentValues;false;put;;;Argument[1];Argument[-1].MapValue;value;manual" + // "android.content;ContentValues;false;put;;;Argument[1];Argument[this].MapValue;value;manual" ContentValues out = null; Byte in = (Byte) source(); out.put((String) null, in); sink(getMapValueDefault(out)); // $ hasValueFlow } { - // "android.content;ContentValues;false;put;;;Argument[1];Argument[-1].MapValue;value;manual" + // "android.content;ContentValues;false;put;;;Argument[1];Argument[this].MapValue;value;manual" ContentValues out = null; Double in = (Double) source(); out.put((String) null, in); sink(getMapValueDefault(out)); // $ hasValueFlow } { - // "android.content;ContentValues;false;put;;;Argument[1];Argument[-1].MapValue;value;manual" + // "android.content;ContentValues;false;put;;;Argument[1];Argument[this].MapValue;value;manual" ContentValues out = null; Float in = (Float) source(); out.put((String) null, in); sink(getMapValueDefault(out)); // $ hasValueFlow } { - // "android.content;ContentValues;false;put;;;Argument[1];Argument[-1].MapValue;value;manual" + // "android.content;ContentValues;false;put;;;Argument[1];Argument[this].MapValue;value;manual" ContentValues out = null; Integer in = (Integer) source(); out.put((String) null, in); sink(getMapValueDefault(out)); // $ hasValueFlow } { - // "android.content;ContentValues;false;put;;;Argument[1];Argument[-1].MapValue;value;manual" + // "android.content;ContentValues;false;put;;;Argument[1];Argument[this].MapValue;value;manual" ContentValues out = null; Long in = (Long) source(); out.put((String) null, in); sink(getMapValueDefault(out)); // $ hasValueFlow } { - // "android.content;ContentValues;false;put;;;Argument[1];Argument[-1].MapValue;value;manual" + // "android.content;ContentValues;false;put;;;Argument[1];Argument[this].MapValue;value;manual" ContentValues out = null; Short in = (Short) source(); out.put((String) null, in); sink(getMapValueDefault(out)); // $ hasValueFlow } { - // "android.content;ContentValues;false;put;;;Argument[1];Argument[-1].MapValue;value;manual" + // "android.content;ContentValues;false;put;;;Argument[1];Argument[this].MapValue;value;manual" ContentValues out = null; String in = (String) source(); out.put((String) null, in); sink(getMapValueDefault(out)); // $ hasValueFlow } { - // "android.content;ContentValues;false;put;;;Argument[1];Argument[-1].MapValue;value;manual" + // "android.content;ContentValues;false;put;;;Argument[1];Argument[this].MapValue;value;manual" ContentValues out = null; byte[] in = (byte[]) source(); out.put((String) null, in); sink(getMapValueDefault(out)); // $ hasValueFlow } { - // "android.content;ContentValues;false;putAll;;;Argument[0].MapKey;Argument[-1].MapKey;value;manual" + // "android.content;ContentValues;false;putAll;;;Argument[0].MapKey;Argument[this].MapKey;value;manual" ContentValues out = null; ContentValues in = (ContentValues) newWithMapKeyDefault(source()); out.putAll(in); sink(getMapKeyDefault(out)); // $ hasValueFlow } { - // "android.content;ContentValues;false;putAll;;;Argument[0].MapValue;Argument[-1].MapValue;value;manual" + // "android.content;ContentValues;false;putAll;;;Argument[0].MapValue;Argument[this].MapValue;value;manual" ContentValues out = null; ContentValues in = (ContentValues) newWithMapValueDefault(source()); out.putAll(in); sink(getMapValueDefault(out)); // $ hasValueFlow } { - // "android.database;Cursor;true;copyStringToBuffer;;;Argument[-1];Argument[1];taint;manual" + // "android.database;Cursor;true;copyStringToBuffer;;;Argument[this];Argument[1];taint;manual" CharArrayBuffer out = null; Cursor in = (Cursor) source(); in.copyStringToBuffer(0, out); sink(out); // $ hasTaintFlow } { - // "android.database;Cursor;true;getBlob;;;Argument[-1];ReturnValue;taint;manual" + // "android.database;Cursor;true;getBlob;;;Argument[this];ReturnValue;taint;manual" byte[] out = null; Cursor in = (Cursor) source(); out = in.getBlob(0); sink(out); // $ hasTaintFlow } { - // "android.database;Cursor;true;getColumnName;;;Argument[-1];ReturnValue;taint;manual" + // "android.database;Cursor;true;getColumnName;;;Argument[this];ReturnValue;taint;manual" String out = null; Cursor in = (Cursor) source(); out = in.getColumnName(0); sink(out); // $ hasTaintFlow } { - // "android.database;Cursor;true;getColumnNames;;;Argument[-1];ReturnValue;taint;manual" + // "android.database;Cursor;true;getColumnNames;;;Argument[this];ReturnValue;taint;manual" String[] out = null; Cursor in = (Cursor) source(); out = in.getColumnNames(); sink(out); // $ hasTaintFlow } { - // "android.database;Cursor;true;getExtras;;;Argument[-1];ReturnValue;taint;manual" + // "android.database;Cursor;true;getExtras;;;Argument[this];ReturnValue;taint;manual" Bundle out = null; Cursor in = (Cursor) source(); out = in.getExtras(); sink(out); // $ hasTaintFlow } { - // "android.database;Cursor;true;getNotificationUri;;;Argument[-1];ReturnValue;taint;manual" + // "android.database;Cursor;true;getNotificationUri;;;Argument[this];ReturnValue;taint;manual" Uri out = null; Cursor in = (Cursor) source(); out = in.getNotificationUri(); sink(out); // $ hasTaintFlow } { - // "android.database;Cursor;true;getNotificationUris;;;Argument[-1];ReturnValue;taint;manual" + // "android.database;Cursor;true;getNotificationUris;;;Argument[this];ReturnValue;taint;manual" List out = null; Cursor in = (Cursor) source(); out = in.getNotificationUris(); sink(out); // $ hasTaintFlow } { - // "android.database;Cursor;true;getString;;;Argument[-1];ReturnValue;taint;manual" + // "android.database;Cursor;true;getString;;;Argument[this];ReturnValue;taint;manual" String out = null; Cursor in = (Cursor) source(); out = in.getString(0); sink(out); // $ hasTaintFlow } { - // "android.database;Cursor;true;respond;;;Argument[-1];ReturnValue;taint;manual" + // "android.database;Cursor;true;respond;;;Argument[this];ReturnValue;taint;manual" Bundle out = null; Cursor in = (Cursor) source(); out = in.respond(null); diff --git a/java/ql/test/library-tests/frameworks/android/flow-steps/Test.java b/java/ql/test/library-tests/frameworks/android/flow-steps/Test.java index a58a098eed4..f3ff41093d2 100644 --- a/java/ql/test/library-tests/frameworks/android/flow-steps/Test.java +++ b/java/ql/test/library-tests/frameworks/android/flow-steps/Test.java @@ -27,182 +27,182 @@ public class Test { public void test() throws Exception { { - // "android.os;Parcel;false;readArray;;;Argument[-1];ReturnValue;taint;manual" + // "android.os;Parcel;false;readArray;;;Argument[this];ReturnValue;taint;manual" Object[] out = null; Parcel in = (Parcel)source(); out = in.readArray(null); sink(out); // $ hasTaintFlow } { - // "android.os;Parcel;false;readArrayList;;;Argument[-1];ReturnValue;taint;manual" + // "android.os;Parcel;false;readArrayList;;;Argument[this];ReturnValue;taint;manual" ArrayList out = null; Parcel in = (Parcel)source(); out = in.readArrayList(null); sink(out); // $ hasTaintFlow } { - // "android.os;Parcel;false;readBinderArray;;;Argument[-1];Argument[0];taint;manual" + // "android.os;Parcel;false;readBinderArray;;;Argument[this];Argument[0];taint;manual" IBinder[] out = null; Parcel in = (Parcel)source(); in.readBinderArray(out); sink(out); // $ hasTaintFlow } { - // "android.os;Parcel;false;readBinderList;;;Argument[-1];Argument[0];taint;manual" + // "android.os;Parcel;false;readBinderList;;;Argument[this];Argument[0];taint;manual" List out = null; Parcel in = (Parcel)source(); in.readBinderList(out); sink(out); // $ hasTaintFlow } { - // "android.os;Parcel;false;readBoolean;;;Argument[-1];ReturnValue;taint;manual" + // "android.os;Parcel;false;readBoolean;;;Argument[this];ReturnValue;taint;manual" boolean out = false; Parcel in = (Parcel)source(); out = in.readBoolean(); sink(out); // $ hasTaintFlow } { - // "android.os;Parcel;false;readBooleanArray;;;Argument[-1];Argument[0];taint;manual" + // "android.os;Parcel;false;readBooleanArray;;;Argument[this];Argument[0];taint;manual" boolean[] out = null; Parcel in = (Parcel)source(); in.readBooleanArray(out); sink(out); // $ hasTaintFlow } { - // "android.os;Parcel;false;readBundle;;;Argument[-1];ReturnValue;taint;manual" + // "android.os;Parcel;false;readBundle;;;Argument[this];ReturnValue;taint;manual" Bundle out = null; Parcel in = (Parcel)source(); out = in.readBundle(null); sink(out); // $ hasTaintFlow } { - // "android.os;Parcel;false;readBundle;;;Argument[-1];ReturnValue;taint;manual" + // "android.os;Parcel;false;readBundle;;;Argument[this];ReturnValue;taint;manual" Bundle out = null; Parcel in = (Parcel)source(); out = in.readBundle(); sink(out); // $ hasTaintFlow } { - // "android.os;Parcel;false;readByte;;;Argument[-1];ReturnValue;taint;manual" + // "android.os;Parcel;false;readByte;;;Argument[this];ReturnValue;taint;manual" byte out = 0; Parcel in = (Parcel)source(); out = in.readByte(); sink(out); // $ hasTaintFlow } { - // "android.os;Parcel;false;readByteArray;;;Argument[-1];Argument[0];taint;manual" + // "android.os;Parcel;false;readByteArray;;;Argument[this];Argument[0];taint;manual" byte[] out = null; Parcel in = (Parcel)source(); in.readByteArray(out); sink(out); // $ hasTaintFlow } { - // "android.os;Parcel;false;readCharArray;;;Argument[-1];Argument[0];taint;manual" + // "android.os;Parcel;false;readCharArray;;;Argument[this];Argument[0];taint;manual" char[] out = null; Parcel in = (Parcel)source(); in.readCharArray(out); sink(out); // $ hasTaintFlow } { - // "android.os;Parcel;false;readDouble;;;Argument[-1];ReturnValue;taint;manual" + // "android.os;Parcel;false;readDouble;;;Argument[this];ReturnValue;taint;manual" double out = 0.0; Parcel in = (Parcel)source(); out = in.readDouble(); sink(out); // $ hasTaintFlow } { - // "android.os;Parcel;false;readDoubleArray;;;Argument[-1];Argument[0];taint;manual" + // "android.os;Parcel;false;readDoubleArray;;;Argument[this];Argument[0];taint;manual" double[] out = null; Parcel in = (Parcel)source(); in.readDoubleArray(out); sink(out); // $ hasTaintFlow } { - // "android.os;Parcel;false;readFileDescriptor;;;Argument[-1];ReturnValue;taint;manual" + // "android.os;Parcel;false;readFileDescriptor;;;Argument[this];ReturnValue;taint;manual" ParcelFileDescriptor out = null; Parcel in = (Parcel)source(); out = in.readFileDescriptor(); sink(out); // $ hasTaintFlow } { - // "android.os;Parcel;false;readFloat;;;Argument[-1];ReturnValue;taint;manual" + // "android.os;Parcel;false;readFloat;;;Argument[this];ReturnValue;taint;manual" float out = 0.0f; Parcel in = (Parcel)source(); out = in.readFloat(); sink(out); // $ hasTaintFlow } { - // "android.os;Parcel;false;readFloatArray;;;Argument[-1];Argument[0];taint;manual" + // "android.os;Parcel;false;readFloatArray;;;Argument[this];Argument[0];taint;manual" float[] out = null; Parcel in = (Parcel)source(); in.readFloatArray(out); sink(out); // $ hasTaintFlow } { - // "android.os;Parcel;false;readHashMap;;;Argument[-1];ReturnValue;taint;manual" + // "android.os;Parcel;false;readHashMap;;;Argument[this];ReturnValue;taint;manual" HashMap out = null; Parcel in = (Parcel)source(); out = in.readHashMap(null); sink(out); // $ hasTaintFlow } { - // "android.os;Parcel;false;readInt;;;Argument[-1];ReturnValue;taint;manual" + // "android.os;Parcel;false;readInt;;;Argument[this];ReturnValue;taint;manual" int out = 0; Parcel in = (Parcel)source(); out = in.readInt(); sink(out); // $ hasTaintFlow } { - // "android.os;Parcel;false;readIntArray;;;Argument[-1];Argument[0];taint;manual" + // "android.os;Parcel;false;readIntArray;;;Argument[this];Argument[0];taint;manual" int[] out = null; Parcel in = (Parcel)source(); in.readIntArray(out); sink(out); // $ hasTaintFlow } { - // "android.os;Parcel;false;readList;;;Argument[-1];Argument[0];taint;manual" + // "android.os;Parcel;false;readList;;;Argument[this];Argument[0];taint;manual" List out = null; Parcel in = (Parcel)source(); in.readList(out, null); sink(out); // $ hasTaintFlow } { - // "android.os;Parcel;false;readLong;;;Argument[-1];ReturnValue;taint;manual" + // "android.os;Parcel;false;readLong;;;Argument[this];ReturnValue;taint;manual" long out = 0L; Parcel in = (Parcel)source(); out = in.readLong(); sink(out); // $ hasTaintFlow } { - // "android.os;Parcel;false;readLongArray;;;Argument[-1];Argument[0];taint;manual" + // "android.os;Parcel;false;readLongArray;;;Argument[this];Argument[0];taint;manual" long[] out = null; Parcel in = (Parcel)source(); in.readLongArray(out); sink(out); // $ hasTaintFlow } { - // "android.os;Parcel;false;readMap;;;Argument[-1];Argument[0];taint;manual" + // "android.os;Parcel;false;readMap;;;Argument[this];Argument[0];taint;manual" Map out = null; Parcel in = (Parcel)source(); in.readMap(out, null); sink(out); // $ hasTaintFlow } { - // "android.os;Parcel;false;readParcelable;;;Argument[-1];ReturnValue;taint;manual" + // "android.os;Parcel;false;readParcelable;;;Argument[this];ReturnValue;taint;manual" Parcelable out = null; Parcel in = (Parcel)source(); out = in.readParcelable(null); sink(out); // $ hasTaintFlow } { - // "android.os;Parcel;false;readParcelableArray;;;Argument[-1];ReturnValue;taint;manual" + // "android.os;Parcel;false;readParcelableArray;;;Argument[this];ReturnValue;taint;manual" Parcelable[] out = null; Parcel in = (Parcel)source(); out = in.readParcelableArray(null); sink(out); // $ hasTaintFlow } { - // "android.os;Parcel;false;readParcelableList;;;Argument[-1];Argument[0];taint;manual" + // "android.os;Parcel;false;readParcelableList;;;Argument[this];Argument[0];taint;manual" List out = null; Parcel in = (Parcel)source(); in.readParcelableList(out, null); @@ -217,105 +217,105 @@ public class Test { sink(out); // $ hasValueFlow } { - // "android.os;Parcel;false;readPersistableBundle;;;Argument[-1];ReturnValue;taint;manual" + // "android.os;Parcel;false;readPersistableBundle;;;Argument[this];ReturnValue;taint;manual" PersistableBundle out = null; Parcel in = (Parcel)source(); out = in.readPersistableBundle(null); sink(out); // $ hasTaintFlow } { - // "android.os;Parcel;false;readPersistableBundle;;;Argument[-1];ReturnValue;taint;manual" + // "android.os;Parcel;false;readPersistableBundle;;;Argument[this];ReturnValue;taint;manual" PersistableBundle out = null; Parcel in = (Parcel)source(); out = in.readPersistableBundle(); sink(out); // $ hasTaintFlow } { - // "android.os;Parcel;false;readSerializable;;;Argument[-1];ReturnValue;taint;manual" + // "android.os;Parcel;false;readSerializable;;;Argument[this];ReturnValue;taint;manual" Serializable out = null; Parcel in = (Parcel)source(); out = in.readSerializable(); sink(out); // $ hasTaintFlow } { - // "android.os;Parcel;false;readSize;;;Argument[-1];ReturnValue;taint;manual" + // "android.os;Parcel;false;readSize;;;Argument[this];ReturnValue;taint;manual" Size out = null; Parcel in = (Parcel)source(); out = in.readSize(); sink(out); // $ hasTaintFlow } { - // "android.os;Parcel;false;readSizeF;;;Argument[-1];ReturnValue;taint;manual" + // "android.os;Parcel;false;readSizeF;;;Argument[this];ReturnValue;taint;manual" SizeF out = null; Parcel in = (Parcel)source(); out = in.readSizeF(); sink(out); // $ hasTaintFlow } { - // "android.os;Parcel;false;readSparseArray;;;Argument[-1];ReturnValue;taint;manual" + // "android.os;Parcel;false;readSparseArray;;;Argument[this];ReturnValue;taint;manual" SparseArray out = null; Parcel in = (Parcel)source(); out = in.readSparseArray(null); sink(out); // $ hasTaintFlow } { - // "android.os;Parcel;false;readSparseBooleanArray;;;Argument[-1];ReturnValue;taint;manual" + // "android.os;Parcel;false;readSparseBooleanArray;;;Argument[this];ReturnValue;taint;manual" SparseBooleanArray out = null; Parcel in = (Parcel)source(); out = in.readSparseBooleanArray(); sink(out); // $ hasTaintFlow } { - // "android.os;Parcel;false;readString;;;Argument[-1];ReturnValue;taint;manual" + // "android.os;Parcel;false;readString;;;Argument[this];ReturnValue;taint;manual" String out = null; Parcel in = (Parcel)source(); out = in.readString(); sink(out); // $ hasTaintFlow } { - // "android.os;Parcel;false;readStringArray;;;Argument[-1];Argument[0];taint;manual" + // "android.os;Parcel;false;readStringArray;;;Argument[this];Argument[0];taint;manual" String[] out = null; Parcel in = (Parcel)source(); in.readStringArray(out); sink(out); // $ hasTaintFlow } { - // "android.os;Parcel;false;readStringList;;;Argument[-1];Argument[0];taint;manual" + // "android.os;Parcel;false;readStringList;;;Argument[this];Argument[0];taint;manual" List out = null; Parcel in = (Parcel)source(); in.readStringList(out); sink(out); // $ hasTaintFlow } { - // "android.os;Parcel;false;readStrongBinder;;;Argument[-1];ReturnValue;taint;manual" + // "android.os;Parcel;false;readStrongBinder;;;Argument[this];ReturnValue;taint;manual" IBinder out = null; Parcel in = (Parcel)source(); out = in.readStrongBinder(); sink(out); // $ hasTaintFlow } { - // "android.os;Parcel;false;readTypedArray;;;Argument[-1];Argument[0];taint;manual" + // "android.os;Parcel;false;readTypedArray;;;Argument[this];Argument[0];taint;manual" Object[] out = null; Parcel in = (Parcel)source(); in.readTypedArray(out, null); sink(out); // $ hasTaintFlow } { - // "android.os;Parcel;false;readTypedList;;;Argument[-1];Argument[0];taint;manual" + // "android.os;Parcel;false;readTypedList;;;Argument[this];Argument[0];taint;manual" List out = null; Parcel in = (Parcel)source(); in.readTypedList(out, null); sink(out); // $ hasTaintFlow } { - // "android.os;Parcel;false;readTypedObject;;;Argument[-1];ReturnValue;taint;manual" + // "android.os;Parcel;false;readTypedObject;;;Argument[this];ReturnValue;taint;manual" Object out = null; Parcel in = (Parcel)source(); out = in.readTypedObject(null); sink(out); // $ hasTaintFlow } { - // "android.os;Parcel;false;readValue;;;Argument[-1];ReturnValue;taint;manual" + // "android.os;Parcel;false;readValue;;;Argument[this];ReturnValue;taint;manual" Object out = null; Parcel in = (Parcel)source(); out = in.readValue(null); diff --git a/java/ql/test/library-tests/frameworks/android/intent/Test.java b/java/ql/test/library-tests/frameworks/android/intent/Test.java index b70eee0195b..df7e028222c 100644 --- a/java/ql/test/library-tests/frameworks/android/intent/Test.java +++ b/java/ql/test/library-tests/frameworks/android/intent/Test.java @@ -36,42 +36,42 @@ public class Test { public void test() throws Exception { { - // "android.content;Intent;false;Intent;(Intent);;MapKey of SyntheticField[android.content.Intent.extras] of Argument[0];MapKey of SyntheticField[android.content.Intent.extras] of Argument[-1];value;manual" + // "android.content;Intent;false;Intent;(Intent);;MapKey of SyntheticField[android.content.Intent.extras] of Argument[0];MapKey of SyntheticField[android.content.Intent.extras] of Argument[this];value;manual" Intent out = null; Intent in = (Intent)newWithIntent_extras(newBundleWithMapKey(source())); out = new Intent(in); sink(getMapKey(getIntent_extras(out))); // $ hasValueFlow } { - // "android.content;Intent;false;Intent;(Intent);;MapValue of SyntheticField[android.content.Intent.extras] of Argument[0];MapValue of SyntheticField[android.content.Intent.extras] of Argument[-1];value;manual" + // "android.content;Intent;false;Intent;(Intent);;MapValue of SyntheticField[android.content.Intent.extras] of Argument[0];MapValue of SyntheticField[android.content.Intent.extras] of Argument[this];value;manual" Intent out = null; Intent in = (Intent)newWithIntent_extras(newBundleWithMapValue(source())); out = new Intent(in); sink(getMapValue(getIntent_extras(out))); // $ hasValueFlow } { - // "android.content;Intent;false;Intent;(String,Uri);;Argument[1];SyntheticField[android.content.Intent.data] of Argument[-1];value;manual" + // "android.content;Intent;false;Intent;(String,Uri);;Argument[1];SyntheticField[android.content.Intent.data] of Argument[this];value;manual" Intent out = null; Uri in = (Uri)source(); out = new Intent(null, in); sink(getData(out)); // $ hasValueFlow } { - // "android.content;Intent;false;Intent;(String,Uri,Context,Class);;Argument[1];SyntheticField[android.content.Intent.data] of Argument[-1];value;manual" + // "android.content;Intent;false;Intent;(String,Uri,Context,Class);;Argument[1];SyntheticField[android.content.Intent.data] of Argument[this];value;manual" Intent out = null; Uri in = (Uri)source(); out = new Intent(null, in, null, null); sink(getData(out)); // $ hasValueFlow } { - // "android.content;Intent;true;addCategory;;;Argument[-1];ReturnValue;value;manual" + // "android.content;Intent;true;addCategory;;;Argument[this];ReturnValue;value;manual" Intent out = null; Intent in = (Intent)source(); out = in.addCategory(null); sink(out); // $ hasValueFlow } { - // "android.content;Intent;true;addFlags;;;Argument[-1];ReturnValue;value;manual" + // "android.content;Intent;true;addFlags;;;Argument[this];ReturnValue;value;manual" Intent out = null; Intent in = (Intent)source(); out = in.addFlags(0); @@ -99,938 +99,938 @@ public class Test { sink(getMapValue(getIntent_extras(out))); // $ hasValueFlow } { - // "android.content;Intent;true;getBundleExtra;(String);;MapValue of SyntheticField[android.content.Intent.extras] of Argument[-1];ReturnValue;value;manual" + // "android.content;Intent;true;getBundleExtra;(String);;MapValue of SyntheticField[android.content.Intent.extras] of Argument[this];ReturnValue;value;manual" Bundle out = null; Intent in = (Intent)newWithIntent_extras(newBundleWithMapValue(source())); out = in.getBundleExtra(null); sink(out); // $ hasValueFlow } { - // "android.content;Intent;true;getByteArrayExtra;(String);;MapValue of SyntheticField[android.content.Intent.extras] of Argument[-1];ReturnValue;value;manual" + // "android.content;Intent;true;getByteArrayExtra;(String);;MapValue of SyntheticField[android.content.Intent.extras] of Argument[this];ReturnValue;value;manual" byte[] out = null; Intent in = (Intent)newWithIntent_extras(newBundleWithMapValue(source())); out = in.getByteArrayExtra(null); sink(out); // $ hasValueFlow } { - // "android.content;Intent;true;getCharArrayExtra;(String);;MapValue of SyntheticField[android.content.Intent.extras] of Argument[-1];ReturnValue;value;manual" + // "android.content;Intent;true;getCharArrayExtra;(String);;MapValue of SyntheticField[android.content.Intent.extras] of Argument[this];ReturnValue;value;manual" char[] out = null; Intent in = (Intent)newWithIntent_extras(newBundleWithMapValue(source())); out = in.getCharArrayExtra(null); sink(out); // $ hasValueFlow } { - // "android.content;Intent;true;getCharSequenceArrayExtra;(String);;MapValue of SyntheticField[android.content.Intent.extras] of Argument[-1];ReturnValue;value;manual" + // "android.content;Intent;true;getCharSequenceArrayExtra;(String);;MapValue of SyntheticField[android.content.Intent.extras] of Argument[this];ReturnValue;value;manual" CharSequence[] out = null; Intent in = (Intent)newWithIntent_extras(newBundleWithMapValue(source())); out = in.getCharSequenceArrayExtra(null); sink(out); // $ hasValueFlow } { - // "android.content;Intent;true;getCharSequenceArrayListExtra;(String);;MapValue of SyntheticField[android.content.Intent.extras] of Argument[-1];ReturnValue;value;manual" + // "android.content;Intent;true;getCharSequenceArrayListExtra;(String);;MapValue of SyntheticField[android.content.Intent.extras] of Argument[this];ReturnValue;value;manual" ArrayList out = null; Intent in = (Intent)newWithIntent_extras(newBundleWithMapValue(source())); out = in.getCharSequenceArrayListExtra(null); sink(out); // $ hasValueFlow } { - // "android.content;Intent;true;getCharSequenceExtra;(String);;MapValue of SyntheticField[android.content.Intent.extras] of Argument[-1];ReturnValue;value;manual" + // "android.content;Intent;true;getCharSequenceExtra;(String);;MapValue of SyntheticField[android.content.Intent.extras] of Argument[this];ReturnValue;value;manual" CharSequence out = null; Intent in = (Intent)newWithIntent_extras(newBundleWithMapValue(source())); out = in.getCharSequenceExtra(null); sink(out); // $ hasValueFlow } { - // "android.content;Intent;true;getData;;;SyntheticField[android.content.Intent.data] of Argument[-1];ReturnValue;value;manual" + // "android.content;Intent;true;getData;;;SyntheticField[android.content.Intent.data] of Argument[this];ReturnValue;value;manual" Uri out = null; Intent in = (Intent)newWithIntent_data(source()); out = in.getData(); sink(out); // $ hasValueFlow } { - // "android.content;Intent;true;getDataString;;;SyntheticField[android.content.Intent.data] of Argument[-1];ReturnValue;taint;manual" + // "android.content;Intent;true;getDataString;;;SyntheticField[android.content.Intent.data] of Argument[this];ReturnValue;taint;manual" String out = null; Intent in = (Intent)newWithIntent_data(source()); out = in.getDataString(); sink(out); // $ hasTaintFlow } { - // "android.content;Intent;true;getExtras;();;SyntheticField[android.content.Intent.extras] of Argument[-1];ReturnValue;value;manual" + // "android.content;Intent;true;getExtras;();;SyntheticField[android.content.Intent.extras] of Argument[this];ReturnValue;value;manual" Bundle out = null; Intent in = (Intent)newWithIntent_extras(source()); out = in.getExtras(); sink(out); // $ hasValueFlow } { - // "android.content;Intent;false;getIntent;;;Argument[0];SyntheticField[android.content.Intent.data] of Argument[-1];taint;manual" + // "android.content;Intent;false;getIntent;;;Argument[0];SyntheticField[android.content.Intent.data] of Argument[this];taint;manual" Intent out = null; String in = (String)source(); out = Intent.getIntent(in); sink(out.getData()); // $ hasTaintFlow } { - // "android.content;Intent;false;getIntentOld;;;Argument[0];SyntheticField[android.content.Intent.data] of Argument[-1];taint;manual" + // "android.content;Intent;false;getIntentOld;;;Argument[0];SyntheticField[android.content.Intent.data] of Argument[this];taint;manual" Intent out = null; String in = (String)source(); out = Intent.getIntentOld(in); sink(out.getData()); // $ hasTaintFlow } { - // "android.content;Intent;true;getParcelableArrayExtra;(String);;MapValue of SyntheticField[android.content.Intent.extras] of Argument[-1];ReturnValue;value;manual" + // "android.content;Intent;true;getParcelableArrayExtra;(String);;MapValue of SyntheticField[android.content.Intent.extras] of Argument[this];ReturnValue;value;manual" Parcelable[] out = null; Intent in = (Intent)newWithIntent_extras(newBundleWithMapValue(source())); out = in.getParcelableArrayExtra(null); sink(out); // $ hasValueFlow } { - // "android.content;Intent;true;getParcelableArrayListExtra;(String);;MapValue of SyntheticField[android.content.Intent.extras] of Argument[-1];ReturnValue;value;manual" + // "android.content;Intent;true;getParcelableArrayListExtra;(String);;MapValue of SyntheticField[android.content.Intent.extras] of Argument[this];ReturnValue;value;manual" ArrayList out = null; Intent in = (Intent)newWithIntent_extras(newBundleWithMapValue(source())); out = in.getParcelableArrayListExtra(null); sink(out); // $ hasValueFlow } { - // "android.content;Intent;true;getParcelableExtra;(String);;MapValue of SyntheticField[android.content.Intent.extras] of Argument[-1];ReturnValue;value;manual" + // "android.content;Intent;true;getParcelableExtra;(String);;MapValue of SyntheticField[android.content.Intent.extras] of Argument[this];ReturnValue;value;manual" Parcelable out = null; Intent in = (Intent)newWithIntent_extras(newBundleWithMapValue(source())); out = in.getParcelableExtra(null); sink(out); // $ hasValueFlow } { - // "android.content;Intent;true;getSerializableExtra;(String);;MapValue of SyntheticField[android.content.Intent.extras] of Argument[-1];ReturnValue;value;manual" + // "android.content;Intent;true;getSerializableExtra;(String);;MapValue of SyntheticField[android.content.Intent.extras] of Argument[this];ReturnValue;value;manual" Serializable out = null; Intent in = (Intent)newWithIntent_extras(newBundleWithMapValue(source())); out = in.getSerializableExtra(null); sink(out); // $ hasValueFlow } { - // "android.content;Intent;true;getStringArrayExtra;(String);;MapValue of SyntheticField[android.content.Intent.extras] of Argument[-1];ReturnValue;value;manual" + // "android.content;Intent;true;getStringArrayExtra;(String);;MapValue of SyntheticField[android.content.Intent.extras] of Argument[this];ReturnValue;value;manual" String[] out = null; Intent in = (Intent)newWithIntent_extras(newBundleWithMapValue(source())); out = in.getStringArrayExtra(null); sink(out); // $ hasValueFlow } { - // "android.content;Intent;true;getStringArrayListExtra;(String);;MapValue of SyntheticField[android.content.Intent.extras] of Argument[-1];ReturnValue;value;manual" + // "android.content;Intent;true;getStringArrayListExtra;(String);;MapValue of SyntheticField[android.content.Intent.extras] of Argument[this];ReturnValue;value;manual" ArrayList out = null; Intent in = (Intent)newWithIntent_extras(newBundleWithMapValue(source())); out = in.getStringArrayListExtra(null); sink(out); // $ hasValueFlow } { - // "android.content;Intent;true;getStringExtra;(String);;MapValue of SyntheticField[android.content.Intent.extras] of Argument[-1];ReturnValue;value;manual" + // "android.content;Intent;true;getStringExtra;(String);;MapValue of SyntheticField[android.content.Intent.extras] of Argument[this];ReturnValue;value;manual" String out = null; Intent in = (Intent)newWithIntent_extras(newBundleWithMapValue(source())); out = in.getStringExtra(null); sink(out); // $ hasValueFlow } { - // "android.content;Intent;false;parseUri;;;Argument[0];SyntheticField[android.content.Intent.data] of Argument[-1];taint;manual" + // "android.content;Intent;false;parseUri;;;Argument[0];SyntheticField[android.content.Intent.data] of Argument[this];taint;manual" Intent out = null; String in = (String)source(); out = Intent.parseUri(in, 0); sink(out.getData()); // $ hasTaintFlow } { - // "android.content;Intent;true;putCharSequenceArrayListExtra;;;Argument[-1];ReturnValue;value;manual" + // "android.content;Intent;true;putCharSequenceArrayListExtra;;;Argument[this];ReturnValue;value;manual" Intent out = null; Intent in = (Intent)source(); out = in.putCharSequenceArrayListExtra(null, null); sink(out); // $ hasValueFlow } { - // "android.content;Intent;true;putCharSequenceArrayListExtra;;;Argument[0];MapKey of SyntheticField[android.content.Intent.extras] of Argument[-1];value;manual" + // "android.content;Intent;true;putCharSequenceArrayListExtra;;;Argument[0];MapKey of SyntheticField[android.content.Intent.extras] of Argument[this];value;manual" Intent out = null; String in = (String)source(); out.putCharSequenceArrayListExtra(in, null); sink(getMapKey(getIntent_extras(out))); // $ hasValueFlow } { - // "android.content;Intent;true;putCharSequenceArrayListExtra;;;Argument[1];MapValue of SyntheticField[android.content.Intent.extras] of Argument[-1];value;manual" + // "android.content;Intent;true;putCharSequenceArrayListExtra;;;Argument[1];MapValue of SyntheticField[android.content.Intent.extras] of Argument[this];value;manual" Intent out = null; ArrayList in = (ArrayList)source(); out.putCharSequenceArrayListExtra(null, in); sink(getMapValue(getIntent_extras(out))); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[-1];ReturnValue;value;manual" + // "android.content;Intent;true;putExtra;;;Argument[this];ReturnValue;value;manual" Intent out = null; Intent in = (Intent)source(); out = in.putExtra((String)null, false); sink(out); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[-1];ReturnValue;value;manual" + // "android.content;Intent;true;putExtra;;;Argument[this];ReturnValue;value;manual" Intent out = null; Intent in = (Intent)source(); out = in.putExtra((String)null, 0L); sink(out); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[-1];ReturnValue;value;manual" + // "android.content;Intent;true;putExtra;;;Argument[this];ReturnValue;value;manual" Intent out = null; Intent in = (Intent)source(); out = in.putExtra((String)null, 0.0f); sink(out); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[-1];ReturnValue;value;manual" + // "android.content;Intent;true;putExtra;;;Argument[this];ReturnValue;value;manual" Intent out = null; Intent in = (Intent)source(); out = in.putExtra((String)null, 0.0); sink(out); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[-1];ReturnValue;value;manual" + // "android.content;Intent;true;putExtra;;;Argument[this];ReturnValue;value;manual" Intent out = null; Intent in = (Intent)source(); out = in.putExtra((String)null, 0); sink(out); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[-1];ReturnValue;value;manual" + // "android.content;Intent;true;putExtra;;;Argument[this];ReturnValue;value;manual" Intent out = null; Intent in = (Intent)source(); out = in.putExtra((String)null, (short[])null); sink(out); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[-1];ReturnValue;value;manual" + // "android.content;Intent;true;putExtra;;;Argument[this];ReturnValue;value;manual" Intent out = null; Intent in = (Intent)source(); out = in.putExtra((String)null, (short)0); sink(out); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[-1];ReturnValue;value;manual" + // "android.content;Intent;true;putExtra;;;Argument[this];ReturnValue;value;manual" Intent out = null; Intent in = (Intent)source(); out = in.putExtra((String)null, (long[])null); sink(out); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[-1];ReturnValue;value;manual" + // "android.content;Intent;true;putExtra;;;Argument[this];ReturnValue;value;manual" Intent out = null; Intent in = (Intent)source(); out = in.putExtra((String)null, (int[])null); sink(out); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[-1];ReturnValue;value;manual" + // "android.content;Intent;true;putExtra;;;Argument[this];ReturnValue;value;manual" Intent out = null; Intent in = (Intent)source(); out = in.putExtra((String)null, (float[])null); sink(out); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[-1];ReturnValue;value;manual" + // "android.content;Intent;true;putExtra;;;Argument[this];ReturnValue;value;manual" Intent out = null; Intent in = (Intent)source(); out = in.putExtra((String)null, (double[])null); sink(out); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[-1];ReturnValue;value;manual" + // "android.content;Intent;true;putExtra;;;Argument[this];ReturnValue;value;manual" Intent out = null; Intent in = (Intent)source(); out = in.putExtra((String)null, (char[])null); sink(out); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[-1];ReturnValue;value;manual" + // "android.content;Intent;true;putExtra;;;Argument[this];ReturnValue;value;manual" Intent out = null; Intent in = (Intent)source(); out = in.putExtra((String)null, (byte[])null); sink(out); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[-1];ReturnValue;value;manual" + // "android.content;Intent;true;putExtra;;;Argument[this];ReturnValue;value;manual" Intent out = null; Intent in = (Intent)source(); out = in.putExtra((String)null, (byte)0); sink(out); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[-1];ReturnValue;value;manual" + // "android.content;Intent;true;putExtra;;;Argument[this];ReturnValue;value;manual" Intent out = null; Intent in = (Intent)source(); out = in.putExtra((String)null, (boolean[])null); sink(out); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[-1];ReturnValue;value;manual" + // "android.content;Intent;true;putExtra;;;Argument[this];ReturnValue;value;manual" Intent out = null; Intent in = (Intent)source(); out = in.putExtra((String)null, (String[])null); sink(out); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[-1];ReturnValue;value;manual" + // "android.content;Intent;true;putExtra;;;Argument[this];ReturnValue;value;manual" Intent out = null; Intent in = (Intent)source(); out = in.putExtra((String)null, (String)null); sink(out); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[-1];ReturnValue;value;manual" + // "android.content;Intent;true;putExtra;;;Argument[this];ReturnValue;value;manual" Intent out = null; Intent in = (Intent)source(); out = in.putExtra((String)null, (Serializable)null); sink(out); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[-1];ReturnValue;value;manual" + // "android.content;Intent;true;putExtra;;;Argument[this];ReturnValue;value;manual" Intent out = null; Intent in = (Intent)source(); out = in.putExtra((String)null, (Parcelable[])null); sink(out); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[-1];ReturnValue;value;manual" + // "android.content;Intent;true;putExtra;;;Argument[this];ReturnValue;value;manual" Intent out = null; Intent in = (Intent)source(); out = in.putExtra((String)null, (Parcelable)null); sink(out); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[-1];ReturnValue;value;manual" + // "android.content;Intent;true;putExtra;;;Argument[this];ReturnValue;value;manual" Intent out = null; Intent in = (Intent)source(); out = in.putExtra((String)null, (CharSequence[])null); sink(out); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[-1];ReturnValue;value;manual" + // "android.content;Intent;true;putExtra;;;Argument[this];ReturnValue;value;manual" Intent out = null; Intent in = (Intent)source(); out = in.putExtra((String)null, (CharSequence)null); sink(out); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[-1];ReturnValue;value;manual" + // "android.content;Intent;true;putExtra;;;Argument[this];ReturnValue;value;manual" Intent out = null; Intent in = (Intent)source(); out = in.putExtra((String)null, (Bundle)null); sink(out); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[-1];ReturnValue;value;manual" + // "android.content;Intent;true;putExtra;;;Argument[this];ReturnValue;value;manual" Intent out = null; Intent in = (Intent)source(); out = in.putExtra((String)null, '\0'); sink(out); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[0];MapKey of SyntheticField[android.content.Intent.extras] of Argument[-1];value;manual" + // "android.content;Intent;true;putExtra;;;Argument[0];MapKey of SyntheticField[android.content.Intent.extras] of Argument[this];value;manual" Intent out = null; String in = (String)source(); out.putExtra(in, false); sink(getMapKey(getIntent_extras(out))); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[0];MapKey of SyntheticField[android.content.Intent.extras] of Argument[-1];value;manual" + // "android.content;Intent;true;putExtra;;;Argument[0];MapKey of SyntheticField[android.content.Intent.extras] of Argument[this];value;manual" Intent out = null; String in = (String)source(); out.putExtra(in, 0L); sink(getMapKey(getIntent_extras(out))); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[0];MapKey of SyntheticField[android.content.Intent.extras] of Argument[-1];value;manual" + // "android.content;Intent;true;putExtra;;;Argument[0];MapKey of SyntheticField[android.content.Intent.extras] of Argument[this];value;manual" Intent out = null; String in = (String)source(); out.putExtra(in, 0.0f); sink(getMapKey(getIntent_extras(out))); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[0];MapKey of SyntheticField[android.content.Intent.extras] of Argument[-1];value;manual" + // "android.content;Intent;true;putExtra;;;Argument[0];MapKey of SyntheticField[android.content.Intent.extras] of Argument[this];value;manual" Intent out = null; String in = (String)source(); out.putExtra(in, 0.0); sink(getMapKey(getIntent_extras(out))); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[0];MapKey of SyntheticField[android.content.Intent.extras] of Argument[-1];value;manual" + // "android.content;Intent;true;putExtra;;;Argument[0];MapKey of SyntheticField[android.content.Intent.extras] of Argument[this];value;manual" Intent out = null; String in = (String)source(); out.putExtra(in, 0); sink(getMapKey(getIntent_extras(out))); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[0];MapKey of SyntheticField[android.content.Intent.extras] of Argument[-1];value;manual" + // "android.content;Intent;true;putExtra;;;Argument[0];MapKey of SyntheticField[android.content.Intent.extras] of Argument[this];value;manual" Intent out = null; String in = (String)source(); out.putExtra(in, (short[])null); sink(getMapKey(getIntent_extras(out))); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[0];MapKey of SyntheticField[android.content.Intent.extras] of Argument[-1];value;manual" + // "android.content;Intent;true;putExtra;;;Argument[0];MapKey of SyntheticField[android.content.Intent.extras] of Argument[this];value;manual" Intent out = null; String in = (String)source(); out.putExtra(in, (short)0); sink(getMapKey(getIntent_extras(out))); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[0];MapKey of SyntheticField[android.content.Intent.extras] of Argument[-1];value;manual" + // "android.content;Intent;true;putExtra;;;Argument[0];MapKey of SyntheticField[android.content.Intent.extras] of Argument[this];value;manual" Intent out = null; String in = (String)source(); out.putExtra(in, (long[])null); sink(getMapKey(getIntent_extras(out))); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[0];MapKey of SyntheticField[android.content.Intent.extras] of Argument[-1];value;manual" + // "android.content;Intent;true;putExtra;;;Argument[0];MapKey of SyntheticField[android.content.Intent.extras] of Argument[this];value;manual" Intent out = null; String in = (String)source(); out.putExtra(in, (int[])null); sink(getMapKey(getIntent_extras(out))); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[0];MapKey of SyntheticField[android.content.Intent.extras] of Argument[-1];value;manual" + // "android.content;Intent;true;putExtra;;;Argument[0];MapKey of SyntheticField[android.content.Intent.extras] of Argument[this];value;manual" Intent out = null; String in = (String)source(); out.putExtra(in, (float[])null); sink(getMapKey(getIntent_extras(out))); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[0];MapKey of SyntheticField[android.content.Intent.extras] of Argument[-1];value;manual" + // "android.content;Intent;true;putExtra;;;Argument[0];MapKey of SyntheticField[android.content.Intent.extras] of Argument[this];value;manual" Intent out = null; String in = (String)source(); out.putExtra(in, (double[])null); sink(getMapKey(getIntent_extras(out))); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[0];MapKey of SyntheticField[android.content.Intent.extras] of Argument[-1];value;manual" + // "android.content;Intent;true;putExtra;;;Argument[0];MapKey of SyntheticField[android.content.Intent.extras] of Argument[this];value;manual" Intent out = null; String in = (String)source(); out.putExtra(in, (char[])null); sink(getMapKey(getIntent_extras(out))); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[0];MapKey of SyntheticField[android.content.Intent.extras] of Argument[-1];value;manual" + // "android.content;Intent;true;putExtra;;;Argument[0];MapKey of SyntheticField[android.content.Intent.extras] of Argument[this];value;manual" Intent out = null; String in = (String)source(); out.putExtra(in, (byte[])null); sink(getMapKey(getIntent_extras(out))); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[0];MapKey of SyntheticField[android.content.Intent.extras] of Argument[-1];value;manual" + // "android.content;Intent;true;putExtra;;;Argument[0];MapKey of SyntheticField[android.content.Intent.extras] of Argument[this];value;manual" Intent out = null; String in = (String)source(); out.putExtra(in, (byte)0); sink(getMapKey(getIntent_extras(out))); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[0];MapKey of SyntheticField[android.content.Intent.extras] of Argument[-1];value;manual" + // "android.content;Intent;true;putExtra;;;Argument[0];MapKey of SyntheticField[android.content.Intent.extras] of Argument[this];value;manual" Intent out = null; String in = (String)source(); out.putExtra(in, (boolean[])null); sink(getMapKey(getIntent_extras(out))); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[0];MapKey of SyntheticField[android.content.Intent.extras] of Argument[-1];value;manual" + // "android.content;Intent;true;putExtra;;;Argument[0];MapKey of SyntheticField[android.content.Intent.extras] of Argument[this];value;manual" Intent out = null; String in = (String)source(); out.putExtra(in, (String[])null); sink(getMapKey(getIntent_extras(out))); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[0];MapKey of SyntheticField[android.content.Intent.extras] of Argument[-1];value;manual" + // "android.content;Intent;true;putExtra;;;Argument[0];MapKey of SyntheticField[android.content.Intent.extras] of Argument[this];value;manual" Intent out = null; String in = (String)source(); out.putExtra(in, (String)null); sink(getMapKey(getIntent_extras(out))); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[0];MapKey of SyntheticField[android.content.Intent.extras] of Argument[-1];value;manual" + // "android.content;Intent;true;putExtra;;;Argument[0];MapKey of SyntheticField[android.content.Intent.extras] of Argument[this];value;manual" Intent out = null; String in = (String)source(); out.putExtra(in, (Serializable)null); sink(getMapKey(getIntent_extras(out))); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[0];MapKey of SyntheticField[android.content.Intent.extras] of Argument[-1];value;manual" + // "android.content;Intent;true;putExtra;;;Argument[0];MapKey of SyntheticField[android.content.Intent.extras] of Argument[this];value;manual" Intent out = null; String in = (String)source(); out.putExtra(in, (Parcelable[])null); sink(getMapKey(getIntent_extras(out))); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[0];MapKey of SyntheticField[android.content.Intent.extras] of Argument[-1];value;manual" + // "android.content;Intent;true;putExtra;;;Argument[0];MapKey of SyntheticField[android.content.Intent.extras] of Argument[this];value;manual" Intent out = null; String in = (String)source(); out.putExtra(in, (Parcelable)null); sink(getMapKey(getIntent_extras(out))); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[0];MapKey of SyntheticField[android.content.Intent.extras] of Argument[-1];value;manual" + // "android.content;Intent;true;putExtra;;;Argument[0];MapKey of SyntheticField[android.content.Intent.extras] of Argument[this];value;manual" Intent out = null; String in = (String)source(); out.putExtra(in, (CharSequence[])null); sink(getMapKey(getIntent_extras(out))); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[0];MapKey of SyntheticField[android.content.Intent.extras] of Argument[-1];value;manual" + // "android.content;Intent;true;putExtra;;;Argument[0];MapKey of SyntheticField[android.content.Intent.extras] of Argument[this];value;manual" Intent out = null; String in = (String)source(); out.putExtra(in, (CharSequence)null); sink(getMapKey(getIntent_extras(out))); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[0];MapKey of SyntheticField[android.content.Intent.extras] of Argument[-1];value;manual" + // "android.content;Intent;true;putExtra;;;Argument[0];MapKey of SyntheticField[android.content.Intent.extras] of Argument[this];value;manual" Intent out = null; String in = (String)source(); out.putExtra(in, (Bundle)null); sink(getMapKey(getIntent_extras(out))); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[0];MapKey of SyntheticField[android.content.Intent.extras] of Argument[-1];value;manual" + // "android.content;Intent;true;putExtra;;;Argument[0];MapKey of SyntheticField[android.content.Intent.extras] of Argument[this];value;manual" Intent out = null; String in = (String)source(); out.putExtra(in, '\0'); sink(getMapKey(getIntent_extras(out))); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[1];MapValue of SyntheticField[android.content.Intent.extras] of Argument[-1];value;manual" + // "android.content;Intent;true;putExtra;;;Argument[1];MapValue of SyntheticField[android.content.Intent.extras] of Argument[this];value;manual" Intent out = null; short[] in = (short[])source(); out.putExtra((String)null, in); sink(getMapValue(getIntent_extras(out))); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[1];MapValue of SyntheticField[android.content.Intent.extras] of Argument[-1];value;manual" + // "android.content;Intent;true;putExtra;;;Argument[1];MapValue of SyntheticField[android.content.Intent.extras] of Argument[this];value;manual" Intent out = null; short in = (short)source(); out.putExtra((String)null, in); sink(getMapValue(getIntent_extras(out))); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[1];MapValue of SyntheticField[android.content.Intent.extras] of Argument[-1];value;manual" + // "android.content;Intent;true;putExtra;;;Argument[1];MapValue of SyntheticField[android.content.Intent.extras] of Argument[this];value;manual" Intent out = null; long[] in = (long[])source(); out.putExtra((String)null, in); sink(getMapValue(getIntent_extras(out))); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[1];MapValue of SyntheticField[android.content.Intent.extras] of Argument[-1];value;manual" + // "android.content;Intent;true;putExtra;;;Argument[1];MapValue of SyntheticField[android.content.Intent.extras] of Argument[this];value;manual" Intent out = null; long in = (long)source(); out.putExtra((String)null, in); sink(getMapValue(getIntent_extras(out))); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[1];MapValue of SyntheticField[android.content.Intent.extras] of Argument[-1];value;manual" + // "android.content;Intent;true;putExtra;;;Argument[1];MapValue of SyntheticField[android.content.Intent.extras] of Argument[this];value;manual" Intent out = null; int[] in = (int[])source(); out.putExtra((String)null, in); sink(getMapValue(getIntent_extras(out))); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[1];MapValue of SyntheticField[android.content.Intent.extras] of Argument[-1];value;manual" + // "android.content;Intent;true;putExtra;;;Argument[1];MapValue of SyntheticField[android.content.Intent.extras] of Argument[this];value;manual" Intent out = null; int in = (int)source(); out.putExtra((String)null, in); sink(getMapValue(getIntent_extras(out))); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[1];MapValue of SyntheticField[android.content.Intent.extras] of Argument[-1];value;manual" + // "android.content;Intent;true;putExtra;;;Argument[1];MapValue of SyntheticField[android.content.Intent.extras] of Argument[this];value;manual" Intent out = null; float[] in = (float[])source(); out.putExtra((String)null, in); sink(getMapValue(getIntent_extras(out))); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[1];MapValue of SyntheticField[android.content.Intent.extras] of Argument[-1];value;manual" + // "android.content;Intent;true;putExtra;;;Argument[1];MapValue of SyntheticField[android.content.Intent.extras] of Argument[this];value;manual" Intent out = null; float in = (float)source(); out.putExtra((String)null, in); sink(getMapValue(getIntent_extras(out))); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[1];MapValue of SyntheticField[android.content.Intent.extras] of Argument[-1];value;manual" + // "android.content;Intent;true;putExtra;;;Argument[1];MapValue of SyntheticField[android.content.Intent.extras] of Argument[this];value;manual" Intent out = null; double[] in = (double[])source(); out.putExtra((String)null, in); sink(getMapValue(getIntent_extras(out))); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[1];MapValue of SyntheticField[android.content.Intent.extras] of Argument[-1];value;manual" + // "android.content;Intent;true;putExtra;;;Argument[1];MapValue of SyntheticField[android.content.Intent.extras] of Argument[this];value;manual" Intent out = null; double in = (double)source(); out.putExtra((String)null, in); sink(getMapValue(getIntent_extras(out))); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[1];MapValue of SyntheticField[android.content.Intent.extras] of Argument[-1];value;manual" + // "android.content;Intent;true;putExtra;;;Argument[1];MapValue of SyntheticField[android.content.Intent.extras] of Argument[this];value;manual" Intent out = null; char[] in = (char[])source(); out.putExtra((String)null, in); sink(getMapValue(getIntent_extras(out))); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[1];MapValue of SyntheticField[android.content.Intent.extras] of Argument[-1];value;manual" + // "android.content;Intent;true;putExtra;;;Argument[1];MapValue of SyntheticField[android.content.Intent.extras] of Argument[this];value;manual" Intent out = null; char in = (char)source(); out.putExtra((String)null, in); sink(getMapValue(getIntent_extras(out))); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[1];MapValue of SyntheticField[android.content.Intent.extras] of Argument[-1];value;manual" + // "android.content;Intent;true;putExtra;;;Argument[1];MapValue of SyntheticField[android.content.Intent.extras] of Argument[this];value;manual" Intent out = null; byte[] in = (byte[])source(); out.putExtra((String)null, in); sink(getMapValue(getIntent_extras(out))); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[1];MapValue of SyntheticField[android.content.Intent.extras] of Argument[-1];value;manual" + // "android.content;Intent;true;putExtra;;;Argument[1];MapValue of SyntheticField[android.content.Intent.extras] of Argument[this];value;manual" Intent out = null; byte in = (byte)source(); out.putExtra((String)null, in); sink(getMapValue(getIntent_extras(out))); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[1];MapValue of SyntheticField[android.content.Intent.extras] of Argument[-1];value;manual" + // "android.content;Intent;true;putExtra;;;Argument[1];MapValue of SyntheticField[android.content.Intent.extras] of Argument[this];value;manual" Intent out = null; boolean[] in = (boolean[])source(); out.putExtra((String)null, in); sink(getMapValue(getIntent_extras(out))); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[1];MapValue of SyntheticField[android.content.Intent.extras] of Argument[-1];value;manual" + // "android.content;Intent;true;putExtra;;;Argument[1];MapValue of SyntheticField[android.content.Intent.extras] of Argument[this];value;manual" Intent out = null; boolean in = (boolean)source(); out.putExtra((String)null, in); sink(getMapValue(getIntent_extras(out))); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[1];MapValue of SyntheticField[android.content.Intent.extras] of Argument[-1];value;manual" + // "android.content;Intent;true;putExtra;;;Argument[1];MapValue of SyntheticField[android.content.Intent.extras] of Argument[this];value;manual" Intent out = null; String[] in = (String[])source(); out.putExtra((String)null, in); sink(getMapValue(getIntent_extras(out))); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[1];MapValue of SyntheticField[android.content.Intent.extras] of Argument[-1];value;manual" + // "android.content;Intent;true;putExtra;;;Argument[1];MapValue of SyntheticField[android.content.Intent.extras] of Argument[this];value;manual" Intent out = null; String in = (String)source(); out.putExtra((String)null, in); sink(getMapValue(getIntent_extras(out))); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[1];MapValue of SyntheticField[android.content.Intent.extras] of Argument[-1];value;manual" + // "android.content;Intent;true;putExtra;;;Argument[1];MapValue of SyntheticField[android.content.Intent.extras] of Argument[this];value;manual" Intent out = null; Serializable in = (Serializable)source(); out.putExtra((String)null, in); sink(getMapValue(getIntent_extras(out))); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[1];MapValue of SyntheticField[android.content.Intent.extras] of Argument[-1];value;manual" + // "android.content;Intent;true;putExtra;;;Argument[1];MapValue of SyntheticField[android.content.Intent.extras] of Argument[this];value;manual" Intent out = null; Parcelable[] in = (Parcelable[])source(); out.putExtra((String)null, in); sink(getMapValue(getIntent_extras(out))); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[1];MapValue of SyntheticField[android.content.Intent.extras] of Argument[-1];value;manual" + // "android.content;Intent;true;putExtra;;;Argument[1];MapValue of SyntheticField[android.content.Intent.extras] of Argument[this];value;manual" Intent out = null; Parcelable in = (Parcelable)source(); out.putExtra((String)null, in); sink(getMapValue(getIntent_extras(out))); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[1];MapValue of SyntheticField[android.content.Intent.extras] of Argument[-1];value;manual" + // "android.content;Intent;true;putExtra;;;Argument[1];MapValue of SyntheticField[android.content.Intent.extras] of Argument[this];value;manual" Intent out = null; CharSequence[] in = (CharSequence[])source(); out.putExtra((String)null, in); sink(getMapValue(getIntent_extras(out))); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[1];MapValue of SyntheticField[android.content.Intent.extras] of Argument[-1];value;manual" + // "android.content;Intent;true;putExtra;;;Argument[1];MapValue of SyntheticField[android.content.Intent.extras] of Argument[this];value;manual" Intent out = null; CharSequence in = (CharSequence)source(); out.putExtra((String)null, in); sink(getMapValue(getIntent_extras(out))); // $ hasValueFlow } { - // "android.content;Intent;true;putExtra;;;Argument[1];MapValue of SyntheticField[android.content.Intent.extras] of Argument[-1];value;manual" + // "android.content;Intent;true;putExtra;;;Argument[1];MapValue of SyntheticField[android.content.Intent.extras] of Argument[this];value;manual" Intent out = null; Bundle in = (Bundle)source(); out.putExtra((String)null, in); sink(getMapValue(getIntent_extras(out))); // $ hasValueFlow } { - // "android.content;Intent;true;putExtras;(Bundle);;Argument[-1];ReturnValue;value;manual" + // "android.content;Intent;true;putExtras;(Bundle);;Argument[this];ReturnValue;value;manual" Intent out = null; Intent in = (Intent)source(); out = in.putExtras((Bundle)null); sink(out); // $ hasValueFlow } { - // "android.content;Intent;true;putExtras;(Bundle);;MapKey of Argument[0];MapKey of SyntheticField[android.content.Intent.extras] of Argument[-1];value;manual" + // "android.content;Intent;true;putExtras;(Bundle);;MapKey of Argument[0];MapKey of SyntheticField[android.content.Intent.extras] of Argument[this];value;manual" Intent out = null; Bundle in = (Bundle)newBundleWithMapKey(source()); out.putExtras(in); sink(getMapKey(getIntent_extras(out))); // $ hasValueFlow } { - // "android.content;Intent;true;putExtras;(Bundle);;MapValue of Argument[0];MapValue of SyntheticField[android.content.Intent.extras] of Argument[-1];value;manual" + // "android.content;Intent;true;putExtras;(Bundle);;MapValue of Argument[0];MapValue of SyntheticField[android.content.Intent.extras] of Argument[this];value;manual" Intent out = null; Bundle in = (Bundle)newBundleWithMapValue(source()); out.putExtras(in); sink(getMapValue(getIntent_extras(out))); // $ hasValueFlow } { - // "android.content;Intent;true;putExtras;(Intent);;Argument[-1];ReturnValue;value;manual" + // "android.content;Intent;true;putExtras;(Intent);;Argument[this];ReturnValue;value;manual" Intent out = null; Intent in = (Intent)source(); out = in.putExtras((Intent)null); sink(out); // $ hasValueFlow } { - // "android.content;Intent;true;putExtras;(Intent);;MapKey of SyntheticField[android.content.Intent.extras] of Argument[0];MapKey of SyntheticField[android.content.Intent.extras] of Argument[-1];value;manual" + // "android.content;Intent;true;putExtras;(Intent);;MapKey of SyntheticField[android.content.Intent.extras] of Argument[0];MapKey of SyntheticField[android.content.Intent.extras] of Argument[this];value;manual" Intent out = null; Intent in = (Intent)newWithIntent_extras(newBundleWithMapKey(source())); out.putExtras(in); sink(getMapKey(getIntent_extras(out))); // $ hasValueFlow } { - // "android.content;Intent;true;putExtras;(Intent);;MapValue of SyntheticField[android.content.Intent.extras] of Argument[0];MapValue of SyntheticField[android.content.Intent.extras] of Argument[-1];value;manual" + // "android.content;Intent;true;putExtras;(Intent);;MapValue of SyntheticField[android.content.Intent.extras] of Argument[0];MapValue of SyntheticField[android.content.Intent.extras] of Argument[this];value;manual" Intent out = null; Intent in = (Intent)newWithIntent_extras(newBundleWithMapValue(source())); out.putExtras(in); sink(getMapValue(getIntent_extras(out))); // $ hasValueFlow } { - // "android.content;Intent;true;putIntegerArrayListExtra;;;Argument[-1];ReturnValue;value;manual" + // "android.content;Intent;true;putIntegerArrayListExtra;;;Argument[this];ReturnValue;value;manual" Intent out = null; Intent in = (Intent)source(); out = in.putIntegerArrayListExtra(null, null); sink(out); // $ hasValueFlow } { - // "android.content;Intent;true;putIntegerArrayListExtra;;;Argument[0];MapKey of SyntheticField[android.content.Intent.extras] of Argument[-1];value;manual" + // "android.content;Intent;true;putIntegerArrayListExtra;;;Argument[0];MapKey of SyntheticField[android.content.Intent.extras] of Argument[this];value;manual" Intent out = null; String in = (String)source(); out.putIntegerArrayListExtra(in, null); sink(getMapKey(getIntent_extras(out))); // $ hasValueFlow } { - // "android.content;Intent;true;putParcelableArrayListExtra;;;Argument[-1];ReturnValue;value;manual" + // "android.content;Intent;true;putParcelableArrayListExtra;;;Argument[this];ReturnValue;value;manual" Intent out = null; Intent in = (Intent)source(); out = in.putParcelableArrayListExtra(null, null); sink(out); // $ hasValueFlow } { - // "android.content;Intent;true;putParcelableArrayListExtra;;;Argument[0];MapKey of SyntheticField[android.content.Intent.extras] of Argument[-1];value;manual" + // "android.content;Intent;true;putParcelableArrayListExtra;;;Argument[0];MapKey of SyntheticField[android.content.Intent.extras] of Argument[this];value;manual" Intent out = null; String in = (String)source(); out.putParcelableArrayListExtra(in, null); sink(getMapKey(getIntent_extras(out))); // $ hasValueFlow } { - // "android.content;Intent;true;putParcelableArrayListExtra;;;Argument[1];MapValue of SyntheticField[android.content.Intent.extras] of Argument[-1];value;manual" + // "android.content;Intent;true;putParcelableArrayListExtra;;;Argument[1];MapValue of SyntheticField[android.content.Intent.extras] of Argument[this];value;manual" Intent out = null; ArrayList in = (ArrayList)source(); out.putParcelableArrayListExtra(null, in); sink(getMapValue(getIntent_extras(out))); // $ hasValueFlow } { - // "android.content;Intent;true;putStringArrayListExtra;;;Argument[-1];ReturnValue;value;manual" + // "android.content;Intent;true;putStringArrayListExtra;;;Argument[this];ReturnValue;value;manual" Intent out = null; Intent in = (Intent)source(); out = in.putStringArrayListExtra(null, null); sink(out); // $ hasValueFlow } { - // "android.content;Intent;true;putStringArrayListExtra;;;Argument[0];MapKey of SyntheticField[android.content.Intent.extras] of Argument[-1];value;manual" + // "android.content;Intent;true;putStringArrayListExtra;;;Argument[0];MapKey of SyntheticField[android.content.Intent.extras] of Argument[this];value;manual" Intent out = null; String in = (String)source(); out.putStringArrayListExtra(in, null); sink(getMapKey(getIntent_extras(out))); // $ hasValueFlow } { - // "android.content;Intent;true;putStringArrayListExtra;;;Argument[1];MapValue of SyntheticField[android.content.Intent.extras] of Argument[-1];value;manual" + // "android.content;Intent;true;putStringArrayListExtra;;;Argument[1];MapValue of SyntheticField[android.content.Intent.extras] of Argument[this];value;manual" Intent out = null; ArrayList in = (ArrayList)source(); out.putStringArrayListExtra(null, in); sink(getMapValue(getIntent_extras(out))); // $ hasValueFlow } { - // "android.content;Intent;true;replaceExtras;(Bundle);;Argument[-1];ReturnValue;value;manual" + // "android.content;Intent;true;replaceExtras;(Bundle);;Argument[this];ReturnValue;value;manual" Intent out = null; Intent in = (Intent)source(); out = in.replaceExtras((Bundle)null); sink(out); // $ hasValueFlow } { - // "android.content;Intent;true;replaceExtras;(Bundle);;MapKey of Argument[0];MapKey of SyntheticField[android.content.Intent.extras] of Argument[-1];value;manual" + // "android.content;Intent;true;replaceExtras;(Bundle);;MapKey of Argument[0];MapKey of SyntheticField[android.content.Intent.extras] of Argument[this];value;manual" Intent out = null; Bundle in = (Bundle)newBundleWithMapKey(source()); out.replaceExtras(in); sink(getMapKey(getIntent_extras(out))); // $ hasValueFlow } { - // "android.content;Intent;true;replaceExtras;(Bundle);;MapValue of Argument[0];MapValue of SyntheticField[android.content.Intent.extras] of Argument[-1];value;manual" + // "android.content;Intent;true;replaceExtras;(Bundle);;MapValue of Argument[0];MapValue of SyntheticField[android.content.Intent.extras] of Argument[this];value;manual" Intent out = null; Bundle in = (Bundle)newBundleWithMapValue(source()); out.replaceExtras(in); sink(getMapValue(getIntent_extras(out))); // $ hasValueFlow } { - // "android.content;Intent;true;replaceExtras;(Intent);;Argument[-1];ReturnValue;value;manual" + // "android.content;Intent;true;replaceExtras;(Intent);;Argument[this];ReturnValue;value;manual" Intent out = null; Intent in = (Intent)source(); out = in.replaceExtras((Intent)null); sink(out); // $ hasValueFlow } { - // "android.content;Intent;true;replaceExtras;(Intent);;MapKey of SyntheticField[android.content.Intent.extras] of Argument[0];MapKey of SyntheticField[android.content.Intent.extras] of Argument[-1];value;manual" + // "android.content;Intent;true;replaceExtras;(Intent);;MapKey of SyntheticField[android.content.Intent.extras] of Argument[0];MapKey of SyntheticField[android.content.Intent.extras] of Argument[this];value;manual" Intent out = null; Intent in = (Intent)newWithIntent_extras(newBundleWithMapKey(source())); out.replaceExtras(in); sink(getMapKey(getIntent_extras(out))); // $ hasValueFlow } { - // "android.content;Intent;true;replaceExtras;(Intent);;MapValue of SyntheticField[android.content.Intent.extras] of Argument[0];MapValue of SyntheticField[android.content.Intent.extras] of Argument[-1];value;manual" + // "android.content;Intent;true;replaceExtras;(Intent);;MapValue of SyntheticField[android.content.Intent.extras] of Argument[0];MapValue of SyntheticField[android.content.Intent.extras] of Argument[this];value;manual" Intent out = null; Intent in = (Intent)newWithIntent_extras(newBundleWithMapValue(source())); out.replaceExtras(in); sink(getMapValue(getIntent_extras(out))); // $ hasValueFlow } { - // "android.content;Intent;true;setAction;;;Argument[-1];ReturnValue;value;manual" + // "android.content;Intent;true;setAction;;;Argument[this];ReturnValue;value;manual" Intent out = null; Intent in = (Intent)source(); out = in.setAction(null); sink(out); // $ hasValueFlow } { - // "android.content;Intent;true;setClass;;;Argument[-1];ReturnValue;value;manual" + // "android.content;Intent;true;setClass;;;Argument[this];ReturnValue;value;manual" Intent out = null; Intent in = (Intent)source(); out = in.setClass(null, null); sink(out); // $ hasValueFlow } { - // "android.content;Intent;true;setClassName;;;Argument[-1];ReturnValue;value;manual" + // "android.content;Intent;true;setClassName;;;Argument[this];ReturnValue;value;manual" Intent out = null; Intent in = (Intent)source(); out = in.setClassName((String)null, (String)null); sink(out); // $ hasValueFlow } { - // "android.content;Intent;true;setClassName;;;Argument[-1];ReturnValue;value;manual" + // "android.content;Intent;true;setClassName;;;Argument[this];ReturnValue;value;manual" Intent out = null; Intent in = (Intent)source(); out = in.setClassName((Context)null, (String)null); sink(out); // $ hasValueFlow } { - // "android.content;Intent;true;setComponent;;;Argument[-1];ReturnValue;value;manual" + // "android.content;Intent;true;setComponent;;;Argument[this];ReturnValue;value;manual" Intent out = null; Intent in = (Intent)source(); out = in.setComponent(null); sink(out); // $ hasValueFlow } { - // "android.content;Intent;true;setData;;;Argument[-1];ReturnValue;value;manual" + // "android.content;Intent;true;setData;;;Argument[this];ReturnValue;value;manual" Intent out = null; Intent in = (Intent)source(); out = in.setData(null); sink(out); // $ hasValueFlow } { - // "android.content;Intent;true;setData;;;Argument[0];SyntheticField[android.content.Intent.data] of Argument[-1];value;manual", + // "android.content;Intent;true;setData;;;Argument[0];SyntheticField[android.content.Intent.data] of Argument[this];value;manual", Uri in = (Uri)source(); Intent instance = new Intent(); instance.setData(in); sink(instance.getData()); // $ hasValueFlow } { - // "android.content;Intent;true;setDataAndNormalize;;;Argument[0];SyntheticField[android.content.Intent.data] of Argument[-1];value;manual", + // "android.content;Intent;true;setDataAndNormalize;;;Argument[0];SyntheticField[android.content.Intent.data] of Argument[this];value;manual", Uri in = (Uri)source(); Intent instance = new Intent(); instance.setDataAndNormalize(in); sink(instance.getData()); // $ hasValueFlow } { - // "android.content;Intent;true;setDataAndType;;;Argument[0];SyntheticField[android.content.Intent.data] of Argument[-1];value;manual", + // "android.content;Intent;true;setDataAndType;;;Argument[0];SyntheticField[android.content.Intent.data] of Argument[this];value;manual", Uri in = (Uri)source(); Intent instance = new Intent(); instance.setDataAndType(in, null); sink(instance.getData()); // $ hasValueFlow } { - // "android.content;Intent;true;setDataAndTypeAndNormalize;;;Argument[0];SyntheticField[android.content.Intent.data] of Argument[-1];value;manual", + // "android.content;Intent;true;setDataAndTypeAndNormalize;;;Argument[0];SyntheticField[android.content.Intent.data] of Argument[this];value;manual", Uri in = (Uri)source(); Intent instance = new Intent(); instance.setDataAndTypeAndNormalize(in, null); sink(instance.getData()); // $ hasValueFlow } { - // "android.content;Intent;true;setDataAndNormalize;;;Argument[-1];ReturnValue;value;manual" + // "android.content;Intent;true;setDataAndNormalize;;;Argument[this];ReturnValue;value;manual" Intent out = null; Intent in = (Intent)source(); out = in.setDataAndNormalize(null); sink(out); // $ hasValueFlow } { - // "android.content;Intent;true;setDataAndType;;;Argument[-1];ReturnValue;value;manual" + // "android.content;Intent;true;setDataAndType;;;Argument[this];ReturnValue;value;manual" Intent out = null; Intent in = (Intent)source(); out = in.setDataAndType(null, null); sink(out); // $ hasValueFlow } { - // "android.content;Intent;true;setDataAndTypeAndNormalize;;;Argument[-1];ReturnValue;value;manual" + // "android.content;Intent;true;setDataAndTypeAndNormalize;;;Argument[this];ReturnValue;value;manual" Intent out = null; Intent in = (Intent)source(); out = in.setDataAndTypeAndNormalize(null, null); sink(out); // $ hasValueFlow } { - // "android.content;Intent;true;setFlags;;;Argument[-1];ReturnValue;value;manual" + // "android.content;Intent;true;setFlags;;;Argument[this];ReturnValue;value;manual" Intent out = null; Intent in = (Intent)source(); out = in.setFlags(0); sink(out); // $ hasValueFlow } { - // "android.content;Intent;true;setIdentifier;;;Argument[-1];ReturnValue;value;manual" + // "android.content;Intent;true;setIdentifier;;;Argument[this];ReturnValue;value;manual" Intent out = null; Intent in = (Intent)source(); out = in.setIdentifier(null); sink(out); // $ hasValueFlow } { - // "android.content;Intent;true;setPackage;;;Argument[-1];ReturnValue;value;manual" + // "android.content;Intent;true;setPackage;;;Argument[this];ReturnValue;value;manual" Intent out = null; Intent in = (Intent)source(); out = in.setPackage(null); sink(out); // $ hasValueFlow } { - // "android.content;Intent;true;setType;;;Argument[-1];ReturnValue;value;manual" + // "android.content;Intent;true;setType;;;Argument[this];ReturnValue;value;manual" Intent out = null; Intent in = (Intent)source(); out = in.setType(null); sink(out); // $ hasValueFlow } { - // "android.content;Intent;true;setTypeAndNormalize;;;Argument[-1];ReturnValue;value;manual" + // "android.content;Intent;true;setTypeAndNormalize;;;Argument[this];ReturnValue;value;manual" Intent out = null; Intent in = (Intent)source(); out = in.setTypeAndNormalize(null); sink(out); // $ hasValueFlow } { - // "android.os;BaseBundle;true;get;(String);;MapValue of Argument[-1];ReturnValue;value;manual" + // "android.os;BaseBundle;true;get;(String);;MapValue of Argument[this];ReturnValue;value;manual" Object out = null; BaseBundle in = (BaseBundle)newBundleWithMapValue(source()); out = in.get(null); sink(out); // $ hasValueFlow } { - // "android.os;BaseBundle;true;getString;(String);;MapValue of Argument[-1];ReturnValue;value;manual" + // "android.os;BaseBundle;true;getString;(String);;MapValue of Argument[this];ReturnValue;value;manual" String out = null; BaseBundle in = (BaseBundle)newBundleWithMapValue(source()); out = in.getString(null); @@ -1045,210 +1045,210 @@ public class Test { sink(out); // $ hasValueFlow } { - // "android.os;BaseBundle;true;getString;(String,String);;MapValue of Argument[-1];ReturnValue;value;manual" + // "android.os;BaseBundle;true;getString;(String,String);;MapValue of Argument[this];ReturnValue;value;manual" String out = null; BaseBundle in = (BaseBundle)newBundleWithMapValue(source()); out = in.getString(null, null); sink(out); // $ hasValueFlow } { - // "android.os;BaseBundle;true;getStringArray;(String);;MapValue of Argument[-1];ReturnValue;value;manual" + // "android.os;BaseBundle;true;getStringArray;(String);;MapValue of Argument[this];ReturnValue;value;manual" String[] out = null; BaseBundle in = (BaseBundle)newBundleWithMapValue(source()); out = in.getStringArray(null); sink(out); // $ hasValueFlow } { - // "android.os;BaseBundle;true;keySet;();;MapKey of Argument[-1];Element of ReturnValue;value;manual" + // "android.os;BaseBundle;true;keySet;();;MapKey of Argument[this];Element of ReturnValue;value;manual" Set out = null; BaseBundle in = (BaseBundle)newBundleWithMapKey(source()); out = in.keySet(); sink(getElement(out)); // $ hasValueFlow } { - // "android.os;BaseBundle;true;putAll;(PersistableBundle);;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "android.os;BaseBundle;true;putAll;(PersistableBundle);;MapKey of Argument[0];MapKey of Argument[this];value;manual" BaseBundle out = null; PersistableBundle in = newPersistableBundleWithMapKey(source()); out.putAll(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "android.os;BaseBundle;true;putAll;(PersistableBundle);;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "android.os;BaseBundle;true;putAll;(PersistableBundle);;MapValue of Argument[0];MapValue of Argument[this];value;manual" BaseBundle out = null; PersistableBundle in = newPersistableBundleWithMapValue(source()); out.putAll(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "android.os;BaseBundle;true;putBoolean;;;Argument[0];MapKey of Argument[-1];value;manual" + // "android.os;BaseBundle;true;putBoolean;;;Argument[0];MapKey of Argument[this];value;manual" BaseBundle out = null; String in = (String)source(); out.putBoolean(in, false); sink(getMapKey(out)); // $ hasValueFlow } { - // "android.os;BaseBundle;true;putBooleanArray;;;Argument[0];MapKey of Argument[-1];value;manual" + // "android.os;BaseBundle;true;putBooleanArray;;;Argument[0];MapKey of Argument[this];value;manual" BaseBundle out = null; String in = (String)source(); out.putBooleanArray(in, null); sink(getMapKey(out)); // $ hasValueFlow } { - // "android.os;BaseBundle;true;putDouble;;;Argument[0];MapKey of Argument[-1];value;manual" + // "android.os;BaseBundle;true;putDouble;;;Argument[0];MapKey of Argument[this];value;manual" BaseBundle out = null; String in = (String)source(); out.putDouble(in, 0.0); sink(getMapKey(out)); // $ hasValueFlow } { - // "android.os;BaseBundle;true;putDoubleArray;;;Argument[0];MapKey of Argument[-1];value;manual" + // "android.os;BaseBundle;true;putDoubleArray;;;Argument[0];MapKey of Argument[this];value;manual" BaseBundle out = null; String in = (String)source(); out.putDoubleArray(in, null); sink(getMapKey(out)); // $ hasValueFlow } { - // "android.os;BaseBundle;true;putInt;;;Argument[0];MapKey of Argument[-1];value;manual" + // "android.os;BaseBundle;true;putInt;;;Argument[0];MapKey of Argument[this];value;manual" BaseBundle out = null; String in = (String)source(); out.putInt(in, 0); sink(getMapKey(out)); // $ hasValueFlow } { - // "android.os;BaseBundle;true;putIntArray;;;Argument[0];MapKey of Argument[-1];value;manual" + // "android.os;BaseBundle;true;putIntArray;;;Argument[0];MapKey of Argument[this];value;manual" BaseBundle out = null; String in = (String)source(); out.putIntArray(in, null); sink(getMapKey(out)); // $ hasValueFlow } { - // "android.os;BaseBundle;true;putLong;;;Argument[0];MapKey of Argument[-1];value;manual" + // "android.os;BaseBundle;true;putLong;;;Argument[0];MapKey of Argument[this];value;manual" BaseBundle out = null; String in = (String)source(); out.putLong(in, 0L); sink(getMapKey(out)); // $ hasValueFlow } { - // "android.os;BaseBundle;true;putLongArray;;;Argument[0];MapKey of Argument[-1];value;manual" + // "android.os;BaseBundle;true;putLongArray;;;Argument[0];MapKey of Argument[this];value;manual" BaseBundle out = null; String in = (String)source(); out.putLongArray(in, null); sink(getMapKey(out)); // $ hasValueFlow } { - // "android.os;BaseBundle;true;putString;;;Argument[0];MapKey of Argument[-1];value;manual" + // "android.os;BaseBundle;true;putString;;;Argument[0];MapKey of Argument[this];value;manual" BaseBundle out = null; String in = (String)source(); out.putString(in, null); sink(getMapKey(out)); // $ hasValueFlow } { - // "android.os;BaseBundle;true;putString;;;Argument[1];MapValue of Argument[-1];value;manual" + // "android.os;BaseBundle;true;putString;;;Argument[1];MapValue of Argument[this];value;manual" BaseBundle out = null; String in = (String)source(); out.putString(null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "android.os;BaseBundle;true;putStringArray;;;Argument[0];MapKey of Argument[-1];value;manual" + // "android.os;BaseBundle;true;putStringArray;;;Argument[0];MapKey of Argument[this];value;manual" BaseBundle out = null; String in = (String)source(); out.putStringArray(in, null); sink(getMapKey(out)); // $ hasValueFlow } { - // "android.os;BaseBundle;true;putStringArray;;;Argument[1];MapValue of Argument[-1];value;manual" + // "android.os;BaseBundle;true;putStringArray;;;Argument[1];MapValue of Argument[this];value;manual" BaseBundle out = null; String[] in = (String[])source(); out.putStringArray(null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "android.os;Bundle;false;Bundle;(Bundle);;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "android.os;Bundle;false;Bundle;(Bundle);;MapKey of Argument[0];MapKey of Argument[this];value;manual" Bundle out = null; Bundle in = (Bundle)newBundleWithMapKey(source()); out = new Bundle(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "android.os;Bundle;false;Bundle;(Bundle);;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "android.os;Bundle;false;Bundle;(Bundle);;MapValue of Argument[0];MapValue of Argument[this];value;manual" Bundle out = null; Bundle in = (Bundle)newBundleWithMapValue(source()); out = new Bundle(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "android.os;Bundle;false;Bundle;(PersistableBundle);;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "android.os;Bundle;false;Bundle;(PersistableBundle);;MapKey of Argument[0];MapKey of Argument[this];value;manual" Bundle out = null; PersistableBundle in = newPersistableBundleWithMapKey(source()); out = new Bundle(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "android.os;Bundle;false;Bundle;(PersistableBundle);;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "android.os;Bundle;false;Bundle;(PersistableBundle);;MapValue of Argument[0];MapValue of Argument[this];value;manual" Bundle out = null; PersistableBundle in = newPersistableBundleWithMapValue(source()); out = new Bundle(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "android.os;Bundle;true;clone;();;MapKey of Argument[-1];MapKey of ReturnValue;value;manual" + // "android.os;Bundle;true;clone;();;MapKey of Argument[this];MapKey of ReturnValue;value;manual" Object out = null; Bundle in = (Bundle)newBundleWithMapKey(source()); out = in.clone(); sink(getMapKey((Bundle)out)); // $ hasValueFlow } { - // "android.os;Bundle;true;clone;();;MapValue of Argument[-1];MapValue of ReturnValue;value;manual" + // "android.os;Bundle;true;clone;();;MapValue of Argument[this];MapValue of ReturnValue;value;manual" Object out = null; Bundle in = (Bundle)newBundleWithMapValue(source()); out = in.clone(); sink(getMapValue((Bundle)out)); // $ hasValueFlow } { - // "android.os;Bundle;true;deepCopy;();;MapKey of Argument[-1];MapKey of ReturnValue;value;manual" + // "android.os;Bundle;true;deepCopy;();;MapKey of Argument[this];MapKey of ReturnValue;value;manual" Bundle out = null; Bundle in = (Bundle)newBundleWithMapKey(source()); out = in.deepCopy(); sink(getMapKey(out)); // $ hasValueFlow } { - // "android.os;Bundle;true;deepCopy;();;MapValue of Argument[-1];MapValue of ReturnValue;value;manual" + // "android.os;Bundle;true;deepCopy;();;MapValue of Argument[this];MapValue of ReturnValue;value;manual" Bundle out = null; Bundle in = (Bundle)newBundleWithMapValue(source()); out = in.deepCopy(); sink(getMapValue(out)); // $ hasValueFlow } { - // "android.os;Bundle;true;getBinder;(String);;MapValue of Argument[-1];ReturnValue;value;manual" + // "android.os;Bundle;true;getBinder;(String);;MapValue of Argument[this];ReturnValue;value;manual" IBinder out = null; Bundle in = (Bundle)newBundleWithMapValue(source()); out = in.getBinder(null); sink(out); // $ hasValueFlow } { - // "android.os;Bundle;true;getBundle;(String);;MapValue of Argument[-1];ReturnValue;value;manual" + // "android.os;Bundle;true;getBundle;(String);;MapValue of Argument[this];ReturnValue;value;manual" Bundle out = null; Bundle in = (Bundle)newBundleWithMapValue(source()); out = in.getBundle(null); sink(out); // $ hasValueFlow } { - // "android.os;Bundle;true;getByteArray;(String);;MapValue of Argument[-1];ReturnValue;value;manual" + // "android.os;Bundle;true;getByteArray;(String);;MapValue of Argument[this];ReturnValue;value;manual" byte[] out = null; Bundle in = (Bundle)newBundleWithMapValue(source()); out = in.getByteArray(null); sink(out); // $ hasValueFlow } { - // "android.os;Bundle;true;getCharArray;(String);;MapValue of Argument[-1];ReturnValue;value;manual" + // "android.os;Bundle;true;getCharArray;(String);;MapValue of Argument[this];ReturnValue;value;manual" char[] out = null; Bundle in = (Bundle)newBundleWithMapValue(source()); out = in.getCharArray(null); sink(out); // $ hasValueFlow } { - // "android.os;Bundle;true;getCharSequence;(String);;MapValue of Argument[-1];ReturnValue;value;manual" + // "android.os;Bundle;true;getCharSequence;(String);;MapValue of Argument[this];ReturnValue;value;manual" CharSequence out = null; Bundle in = (Bundle)newBundleWithMapValue(source()); out = in.getCharSequence(null); @@ -1263,371 +1263,371 @@ public class Test { sink(out); // $ hasValueFlow } { - // "android.os;Bundle;true;getCharSequence;(String,CharSequence);;MapValue of Argument[-1];ReturnValue;value;manual" + // "android.os;Bundle;true;getCharSequence;(String,CharSequence);;MapValue of Argument[this];ReturnValue;value;manual" CharSequence out = null; Bundle in = (Bundle)newBundleWithMapValue(source()); out = in.getCharSequence(null, null); sink(out); // $ hasValueFlow } { - // "android.os;Bundle;true;getCharSequenceArray;(String);;MapValue of Argument[-1];ReturnValue;value;manual" + // "android.os;Bundle;true;getCharSequenceArray;(String);;MapValue of Argument[this];ReturnValue;value;manual" CharSequence[] out = null; Bundle in = (Bundle)newBundleWithMapValue(source()); out = in.getCharSequenceArray(null); sink(out); // $ hasValueFlow } { - // "android.os;Bundle;true;getCharSequenceArrayList;(String);;MapValue of Argument[-1];ReturnValue;value;manual" + // "android.os;Bundle;true;getCharSequenceArrayList;(String);;MapValue of Argument[this];ReturnValue;value;manual" ArrayList out = null; Bundle in = (Bundle)newBundleWithMapValue(source()); out = in.getCharSequenceArrayList(null); sink(out); // $ hasValueFlow } { - // "android.os;Bundle;true;getParcelable;(String);;MapValue of Argument[-1];ReturnValue;value;manual" + // "android.os;Bundle;true;getParcelable;(String);;MapValue of Argument[this];ReturnValue;value;manual" Parcelable out = null; Bundle in = (Bundle)newBundleWithMapValue(source()); out = in.getParcelable(null); sink(out); // $ hasValueFlow } { - // "android.os;Bundle;true;getParcelableArray;(String);;MapValue of Argument[-1];ReturnValue;value;manual" + // "android.os;Bundle;true;getParcelableArray;(String);;MapValue of Argument[this];ReturnValue;value;manual" Parcelable[] out = null; Bundle in = (Bundle)newBundleWithMapValue(source()); out = in.getParcelableArray(null); sink(out); // $ hasValueFlow } { - // "android.os;Bundle;true;getParcelableArrayList;(String);;MapValue of Argument[-1];ReturnValue;value;manual" + // "android.os;Bundle;true;getParcelableArrayList;(String);;MapValue of Argument[this];ReturnValue;value;manual" ArrayList out = null; Bundle in = (Bundle)newBundleWithMapValue(source()); out = in.getParcelableArrayList(null); sink(out); // $ hasValueFlow } { - // "android.os;Bundle;true;getSerializable;(String);;MapValue of Argument[-1];ReturnValue;value;manual" + // "android.os;Bundle;true;getSerializable;(String);;MapValue of Argument[this];ReturnValue;value;manual" Serializable out = null; Bundle in = (Bundle)newBundleWithMapValue(source()); out = in.getSerializable(null); sink(out); // $ hasValueFlow } { - // "android.os;Bundle;true;getSparseParcelableArray;(String);;MapValue of Argument[-1];ReturnValue;value;manual" + // "android.os;Bundle;true;getSparseParcelableArray;(String);;MapValue of Argument[this];ReturnValue;value;manual" SparseArray out = null; Bundle in = (Bundle)newBundleWithMapValue(source()); out = in.getSparseParcelableArray(null); sink(out); // $ hasValueFlow } { - // "android.os;Bundle;true;getStringArrayList;(String);;MapValue of Argument[-1];ReturnValue;value;manual" + // "android.os;Bundle;true;getStringArrayList;(String);;MapValue of Argument[this];ReturnValue;value;manual" ArrayList out = null; Bundle in = (Bundle)newBundleWithMapValue(source()); out = in.getStringArrayList(null); sink(out); // $ hasValueFlow } { - // "android.os;Bundle;true;putAll;(Bundle);;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "android.os;Bundle;true;putAll;(Bundle);;MapKey of Argument[0];MapKey of Argument[this];value;manual" Bundle out = null; Bundle in = (Bundle)newBundleWithMapKey(source()); out.putAll(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "android.os;Bundle;true;putAll;(Bundle);;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "android.os;Bundle;true;putAll;(Bundle);;MapValue of Argument[0];MapValue of Argument[this];value;manual" Bundle out = null; Bundle in = (Bundle)newBundleWithMapValue(source()); out.putAll(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "android.os;Bundle;true;putBinder;;;Argument[0];MapKey of Argument[-1];value;manual" + // "android.os;Bundle;true;putBinder;;;Argument[0];MapKey of Argument[this];value;manual" Bundle out = null; String in = (String)source(); out.putBinder(in, null); sink(getMapKey(out)); // $ hasValueFlow } { - // "android.os;Bundle;true;putBinder;;;Argument[1];MapValue of Argument[-1];value;manual" + // "android.os;Bundle;true;putBinder;;;Argument[1];MapValue of Argument[this];value;manual" Bundle out = null; IBinder in = (IBinder)source(); out.putBinder(null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "android.os;Bundle;true;putBundle;;;Argument[0];MapKey of Argument[-1];value;manual" + // "android.os;Bundle;true;putBundle;;;Argument[0];MapKey of Argument[this];value;manual" Bundle out = null; String in = (String)source(); out.putBundle(in, null); sink(getMapKey(out)); // $ hasValueFlow } { - // "android.os;Bundle;true;putBundle;;;Argument[1];MapValue of Argument[-1];value;manual" + // "android.os;Bundle;true;putBundle;;;Argument[1];MapValue of Argument[this];value;manual" Bundle out = null; Bundle in = (Bundle)source(); out.putBundle(null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "android.os;Bundle;true;putByte;;;Argument[0];MapKey of Argument[-1];value;manual" + // "android.os;Bundle;true;putByte;;;Argument[0];MapKey of Argument[this];value;manual" Bundle out = null; String in = (String)source(); out.putByte(in, (byte)0); sink(getMapKey(out)); // $ hasValueFlow } { - // "android.os;Bundle;true;putByteArray;;;Argument[0];MapKey of Argument[-1];value;manual" + // "android.os;Bundle;true;putByteArray;;;Argument[0];MapKey of Argument[this];value;manual" Bundle out = null; String in = (String)source(); out.putByteArray(in, null); sink(getMapKey(out)); // $ hasValueFlow } { - // "android.os;Bundle;true;putByteArray;;;Argument[1];MapValue of Argument[-1];value;manual" + // "android.os;Bundle;true;putByteArray;;;Argument[1];MapValue of Argument[this];value;manual" Bundle out = null; byte[] in = (byte[])source(); out.putByteArray(null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "android.os;Bundle;true;putChar;;;Argument[0];MapKey of Argument[-1];value;manual" + // "android.os;Bundle;true;putChar;;;Argument[0];MapKey of Argument[this];value;manual" Bundle out = null; String in = (String)source(); out.putChar(in, '\0'); sink(getMapKey(out)); // $ hasValueFlow } { - // "android.os;Bundle;true;putCharArray;;;Argument[0];MapKey of Argument[-1];value;manual" + // "android.os;Bundle;true;putCharArray;;;Argument[0];MapKey of Argument[this];value;manual" Bundle out = null; String in = (String)source(); out.putCharArray(in, null); sink(getMapKey(out)); // $ hasValueFlow } { - // "android.os;Bundle;true;putCharArray;;;Argument[1];MapValue of Argument[-1];value;manual" + // "android.os;Bundle;true;putCharArray;;;Argument[1];MapValue of Argument[this];value;manual" Bundle out = null; char[] in = (char[])source(); out.putCharArray(null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "android.os;Bundle;true;putCharSequence;;;Argument[0];MapKey of Argument[-1];value;manual" + // "android.os;Bundle;true;putCharSequence;;;Argument[0];MapKey of Argument[this];value;manual" Bundle out = null; String in = (String)source(); out.putCharSequence(in, null); sink(getMapKey(out)); // $ hasValueFlow } { - // "android.os;Bundle;true;putCharSequence;;;Argument[1];MapValue of Argument[-1];value;manual" + // "android.os;Bundle;true;putCharSequence;;;Argument[1];MapValue of Argument[this];value;manual" Bundle out = null; CharSequence in = (CharSequence)source(); out.putCharSequence(null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "android.os;Bundle;true;putCharSequenceArray;;;Argument[0];MapKey of Argument[-1];value;manual" + // "android.os;Bundle;true;putCharSequenceArray;;;Argument[0];MapKey of Argument[this];value;manual" Bundle out = null; String in = (String)source(); out.putCharSequenceArray(in, null); sink(getMapKey(out)); // $ hasValueFlow } { - // "android.os;Bundle;true;putCharSequenceArray;;;Argument[1];MapValue of Argument[-1];value;manual" + // "android.os;Bundle;true;putCharSequenceArray;;;Argument[1];MapValue of Argument[this];value;manual" Bundle out = null; CharSequence[] in = (CharSequence[])source(); out.putCharSequenceArray(null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "android.os;Bundle;true;putCharSequenceArrayList;;;Argument[0];MapKey of Argument[-1];value;manual" + // "android.os;Bundle;true;putCharSequenceArrayList;;;Argument[0];MapKey of Argument[this];value;manual" Bundle out = null; String in = (String)source(); out.putCharSequenceArrayList(in, null); sink(getMapKey(out)); // $ hasValueFlow } { - // "android.os;Bundle;true;putCharSequenceArrayList;;;Argument[1];MapValue of Argument[-1];value;manual" + // "android.os;Bundle;true;putCharSequenceArrayList;;;Argument[1];MapValue of Argument[this];value;manual" Bundle out = null; ArrayList in = (ArrayList)source(); out.putCharSequenceArrayList(null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "android.os;Bundle;true;putFloat;;;Argument[0];MapKey of Argument[-1];value;manual" + // "android.os;Bundle;true;putFloat;;;Argument[0];MapKey of Argument[this];value;manual" Bundle out = null; String in = (String)source(); out.putFloat(in, 0.0f); sink(getMapKey(out)); // $ hasValueFlow } { - // "android.os;Bundle;true;putFloatArray;;;Argument[0];MapKey of Argument[-1];value;manual" + // "android.os;Bundle;true;putFloatArray;;;Argument[0];MapKey of Argument[this];value;manual" Bundle out = null; String in = (String)source(); out.putFloatArray(in, null); sink(getMapKey(out)); // $ hasValueFlow } { - // "android.os;Bundle;true;putIntegerArrayList;;;Argument[0];MapKey of Argument[-1];value;manual" + // "android.os;Bundle;true;putIntegerArrayList;;;Argument[0];MapKey of Argument[this];value;manual" Bundle out = null; String in = (String)source(); out.putIntegerArrayList(in, null); sink(getMapKey(out)); // $ hasValueFlow } { - // "android.os;Bundle;true;putParcelable;;;Argument[0];MapKey of Argument[-1];value;manual" + // "android.os;Bundle;true;putParcelable;;;Argument[0];MapKey of Argument[this];value;manual" Bundle out = null; String in = (String)source(); out.putParcelable(in, null); sink(getMapKey(out)); // $ hasValueFlow } { - // "android.os;Bundle;true;putParcelable;;;Argument[1];MapValue of Argument[-1];value;manual" + // "android.os;Bundle;true;putParcelable;;;Argument[1];MapValue of Argument[this];value;manual" Bundle out = null; Parcelable in = (Parcelable)source(); out.putParcelable(null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "android.os;Bundle;true;putParcelableArray;;;Argument[0];MapKey of Argument[-1];value;manual" + // "android.os;Bundle;true;putParcelableArray;;;Argument[0];MapKey of Argument[this];value;manual" Bundle out = null; String in = (String)source(); out.putParcelableArray(in, null); sink(getMapKey(out)); // $ hasValueFlow } { - // "android.os;Bundle;true;putParcelableArray;;;Argument[1];MapValue of Argument[-1];value;manual" + // "android.os;Bundle;true;putParcelableArray;;;Argument[1];MapValue of Argument[this];value;manual" Bundle out = null; Parcelable[] in = (Parcelable[])source(); out.putParcelableArray(null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "android.os;Bundle;true;putParcelableArrayList;;;Argument[0];MapKey of Argument[-1];value;manual" + // "android.os;Bundle;true;putParcelableArrayList;;;Argument[0];MapKey of Argument[this];value;manual" Bundle out = null; String in = (String)source(); out.putParcelableArrayList(in, null); sink(getMapKey(out)); // $ hasValueFlow } { - // "android.os;Bundle;true;putParcelableArrayList;;;Argument[1];MapValue of Argument[-1];value;manual" + // "android.os;Bundle;true;putParcelableArrayList;;;Argument[1];MapValue of Argument[this];value;manual" Bundle out = null; ArrayList in = (ArrayList)source(); out.putParcelableArrayList(null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "android.os;Bundle;true;putSerializable;;;Argument[0];MapKey of Argument[-1];value;manual" + // "android.os;Bundle;true;putSerializable;;;Argument[0];MapKey of Argument[this];value;manual" Bundle out = null; String in = (String)source(); out.putSerializable(in, null); sink(getMapKey(out)); // $ hasValueFlow } { - // "android.os;Bundle;true;putSerializable;;;Argument[1];MapValue of Argument[-1];value;manual" + // "android.os;Bundle;true;putSerializable;;;Argument[1];MapValue of Argument[this];value;manual" Bundle out = null; Serializable in = (Serializable)source(); out.putSerializable(null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "android.os;Bundle;true;putShort;;;Argument[0];MapKey of Argument[-1];value;manual" + // "android.os;Bundle;true;putShort;;;Argument[0];MapKey of Argument[this];value;manual" Bundle out = null; String in = (String)source(); out.putShort(in, (short)0); sink(getMapKey(out)); // $ hasValueFlow } { - // "android.os;Bundle;true;putShortArray;;;Argument[0];MapKey of Argument[-1];value;manual" + // "android.os;Bundle;true;putShortArray;;;Argument[0];MapKey of Argument[this];value;manual" Bundle out = null; String in = (String)source(); out.putShortArray(in, null); sink(getMapKey(out)); // $ hasValueFlow } { - // "android.os;Bundle;true;putSize;;;Argument[0];MapKey of Argument[-1];value;manual" + // "android.os;Bundle;true;putSize;;;Argument[0];MapKey of Argument[this];value;manual" Bundle out = null; String in = (String)source(); out.putSize(in, null); sink(getMapKey(out)); // $ hasValueFlow } { - // "android.os;Bundle;true;putSizeF;;;Argument[0];MapKey of Argument[-1];value;manual" + // "android.os;Bundle;true;putSizeF;;;Argument[0];MapKey of Argument[this];value;manual" Bundle out = null; String in = (String)source(); out.putSizeF(in, null); sink(getMapKey(out)); // $ hasValueFlow } { - // "android.os;Bundle;true;putSparseParcelableArray;;;Argument[0];MapKey of Argument[-1];value;manual" + // "android.os;Bundle;true;putSparseParcelableArray;;;Argument[0];MapKey of Argument[this];value;manual" Bundle out = null; String in = (String)source(); out.putSparseParcelableArray(in, null); sink(getMapKey(out)); // $ hasValueFlow } { - // "android.os;Bundle;true;putSparseParcelableArray;;;Argument[1];MapValue of Argument[-1];value;manual" + // "android.os;Bundle;true;putSparseParcelableArray;;;Argument[1];MapValue of Argument[this];value;manual" Bundle out = null; SparseArray in = (SparseArray)source(); out.putSparseParcelableArray(null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "android.os;Bundle;true;putStringArrayList;;;Argument[0];MapKey of Argument[-1];value;manual" + // "android.os;Bundle;true;putStringArrayList;;;Argument[0];MapKey of Argument[this];value;manual" Bundle out = null; String in = (String)source(); out.putStringArrayList(in, null); sink(getMapKey(out)); // $ hasValueFlow } { - // "android.os;Bundle;true;putStringArrayList;;;Argument[1];MapValue of Argument[-1];value;manual" + // "android.os;Bundle;true;putStringArrayList;;;Argument[1];MapValue of Argument[this];value;manual" Bundle out = null; ArrayList in = (ArrayList)source(); out.putStringArrayList(null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "android.os;Bundle;true;readFromParcel;;;Argument[0];MapKey of Argument[-1];taint;manual" + // "android.os;Bundle;true;readFromParcel;;;Argument[0];MapKey of Argument[this];taint;manual" Bundle out = null; Parcel in = (Parcel)source(); out.readFromParcel(in); sink(getMapKey(out)); // $ hasTaintFlow } { - // "android.os;Bundle;true;readFromParcel;;;Argument[0];MapValue of Argument[-1];taint;manual" + // "android.os;Bundle;true;readFromParcel;;;Argument[0];MapValue of Argument[this];taint;manual" Bundle out = null; Parcel in = (Parcel)source(); out.readFromParcel(in); sink(getMapValue(out)); // $ hasTaintFlow } { - // "android.content;ComponentName;false;ComponentName;(Context,Class);;Argument[1];Argument[-1];taint;manual" + // "android.content;ComponentName;false;ComponentName;(Context,Class);;Argument[1];Argument[this];taint;manual" ComponentName out = null; Class in = (Class) source(); out = new ComponentName((Context) null, in); sink(out); // $ hasTaintFlow } { - // "android.content;ComponentName;false;ComponentName;(Context,String);;Argument[1];Argument[-1];taint;manual" + // "android.content;ComponentName;false;ComponentName;(Context,String);;Argument[1];Argument[this];taint;manual" ComponentName out = null; String in = (String) source(); out = new ComponentName((Context) null, in); sink(out); // $ hasTaintFlow } { - // "android.content;ComponentName;false;ComponentName;(Parcel);;Argument[0];Argument[-1];taint;manual" + // "android.content;ComponentName;false;ComponentName;(Parcel);;Argument[0];Argument[this];taint;manual" ComponentName out = null; Parcel in = (Parcel) source(); out = new ComponentName(in); sink(out); // $ hasTaintFlow } { - // "android.content;ComponentName;false;ComponentName;(String,String);;Argument[0..1];Argument[-1];taint;manual" + // "android.content;ComponentName;false;ComponentName;(String,String);;Argument[0..1];Argument[this];taint;manual" ComponentName out = null; String in = (String) source(); out = new ComponentName(in, (String) null); sink(out); // $ hasTaintFlow } { - // "android.content;ComponentName;false;ComponentName;(String,String);;Argument[0..1];Argument[-1];taint;manual" + // "android.content;ComponentName;false;ComponentName;(String,String);;Argument[0..1];Argument[this];taint;manual" ComponentName out = null; String in = (String) source(); out = new ComponentName((String) null, in); @@ -1655,35 +1655,35 @@ public class Test { sink(out); // $ hasTaintFlow } { - // "android.content;ComponentName;false;flattenToShortString;;;Argument[-1];ReturnValue;taint;manual" + // "android.content;ComponentName;false;flattenToShortString;;;Argument[this];ReturnValue;taint;manual" String out = null; ComponentName in = (ComponentName) source(); out = in.flattenToShortString(); sink(out); // $ hasTaintFlow } { - // "android.content;ComponentName;false;flattenToString;;;Argument[-1];ReturnValue;taint;manual" + // "android.content;ComponentName;false;flattenToString;;;Argument[this];ReturnValue;taint;manual" String out = null; ComponentName in = (ComponentName) source(); out = in.flattenToString(); sink(out); // $ hasTaintFlow } { - // "android.content;ComponentName;false;getClassName;;;Argument[-1];ReturnValue;taint;manual" + // "android.content;ComponentName;false;getClassName;;;Argument[this];ReturnValue;taint;manual" String out = null; ComponentName in = (ComponentName) source(); out = in.getClassName(); sink(out); // $ hasTaintFlow } { - // "android.content;ComponentName;false;getPackageName;;;Argument[-1];ReturnValue;taint;manual" + // "android.content;ComponentName;false;getPackageName;;;Argument[this];ReturnValue;taint;manual" String out = null; ComponentName in = (ComponentName) source(); out = in.getPackageName(); sink(out); // $ hasTaintFlow } { - // "android.content;ComponentName;false;getShortClassName;;;Argument[-1];ReturnValue;taint;manual" + // "android.content;ComponentName;false;getShortClassName;;;Argument[this];ReturnValue;taint;manual" String out = null; ComponentName in = (ComponentName) source(); out = in.getShortClassName(); @@ -1697,63 +1697,63 @@ public class Test { sink(out); // $ hasTaintFlow } { - // "android.content;Intent;true;Intent;(Context,Class);;Argument[1];Argument[-1];taint;manual" + // "android.content;Intent;true;Intent;(Context,Class);;Argument[1];Argument[this];taint;manual" Intent out = null; Class in = (Class) source(); out = new Intent((Context) null, in); sink(out); // $ hasTaintFlow } { - // "android.content;Intent;true;Intent;(Intent);;Argument[0];Argument[-1];taint;manual" + // "android.content;Intent;true;Intent;(Intent);;Argument[0];Argument[this];taint;manual" Intent out = null; Intent in = (Intent) source(); out = new Intent(in); sink(out); // $ hasTaintFlow } { - // "android.content;Intent;true;Intent;(String,Uri,Context,Class);;Argument[3];Argument[-1];taint;manual" + // "android.content;Intent;true;Intent;(String,Uri,Context,Class);;Argument[3];Argument[this];taint;manual" Intent out = null; Class in = (Class) source(); out = new Intent(null, null, null, in); sink(out); // $ hasTaintFlow } { - // "android.content;Intent;true;setClass;;;Argument[1];Argument[-1];taint;manual" + // "android.content;Intent;true;setClass;;;Argument[1];Argument[this];taint;manual" Intent out = null; Class in = (Class) source(); out.setClass(null, in); sink(out); // $ hasTaintFlow } { - // "android.content;Intent;true;setClassName;(Context,String);;Argument[1];Argument[-1];taint;manual" + // "android.content;Intent;true;setClassName;(Context,String);;Argument[1];Argument[this];taint;manual" Intent out = null; String in = (String) source(); out.setClassName((Context) null, in); sink(out); // $ hasTaintFlow } { - // "android.content;Intent;true;setClassName;(String,String);;Argument[0..1];Argument[-1];taint;manual" + // "android.content;Intent;true;setClassName;(String,String);;Argument[0..1];Argument[this];taint;manual" Intent out = null; String in = (String) source(); out.setClassName(in, (String) null); sink(out); // $ hasTaintFlow } { - // "android.content;Intent;true;setClassName;(String,String);;Argument[0..1];Argument[-1];taint;manual" + // "android.content;Intent;true;setClassName;(String,String);;Argument[0..1];Argument[this];taint;manual" Intent out = null; String in = (String) source(); out.setClassName((String) null, in); sink(out); // $ hasTaintFlow } { - // "android.content;Intent;true;setComponent;;;Argument[0];Argument[-1];taint;manual" + // "android.content;Intent;true;setComponent;;;Argument[0];Argument[this];taint;manual" Intent out = null; ComponentName in = (ComponentName) source(); out.setComponent(in); sink(out); // $ hasTaintFlow } { - // "android.content;Intent;true;setPackage;;;Argument[0];Argument[-1];taint;manual" + // "android.content;Intent;true;setPackage;;;Argument[0];Argument[this];taint;manual" Intent out = null; String in = (String) source(); out.setPackage(in); diff --git a/java/ql/test/library-tests/frameworks/android/notification/Test.java b/java/ql/test/library-tests/frameworks/android/notification/Test.java index d669e7421bf..fa2eb4153ae 100644 --- a/java/ql/test/library-tests/frameworks/android/notification/Test.java +++ b/java/ql/test/library-tests/frameworks/android/notification/Test.java @@ -44,28 +44,28 @@ public class Test { public void test() throws Exception { { - // "android.app;Notification$Action$Builder;true;Builder;(Action);;Argument[0];Argument[-1];taint;manual" + // "android.app;Notification$Action$Builder;true;Builder;(Action);;Argument[0];Argument[this];taint;manual" Notification.Action.Builder out = null; Notification.Action in = (Notification.Action) source(); out = new Notification.Action.Builder(in); sink(out); // $ hasTaintFlow } { - // "android.app;Notification$Action$Builder;true;Builder;(Icon,CharSequence,PendingIntent);;Argument[2];Argument[-1];taint;manual" + // "android.app;Notification$Action$Builder;true;Builder;(Icon,CharSequence,PendingIntent);;Argument[2];Argument[this];taint;manual" Notification.Action.Builder out = null; PendingIntent in = (PendingIntent) source(); out = new Notification.Action.Builder((Icon) null, (CharSequence) null, in); sink(out); // $ hasTaintFlow } { - // "android.app;Notification$Action$Builder;true;Builder;(int,CharSequence,PendingIntent);;Argument[2];Argument[-1];taint;manual" + // "android.app;Notification$Action$Builder;true;Builder;(int,CharSequence,PendingIntent);;Argument[2];Argument[this];taint;manual" Notification.Action.Builder out = null; PendingIntent in = (PendingIntent) source(); out = new Notification.Action.Builder(0, (CharSequence) null, in); sink(out); // $ hasTaintFlow } { - // "android.app;Notification$Action$Builder;true;addExtras;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$Action$Builder;true;addExtras;;;Argument[this];ReturnValue;value;manual" Notification.Action.Builder out = null; Notification.Action.Builder in = (Notification.Action.Builder) source(); out = in.addExtras(null); @@ -74,7 +74,7 @@ public class Test { { // "android.app;Notification$Action$Builder;true;addExtras;;;MapKey of // Argument[0];MapKey of SyntheticField[android.content.Intent.extras] of - // Argument[-1];value;manual" + // Argument[this];value;manual" Notification.Action.Builder out = null; Bundle in = (Bundle) newWithMapKeyDefault(source()); out.addExtras(in); @@ -83,21 +83,21 @@ public class Test { { // "android.app;Notification$Action$Builder;true;addExtras;;;MapValue of // Argument[0];MapValue of SyntheticField[android.content.Intent.extras] - // of Argument[-1];value;manual" + // of Argument[this];value;manual" Notification.Action.Builder out = null; Bundle in = (Bundle) newWithMapValueDefault(source()); out.addExtras(in); sink(getMapValueDefault(out.getExtras())); // $ hasValueFlow } { - // "android.app;Notification$Action$Builder;true;addRemoteInput;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$Action$Builder;true;addRemoteInput;;;Argument[this];ReturnValue;value;manual" Notification.Action.Builder out = null; Notification.Action.Builder in = (Notification.Action.Builder) source(); out = in.addRemoteInput(null); sink(out); // $ hasValueFlow } { - // "android.app;Notification$Action$Builder;true;build;;;Argument[-1];ReturnValue;taint;manual" + // "android.app;Notification$Action$Builder;true;build;;;Argument[this];ReturnValue;taint;manual" Notification.Action out = null; Notification.Action.Builder in = (Notification.Action.Builder) source(); out = in.build(); @@ -105,7 +105,7 @@ public class Test { } { // "android.app;Notification$Action$Builder;true;build;;;SyntheticField[android.content.Intent.extras] - // of Argument[-1];SyntheticField[android.content.Intent.extras] of + // of Argument[this];SyntheticField[android.content.Intent.extras] of // ReturnValue;value;manual" Notification.Action out = null; Notification.Action.Builder builder = null; @@ -115,7 +115,7 @@ public class Test { sink(getMapValueDefault(out.getExtras())); // $ hasValueFlow } { - // "android.app;Notification$Action$Builder;true;extend;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$Action$Builder;true;extend;;;Argument[this];ReturnValue;value;manual" Notification.Action.Builder out = null; Notification.Action.Builder in = (Notification.Action.Builder) source(); out = in.extend(null); @@ -123,77 +123,77 @@ public class Test { } { // "android.app;Notification$Action$Builder;true;getExtras;;;SyntheticField[android.content.Intent.extras] - // of Argument[-1];ReturnValue;value;manual" + // of Argument[this];ReturnValue;value;manual" Bundle out = null; Notification.Action.Builder in = (Notification.Action.Builder) source(); out = in.getExtras(); sink(out); // $ hasTaintFlow } { - // "android.app;Notification$Action$Builder;true;setAllowGeneratedReplies;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$Action$Builder;true;setAllowGeneratedReplies;;;Argument[this];ReturnValue;value;manual" Notification.Action.Builder out = null; Notification.Action.Builder in = (Notification.Action.Builder) source(); out = in.setAllowGeneratedReplies(false); sink(out); // $ hasValueFlow } { - // "android.app;Notification$Action$Builder;true;setAuthenticationRequired;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$Action$Builder;true;setAuthenticationRequired;;;Argument[this];ReturnValue;value;manual" Notification.Action.Builder out = null; Notification.Action.Builder in = (Notification.Action.Builder) source(); out = in.setAuthenticationRequired(false); sink(out); // $ hasValueFlow } { - // "android.app;Notification$Action$Builder;true;setContextual;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$Action$Builder;true;setContextual;;;Argument[this];ReturnValue;value;manual" Notification.Action.Builder out = null; Notification.Action.Builder in = (Notification.Action.Builder) source(); out = in.setContextual(false); sink(out); // $ hasValueFlow } { - // "android.app;Notification$Action$Builder;true;setSemanticAction;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$Action$Builder;true;setSemanticAction;;;Argument[this];ReturnValue;value;manual" Notification.Action.Builder out = null; Notification.Action.Builder in = (Notification.Action.Builder) source(); out = in.setSemanticAction(0); sink(out); // $ hasValueFlow } { - // "android.app;Notification$Action;true;Action;(int,CharSequence,PendingIntent);;Argument[2];Argument[-1];taint;manual" + // "android.app;Notification$Action;true;Action;(int,CharSequence,PendingIntent);;Argument[2];Argument[this];taint;manual" Notification.Action out = null; PendingIntent in = (PendingIntent) source(); out = new Notification.Action(0, null, in); sink(out); // $ hasTaintFlow } { - // "android.app;Notification$Builder;true;addAction;(Action);;Argument[0];Argument[-1];taint;manual" + // "android.app;Notification$Builder;true;addAction;(Action);;Argument[0];Argument[this];taint;manual" Notification.Builder out = null; Notification.Action in = (Notification.Action) source(); out.addAction(in); sink(out); // $ hasTaintFlow } { - // "android.app;Notification$Builder;true;addAction;(int,CharSequence,PendingIntent);;Argument[2];Argument[-1];taint;manual" + // "android.app;Notification$Builder;true;addAction;(int,CharSequence,PendingIntent);;Argument[2];Argument[this];taint;manual" Notification.Builder out = null; PendingIntent in = (PendingIntent) source(); out.addAction(0, null, in); sink(out); // $ hasTaintFlow } { - // "android.app;Notification$Builder;true;addAction;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$Builder;true;addAction;;;Argument[this];ReturnValue;value;manual" Notification.Builder out = null; Notification.Builder in = (Notification.Builder) source(); out = in.addAction(null); sink(out); // $ hasValueFlow } { - // "android.app;Notification$Builder;true;addAction;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$Builder;true;addAction;;;Argument[this];ReturnValue;value;manual" Notification.Builder out = null; Notification.Builder in = (Notification.Builder) source(); out = in.addAction(0, null, null); sink(out); // $ hasValueFlow } { - // "android.app;Notification$Builder;true;addExtras;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$Builder;true;addExtras;;;Argument[this];ReturnValue;value;manual" Notification.Builder out = null; Notification.Builder in = (Notification.Builder) source(); out = in.addExtras(null); @@ -201,7 +201,7 @@ public class Test { } { // "android.app;Notification$Builder;true;addExtras;;;MapKey of Argument[0];MapKey of - // SyntheticField[android.content.Intent.extras] of Argument[-1];value;manual" + // SyntheticField[android.content.Intent.extras] of Argument[this];value;manual" Notification.Builder out = null; Bundle in = (Bundle) newWithMapKeyDefault(source()); out.addExtras(in); @@ -209,28 +209,28 @@ public class Test { } { // "android.app;Notification$Builder;true;addExtras;;;MapValue of Argument[0];MapValue - // of SyntheticField[android.content.Intent.extras] of Argument[-1];value;manual" + // of SyntheticField[android.content.Intent.extras] of Argument[this];value;manual" Notification.Builder out = null; Bundle in = (Bundle) newWithMapValueDefault(source()); out.addExtras(in); sink(getMapValueDefault(out.getExtras())); // $ hasValueFlow } { - // "android.app;Notification$Builder;true;addPerson;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$Builder;true;addPerson;;;Argument[this];ReturnValue;value;manual" Notification.Builder out = null; Notification.Builder in = (Notification.Builder) source(); out = in.addPerson((String) null); sink(out); // $ hasValueFlow } { - // "android.app;Notification$Builder;true;addPerson;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$Builder;true;addPerson;;;Argument[this];ReturnValue;value;manual" Notification.Builder out = null; Notification.Builder in = (Notification.Builder) source(); out = in.addPerson((Person) null); sink(out); // $ hasValueFlow } { - // "android.app;Notification$Builder;true;build;;;Argument[-1];ReturnValue;taint;manual" + // "android.app;Notification$Builder;true;build;;;Argument[this];ReturnValue;taint;manual" Notification out = null; Notification.Builder in = (Notification.Builder) source(); out = in.build(); @@ -238,7 +238,7 @@ public class Test { } { // "android.app;Notification$Builder;true;build;;;SyntheticField[android.content.Intent.extras] - // of Argument[-1];Field[android.app.Notification.extras] of ReturnValue;value;manual" + // of Argument[this];Field[android.app.Notification.extras] of ReturnValue;value;manual" Notification out = null; Notification.Builder builder = null; Bundle in = (Bundle) newWithMapValueDefault(source()); @@ -247,7 +247,7 @@ public class Test { sink(getMapValueDefault(out.extras)); // $ hasValueFlow } { - // "android.app;Notification$Builder;true;extend;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$Builder;true;extend;;;Argument[this];ReturnValue;value;manual" Notification.Builder out = null; Notification.Builder in = (Notification.Builder) source(); out = in.extend(null); @@ -255,7 +255,7 @@ public class Test { } { // "android.app;Notification$Builder;true;getExtras;;;SyntheticField[android.content.Intent.extras] - // of Argument[-1];ReturnValue;value;manual" + // of Argument[this];ReturnValue;value;manual" Bundle out = null; Notification.Builder in = (Notification.Builder) source(); out = in.getExtras(); @@ -269,7 +269,7 @@ public class Test { sink(out); // $ hasTaintFlow } { - // "android.app;Notification$Builder;true;setActions;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$Builder;true;setActions;;;Argument[this];ReturnValue;value;manual" Notification.Builder out = null; Notification.Builder in = (Notification.Builder) source(); out = in.setActions((Notification.Action[]) null); @@ -277,7 +277,7 @@ public class Test { } { // "android.app;Notification$Builder;true;setActions;;;ArrayElement of - // Argument[0];Argument[-1];taint;manual" + // Argument[0];Argument[this];taint;manual" Notification.Builder out = null; Notification.Action[] in = (Notification.Action[]) new Notification.Action[] { (Notification.Action) source()}; @@ -285,140 +285,140 @@ public class Test { sink(out); // $ hasTaintFlow } { - // "android.app;Notification$Builder;true;setAutoCancel;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$Builder;true;setAutoCancel;;;Argument[this];ReturnValue;value;manual" Notification.Builder out = null; Notification.Builder in = (Notification.Builder) source(); out = in.setAutoCancel(false); sink(out); // $ hasValueFlow } { - // "android.app;Notification$Builder;true;setBadgeIconType;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$Builder;true;setBadgeIconType;;;Argument[this];ReturnValue;value;manual" Notification.Builder out = null; Notification.Builder in = (Notification.Builder) source(); out = in.setBadgeIconType(0); sink(out); // $ hasValueFlow } { - // "android.app;Notification$Builder;true;setBubbleMetadata;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$Builder;true;setBubbleMetadata;;;Argument[this];ReturnValue;value;manual" Notification.Builder out = null; Notification.Builder in = (Notification.Builder) source(); out = in.setBubbleMetadata(null); sink(out); // $ hasValueFlow } { - // "android.app;Notification$Builder;true;setCategory;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$Builder;true;setCategory;;;Argument[this];ReturnValue;value;manual" Notification.Builder out = null; Notification.Builder in = (Notification.Builder) source(); out = in.setCategory(null); sink(out); // $ hasValueFlow } { - // "android.app;Notification$Builder;true;setChannelId;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$Builder;true;setChannelId;;;Argument[this];ReturnValue;value;manual" Notification.Builder out = null; Notification.Builder in = (Notification.Builder) source(); out = in.setChannelId(null); sink(out); // $ hasValueFlow } { - // "android.app;Notification$Builder;true;setChronometerCountDown;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$Builder;true;setChronometerCountDown;;;Argument[this];ReturnValue;value;manual" Notification.Builder out = null; Notification.Builder in = (Notification.Builder) source(); out = in.setChronometerCountDown(false); sink(out); // $ hasValueFlow } { - // "android.app;Notification$Builder;true;setColor;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$Builder;true;setColor;;;Argument[this];ReturnValue;value;manual" Notification.Builder out = null; Notification.Builder in = (Notification.Builder) source(); out = in.setColor(0); sink(out); // $ hasValueFlow } { - // "android.app;Notification$Builder;true;setColorized;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$Builder;true;setColorized;;;Argument[this];ReturnValue;value;manual" Notification.Builder out = null; Notification.Builder in = (Notification.Builder) source(); out = in.setColorized(false); sink(out); // $ hasValueFlow } { - // "android.app;Notification$Builder;true;setContent;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$Builder;true;setContent;;;Argument[this];ReturnValue;value;manual" Notification.Builder out = null; Notification.Builder in = (Notification.Builder) source(); out = in.setContent(null); sink(out); // $ hasValueFlow } { - // "android.app;Notification$Builder;true;setContentInfo;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$Builder;true;setContentInfo;;;Argument[this];ReturnValue;value;manual" Notification.Builder out = null; Notification.Builder in = (Notification.Builder) source(); out = in.setContentInfo(null); sink(out); // $ hasValueFlow } { - // "android.app;Notification$Builder;true;setContentIntent;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$Builder;true;setContentIntent;;;Argument[this];ReturnValue;value;manual" Notification.Builder out = null; Notification.Builder in = (Notification.Builder) source(); out = in.setContentIntent(null); sink(out); // $ hasValueFlow } { - // "android.app;Notification$Builder;true;setContentIntent;;;Argument[0];Argument[-1];taint;manual" + // "android.app;Notification$Builder;true;setContentIntent;;;Argument[0];Argument[this];taint;manual" Notification.Builder out = null; PendingIntent in = (PendingIntent) source(); out.setContentIntent(in); sink(out); // $ hasTaintFlow } { - // "android.app;Notification$Builder;true;setContentText;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$Builder;true;setContentText;;;Argument[this];ReturnValue;value;manual" Notification.Builder out = null; Notification.Builder in = (Notification.Builder) source(); out = in.setContentText(null); sink(out); // $ hasValueFlow } { - // "android.app;Notification$Builder;true;setContentTitle;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$Builder;true;setContentTitle;;;Argument[this];ReturnValue;value;manual" Notification.Builder out = null; Notification.Builder in = (Notification.Builder) source(); out = in.setContentTitle(null); sink(out); // $ hasValueFlow } { - // "android.app;Notification$Builder;true;setCustomBigContentView;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$Builder;true;setCustomBigContentView;;;Argument[this];ReturnValue;value;manual" Notification.Builder out = null; Notification.Builder in = (Notification.Builder) source(); out = in.setCustomBigContentView(null); sink(out); // $ hasValueFlow } { - // "android.app;Notification$Builder;true;setCustomHeadsUpContentView;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$Builder;true;setCustomHeadsUpContentView;;;Argument[this];ReturnValue;value;manual" Notification.Builder out = null; Notification.Builder in = (Notification.Builder) source(); out = in.setCustomHeadsUpContentView(null); sink(out); // $ hasValueFlow } { - // "android.app;Notification$Builder;true;setDefaults;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$Builder;true;setDefaults;;;Argument[this];ReturnValue;value;manual" Notification.Builder out = null; Notification.Builder in = (Notification.Builder) source(); out = in.setDefaults(0); sink(out); // $ hasValueFlow } { - // "android.app;Notification$Builder;true;setDeleteIntent;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$Builder;true;setDeleteIntent;;;Argument[this];ReturnValue;value;manual" Notification.Builder out = null; Notification.Builder in = (Notification.Builder) source(); out = in.setDeleteIntent(null); sink(out); // $ hasValueFlow } { - // "android.app;Notification$Builder;true;setDeleteIntent;;;Argument[0];Argument[-1];taint;manual" + // "android.app;Notification$Builder;true;setDeleteIntent;;;Argument[0];Argument[this];taint;manual" Notification.Builder out = null; PendingIntent in = (PendingIntent) source(); out.setDeleteIntent(in); sink(out); // $ hasTaintFlow } { - // "android.app;Notification$Builder;true;setExtras;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$Builder;true;setExtras;;;Argument[this];ReturnValue;value;manual" Notification.Builder out = null; Notification.Builder in = (Notification.Builder) source(); out = in.setExtras(null); @@ -426,448 +426,448 @@ public class Test { } { // "android.app;Notification$Builder;true;setExtras;;;Argument[0];SyntheticField[android.content.Intent.extras] - // of Argument[-1];value;manual" + // of Argument[this];value;manual" Notification.Builder out = null; Bundle in = (Bundle) source(); out.setExtras(in); sink(out.getExtras()); // $ hasValueFlow } { - // "android.app;Notification$Builder;true;setFlag;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$Builder;true;setFlag;;;Argument[this];ReturnValue;value;manual" Notification.Builder out = null; Notification.Builder in = (Notification.Builder) source(); out = in.setFlag(0, false); sink(out); // $ hasValueFlow } { - // "android.app;Notification$Builder;true;setForegroundServiceBehavior;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$Builder;true;setForegroundServiceBehavior;;;Argument[this];ReturnValue;value;manual" Notification.Builder out = null; Notification.Builder in = (Notification.Builder) source(); out = in.setForegroundServiceBehavior(0); sink(out); // $ hasValueFlow } { - // "android.app;Notification$Builder;true;setFullScreenIntent;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$Builder;true;setFullScreenIntent;;;Argument[this];ReturnValue;value;manual" Notification.Builder out = null; Notification.Builder in = (Notification.Builder) source(); out = in.setFullScreenIntent(null, false); sink(out); // $ hasValueFlow } { - // "android.app;Notification$Builder;true;setGroup;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$Builder;true;setGroup;;;Argument[this];ReturnValue;value;manual" Notification.Builder out = null; Notification.Builder in = (Notification.Builder) source(); out = in.setGroup(null); sink(out); // $ hasValueFlow } { - // "android.app;Notification$Builder;true;setGroupAlertBehavior;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$Builder;true;setGroupAlertBehavior;;;Argument[this];ReturnValue;value;manual" Notification.Builder out = null; Notification.Builder in = (Notification.Builder) source(); out = in.setGroupAlertBehavior(0); sink(out); // $ hasValueFlow } { - // "android.app;Notification$Builder;true;setGroupSummary;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$Builder;true;setGroupSummary;;;Argument[this];ReturnValue;value;manual" Notification.Builder out = null; Notification.Builder in = (Notification.Builder) source(); out = in.setGroupSummary(false); sink(out); // $ hasValueFlow } { - // "android.app;Notification$Builder;true;setLargeIcon;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$Builder;true;setLargeIcon;;;Argument[this];ReturnValue;value;manual" Notification.Builder out = null; Notification.Builder in = (Notification.Builder) source(); out = in.setLargeIcon((Icon) null); sink(out); // $ hasValueFlow } { - // "android.app;Notification$Builder;true;setLargeIcon;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$Builder;true;setLargeIcon;;;Argument[this];ReturnValue;value;manual" Notification.Builder out = null; Notification.Builder in = (Notification.Builder) source(); out = in.setLargeIcon((Bitmap) null); sink(out); // $ hasValueFlow } { - // "android.app;Notification$Builder;true;setLights;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$Builder;true;setLights;;;Argument[this];ReturnValue;value;manual" Notification.Builder out = null; Notification.Builder in = (Notification.Builder) source(); out = in.setLights(0, 0, 0); sink(out); // $ hasValueFlow } { - // "android.app;Notification$Builder;true;setLocalOnly;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$Builder;true;setLocalOnly;;;Argument[this];ReturnValue;value;manual" Notification.Builder out = null; Notification.Builder in = (Notification.Builder) source(); out = in.setLocalOnly(false); sink(out); // $ hasValueFlow } { - // "android.app;Notification$Builder;true;setLocusId;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$Builder;true;setLocusId;;;Argument[this];ReturnValue;value;manual" Notification.Builder out = null; Notification.Builder in = (Notification.Builder) source(); out = in.setLocusId(null); sink(out); // $ hasValueFlow } { - // "android.app;Notification$Builder;true;setNumber;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$Builder;true;setNumber;;;Argument[this];ReturnValue;value;manual" Notification.Builder out = null; Notification.Builder in = (Notification.Builder) source(); out = in.setNumber(0); sink(out); // $ hasValueFlow } { - // "android.app;Notification$Builder;true;setOngoing;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$Builder;true;setOngoing;;;Argument[this];ReturnValue;value;manual" Notification.Builder out = null; Notification.Builder in = (Notification.Builder) source(); out = in.setOngoing(false); sink(out); // $ hasValueFlow } { - // "android.app;Notification$Builder;true;setOnlyAlertOnce;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$Builder;true;setOnlyAlertOnce;;;Argument[this];ReturnValue;value;manual" Notification.Builder out = null; Notification.Builder in = (Notification.Builder) source(); out = in.setOnlyAlertOnce(false); sink(out); // $ hasValueFlow } { - // "android.app;Notification$Builder;true;setPriority;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$Builder;true;setPriority;;;Argument[this];ReturnValue;value;manual" Notification.Builder out = null; Notification.Builder in = (Notification.Builder) source(); out = in.setPriority(0); sink(out); // $ hasValueFlow } { - // "android.app;Notification$Builder;true;setProgress;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$Builder;true;setProgress;;;Argument[this];ReturnValue;value;manual" Notification.Builder out = null; Notification.Builder in = (Notification.Builder) source(); out = in.setProgress(0, 0, false); sink(out); // $ hasValueFlow } { - // "android.app;Notification$Builder;true;setPublicVersion;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$Builder;true;setPublicVersion;;;Argument[this];ReturnValue;value;manual" Notification.Builder out = null; Notification.Builder in = (Notification.Builder) source(); out = in.setPublicVersion(null); sink(out); // $ hasValueFlow } { - // "android.app;Notification$Builder;true;setPublicVersion;;;Argument[0];Argument[-1];taint;manual" + // "android.app;Notification$Builder;true;setPublicVersion;;;Argument[0];Argument[this];taint;manual" Notification.Builder out = null; Notification in = (Notification) source(); out.setPublicVersion(in); sink(out); // $ hasTaintFlow } { - // "android.app;Notification$Builder;true;setRemoteInputHistory;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$Builder;true;setRemoteInputHistory;;;Argument[this];ReturnValue;value;manual" Notification.Builder out = null; Notification.Builder in = (Notification.Builder) source(); out = in.setRemoteInputHistory(null); sink(out); // $ hasValueFlow } { - // "android.app;Notification$Builder;true;setSettingsText;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$Builder;true;setSettingsText;;;Argument[this];ReturnValue;value;manual" Notification.Builder out = null; Notification.Builder in = (Notification.Builder) source(); out = in.setSettingsText(null); sink(out); // $ hasValueFlow } { - // "android.app;Notification$Builder;true;setShortcutId;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$Builder;true;setShortcutId;;;Argument[this];ReturnValue;value;manual" Notification.Builder out = null; Notification.Builder in = (Notification.Builder) source(); out = in.setShortcutId(null); sink(out); // $ hasValueFlow } { - // "android.app;Notification$Builder;true;setShowWhen;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$Builder;true;setShowWhen;;;Argument[this];ReturnValue;value;manual" Notification.Builder out = null; Notification.Builder in = (Notification.Builder) source(); out = in.setShowWhen(false); sink(out); // $ hasValueFlow } { - // "android.app;Notification$Builder;true;setSmallIcon;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$Builder;true;setSmallIcon;;;Argument[this];ReturnValue;value;manual" Notification.Builder out = null; Notification.Builder in = (Notification.Builder) source(); out = in.setSmallIcon(0, 0); sink(out); // $ hasValueFlow } { - // "android.app;Notification$Builder;true;setSmallIcon;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$Builder;true;setSmallIcon;;;Argument[this];ReturnValue;value;manual" Notification.Builder out = null; Notification.Builder in = (Notification.Builder) source(); out = in.setSmallIcon(0); sink(out); // $ hasValueFlow } { - // "android.app;Notification$Builder;true;setSmallIcon;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$Builder;true;setSmallIcon;;;Argument[this];ReturnValue;value;manual" Notification.Builder out = null; Notification.Builder in = (Notification.Builder) source(); out = in.setSmallIcon((Icon) null); sink(out); // $ hasValueFlow } { - // "android.app;Notification$Builder;true;setSortKey;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$Builder;true;setSortKey;;;Argument[this];ReturnValue;value;manual" Notification.Builder out = null; Notification.Builder in = (Notification.Builder) source(); out = in.setSortKey(null); sink(out); // $ hasValueFlow } { - // "android.app;Notification$Builder;true;setSound;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$Builder;true;setSound;;;Argument[this];ReturnValue;value;manual" Notification.Builder out = null; Notification.Builder in = (Notification.Builder) source(); out = in.setSound(null); sink(out); // $ hasValueFlow } { - // "android.app;Notification$Builder;true;setSound;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$Builder;true;setSound;;;Argument[this];ReturnValue;value;manual" Notification.Builder out = null; Notification.Builder in = (Notification.Builder) source(); out = in.setSound((Uri) null, 0); sink(out); // $ hasValueFlow } { - // "android.app;Notification$Builder;true;setSound;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$Builder;true;setSound;;;Argument[this];ReturnValue;value;manual" Notification.Builder out = null; Notification.Builder in = (Notification.Builder) source(); out = in.setSound((Uri) null, (AudioAttributes) null); sink(out); // $ hasValueFlow } { - // "android.app;Notification$Builder;true;setStyle;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$Builder;true;setStyle;;;Argument[this];ReturnValue;value;manual" Notification.Builder out = null; Notification.Builder in = (Notification.Builder) source(); out = in.setStyle(null); sink(out); // $ hasValueFlow } { - // "android.app;Notification$Builder;true;setSubText;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$Builder;true;setSubText;;;Argument[this];ReturnValue;value;manual" Notification.Builder out = null; Notification.Builder in = (Notification.Builder) source(); out = in.setSubText(null); sink(out); // $ hasValueFlow } { - // "android.app;Notification$Builder;true;setTicker;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$Builder;true;setTicker;;;Argument[this];ReturnValue;value;manual" Notification.Builder out = null; Notification.Builder in = (Notification.Builder) source(); out = in.setTicker(null, null); sink(out); // $ hasValueFlow } { - // "android.app;Notification$Builder;true;setTicker;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$Builder;true;setTicker;;;Argument[this];ReturnValue;value;manual" Notification.Builder out = null; Notification.Builder in = (Notification.Builder) source(); out = in.setTicker(null); sink(out); // $ hasValueFlow } { - // "android.app;Notification$Builder;true;setTimeoutAfter;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$Builder;true;setTimeoutAfter;;;Argument[this];ReturnValue;value;manual" Notification.Builder out = null; Notification.Builder in = (Notification.Builder) source(); out = in.setTimeoutAfter(0L); sink(out); // $ hasValueFlow } { - // "android.app;Notification$Builder;true;setUsesChronometer;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$Builder;true;setUsesChronometer;;;Argument[this];ReturnValue;value;manual" Notification.Builder out = null; Notification.Builder in = (Notification.Builder) source(); out = in.setUsesChronometer(false); sink(out); // $ hasValueFlow } { - // "android.app;Notification$Builder;true;setVibrate;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$Builder;true;setVibrate;;;Argument[this];ReturnValue;value;manual" Notification.Builder out = null; Notification.Builder in = (Notification.Builder) source(); out = in.setVibrate(null); sink(out); // $ hasValueFlow } { - // "android.app;Notification$Builder;true;setVisibility;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$Builder;true;setVisibility;;;Argument[this];ReturnValue;value;manual" Notification.Builder out = null; Notification.Builder in = (Notification.Builder) source(); out = in.setVisibility(0); sink(out); // $ hasValueFlow } { - // "android.app;Notification$Builder;true;setWhen;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$Builder;true;setWhen;;;Argument[this];ReturnValue;value;manual" Notification.Builder out = null; Notification.Builder in = (Notification.Builder) source(); out = in.setWhen(0L); sink(out); // $ hasValueFlow } { - // "android.app;Notification$Style;true;build;;;Argument[-1];ReturnValue;taint;manual" + // "android.app;Notification$Style;true;build;;;Argument[this];ReturnValue;taint;manual" Notification out = null; Notification.Style in = (Notification.Style) source(); out = in.build(); sink(out); // $ hasTaintFlow } { - // "android.app;Notification$BigPictureStyle;true;BigPictureStyle;(Builder);;Argument[0];Argument[-1];taint;manual" + // "android.app;Notification$BigPictureStyle;true;BigPictureStyle;(Builder);;Argument[0];Argument[this];taint;manual" Notification.BigPictureStyle out = null; Notification.Builder in = (Notification.Builder) source(); out = new Notification.BigPictureStyle(in); sink(out); // $ hasTaintFlow } { - // "android.app;Notification$BigPictureStyle;true;bigLargeIcon;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$BigPictureStyle;true;bigLargeIcon;;;Argument[this];ReturnValue;value;manual" Notification.BigPictureStyle in = (Notification.BigPictureStyle) source(); Notification.BigPictureStyle out = in.bigLargeIcon((Icon) null); sink(out); // $ hasValueFlow } { - // "android.app;Notification$BigPictureStyle;true;bigPicture;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$BigPictureStyle;true;bigPicture;;;Argument[this];ReturnValue;value;manual" Notification.BigPictureStyle in = (Notification.BigPictureStyle) source(); Notification.BigPictureStyle out = in.bigPicture((Bitmap) null); sink(out); // $ hasValueFlow } { - // "android.app;Notification$BigPictureStyle;true;setBigContentTitle;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$BigPictureStyle;true;setBigContentTitle;;;Argument[this];ReturnValue;value;manual" Notification.BigPictureStyle in = (Notification.BigPictureStyle) source(); Notification.BigPictureStyle out = in.setBigContentTitle(null); sink(out); // $ hasValueFlow } { - // "android.app;Notification$BigPictureStyle;true;setContentDescription;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$BigPictureStyle;true;setContentDescription;;;Argument[this];ReturnValue;value;manual" Notification.BigPictureStyle in = (Notification.BigPictureStyle) source(); Notification.BigPictureStyle out = in.setContentDescription(null); sink(out); // $ hasValueFlow } { - // "android.app;Notification$BigPictureStyle;true;setSummaryText;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$BigPictureStyle;true;setSummaryText;;;Argument[this];ReturnValue;value;manual" Notification.BigPictureStyle in = (Notification.BigPictureStyle) source(); Notification.BigPictureStyle out = in.setSummaryText(null); sink(out); // $ hasValueFlow } { - // "android.app;Notification$BigPictureStyle;true;showBigPictureWhenCollapsed;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$BigPictureStyle;true;showBigPictureWhenCollapsed;;;Argument[this];ReturnValue;value;manual" Notification.BigPictureStyle in = (Notification.BigPictureStyle) source(); Notification.BigPictureStyle out = in.showBigPictureWhenCollapsed(false); sink(out); // $ hasValueFlow } { - // "android.app;Notification$BigTextStyle;true;BigTextStyle;(Builder);;Argument[0];Argument[-1];taint;manual" + // "android.app;Notification$BigTextStyle;true;BigTextStyle;(Builder);;Argument[0];Argument[this];taint;manual" Notification.BigTextStyle out = null; Notification.Builder in = (Notification.Builder) source(); out = new Notification.BigTextStyle(in); sink(out); // $ hasTaintFlow } { - // "android.app;Notification$BigTextStyle;true;bigText;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$BigTextStyle;true;bigText;;;Argument[this];ReturnValue;value;manual" Notification.BigTextStyle in = (Notification.BigTextStyle) source(); Notification.BigTextStyle out = in.bigText(null); sink(out); // $ hasValueFlow } { - // "android.app;Notification$BigTextStyle;true;setBigContentTitle;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$BigTextStyle;true;setBigContentTitle;;;Argument[this];ReturnValue;value;manual" Notification.BigTextStyle in = (Notification.BigTextStyle) source(); Notification.BigTextStyle out = in.setBigContentTitle(null); sink(out); // $ hasValueFlow } { - // "android.app;Notification$BigTextStyle;true;setSummaryText;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$BigTextStyle;true;setSummaryText;;;Argument[this];ReturnValue;value;manual" Notification.BigTextStyle in = (Notification.BigTextStyle) source(); Notification.BigTextStyle out = in.setSummaryText(null); sink(out); // $ hasValueFlow } { - // "android.app;Notification$InboxStyle;true;InboxStyle;(Builder);;Argument[0];Argument[-1];taint;manual" + // "android.app;Notification$InboxStyle;true;InboxStyle;(Builder);;Argument[0];Argument[this];taint;manual" Notification.InboxStyle out = null; Notification.Builder in = (Notification.Builder) source(); out = new Notification.InboxStyle(in); sink(out); // $ hasTaintFlow } { - // "android.app;Notification$InboxStyle;true;addLine;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$InboxStyle;true;addLine;;;Argument[this];ReturnValue;value;manual" Notification.InboxStyle in = (Notification.InboxStyle) source(); Notification.InboxStyle out = in.addLine(null); sink(out); // $ hasValueFlow } { - // "android.app;Notification$InboxStyle;true;setBigContentTitle;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$InboxStyle;true;setBigContentTitle;;;Argument[this];ReturnValue;value;manual" Notification.InboxStyle in = (Notification.InboxStyle) source(); Notification.InboxStyle out = in.setBigContentTitle(null); sink(out); // $ hasValueFlow } { - // "android.app;Notification$InboxStyle;true;setSummaryText;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$InboxStyle;true;setSummaryText;;;Argument[this];ReturnValue;value;manual" Notification.InboxStyle in = (Notification.InboxStyle) source(); Notification.InboxStyle out = in.setSummaryText(null); sink(out); // $ hasValueFlow } { - // "android.app;Notification$MediaStyle;true;MediaStyle;(Builder);;Argument[0];Argument[-1];taint;manual" + // "android.app;Notification$MediaStyle;true;MediaStyle;(Builder);;Argument[0];Argument[this];taint;manual" Notification.MediaStyle out = null; Notification.Builder in = (Notification.Builder) source(); out = new Notification.MediaStyle(in); sink(out); // $ hasTaintFlow } { - // "android.app;Notification$MediaStyle;true;setMediaSession;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$MediaStyle;true;setMediaSession;;;Argument[this];ReturnValue;value;manual" Notification.MediaStyle in = (Notification.MediaStyle) source(); Notification.MediaStyle out = in.setMediaSession(null); sink(out); // $ hasValueFlow } { - // "android.app;Notification$MediaStyle;true;setShowActionsInCompactView;;;Argument[-1];ReturnValue;value;manual" + // "android.app;Notification$MediaStyle;true;setShowActionsInCompactView;;;Argument[this];ReturnValue;value;manual" Notification.MediaStyle in = (Notification.MediaStyle) source(); Notification.MediaStyle out = in.setShowActionsInCompactView(null); sink(out); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$Action$Builder;true;Builder;(Action);;Argument[0];Argument[-1];taint;manual" + // "androidx.core.app;NotificationCompat$Action$Builder;true;Builder;(Action);;Argument[0];Argument[this];taint;manual" NotificationCompat.Action.Builder out = null; NotificationCompat.Action in = (NotificationCompat.Action) source(); out = new NotificationCompat.Action.Builder(in); sink(out); // $ hasTaintFlow } { - // "androidx.core.app;NotificationCompat$Action$Builder;true;Builder;(IconCompat,CharSequence,PendingIntent);;Argument[2];Argument[-1];taint;manual" + // "androidx.core.app;NotificationCompat$Action$Builder;true;Builder;(IconCompat,CharSequence,PendingIntent);;Argument[2];Argument[this];taint;manual" NotificationCompat.Action.Builder out = null; PendingIntent in = (PendingIntent) source(); out = new NotificationCompat.Action.Builder((IconCompat) null, (CharSequence) null, in); sink(out); // $ hasTaintFlow } { - // "androidx.core.app;NotificationCompat$Action$Builder;true;Builder;(int,CharSequence,PendingIntent);;Argument[2];Argument[-1];taint;manual" + // "androidx.core.app;NotificationCompat$Action$Builder;true;Builder;(int,CharSequence,PendingIntent);;Argument[2];Argument[this];taint;manual" NotificationCompat.Action.Builder out = null; PendingIntent in = (PendingIntent) source(); out = new NotificationCompat.Action.Builder(0, (CharSequence) null, in); sink(out); // $ hasTaintFlow } { - // "androidx.core.app;NotificationCompat$Action$Builder;true;addExtras;;;Argument[-1];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$Action$Builder;true;addExtras;;;Argument[this];ReturnValue;value;manual" NotificationCompat.Action.Builder out = null; NotificationCompat.Action.Builder in = (NotificationCompat.Action.Builder) source(); out = in.addExtras(null); sink(out); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$Action$Builder;true;addExtras;;;Argument[0].MapKey;Argument[-1].SyntheticField[android.content.Intent.extras].MapKey;value;manual" + // "androidx.core.app;NotificationCompat$Action$Builder;true;addExtras;;;Argument[0].MapKey;Argument[this].SyntheticField[android.content.Intent.extras].MapKey;value;manual" NotificationCompat.Action.Builder out = null; Bundle in = (Bundle) newWithMapKeyDefault(source()); out.addExtras(in); sink(getMapKeyDefault(out.getExtras())); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$Action$Builder;true;addExtras;;;Argument[0].MapValue;Argument[-1].SyntheticField[android.content.Intent.extras].MapValue;value;manual" + // "androidx.core.app;NotificationCompat$Action$Builder;true;addExtras;;;Argument[0].MapValue;Argument[this].SyntheticField[android.content.Intent.extras].MapValue;value;manual" NotificationCompat.Action.Builder out = null; Bundle in = (Bundle) newWithMapValueDefault(source()); out.addExtras(in); sink(getMapValueDefault(out.getExtras())); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$Action$Builder;true;addRemoteInput;;;Argument[-1];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$Action$Builder;true;addRemoteInput;;;Argument[this];ReturnValue;value;manual" NotificationCompat.Action.Builder out = null; NotificationCompat.Action.Builder in = (NotificationCompat.Action.Builder) source(); out = in.addRemoteInput(null); sink(out); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$Action$Builder;true;build;;;Argument[-1].SyntheticField[android.content.Intent.extras];ReturnValue.SyntheticField[android.content.Intent.extras];value;manual" + // "androidx.core.app;NotificationCompat$Action$Builder;true;build;;;Argument[this].SyntheticField[android.content.Intent.extras];ReturnValue.SyntheticField[android.content.Intent.extras];value;manual" NotificationCompat.Action out = null; NotificationCompat.Action.Builder builder = null; Bundle in = (Bundle) newWithMapValueDefault(source()); @@ -876,175 +876,175 @@ public class Test { sink(getMapValueDefault(out.getExtras())); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$Action$Builder;true;build;;;Argument[-1];ReturnValue;taint;manual" + // "androidx.core.app;NotificationCompat$Action$Builder;true;build;;;Argument[this];ReturnValue;taint;manual" NotificationCompat.Action out = null; NotificationCompat.Action.Builder in = (NotificationCompat.Action.Builder) source(); out = in.build(); sink(out); // $ hasTaintFlow } { - // "androidx.core.app;NotificationCompat$Action$Builder;true;extend;;;Argument[-1];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$Action$Builder;true;extend;;;Argument[this];ReturnValue;value;manual" NotificationCompat.Action.Builder out = null; NotificationCompat.Action.Builder in = (NotificationCompat.Action.Builder) source(); out = in.extend(null); sink(out); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$Action$Builder;true;getExtras;;;Argument[-1].SyntheticField[android.content.Intent.extras];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$Action$Builder;true;getExtras;;;Argument[this].SyntheticField[android.content.Intent.extras];ReturnValue;value;manual" Bundle out = null; NotificationCompat.Action.Builder in = (NotificationCompat.Action.Builder) source(); out = in.getExtras(); sink(out); // $ hasTaintFlow } { - // "androidx.core.app;NotificationCompat$Action$Builder;true;setAllowGeneratedReplies;;;Argument[-1];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$Action$Builder;true;setAllowGeneratedReplies;;;Argument[this];ReturnValue;value;manual" NotificationCompat.Action.Builder out = null; NotificationCompat.Action.Builder in = (NotificationCompat.Action.Builder) source(); out = in.setAllowGeneratedReplies(false); sink(out); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$Action$Builder;true;setContextual;;;Argument[-1];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$Action$Builder;true;setContextual;;;Argument[this];ReturnValue;value;manual" NotificationCompat.Action.Builder out = null; NotificationCompat.Action.Builder in = (NotificationCompat.Action.Builder) source(); out = in.setContextual(false); sink(out); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$Action$Builder;true;setSemanticAction;;;Argument[-1];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$Action$Builder;true;setSemanticAction;;;Argument[this];ReturnValue;value;manual" NotificationCompat.Action.Builder out = null; NotificationCompat.Action.Builder in = (NotificationCompat.Action.Builder) source(); out = in.setSemanticAction(0); sink(out); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$Action;true;Action;(IconCompat,CharSequence,PendingIntent);;Argument[2];Argument[-1];taint;manual" + // "androidx.core.app;NotificationCompat$Action;true;Action;(IconCompat,CharSequence,PendingIntent);;Argument[2];Argument[this];taint;manual" NotificationCompat.Action out = null; PendingIntent in = (PendingIntent) source(); out = new NotificationCompat.Action((IconCompat) null, (CharSequence) null, in); sink(out); // $ hasTaintFlow } { - // "androidx.core.app;NotificationCompat$Action;true;Action;(int,CharSequence,PendingIntent);;Argument[2];Argument[-1];taint;manual" + // "androidx.core.app;NotificationCompat$Action;true;Action;(int,CharSequence,PendingIntent);;Argument[2];Argument[this];taint;manual" NotificationCompat.Action out = null; PendingIntent in = (PendingIntent) source(); out = new NotificationCompat.Action(0, (CharSequence) null, in); sink(out); // $ hasTaintFlow } { - // "androidx.core.app;NotificationCompat$Action;true;getExtras;;;Argument[-1].SyntheticField[android.content.Intent.extras];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$Action;true;getExtras;;;Argument[this].SyntheticField[android.content.Intent.extras];ReturnValue;value;manual" Bundle out = null; NotificationCompat.Action in = (NotificationCompat.Action) source(); out = in.getExtras(); sink(out); // $ hasTaintFlow } { - // "androidx.core.app;NotificationCompat$BigPictureStyle;true;bigLargeIcon;;;Argument[-1];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$BigPictureStyle;true;bigLargeIcon;;;Argument[this];ReturnValue;value;manual" NotificationCompat.BigPictureStyle out = null; NotificationCompat.BigPictureStyle in = (NotificationCompat.BigPictureStyle) source(); out = in.bigLargeIcon(null); sink(out); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$BigPictureStyle;true;bigPicture;;;Argument[-1];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$BigPictureStyle;true;bigPicture;;;Argument[this];ReturnValue;value;manual" NotificationCompat.BigPictureStyle out = null; NotificationCompat.BigPictureStyle in = (NotificationCompat.BigPictureStyle) source(); out = in.bigPicture(null); sink(out); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$BigPictureStyle;true;setBigContentTitle;;;Argument[-1];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$BigPictureStyle;true;setBigContentTitle;;;Argument[this];ReturnValue;value;manual" NotificationCompat.BigPictureStyle out = null; NotificationCompat.BigPictureStyle in = (NotificationCompat.BigPictureStyle) source(); out = in.setBigContentTitle(null); sink(out); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$BigPictureStyle;true;setSummaryText;;;Argument[-1];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$BigPictureStyle;true;setSummaryText;;;Argument[this];ReturnValue;value;manual" NotificationCompat.BigPictureStyle out = null; NotificationCompat.BigPictureStyle in = (NotificationCompat.BigPictureStyle) source(); out = in.setSummaryText(null); sink(out); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$BigTextStyle;true;bigText;;;Argument[-1];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$BigTextStyle;true;bigText;;;Argument[this];ReturnValue;value;manual" NotificationCompat.BigTextStyle out = null; NotificationCompat.BigTextStyle in = (NotificationCompat.BigTextStyle) source(); out = in.bigText(null); sink(out); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$BigTextStyle;true;setBigContentTitle;;;Argument[-1];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$BigTextStyle;true;setBigContentTitle;;;Argument[this];ReturnValue;value;manual" NotificationCompat.BigTextStyle out = null; NotificationCompat.BigTextStyle in = (NotificationCompat.BigTextStyle) source(); out = in.setBigContentTitle(null); sink(out); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$BigTextStyle;true;setSummaryText;;;Argument[-1];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$BigTextStyle;true;setSummaryText;;;Argument[this];ReturnValue;value;manual" NotificationCompat.BigTextStyle out = null; NotificationCompat.BigTextStyle in = (NotificationCompat.BigTextStyle) source(); out = in.setSummaryText(null); sink(out); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$Builder;true;addAction;(Action);;Argument[0];Argument[-1];taint;manual" + // "androidx.core.app;NotificationCompat$Builder;true;addAction;(Action);;Argument[0];Argument[this];taint;manual" NotificationCompat.Builder out = null; NotificationCompat.Action in = (NotificationCompat.Action) source(); out.addAction(in); sink(out); // $ hasTaintFlow } { - // "androidx.core.app;NotificationCompat$Builder;true;addAction;(int,CharSequence,PendingIntent);;Argument[2];Argument[-1];taint;manual" + // "androidx.core.app;NotificationCompat$Builder;true;addAction;(int,CharSequence,PendingIntent);;Argument[2];Argument[this];taint;manual" NotificationCompat.Builder out = null; PendingIntent in = (PendingIntent) source(); out.addAction(0, null, in); sink(out); // $ hasTaintFlow } { - // "androidx.core.app;NotificationCompat$Builder;true;addAction;;;Argument[-1];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$Builder;true;addAction;;;Argument[this];ReturnValue;value;manual" NotificationCompat.Builder out = null; NotificationCompat.Builder in = (NotificationCompat.Builder) source(); out = in.addAction(0, null, null); sink(out); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$Builder;true;addAction;;;Argument[-1];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$Builder;true;addAction;;;Argument[this];ReturnValue;value;manual" NotificationCompat.Builder out = null; NotificationCompat.Builder in = (NotificationCompat.Builder) source(); out = in.addAction(null); sink(out); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$Builder;true;addExtras;;;Argument[-1];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$Builder;true;addExtras;;;Argument[this];ReturnValue;value;manual" NotificationCompat.Builder out = null; NotificationCompat.Builder in = (NotificationCompat.Builder) source(); out = in.addExtras(null); sink(out); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$Builder;true;addExtras;;;Argument[0].MapKey;Argument[-1].SyntheticField[android.content.Intent.extras].MapKey;value;manual" + // "androidx.core.app;NotificationCompat$Builder;true;addExtras;;;Argument[0].MapKey;Argument[this].SyntheticField[android.content.Intent.extras].MapKey;value;manual" NotificationCompat.Builder out = null; Bundle in = (Bundle) newWithMapKeyDefault(source()); out.addExtras(in); sink(getMapKeyDefault(out.getExtras())); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$Builder;true;addExtras;;;Argument[0].MapValue;Argument[-1].SyntheticField[android.content.Intent.extras].MapValue;value;manual" + // "androidx.core.app;NotificationCompat$Builder;true;addExtras;;;Argument[0].MapValue;Argument[this].SyntheticField[android.content.Intent.extras].MapValue;value;manual" NotificationCompat.Builder out = null; Bundle in = (Bundle) newWithMapValueDefault(source()); out.addExtras(in); sink(getMapValueDefault(out.getExtras())); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$Builder;true;addPerson;;;Argument[-1];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$Builder;true;addPerson;;;Argument[this];ReturnValue;value;manual" NotificationCompat.Builder out = null; NotificationCompat.Builder in = (NotificationCompat.Builder) source(); out = in.addPerson(null); sink(out); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$Builder;true;build;;;Argument[-1].SyntheticField[android.content.Intent.extras];ReturnValue.Field[android.app.Notification.extras];value;manual" + // "androidx.core.app;NotificationCompat$Builder;true;build;;;Argument[this].SyntheticField[android.content.Intent.extras];ReturnValue.Field[android.app.Notification.extras];value;manual" Notification out = null; NotificationCompat.Builder builder = null; Bundle in = (Bundle) newWithMapValueDefault(source()); @@ -1053,406 +1053,406 @@ public class Test { sink(getMapValueDefault(out.extras)); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$Builder;true;build;;;Argument[-1];ReturnValue;taint;manual" + // "androidx.core.app;NotificationCompat$Builder;true;build;;;Argument[this];ReturnValue;taint;manual" Notification out = null; NotificationCompat.Builder in = (NotificationCompat.Builder) source(); out = in.build(); sink(out); // $ hasTaintFlow } { - // "androidx.core.app;NotificationCompat$Builder;true;extend;;;Argument[-1];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$Builder;true;extend;;;Argument[this];ReturnValue;value;manual" NotificationCompat.Builder out = null; NotificationCompat.Builder in = (NotificationCompat.Builder) source(); out = in.extend(null); sink(out); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$Builder;true;getExtras;;;Argument[-1].SyntheticField[android.content.Intent.extras];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$Builder;true;getExtras;;;Argument[this].SyntheticField[android.content.Intent.extras];ReturnValue;value;manual" Bundle out = null; NotificationCompat.Builder in = (NotificationCompat.Builder) source(); out = in.getExtras(); sink(out); // $ hasTaintFlow } { - // "androidx.core.app;NotificationCompat$Builder;true;setAutoCancel;;;Argument[-1];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$Builder;true;setAutoCancel;;;Argument[this];ReturnValue;value;manual" NotificationCompat.Builder out = null; NotificationCompat.Builder in = (NotificationCompat.Builder) source(); out = in.setAutoCancel(false); sink(out); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$Builder;true;setBadgeIconType;;;Argument[-1];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$Builder;true;setBadgeIconType;;;Argument[this];ReturnValue;value;manual" NotificationCompat.Builder out = null; NotificationCompat.Builder in = (NotificationCompat.Builder) source(); out = in.setBadgeIconType(0); sink(out); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$Builder;true;setBubbleMetadata;;;Argument[-1];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$Builder;true;setBubbleMetadata;;;Argument[this];ReturnValue;value;manual" NotificationCompat.Builder out = null; NotificationCompat.Builder in = (NotificationCompat.Builder) source(); out = in.setBubbleMetadata(null); sink(out); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$Builder;true;setCategory;;;Argument[-1];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$Builder;true;setCategory;;;Argument[this];ReturnValue;value;manual" NotificationCompat.Builder out = null; NotificationCompat.Builder in = (NotificationCompat.Builder) source(); out = in.setCategory(null); sink(out); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$Builder;true;setChannelId;;;Argument[-1];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$Builder;true;setChannelId;;;Argument[this];ReturnValue;value;manual" NotificationCompat.Builder out = null; NotificationCompat.Builder in = (NotificationCompat.Builder) source(); out = in.setChannelId(null); sink(out); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$Builder;true;setChronometerCountDown;;;Argument[-1];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$Builder;true;setChronometerCountDown;;;Argument[this];ReturnValue;value;manual" NotificationCompat.Builder out = null; NotificationCompat.Builder in = (NotificationCompat.Builder) source(); out = in.setChronometerCountDown(false); sink(out); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$Builder;true;setColor;;;Argument[-1];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$Builder;true;setColor;;;Argument[this];ReturnValue;value;manual" NotificationCompat.Builder out = null; NotificationCompat.Builder in = (NotificationCompat.Builder) source(); out = in.setColor(0); sink(out); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$Builder;true;setColorized;;;Argument[-1];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$Builder;true;setColorized;;;Argument[this];ReturnValue;value;manual" NotificationCompat.Builder out = null; NotificationCompat.Builder in = (NotificationCompat.Builder) source(); out = in.setColorized(false); sink(out); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$Builder;true;setContent;;;Argument[-1];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$Builder;true;setContent;;;Argument[this];ReturnValue;value;manual" NotificationCompat.Builder out = null; NotificationCompat.Builder in = (NotificationCompat.Builder) source(); out = in.setContent(null); sink(out); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$Builder;true;setContentInfo;;;Argument[-1];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$Builder;true;setContentInfo;;;Argument[this];ReturnValue;value;manual" NotificationCompat.Builder out = null; NotificationCompat.Builder in = (NotificationCompat.Builder) source(); out = in.setContentInfo(null); sink(out); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$Builder;true;setContentIntent;;;Argument[-1];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$Builder;true;setContentIntent;;;Argument[this];ReturnValue;value;manual" NotificationCompat.Builder out = null; NotificationCompat.Builder in = (NotificationCompat.Builder) source(); out = in.setContentIntent(null); sink(out); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$Builder;true;setContentIntent;;;Argument[0];Argument[-1];taint;manual" + // "androidx.core.app;NotificationCompat$Builder;true;setContentIntent;;;Argument[0];Argument[this];taint;manual" NotificationCompat.Builder out = null; PendingIntent in = (PendingIntent) source(); out.setContentIntent(in); sink(out); // $ hasTaintFlow } { - // "androidx.core.app;NotificationCompat$Builder;true;setContentText;;;Argument[-1];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$Builder;true;setContentText;;;Argument[this];ReturnValue;value;manual" NotificationCompat.Builder out = null; NotificationCompat.Builder in = (NotificationCompat.Builder) source(); out = in.setContentText(null); sink(out); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$Builder;true;setContentTitle;;;Argument[-1];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$Builder;true;setContentTitle;;;Argument[this];ReturnValue;value;manual" NotificationCompat.Builder out = null; NotificationCompat.Builder in = (NotificationCompat.Builder) source(); out = in.setContentTitle(null); sink(out); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$Builder;true;setCustomBigContentView;;;Argument[-1];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$Builder;true;setCustomBigContentView;;;Argument[this];ReturnValue;value;manual" NotificationCompat.Builder out = null; NotificationCompat.Builder in = (NotificationCompat.Builder) source(); out = in.setCustomBigContentView(null); sink(out); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$Builder;true;setCustomHeadsUpContentView;;;Argument[-1];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$Builder;true;setCustomHeadsUpContentView;;;Argument[this];ReturnValue;value;manual" NotificationCompat.Builder out = null; NotificationCompat.Builder in = (NotificationCompat.Builder) source(); out = in.setCustomHeadsUpContentView(null); sink(out); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$Builder;true;setDefaults;;;Argument[-1];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$Builder;true;setDefaults;;;Argument[this];ReturnValue;value;manual" NotificationCompat.Builder out = null; NotificationCompat.Builder in = (NotificationCompat.Builder) source(); out = in.setDefaults(0); sink(out); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$Builder;true;setDeleteIntent;;;Argument[-1];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$Builder;true;setDeleteIntent;;;Argument[this];ReturnValue;value;manual" NotificationCompat.Builder out = null; NotificationCompat.Builder in = (NotificationCompat.Builder) source(); out = in.setDeleteIntent(null); sink(out); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$Builder;true;setDeleteIntent;;;Argument[0];Argument[-1];taint;manual" + // "androidx.core.app;NotificationCompat$Builder;true;setDeleteIntent;;;Argument[0];Argument[this];taint;manual" NotificationCompat.Builder out = null; PendingIntent in = (PendingIntent) source(); out.setDeleteIntent(in); sink(out); // $ hasTaintFlow } { - // "androidx.core.app;NotificationCompat$Builder;true;setExtras;;;Argument[-1];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$Builder;true;setExtras;;;Argument[this];ReturnValue;value;manual" NotificationCompat.Builder out = null; NotificationCompat.Builder in = (NotificationCompat.Builder) source(); out = in.setExtras(null); sink(out); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$Builder;true;setExtras;;;Argument[0];Argument[-1].SyntheticField[android.content.Intent.extras];value;manual" + // "androidx.core.app;NotificationCompat$Builder;true;setExtras;;;Argument[0];Argument[this].SyntheticField[android.content.Intent.extras];value;manual" NotificationCompat.Builder out = null; Bundle in = (Bundle) source(); out.setExtras(in); sink(out.getExtras()); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$Builder;true;setFullScreenIntent;;;Argument[-1];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$Builder;true;setFullScreenIntent;;;Argument[this];ReturnValue;value;manual" NotificationCompat.Builder out = null; NotificationCompat.Builder in = (NotificationCompat.Builder) source(); out = in.setFullScreenIntent(null, false); sink(out); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$Builder;true;setGroup;;;Argument[-1];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$Builder;true;setGroup;;;Argument[this];ReturnValue;value;manual" NotificationCompat.Builder out = null; NotificationCompat.Builder in = (NotificationCompat.Builder) source(); out = in.setGroup(null); sink(out); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$Builder;true;setGroupAlertBehavior;;;Argument[-1];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$Builder;true;setGroupAlertBehavior;;;Argument[this];ReturnValue;value;manual" NotificationCompat.Builder out = null; NotificationCompat.Builder in = (NotificationCompat.Builder) source(); out = in.setGroupAlertBehavior(0); sink(out); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$Builder;true;setGroupSummary;;;Argument[-1];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$Builder;true;setGroupSummary;;;Argument[this];ReturnValue;value;manual" NotificationCompat.Builder out = null; NotificationCompat.Builder in = (NotificationCompat.Builder) source(); out = in.setGroupSummary(false); sink(out); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$Builder;true;setLargeIcon;;;Argument[-1];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$Builder;true;setLargeIcon;;;Argument[this];ReturnValue;value;manual" NotificationCompat.Builder out = null; NotificationCompat.Builder in = (NotificationCompat.Builder) source(); out = in.setLargeIcon(null); sink(out); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$Builder;true;setLights;;;Argument[-1];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$Builder;true;setLights;;;Argument[this];ReturnValue;value;manual" NotificationCompat.Builder out = null; NotificationCompat.Builder in = (NotificationCompat.Builder) source(); out = in.setLights(0, 0, 0); sink(out); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$Builder;true;setLocalOnly;;;Argument[-1];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$Builder;true;setLocalOnly;;;Argument[this];ReturnValue;value;manual" NotificationCompat.Builder out = null; NotificationCompat.Builder in = (NotificationCompat.Builder) source(); out = in.setLocalOnly(false); sink(out); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$Builder;true;setNumber;;;Argument[-1];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$Builder;true;setNumber;;;Argument[this];ReturnValue;value;manual" NotificationCompat.Builder out = null; NotificationCompat.Builder in = (NotificationCompat.Builder) source(); out = in.setNumber(0); sink(out); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$Builder;true;setOngoing;;;Argument[-1];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$Builder;true;setOngoing;;;Argument[this];ReturnValue;value;manual" NotificationCompat.Builder out = null; NotificationCompat.Builder in = (NotificationCompat.Builder) source(); out = in.setOngoing(false); sink(out); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$Builder;true;setOnlyAlertOnce;;;Argument[-1];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$Builder;true;setOnlyAlertOnce;;;Argument[this];ReturnValue;value;manual" NotificationCompat.Builder out = null; NotificationCompat.Builder in = (NotificationCompat.Builder) source(); out = in.setOnlyAlertOnce(false); sink(out); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$Builder;true;setPriority;;;Argument[-1];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$Builder;true;setPriority;;;Argument[this];ReturnValue;value;manual" NotificationCompat.Builder out = null; NotificationCompat.Builder in = (NotificationCompat.Builder) source(); out = in.setPriority(0); sink(out); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$Builder;true;setProgress;;;Argument[-1];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$Builder;true;setProgress;;;Argument[this];ReturnValue;value;manual" NotificationCompat.Builder out = null; NotificationCompat.Builder in = (NotificationCompat.Builder) source(); out = in.setProgress(0, 0, false); sink(out); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$Builder;true;setPublicVersion;;;Argument[-1];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$Builder;true;setPublicVersion;;;Argument[this];ReturnValue;value;manual" NotificationCompat.Builder out = null; NotificationCompat.Builder in = (NotificationCompat.Builder) source(); out = in.setPublicVersion(null); sink(out); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$Builder;true;setPublicVersion;;;Argument[0];Argument[-1];taint;manual" + // "androidx.core.app;NotificationCompat$Builder;true;setPublicVersion;;;Argument[0];Argument[this];taint;manual" NotificationCompat.Builder out = null; Notification in = (Notification) source(); out.setPublicVersion(in); sink(out); // $ hasTaintFlow } { - // "androidx.core.app;NotificationCompat$Builder;true;setRemoteInputHistory;;;Argument[-1];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$Builder;true;setRemoteInputHistory;;;Argument[this];ReturnValue;value;manual" NotificationCompat.Builder out = null; NotificationCompat.Builder in = (NotificationCompat.Builder) source(); out = in.setRemoteInputHistory(null); sink(out); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$Builder;true;setShortcutId;;;Argument[-1];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$Builder;true;setShortcutId;;;Argument[this];ReturnValue;value;manual" NotificationCompat.Builder out = null; NotificationCompat.Builder in = (NotificationCompat.Builder) source(); out = in.setShortcutId(null); sink(out); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$Builder;true;setShowWhen;;;Argument[-1];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$Builder;true;setShowWhen;;;Argument[this];ReturnValue;value;manual" NotificationCompat.Builder out = null; NotificationCompat.Builder in = (NotificationCompat.Builder) source(); out = in.setShowWhen(false); sink(out); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$Builder;true;setSmallIcon;;;Argument[-1];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$Builder;true;setSmallIcon;;;Argument[this];ReturnValue;value;manual" NotificationCompat.Builder out = null; NotificationCompat.Builder in = (NotificationCompat.Builder) source(); out = in.setSmallIcon(0); sink(out); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$Builder;true;setSmallIcon;;;Argument[-1];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$Builder;true;setSmallIcon;;;Argument[this];ReturnValue;value;manual" NotificationCompat.Builder out = null; NotificationCompat.Builder in = (NotificationCompat.Builder) source(); out = in.setSmallIcon(0, 0); sink(out); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$Builder;true;setSortKey;;;Argument[-1];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$Builder;true;setSortKey;;;Argument[this];ReturnValue;value;manual" NotificationCompat.Builder out = null; NotificationCompat.Builder in = (NotificationCompat.Builder) source(); out = in.setSortKey(null); sink(out); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$Builder;true;setSound;;;Argument[-1];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$Builder;true;setSound;;;Argument[this];ReturnValue;value;manual" NotificationCompat.Builder out = null; NotificationCompat.Builder in = (NotificationCompat.Builder) source(); out = in.setSound(null); sink(out); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$Builder;true;setSound;;;Argument[-1];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$Builder;true;setSound;;;Argument[this];ReturnValue;value;manual" NotificationCompat.Builder out = null; NotificationCompat.Builder in = (NotificationCompat.Builder) source(); out = in.setSound(null, 0); sink(out); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$Builder;true;setStyle;;;Argument[-1];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$Builder;true;setStyle;;;Argument[this];ReturnValue;value;manual" NotificationCompat.Builder out = null; NotificationCompat.Builder in = (NotificationCompat.Builder) source(); out = in.setStyle(null); sink(out); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$Builder;true;setSubText;;;Argument[-1];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$Builder;true;setSubText;;;Argument[this];ReturnValue;value;manual" NotificationCompat.Builder out = null; NotificationCompat.Builder in = (NotificationCompat.Builder) source(); out = in.setSubText(null); sink(out); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$Builder;true;setTicker;;;Argument[-1];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$Builder;true;setTicker;;;Argument[this];ReturnValue;value;manual" NotificationCompat.Builder out = null; NotificationCompat.Builder in = (NotificationCompat.Builder) source(); out = in.setTicker(null); sink(out); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$Builder;true;setTicker;;;Argument[-1];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$Builder;true;setTicker;;;Argument[this];ReturnValue;value;manual" NotificationCompat.Builder out = null; NotificationCompat.Builder in = (NotificationCompat.Builder) source(); out = in.setTicker(null, null); sink(out); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$Builder;true;setTimeoutAfter;;;Argument[-1];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$Builder;true;setTimeoutAfter;;;Argument[this];ReturnValue;value;manual" NotificationCompat.Builder out = null; NotificationCompat.Builder in = (NotificationCompat.Builder) source(); out = in.setTimeoutAfter(0L); sink(out); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$Builder;true;setUsesChronometer;;;Argument[-1];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$Builder;true;setUsesChronometer;;;Argument[this];ReturnValue;value;manual" NotificationCompat.Builder out = null; NotificationCompat.Builder in = (NotificationCompat.Builder) source(); out = in.setUsesChronometer(false); sink(out); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$Builder;true;setVibrate;;;Argument[-1];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$Builder;true;setVibrate;;;Argument[this];ReturnValue;value;manual" NotificationCompat.Builder out = null; NotificationCompat.Builder in = (NotificationCompat.Builder) source(); out = in.setVibrate(null); sink(out); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$Builder;true;setVisibility;;;Argument[-1];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$Builder;true;setVisibility;;;Argument[this];ReturnValue;value;manual" NotificationCompat.Builder out = null; NotificationCompat.Builder in = (NotificationCompat.Builder) source(); out = in.setVisibility(0); sink(out); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$Builder;true;setWhen;;;Argument[-1];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$Builder;true;setWhen;;;Argument[this];ReturnValue;value;manual" NotificationCompat.Builder out = null; NotificationCompat.Builder in = (NotificationCompat.Builder) source(); out = in.setWhen(0L); sink(out); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$InboxStyle;true;addLine;;;Argument[-1];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$InboxStyle;true;addLine;;;Argument[this];ReturnValue;value;manual" NotificationCompat.InboxStyle out = null; NotificationCompat.InboxStyle in = (NotificationCompat.InboxStyle) source(); out = in.addLine(null); sink(out); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$InboxStyle;true;setBigContentTitle;;;Argument[-1];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$InboxStyle;true;setBigContentTitle;;;Argument[this];ReturnValue;value;manual" NotificationCompat.InboxStyle out = null; NotificationCompat.InboxStyle in = (NotificationCompat.InboxStyle) source(); out = in.setBigContentTitle(null); sink(out); // $ hasValueFlow } { - // "androidx.core.app;NotificationCompat$InboxStyle;true;setSummaryText;;;Argument[-1];ReturnValue;value;manual" + // "androidx.core.app;NotificationCompat$InboxStyle;true;setSummaryText;;;Argument[this];ReturnValue;value;manual" NotificationCompat.InboxStyle out = null; NotificationCompat.InboxStyle in = (NotificationCompat.InboxStyle) source(); out = in.setSummaryText(null); diff --git a/java/ql/test/library-tests/frameworks/android/slice/Test.java b/java/ql/test/library-tests/frameworks/android/slice/Test.java index b7c0cb57c76..c5bff0cc031 100644 --- a/java/ql/test/library-tests/frameworks/android/slice/Test.java +++ b/java/ql/test/library-tests/frameworks/android/slice/Test.java @@ -27,70 +27,70 @@ public class Test { { // "androidx.slice.builders;ListBuilder$HeaderBuilder;false;setPrimaryAction;;;SyntheticField[androidx.slice.Slice.action] // of Argument[0];SyntheticField[androidx.slice.Slice.action] of - // Argument[-1];taint;manual" + // Argument[this];taint;manual" ListBuilder.HeaderBuilder out = null; SliceAction in = (SliceAction) source(); out.setPrimaryAction(in); sink(out); // $ hasTaintFlow } { - // "androidx.slice.builders;ListBuilder$HeaderBuilder;true;setContentDescription;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder$HeaderBuilder;true;setContentDescription;;;Argument[this];ReturnValue;value;manual" ListBuilder.HeaderBuilder out = null; ListBuilder.HeaderBuilder in = (ListBuilder.HeaderBuilder) source(); out = in.setContentDescription(null); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder$HeaderBuilder;true;setLayoutDirection;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder$HeaderBuilder;true;setLayoutDirection;;;Argument[this];ReturnValue;value;manual" ListBuilder.HeaderBuilder out = null; ListBuilder.HeaderBuilder in = (ListBuilder.HeaderBuilder) source(); out = in.setLayoutDirection(0); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder$HeaderBuilder;true;setPrimaryAction;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder$HeaderBuilder;true;setPrimaryAction;;;Argument[this];ReturnValue;value;manual" ListBuilder.HeaderBuilder out = null; ListBuilder.HeaderBuilder in = (ListBuilder.HeaderBuilder) source(); out = in.setPrimaryAction(null); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder$HeaderBuilder;true;setSubtitle;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder$HeaderBuilder;true;setSubtitle;;;Argument[this];ReturnValue;value;manual" ListBuilder.HeaderBuilder out = null; ListBuilder.HeaderBuilder in = (ListBuilder.HeaderBuilder) source(); out = in.setSubtitle(null, false); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder$HeaderBuilder;true;setSubtitle;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder$HeaderBuilder;true;setSubtitle;;;Argument[this];ReturnValue;value;manual" ListBuilder.HeaderBuilder out = null; ListBuilder.HeaderBuilder in = (ListBuilder.HeaderBuilder) source(); out = in.setSubtitle(null); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder$HeaderBuilder;true;setSummary;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder$HeaderBuilder;true;setSummary;;;Argument[this];ReturnValue;value;manual" ListBuilder.HeaderBuilder out = null; ListBuilder.HeaderBuilder in = (ListBuilder.HeaderBuilder) source(); out = in.setSummary(null, false); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder$HeaderBuilder;true;setSummary;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder$HeaderBuilder;true;setSummary;;;Argument[this];ReturnValue;value;manual" ListBuilder.HeaderBuilder out = null; ListBuilder.HeaderBuilder in = (ListBuilder.HeaderBuilder) source(); out = in.setSummary(null); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder$HeaderBuilder;true;setTitle;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder$HeaderBuilder;true;setTitle;;;Argument[this];ReturnValue;value;manual" ListBuilder.HeaderBuilder out = null; ListBuilder.HeaderBuilder in = (ListBuilder.HeaderBuilder) source(); out = in.setTitle(null, false); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder$HeaderBuilder;true;setTitle;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder$HeaderBuilder;true;setTitle;;;Argument[this];ReturnValue;value;manual" ListBuilder.HeaderBuilder out = null; ListBuilder.HeaderBuilder in = (ListBuilder.HeaderBuilder) source(); out = in.setTitle(null); @@ -99,7 +99,7 @@ public class Test { { // "androidx.slice.builders;ListBuilder$InputRangeBuilder;false;addEndItem;;;SyntheticField[androidx.slice.Slice.action] // of Argument[0];SyntheticField[androidx.slice.Slice.action] of - // Argument[-1];taint;manual" + // Argument[this];taint;manual" ListBuilder.InputRangeBuilder out = null; SliceAction in = (SliceAction) source(); out.addEndItem(in, false); @@ -108,7 +108,7 @@ public class Test { { // "androidx.slice.builders;ListBuilder$InputRangeBuilder;false;addEndItem;;;SyntheticField[androidx.slice.Slice.action] // of Argument[0];SyntheticField[androidx.slice.Slice.action] of - // Argument[-1];taint;manual" + // Argument[this];taint;manual" ListBuilder.InputRangeBuilder out = null; SliceAction in = (SliceAction) source(); out.addEndItem(in); @@ -116,7 +116,7 @@ public class Test { } { // "androidx.slice.builders;ListBuilder$InputRangeBuilder;false;setInputAction;(PendingIntent);;Argument[0];SyntheticField[androidx.slice.Slice.action] - // of Argument[-1];taint;manual" + // of Argument[this];taint;manual" ListBuilder.InputRangeBuilder out = null; PendingIntent in = (PendingIntent) source(); out.setInputAction(in); @@ -125,112 +125,112 @@ public class Test { { // "androidx.slice.builders;ListBuilder$InputRangeBuilder;false;setPrimaryAction;;;SyntheticField[androidx.slice.Slice.action] // of Argument[0];SyntheticField[androidx.slice.Slice.action] of - // Argument[-1];taint;manual" + // Argument[this];taint;manual" ListBuilder.InputRangeBuilder out = null; SliceAction in = (SliceAction) source(); out.setPrimaryAction(in); sink(out); // $ hasTaintFlow } { - // "androidx.slice.builders;ListBuilder$InputRangeBuilder;true;addEndItem;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder$InputRangeBuilder;true;addEndItem;;;Argument[this];ReturnValue;value;manual" ListBuilder.InputRangeBuilder out = null; ListBuilder.InputRangeBuilder in = (ListBuilder.InputRangeBuilder) source(); out = in.addEndItem(null, false); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder$InputRangeBuilder;true;addEndItem;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder$InputRangeBuilder;true;addEndItem;;;Argument[this];ReturnValue;value;manual" ListBuilder.InputRangeBuilder out = null; ListBuilder.InputRangeBuilder in = (ListBuilder.InputRangeBuilder) source(); out = in.addEndItem(null); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder$InputRangeBuilder;true;setContentDescription;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder$InputRangeBuilder;true;setContentDescription;;;Argument[this];ReturnValue;value;manual" ListBuilder.InputRangeBuilder out = null; ListBuilder.InputRangeBuilder in = (ListBuilder.InputRangeBuilder) source(); out = in.setContentDescription(null); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder$InputRangeBuilder;true;setInputAction;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder$InputRangeBuilder;true;setInputAction;;;Argument[this];ReturnValue;value;manual" ListBuilder.InputRangeBuilder out = null; ListBuilder.InputRangeBuilder in = (ListBuilder.InputRangeBuilder) source(); out = in.setInputAction((RemoteCallback) null); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder$InputRangeBuilder;true;setInputAction;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder$InputRangeBuilder;true;setInputAction;;;Argument[this];ReturnValue;value;manual" ListBuilder.InputRangeBuilder out = null; ListBuilder.InputRangeBuilder in = (ListBuilder.InputRangeBuilder) source(); out = in.setInputAction((PendingIntent) null); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder$InputRangeBuilder;true;setLayoutDirection;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder$InputRangeBuilder;true;setLayoutDirection;;;Argument[this];ReturnValue;value;manual" ListBuilder.InputRangeBuilder out = null; ListBuilder.InputRangeBuilder in = (ListBuilder.InputRangeBuilder) source(); out = in.setLayoutDirection(0); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder$InputRangeBuilder;true;setMax;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder$InputRangeBuilder;true;setMax;;;Argument[this];ReturnValue;value;manual" ListBuilder.InputRangeBuilder out = null; ListBuilder.InputRangeBuilder in = (ListBuilder.InputRangeBuilder) source(); out = in.setMax(0); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder$InputRangeBuilder;true;setMin;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder$InputRangeBuilder;true;setMin;;;Argument[this];ReturnValue;value;manual" ListBuilder.InputRangeBuilder out = null; ListBuilder.InputRangeBuilder in = (ListBuilder.InputRangeBuilder) source(); out = in.setMin(0); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder$InputRangeBuilder;true;setPrimaryAction;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder$InputRangeBuilder;true;setPrimaryAction;;;Argument[this];ReturnValue;value;manual" ListBuilder.InputRangeBuilder out = null; ListBuilder.InputRangeBuilder in = (ListBuilder.InputRangeBuilder) source(); out = in.setPrimaryAction(null); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder$InputRangeBuilder;true;setSubtitle;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder$InputRangeBuilder;true;setSubtitle;;;Argument[this];ReturnValue;value;manual" ListBuilder.InputRangeBuilder out = null; ListBuilder.InputRangeBuilder in = (ListBuilder.InputRangeBuilder) source(); out = in.setSubtitle(null); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder$InputRangeBuilder;true;setThumb;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder$InputRangeBuilder;true;setThumb;;;Argument[this];ReturnValue;value;manual" ListBuilder.InputRangeBuilder out = null; ListBuilder.InputRangeBuilder in = (ListBuilder.InputRangeBuilder) source(); out = in.setThumb(null); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder$InputRangeBuilder;true;setTitle;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder$InputRangeBuilder;true;setTitle;;;Argument[this];ReturnValue;value;manual" ListBuilder.InputRangeBuilder out = null; ListBuilder.InputRangeBuilder in = (ListBuilder.InputRangeBuilder) source(); out = in.setTitle(null); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder$InputRangeBuilder;true;setTitleItem;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder$InputRangeBuilder;true;setTitleItem;;;Argument[this];ReturnValue;value;manual" ListBuilder.InputRangeBuilder out = null; ListBuilder.InputRangeBuilder in = (ListBuilder.InputRangeBuilder) source(); out = in.setTitleItem(null, 0, false); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder$InputRangeBuilder;true;setTitleItem;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder$InputRangeBuilder;true;setTitleItem;;;Argument[this];ReturnValue;value;manual" ListBuilder.InputRangeBuilder out = null; ListBuilder.InputRangeBuilder in = (ListBuilder.InputRangeBuilder) source(); out = in.setTitleItem(null, 0); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder$InputRangeBuilder;true;setValue;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder$InputRangeBuilder;true;setValue;;;Argument[this];ReturnValue;value;manual" ListBuilder.InputRangeBuilder out = null; ListBuilder.InputRangeBuilder in = (ListBuilder.InputRangeBuilder) source(); out = in.setValue(0); @@ -239,70 +239,70 @@ public class Test { { // "androidx.slice.builders;ListBuilder$RangeBuilder;false;setPrimaryAction;;;SyntheticField[androidx.slice.Slice.action] // of Argument[0];SyntheticField[androidx.slice.Slice.action] of - // Argument[-1];taint;manual" + // Argument[this];taint;manual" ListBuilder.RangeBuilder out = null; SliceAction in = (SliceAction) source(); out.setPrimaryAction(in); sink(out); // $ hasTaintFlow } { - // "androidx.slice.builders;ListBuilder$RangeBuilder;true;setContentDescription;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder$RangeBuilder;true;setContentDescription;;;Argument[this];ReturnValue;value;manual" ListBuilder.RangeBuilder out = null; ListBuilder.RangeBuilder in = (ListBuilder.RangeBuilder) source(); out = in.setContentDescription(null); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder$RangeBuilder;true;setMax;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder$RangeBuilder;true;setMax;;;Argument[this];ReturnValue;value;manual" ListBuilder.RangeBuilder out = null; ListBuilder.RangeBuilder in = (ListBuilder.RangeBuilder) source(); out = in.setMax(0); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder$RangeBuilder;true;setMode;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder$RangeBuilder;true;setMode;;;Argument[this];ReturnValue;value;manual" ListBuilder.RangeBuilder out = null; ListBuilder.RangeBuilder in = (ListBuilder.RangeBuilder) source(); out = in.setMode(0); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder$RangeBuilder;true;setPrimaryAction;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder$RangeBuilder;true;setPrimaryAction;;;Argument[this];ReturnValue;value;manual" ListBuilder.RangeBuilder out = null; ListBuilder.RangeBuilder in = (ListBuilder.RangeBuilder) source(); out = in.setPrimaryAction(null); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder$RangeBuilder;true;setSubtitle;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder$RangeBuilder;true;setSubtitle;;;Argument[this];ReturnValue;value;manual" ListBuilder.RangeBuilder out = null; ListBuilder.RangeBuilder in = (ListBuilder.RangeBuilder) source(); out = in.setSubtitle(null); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder$RangeBuilder;true;setTitle;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder$RangeBuilder;true;setTitle;;;Argument[this];ReturnValue;value;manual" ListBuilder.RangeBuilder out = null; ListBuilder.RangeBuilder in = (ListBuilder.RangeBuilder) source(); out = in.setTitle(null); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder$RangeBuilder;true;setTitleItem;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder$RangeBuilder;true;setTitleItem;;;Argument[this];ReturnValue;value;manual" ListBuilder.RangeBuilder out = null; ListBuilder.RangeBuilder in = (ListBuilder.RangeBuilder) source(); out = in.setTitleItem(null, 0, false); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder$RangeBuilder;true;setTitleItem;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder$RangeBuilder;true;setTitleItem;;;Argument[this];ReturnValue;value;manual" ListBuilder.RangeBuilder out = null; ListBuilder.RangeBuilder in = (ListBuilder.RangeBuilder) source(); out = in.setTitleItem(null, 0); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder$RangeBuilder;true;setValue;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder$RangeBuilder;true;setValue;;;Argument[this];ReturnValue;value;manual" ListBuilder.RangeBuilder out = null; ListBuilder.RangeBuilder in = (ListBuilder.RangeBuilder) source(); out = in.setValue(0); @@ -310,7 +310,7 @@ public class Test { } { // "androidx.slice.builders;ListBuilder$RatingBuilder;false;setInputAction;(PendingIntent);;Argument[0];SyntheticField[androidx.slice.Slice.action] - // of Argument[-1];taint;manual" + // of Argument[this];taint;manual" ListBuilder.RatingBuilder out = null; PendingIntent in = (PendingIntent) source(); out.setInputAction(in); @@ -319,84 +319,84 @@ public class Test { { // "androidx.slice.builders;ListBuilder$RatingBuilder;false;setPrimaryAction;;;SyntheticField[androidx.slice.Slice.action] // of Argument[0];SyntheticField[androidx.slice.Slice.action] of - // Argument[-1];taint;manual" + // Argument[this];taint;manual" ListBuilder.RatingBuilder out = null; SliceAction in = (SliceAction) source(); out.setPrimaryAction(in); sink(out); // $ hasTaintFlow } { - // "androidx.slice.builders;ListBuilder$RatingBuilder;true;setContentDescription;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder$RatingBuilder;true;setContentDescription;;;Argument[this];ReturnValue;value;manual" ListBuilder.RatingBuilder out = null; ListBuilder.RatingBuilder in = (ListBuilder.RatingBuilder) source(); out = in.setContentDescription(null); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder$RatingBuilder;true;setInputAction;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder$RatingBuilder;true;setInputAction;;;Argument[this];ReturnValue;value;manual" ListBuilder.RatingBuilder out = null; ListBuilder.RatingBuilder in = (ListBuilder.RatingBuilder) source(); out = in.setInputAction((RemoteCallback) null); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder$RatingBuilder;true;setInputAction;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder$RatingBuilder;true;setInputAction;;;Argument[this];ReturnValue;value;manual" ListBuilder.RatingBuilder out = null; ListBuilder.RatingBuilder in = (ListBuilder.RatingBuilder) source(); out = in.setInputAction((PendingIntent) null); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder$RatingBuilder;true;setMax;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder$RatingBuilder;true;setMax;;;Argument[this];ReturnValue;value;manual" ListBuilder.RatingBuilder out = null; ListBuilder.RatingBuilder in = (ListBuilder.RatingBuilder) source(); out = in.setMax(0); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder$RatingBuilder;true;setMin;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder$RatingBuilder;true;setMin;;;Argument[this];ReturnValue;value;manual" ListBuilder.RatingBuilder out = null; ListBuilder.RatingBuilder in = (ListBuilder.RatingBuilder) source(); out = in.setMin(0); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder$RatingBuilder;true;setPrimaryAction;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder$RatingBuilder;true;setPrimaryAction;;;Argument[this];ReturnValue;value;manual" ListBuilder.RatingBuilder out = null; ListBuilder.RatingBuilder in = (ListBuilder.RatingBuilder) source(); out = in.setPrimaryAction(null); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder$RatingBuilder;true;setSubtitle;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder$RatingBuilder;true;setSubtitle;;;Argument[this];ReturnValue;value;manual" ListBuilder.RatingBuilder out = null; ListBuilder.RatingBuilder in = (ListBuilder.RatingBuilder) source(); out = in.setSubtitle(null); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder$RatingBuilder;true;setTitle;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder$RatingBuilder;true;setTitle;;;Argument[this];ReturnValue;value;manual" ListBuilder.RatingBuilder out = null; ListBuilder.RatingBuilder in = (ListBuilder.RatingBuilder) source(); out = in.setTitle(null); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder$RatingBuilder;true;setTitleItem;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder$RatingBuilder;true;setTitleItem;;;Argument[this];ReturnValue;value;manual" ListBuilder.RatingBuilder out = null; ListBuilder.RatingBuilder in = (ListBuilder.RatingBuilder) source(); out = in.setTitleItem(null, 0, false); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder$RatingBuilder;true;setTitleItem;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder$RatingBuilder;true;setTitleItem;;;Argument[this];ReturnValue;value;manual" ListBuilder.RatingBuilder out = null; ListBuilder.RatingBuilder in = (ListBuilder.RatingBuilder) source(); out = in.setTitleItem(null, 0); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder$RatingBuilder;true;setValue;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder$RatingBuilder;true;setValue;;;Argument[this];ReturnValue;value;manual" ListBuilder.RatingBuilder out = null; ListBuilder.RatingBuilder in = (ListBuilder.RatingBuilder) source(); out = in.setValue(0.0f); @@ -405,7 +405,7 @@ public class Test { { // "androidx.slice.builders;ListBuilder$RowBuilder;false;addEndItem;(SliceAction);;SyntheticField[androidx.slice.Slice.action] // of Argument[0];SyntheticField[androidx.slice.Slice.action] of - // Argument[-1];taint;manual" + // Argument[this];taint;manual" ListBuilder.RowBuilder out = null; SliceAction in = (SliceAction) source(); out.addEndItem(in); @@ -414,7 +414,7 @@ public class Test { { // "androidx.slice.builders;ListBuilder$RowBuilder;false;addEndItem;(SliceAction,boolean);;SyntheticField[androidx.slice.Slice.action] // of Argument[0];SyntheticField[androidx.slice.Slice.action] of - // Argument[-1];taint;manual" + // Argument[this];taint;manual" ListBuilder.RowBuilder out = null; SliceAction in = (SliceAction) source(); out.addEndItem(in, false); @@ -423,7 +423,7 @@ public class Test { { // "androidx.slice.builders;ListBuilder$RowBuilder;false;setPrimaryAction;;;SyntheticField[androidx.slice.Slice.action] // of Argument[0];SyntheticField[androidx.slice.Slice.action] of - // Argument[-1];taint;manual" + // Argument[this];taint;manual" ListBuilder.RowBuilder out = null; SliceAction in = (SliceAction) source(); out.setPrimaryAction(in); @@ -432,7 +432,7 @@ public class Test { { // "androidx.slice.builders;ListBuilder$RowBuilder;false;setTitleItem;(SliceAction);;SyntheticField[androidx.slice.Slice.action] // of Argument[0];SyntheticField[androidx.slice.Slice.action] of - // Argument[-1];taint;manual" + // Argument[this];taint;manual" ListBuilder.RowBuilder out = null; SliceAction in = (SliceAction) source(); out.setTitleItem(in); @@ -441,133 +441,133 @@ public class Test { { // "androidx.slice.builders;ListBuilder$RowBuilder;false;setTitleItem;(SliceAction,boolean);;SyntheticField[androidx.slice.Slice.action] // of Argument[0];SyntheticField[androidx.slice.Slice.action] of - // Argument[-1];taint;manual" + // Argument[this];taint;manual" ListBuilder.RowBuilder out = null; SliceAction in = (SliceAction) source(); out.setTitleItem(in, false); sink(out); // $ hasTaintFlow } { - // "androidx.slice.builders;ListBuilder$RowBuilder;true;addEndItem;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder$RowBuilder;true;addEndItem;;;Argument[this];ReturnValue;value;manual" ListBuilder.RowBuilder out = null; ListBuilder.RowBuilder in = (ListBuilder.RowBuilder) source(); out = in.addEndItem(null, 0, false); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder$RowBuilder;true;addEndItem;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder$RowBuilder;true;addEndItem;;;Argument[this];ReturnValue;value;manual" ListBuilder.RowBuilder out = null; ListBuilder.RowBuilder in = (ListBuilder.RowBuilder) source(); out = in.addEndItem(0L); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder$RowBuilder;true;addEndItem;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder$RowBuilder;true;addEndItem;;;Argument[this];ReturnValue;value;manual" ListBuilder.RowBuilder out = null; ListBuilder.RowBuilder in = (ListBuilder.RowBuilder) source(); out = in.addEndItem((SliceAction) null, false); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder$RowBuilder;true;addEndItem;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder$RowBuilder;true;addEndItem;;;Argument[this];ReturnValue;value;manual" ListBuilder.RowBuilder out = null; ListBuilder.RowBuilder in = (ListBuilder.RowBuilder) source(); out = in.addEndItem((SliceAction) null); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder$RowBuilder;true;addEndItem;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder$RowBuilder;true;addEndItem;;;Argument[this];ReturnValue;value;manual" ListBuilder.RowBuilder out = null; ListBuilder.RowBuilder in = (ListBuilder.RowBuilder) source(); out = in.addEndItem((IconCompat) null, 0); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder$RowBuilder;true;setContentDescription;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder$RowBuilder;true;setContentDescription;;;Argument[this];ReturnValue;value;manual" ListBuilder.RowBuilder out = null; ListBuilder.RowBuilder in = (ListBuilder.RowBuilder) source(); out = in.setContentDescription(null); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder$RowBuilder;true;setEndOfSection;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder$RowBuilder;true;setEndOfSection;;;Argument[this];ReturnValue;value;manual" ListBuilder.RowBuilder out = null; ListBuilder.RowBuilder in = (ListBuilder.RowBuilder) source(); out = in.setEndOfSection(false); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder$RowBuilder;true;setLayoutDirection;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder$RowBuilder;true;setLayoutDirection;;;Argument[this];ReturnValue;value;manual" ListBuilder.RowBuilder out = null; ListBuilder.RowBuilder in = (ListBuilder.RowBuilder) source(); out = in.setLayoutDirection(0); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder$RowBuilder;true;setPrimaryAction;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder$RowBuilder;true;setPrimaryAction;;;Argument[this];ReturnValue;value;manual" ListBuilder.RowBuilder out = null; ListBuilder.RowBuilder in = (ListBuilder.RowBuilder) source(); out = in.setPrimaryAction(null); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder$RowBuilder;true;setSubtitle;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder$RowBuilder;true;setSubtitle;;;Argument[this];ReturnValue;value;manual" ListBuilder.RowBuilder out = null; ListBuilder.RowBuilder in = (ListBuilder.RowBuilder) source(); out = in.setSubtitle(null, false); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder$RowBuilder;true;setSubtitle;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder$RowBuilder;true;setSubtitle;;;Argument[this];ReturnValue;value;manual" ListBuilder.RowBuilder out = null; ListBuilder.RowBuilder in = (ListBuilder.RowBuilder) source(); out = in.setSubtitle(null); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder$RowBuilder;true;setTitle;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder$RowBuilder;true;setTitle;;;Argument[this];ReturnValue;value;manual" ListBuilder.RowBuilder out = null; ListBuilder.RowBuilder in = (ListBuilder.RowBuilder) source(); out = in.setTitle(null, false); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder$RowBuilder;true;setTitle;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder$RowBuilder;true;setTitle;;;Argument[this];ReturnValue;value;manual" ListBuilder.RowBuilder out = null; ListBuilder.RowBuilder in = (ListBuilder.RowBuilder) source(); out = in.setTitle(null); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder$RowBuilder;true;setTitleItem;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder$RowBuilder;true;setTitleItem;;;Argument[this];ReturnValue;value;manual" ListBuilder.RowBuilder out = null; ListBuilder.RowBuilder in = (ListBuilder.RowBuilder) source(); out = in.setTitleItem(null, 0, false); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder$RowBuilder;true;setTitleItem;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder$RowBuilder;true;setTitleItem;;;Argument[this];ReturnValue;value;manual" ListBuilder.RowBuilder out = null; ListBuilder.RowBuilder in = (ListBuilder.RowBuilder) source(); out = in.setTitleItem(0L); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder$RowBuilder;true;setTitleItem;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder$RowBuilder;true;setTitleItem;;;Argument[this];ReturnValue;value;manual" ListBuilder.RowBuilder out = null; ListBuilder.RowBuilder in = (ListBuilder.RowBuilder) source(); out = in.setTitleItem((SliceAction) null, false); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder$RowBuilder;true;setTitleItem;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder$RowBuilder;true;setTitleItem;;;Argument[this];ReturnValue;value;manual" ListBuilder.RowBuilder out = null; ListBuilder.RowBuilder in = (ListBuilder.RowBuilder) source(); out = in.setTitleItem((SliceAction) null); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder$RowBuilder;true;setTitleItem;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder$RowBuilder;true;setTitleItem;;;Argument[this];ReturnValue;value;manual" ListBuilder.RowBuilder out = null; ListBuilder.RowBuilder in = (ListBuilder.RowBuilder) source(); out = in.setTitleItem((IconCompat) null, 0); @@ -576,7 +576,7 @@ public class Test { { // "androidx.slice.builders;ListBuilder;false;addAction;;;SyntheticField[androidx.slice.Slice.action] // of Argument[0];SyntheticField[androidx.slice.Slice.action] of - // Argument[-1];taint;manual" + // Argument[this];taint;manual" ListBuilder out = null; SliceAction in = (SliceAction) source(); out.addAction(in); @@ -585,7 +585,7 @@ public class Test { { // "androidx.slice.builders;ListBuilder;false;addGridRow;;;SyntheticField[androidx.slice.Slice.action] // of Argument[0];SyntheticField[androidx.slice.Slice.action] of - // Argument[-1];taint;manual" + // Argument[this];taint;manual" ListBuilder out = null; GridRowBuilder in = (GridRowBuilder) source(); out.addGridRow(in); @@ -594,7 +594,7 @@ public class Test { { // "androidx.slice.builders;ListBuilder;false;addInputRange;;;SyntheticField[androidx.slice.Slice.action] // of Argument[0];SyntheticField[androidx.slice.Slice.action] of - // Argument[-1];taint;manual" + // Argument[this];taint;manual" ListBuilder out = null; ListBuilder.InputRangeBuilder in = (ListBuilder.InputRangeBuilder) source(); out.addInputRange(in); @@ -603,7 +603,7 @@ public class Test { { // "androidx.slice.builders;ListBuilder;false;addRange;;;SyntheticField[androidx.slice.Slice.action] // of Argument[0];SyntheticField[androidx.slice.Slice.action] of - // Argument[-1];taint;manual" + // Argument[this];taint;manual" ListBuilder out = null; ListBuilder.RangeBuilder in = (ListBuilder.RangeBuilder) source(); out.addRange(in); @@ -612,7 +612,7 @@ public class Test { { // "androidx.slice.builders;ListBuilder;false;addRating;;;SyntheticField[androidx.slice.Slice.action] // of Argument[0];SyntheticField[androidx.slice.Slice.action] of - // Argument[-1];taint;manual" + // Argument[this];taint;manual" ListBuilder out = null; ListBuilder.RatingBuilder in = (ListBuilder.RatingBuilder) source(); out.addRating(in); @@ -621,7 +621,7 @@ public class Test { { // "androidx.slice.builders;ListBuilder;false;addRow;;;SyntheticField[androidx.slice.Slice.action] // of Argument[0];SyntheticField[androidx.slice.Slice.action] of - // Argument[-1];taint;manual" + // Argument[this];taint;manual" ListBuilder out = null; ListBuilder.RowBuilder in = (ListBuilder.RowBuilder) source(); out.addRow(in); @@ -630,7 +630,7 @@ public class Test { { // "androidx.slice.builders;ListBuilder;false;addSelection;;;SyntheticField[androidx.slice.Slice.action] // of Argument[0];SyntheticField[androidx.slice.Slice.action] of - // Argument[-1];taint;manual" + // Argument[this];taint;manual" ListBuilder out = null; SelectionBuilder in = (SelectionBuilder) source(); out.addSelection(in); @@ -639,7 +639,7 @@ public class Test { { // "androidx.slice.builders;ListBuilder;false;setHeader;;;SyntheticField[androidx.slice.Slice.action] // of Argument[0];SyntheticField[androidx.slice.Slice.action] of - // Argument[-1];taint;manual" + // Argument[this];taint;manual" ListBuilder out = null; ListBuilder.HeaderBuilder in = (ListBuilder.HeaderBuilder) source(); out.setHeader(in); @@ -647,56 +647,56 @@ public class Test { } { // "androidx.slice.builders;ListBuilder;false;setSeeMoreAction;(PendingIntent);;Argument[0];SyntheticField[androidx.slice.Slice.action] - // of Argument[-1];taint;manual" + // of Argument[this];taint;manual" ListBuilder out = null; PendingIntent in = (PendingIntent) source(); out.setSeeMoreAction(in); sink(out); // $ hasTaintFlow } { - // "androidx.slice.builders;ListBuilder;true;addAction;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder;true;addAction;;;Argument[this];ReturnValue;value;manual" ListBuilder out = null; ListBuilder in = (ListBuilder) source(); out = in.addAction(null); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder;true;addGridRow;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder;true;addGridRow;;;Argument[this];ReturnValue;value;manual" ListBuilder out = null; ListBuilder in = (ListBuilder) source(); out = in.addGridRow(null); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder;true;addInputRange;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder;true;addInputRange;;;Argument[this];ReturnValue;value;manual" ListBuilder out = null; ListBuilder in = (ListBuilder) source(); out = in.addInputRange(null); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder;true;addRange;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder;true;addRange;;;Argument[this];ReturnValue;value;manual" ListBuilder out = null; ListBuilder in = (ListBuilder) source(); out = in.addRange(null); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder;true;addRating;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder;true;addRating;;;Argument[this];ReturnValue;value;manual" ListBuilder out = null; ListBuilder in = (ListBuilder) source(); out = in.addRating(null); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder;true;addRow;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder;true;addRow;;;Argument[this];ReturnValue;value;manual" ListBuilder out = null; ListBuilder in = (ListBuilder) source(); out = in.addRow(null); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder;true;addSelection;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder;true;addSelection;;;Argument[this];ReturnValue;value;manual" ListBuilder out = null; ListBuilder in = (ListBuilder) source(); out = in.addSelection(null); @@ -704,70 +704,70 @@ public class Test { } { // "androidx.slice.builders;ListBuilder;true;build;;;SyntheticField[androidx.slice.Slice.action] - // of Argument[-1];ReturnValue;taint;manual" + // of Argument[this];ReturnValue;taint;manual" Slice out = null; ListBuilder in = (ListBuilder) source(); out = in.build(); sink(out); // $ hasTaintFlow } { - // "androidx.slice.builders;ListBuilder;true;setAccentColor;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder;true;setAccentColor;;;Argument[this];ReturnValue;value;manual" ListBuilder out = null; ListBuilder in = (ListBuilder) source(); out = in.setAccentColor(0); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder;true;setHeader;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder;true;setHeader;;;Argument[this];ReturnValue;value;manual" ListBuilder out = null; ListBuilder in = (ListBuilder) source(); out = in.setHeader(null); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder;true;setHostExtras;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder;true;setHostExtras;;;Argument[this];ReturnValue;value;manual" ListBuilder out = null; ListBuilder in = (ListBuilder) source(); out = in.setHostExtras(null); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder;true;setIsError;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder;true;setIsError;;;Argument[this];ReturnValue;value;manual" ListBuilder out = null; ListBuilder in = (ListBuilder) source(); out = in.setIsError(false); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder;true;setKeywords;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder;true;setKeywords;;;Argument[this];ReturnValue;value;manual" ListBuilder out = null; ListBuilder in = (ListBuilder) source(); out = in.setKeywords(null); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder;true;setLayoutDirection;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder;true;setLayoutDirection;;;Argument[this];ReturnValue;value;manual" ListBuilder out = null; ListBuilder in = (ListBuilder) source(); out = in.setLayoutDirection(0); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder;true;setSeeMoreAction;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder;true;setSeeMoreAction;;;Argument[this];ReturnValue;value;manual" ListBuilder out = null; ListBuilder in = (ListBuilder) source(); out = in.setSeeMoreAction((RemoteCallback) null); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder;true;setSeeMoreAction;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder;true;setSeeMoreAction;;;Argument[this];ReturnValue;value;manual" ListBuilder out = null; ListBuilder in = (ListBuilder) source(); out = in.setSeeMoreAction((PendingIntent) null); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;ListBuilder;true;setSeeMoreRow;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;ListBuilder;true;setSeeMoreRow;;;Argument[this];ReturnValue;value;manual" ListBuilder out = null; ListBuilder in = (ListBuilder) source(); out = in.setSeeMoreRow(null); @@ -776,7 +776,7 @@ public class Test { { // "androidx.slice.builders;ListBuilder;true;setSeeMoreRow;;;SyntheticField[androidx.slice.Slice.action] // of Argument[0];SyntheticField[androidx.slice.Slice.action] of - // Argument[-1];taint;manual" + // Argument[this];taint;manual" ListBuilder out = null; ListBuilder.RowBuilder in = (ListBuilder.RowBuilder) source(); out.setSeeMoreRow(in); @@ -808,28 +808,28 @@ public class Test { } { // "androidx.slice.builders;SliceAction;false;getAction;;;SyntheticField[androidx.slice.Slice.action] - // of Argument[-1];ReturnValue;taint;manual" + // of Argument[this];ReturnValue;taint;manual" PendingIntent out = null; SliceAction in = (SliceAction) source(); out = in.getAction(); sink(out); // $ hasTaintFlow } { - // "androidx.slice.builders;SliceAction;true;setChecked;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;SliceAction;true;setChecked;;;Argument[this];ReturnValue;value;manual" SliceAction out = null; SliceAction in = (SliceAction) source(); out = in.setChecked(false); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;SliceAction;true;setContentDescription;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;SliceAction;true;setContentDescription;;;Argument[this];ReturnValue;value;manual" SliceAction out = null; SliceAction in = (SliceAction) source(); out = in.setContentDescription(null); sink(out); // $ hasValueFlow } { - // "androidx.slice.builders;SliceAction;true;setPriority;;;Argument[-1];ReturnValue;value;manual" + // "androidx.slice.builders;SliceAction;true;setPriority;;;Argument[this];ReturnValue;value;manual" SliceAction out = null; SliceAction in = (SliceAction) source(); out = in.setPriority(0); diff --git a/java/ql/test/library-tests/frameworks/android/uri/Test.java b/java/ql/test/library-tests/frameworks/android/uri/Test.java index dfc78dcf10c..378d3902a00 100644 --- a/java/ql/test/library-tests/frameworks/android/uri/Test.java +++ b/java/ql/test/library-tests/frameworks/android/uri/Test.java @@ -15,224 +15,224 @@ public class Test { public void test() throws Exception { { - // "android.net;Uri$Builder;true;appendEncodedPath;;;Argument[-1];ReturnValue;value;manual" + // "android.net;Uri$Builder;true;appendEncodedPath;;;Argument[this];ReturnValue;value;manual" Uri.Builder out = null; Uri.Builder in = (Uri.Builder)source(); out = in.appendEncodedPath(null); sink(out); // $ hasValueFlow } { - // "android.net;Uri$Builder;true;appendEncodedPath;;;Argument[0];Argument[-1];taint;manual" + // "android.net;Uri$Builder;true;appendEncodedPath;;;Argument[0];Argument[this];taint;manual" Uri.Builder out = null; String in = (String)source(); out.appendEncodedPath(in); sink(out); // $ hasTaintFlow } { - // "android.net;Uri$Builder;true;appendPath;;;Argument[-1];ReturnValue;value;manual" + // "android.net;Uri$Builder;true;appendPath;;;Argument[this];ReturnValue;value;manual" Uri.Builder out = null; Uri.Builder in = (Uri.Builder)source(); out = in.appendPath(null); sink(out); // $ hasValueFlow } { - // "android.net;Uri$Builder;true;appendPath;;;Argument[0];Argument[-1];taint;manual" + // "android.net;Uri$Builder;true;appendPath;;;Argument[0];Argument[this];taint;manual" Uri.Builder out = null; String in = (String)source(); out.appendPath(in); sink(out); // $ hasTaintFlow } { - // "android.net;Uri$Builder;true;appendQueryParameter;;;Argument[-1];ReturnValue;value;manual" + // "android.net;Uri$Builder;true;appendQueryParameter;;;Argument[this];ReturnValue;value;manual" Uri.Builder out = null; Uri.Builder in = (Uri.Builder)source(); out = in.appendQueryParameter(null, null); sink(out); // $ hasValueFlow } { - // "android.net;Uri$Builder;true;appendQueryParameter;;;Argument[0..1];Argument[-1];taint;manual" + // "android.net;Uri$Builder;true;appendQueryParameter;;;Argument[0..1];Argument[this];taint;manual" Uri.Builder out = null; String in = (String)source(); out.appendQueryParameter(null, in); sink(out); // $ hasTaintFlow } { - // "android.net;Uri$Builder;true;appendQueryParameter;;;Argument[0..1];Argument[-1];taint;manual" + // "android.net;Uri$Builder;true;appendQueryParameter;;;Argument[0..1];Argument[this];taint;manual" Uri.Builder out = null; String in = (String)source(); out.appendQueryParameter(in, null); sink(out); // $ hasTaintFlow } { - // "android.net;Uri$Builder;true;authority;;;Argument[-1];ReturnValue;value;manual" + // "android.net;Uri$Builder;true;authority;;;Argument[this];ReturnValue;value;manual" Uri.Builder out = null; Uri.Builder in = (Uri.Builder)source(); out = in.authority(null); sink(out); // $ hasValueFlow } { - // "android.net;Uri$Builder;true;authority;;;Argument[0];Argument[-1];taint;manual" + // "android.net;Uri$Builder;true;authority;;;Argument[0];Argument[this];taint;manual" Uri.Builder out = null; String in = (String)source(); out.authority(in); sink(out); // $ hasTaintFlow } { - // "android.net;Uri$Builder;true;build;;;Argument[-1];ReturnValue;taint;manual" + // "android.net;Uri$Builder;true;build;;;Argument[this];ReturnValue;taint;manual" Uri out = null; Uri.Builder in = (Uri.Builder)source(); out = in.build(); sink(out); // $ hasTaintFlow } { - // "android.net;Uri$Builder;true;clearQuery;;;Argument[-1];ReturnValue;value;manual" + // "android.net;Uri$Builder;true;clearQuery;;;Argument[this];ReturnValue;value;manual" Uri.Builder out = null; Uri.Builder in = (Uri.Builder)source(); out = in.clearQuery(); sink(out); // $ hasValueFlow } { - // "android.net;Uri$Builder;true;encodedAuthority;;;Argument[-1];ReturnValue;value;manual" + // "android.net;Uri$Builder;true;encodedAuthority;;;Argument[this];ReturnValue;value;manual" Uri.Builder out = null; Uri.Builder in = (Uri.Builder)source(); out = in.encodedAuthority(null); sink(out); // $ hasValueFlow } { - // "android.net;Uri$Builder;true;encodedAuthority;;;Argument[0];Argument[-1];taint;manual" + // "android.net;Uri$Builder;true;encodedAuthority;;;Argument[0];Argument[this];taint;manual" Uri.Builder out = null; String in = (String)source(); out.encodedAuthority(in); sink(out); // $ hasTaintFlow } { - // "android.net;Uri$Builder;true;encodedFragment;;;Argument[-1];ReturnValue;value;manual" + // "android.net;Uri$Builder;true;encodedFragment;;;Argument[this];ReturnValue;value;manual" Uri.Builder out = null; Uri.Builder in = (Uri.Builder)source(); out = in.encodedFragment(null); sink(out); // $ hasValueFlow } { - // "android.net;Uri$Builder;true;encodedFragment;;;Argument[0];Argument[-1];taint;manual" + // "android.net;Uri$Builder;true;encodedFragment;;;Argument[0];Argument[this];taint;manual" Uri.Builder out = null; String in = (String)source(); out.encodedFragment(in); sink(out); // $ hasTaintFlow } { - // "android.net;Uri$Builder;true;encodedOpaquePart;;;Argument[-1];ReturnValue;value;manual" + // "android.net;Uri$Builder;true;encodedOpaquePart;;;Argument[this];ReturnValue;value;manual" Uri.Builder out = null; Uri.Builder in = (Uri.Builder)source(); out = in.encodedOpaquePart(null); sink(out); // $ hasValueFlow } { - // "android.net;Uri$Builder;true;encodedOpaquePart;;;Argument[0];Argument[-1];taint;manual" + // "android.net;Uri$Builder;true;encodedOpaquePart;;;Argument[0];Argument[this];taint;manual" Uri.Builder out = null; String in = (String)source(); out.encodedOpaquePart(in); sink(out); // $ hasTaintFlow } { - // "android.net;Uri$Builder;true;encodedPath;;;Argument[-1];ReturnValue;value;manual" + // "android.net;Uri$Builder;true;encodedPath;;;Argument[this];ReturnValue;value;manual" Uri.Builder out = null; Uri.Builder in = (Uri.Builder)source(); out = in.encodedPath(null); sink(out); // $ hasValueFlow } { - // "android.net;Uri$Builder;true;encodedPath;;;Argument[0];Argument[-1];taint;manual" + // "android.net;Uri$Builder;true;encodedPath;;;Argument[0];Argument[this];taint;manual" Uri.Builder out = null; String in = (String)source(); out.encodedPath(in); sink(out); // $ hasTaintFlow } { - // "android.net;Uri$Builder;true;encodedQuery;;;Argument[-1];ReturnValue;value;manual" + // "android.net;Uri$Builder;true;encodedQuery;;;Argument[this];ReturnValue;value;manual" Uri.Builder out = null; Uri.Builder in = (Uri.Builder)source(); out = in.encodedQuery(null); sink(out); // $ hasValueFlow } { - // "android.net;Uri$Builder;true;encodedQuery;;;Argument[0];Argument[-1];taint;manual" + // "android.net;Uri$Builder;true;encodedQuery;;;Argument[0];Argument[this];taint;manual" Uri.Builder out = null; String in = (String)source(); out.encodedQuery(in); sink(out); // $ hasTaintFlow } { - // "android.net;Uri$Builder;true;fragment;;;Argument[-1];ReturnValue;value;manual" + // "android.net;Uri$Builder;true;fragment;;;Argument[this];ReturnValue;value;manual" Uri.Builder out = null; Uri.Builder in = (Uri.Builder)source(); out = in.fragment(null); sink(out); // $ hasValueFlow } { - // "android.net;Uri$Builder;true;fragment;;;Argument[0];Argument[-1];taint;manual" + // "android.net;Uri$Builder;true;fragment;;;Argument[0];Argument[this];taint;manual" Uri.Builder out = null; String in = (String)source(); out.fragment(in); sink(out); // $ hasTaintFlow } { - // "android.net;Uri$Builder;true;opaquePart;;;Argument[-1];ReturnValue;value;manual" + // "android.net;Uri$Builder;true;opaquePart;;;Argument[this];ReturnValue;value;manual" Uri.Builder out = null; Uri.Builder in = (Uri.Builder)source(); out = in.opaquePart(null); sink(out); // $ hasValueFlow } { - // "android.net;Uri$Builder;true;opaquePart;;;Argument[0];Argument[-1];taint;manual" + // "android.net;Uri$Builder;true;opaquePart;;;Argument[0];Argument[this];taint;manual" Uri.Builder out = null; String in = (String)source(); out.opaquePart(in); sink(out); // $ hasTaintFlow } { - // "android.net;Uri$Builder;true;path;;;Argument[-1];ReturnValue;value;manual" + // "android.net;Uri$Builder;true;path;;;Argument[this];ReturnValue;value;manual" Uri.Builder out = null; Uri.Builder in = (Uri.Builder)source(); out = in.path(null); sink(out); // $ hasValueFlow } { - // "android.net;Uri$Builder;true;path;;;Argument[0];Argument[-1];taint;manual" + // "android.net;Uri$Builder;true;path;;;Argument[0];Argument[this];taint;manual" Uri.Builder out = null; String in = (String)source(); out.path(in); sink(out); // $ hasTaintFlow } { - // "android.net;Uri$Builder;true;query;;;Argument[-1];ReturnValue;value;manual" + // "android.net;Uri$Builder;true;query;;;Argument[this];ReturnValue;value;manual" Uri.Builder out = null; Uri.Builder in = (Uri.Builder)source(); out = in.query(null); sink(out); // $ hasValueFlow } { - // "android.net;Uri$Builder;true;query;;;Argument[0];Argument[-1];taint;manual" + // "android.net;Uri$Builder;true;query;;;Argument[0];Argument[this];taint;manual" Uri.Builder out = null; String in = (String)source(); out.query(in); sink(out); // $ hasTaintFlow } { - // "android.net;Uri$Builder;true;scheme;;;Argument[-1];ReturnValue;value;manual" + // "android.net;Uri$Builder;true;scheme;;;Argument[this];ReturnValue;value;manual" Uri.Builder out = null; Uri.Builder in = (Uri.Builder)source(); out = in.scheme(null); sink(out); // $ hasValueFlow } { - // "android.net;Uri$Builder;true;scheme;;;Argument[0];Argument[-1];taint;manual" + // "android.net;Uri$Builder;true;scheme;;;Argument[0];Argument[this];taint;manual" Uri.Builder out = null; String in = (String)source(); out.scheme(in); sink(out); // $ hasTaintFlow } { - // "android.net;Uri$Builder;true;toString;;;Argument[-1];ReturnValue;taint;manual" + // "android.net;Uri$Builder;true;toString;;;Argument[this];ReturnValue;taint;manual" String out = null; Uri.Builder in = (Uri.Builder)source(); out = in.toString(); @@ -316,154 +316,154 @@ public class Test { sink(out); // $ hasTaintFlow } { - // "android.net;Uri;true;buildUpon;;;Argument[-1];ReturnValue;taint;manual" + // "android.net;Uri;true;buildUpon;;;Argument[this];ReturnValue;taint;manual" Uri.Builder out = null; Uri in = (Uri)source(); out = in.buildUpon(); sink(out); // $ hasTaintFlow } { - // "android.net;Uri;true;getAuthority;;;Argument[-1];ReturnValue;taint;manual" + // "android.net;Uri;true;getAuthority;;;Argument[this];ReturnValue;taint;manual" String out = null; Uri in = (Uri)source(); out = in.getAuthority(); sink(out); // $ hasTaintFlow } { - // "android.net;Uri;true;getEncodedAuthority;;;Argument[-1];ReturnValue;taint;manual" + // "android.net;Uri;true;getEncodedAuthority;;;Argument[this];ReturnValue;taint;manual" String out = null; Uri in = (Uri)source(); out = in.getEncodedAuthority(); sink(out); // $ hasTaintFlow } { - // "android.net;Uri;true;getEncodedFragment;;;Argument[-1];ReturnValue;taint;manual" + // "android.net;Uri;true;getEncodedFragment;;;Argument[this];ReturnValue;taint;manual" String out = null; Uri in = (Uri)source(); out = in.getEncodedFragment(); sink(out); // $ hasTaintFlow } { - // "android.net;Uri;true;getEncodedPath;;;Argument[-1];ReturnValue;taint;manual" + // "android.net;Uri;true;getEncodedPath;;;Argument[this];ReturnValue;taint;manual" String out = null; Uri in = (Uri)source(); out = in.getEncodedPath(); sink(out); // $ hasTaintFlow } { - // "android.net;Uri;true;getEncodedQuery;;;Argument[-1];ReturnValue;taint;manual" + // "android.net;Uri;true;getEncodedQuery;;;Argument[this];ReturnValue;taint;manual" String out = null; Uri in = (Uri)source(); out = in.getEncodedQuery(); sink(out); // $ hasTaintFlow } { - // "android.net;Uri;true;getEncodedSchemeSpecificPart;;;Argument[-1];ReturnValue;taint;manual" + // "android.net;Uri;true;getEncodedSchemeSpecificPart;;;Argument[this];ReturnValue;taint;manual" String out = null; Uri in = (Uri)source(); out = in.getEncodedSchemeSpecificPart(); sink(out); // $ hasTaintFlow } { - // "android.net;Uri;true;getEncodedUserInfo;;;Argument[-1];ReturnValue;taint;manual" + // "android.net;Uri;true;getEncodedUserInfo;;;Argument[this];ReturnValue;taint;manual" String out = null; Uri in = (Uri)source(); out = in.getEncodedUserInfo(); sink(out); // $ hasTaintFlow } { - // "android.net;Uri;true;getFragment;;;Argument[-1];ReturnValue;taint;manual" + // "android.net;Uri;true;getFragment;;;Argument[this];ReturnValue;taint;manual" String out = null; Uri in = (Uri)source(); out = in.getFragment(); sink(out); // $ hasTaintFlow } { - // "android.net;Uri;true;getHost;;;Argument[-1];ReturnValue;taint;manual" + // "android.net;Uri;true;getHost;;;Argument[this];ReturnValue;taint;manual" String out = null; Uri in = (Uri)source(); out = in.getHost(); sink(out); // $ hasTaintFlow } { - // "android.net;Uri;true;getLastPathSegment;;;Argument[-1];ReturnValue;taint;manual" + // "android.net;Uri;true;getLastPathSegment;;;Argument[this];ReturnValue;taint;manual" String out = null; Uri in = (Uri)source(); out = in.getLastPathSegment(); sink(out); // $ hasTaintFlow } { - // "android.net;Uri;true;getPath;;;Argument[-1];ReturnValue;taint;manual" + // "android.net;Uri;true;getPath;;;Argument[this];ReturnValue;taint;manual" String out = null; Uri in = (Uri)source(); out = in.getPath(); sink(out); // $ hasTaintFlow } { - // "android.net;Uri;true;getPathSegments;;;Argument[-1];ReturnValue;taint;manual" + // "android.net;Uri;true;getPathSegments;;;Argument[this];ReturnValue;taint;manual" List out = null; Uri in = (Uri)source(); out = in.getPathSegments(); sink(out); // $ hasTaintFlow } { - // "android.net;Uri;true;getQuery;;;Argument[-1];ReturnValue;taint;manual" + // "android.net;Uri;true;getQuery;;;Argument[this];ReturnValue;taint;manual" String out = null; Uri in = (Uri)source(); out = in.getQuery(); sink(out); // $ hasTaintFlow } { - // "android.net;Uri;true;getQueryParameter;;;Argument[-1];ReturnValue;taint;manual" + // "android.net;Uri;true;getQueryParameter;;;Argument[this];ReturnValue;taint;manual" String out = null; Uri in = (Uri)source(); out = in.getQueryParameter(null); sink(out); // $ hasTaintFlow } { - // "android.net;Uri;true;getQueryParameterNames;;;Argument[-1];ReturnValue;taint;manual" + // "android.net;Uri;true;getQueryParameterNames;;;Argument[this];ReturnValue;taint;manual" Set out = null; Uri in = (Uri)source(); out = in.getQueryParameterNames(); sink(out); // $ hasTaintFlow } { - // "android.net;Uri;true;getQueryParameters;;;Argument[-1];ReturnValue;taint;manual" + // "android.net;Uri;true;getQueryParameters;;;Argument[this];ReturnValue;taint;manual" List out = null; Uri in = (Uri)source(); out = in.getQueryParameters(null); sink(out); // $ hasTaintFlow } { - // "android.net;Uri;true;getScheme;;;Argument[-1];ReturnValue;taint;manual" + // "android.net;Uri;true;getScheme;;;Argument[this];ReturnValue;taint;manual" String out = null; Uri in = (Uri)source(); out = in.getScheme(); sink(out); // $ hasTaintFlow } { - // "android.net;Uri;true;getSchemeSpecificPart;;;Argument[-1];ReturnValue;taint;manual" + // "android.net;Uri;true;getSchemeSpecificPart;;;Argument[this];ReturnValue;taint;manual" String out = null; Uri in = (Uri)source(); out = in.getSchemeSpecificPart(); sink(out); // $ hasTaintFlow } { - // "android.net;Uri;true;getUserInfo;;;Argument[-1];ReturnValue;taint;manual" + // "android.net;Uri;true;getUserInfo;;;Argument[this];ReturnValue;taint;manual" String out = null; Uri in = (Uri)source(); out = in.getUserInfo(); sink(out); // $ hasTaintFlow } { - // "android.net;Uri;true;normalizeScheme;;;Argument[-1];ReturnValue;taint;manual" + // "android.net;Uri;true;normalizeScheme;;;Argument[this];ReturnValue;taint;manual" Uri out = null; Uri in = (Uri)source(); out = in.normalizeScheme(); sink(out); // $ hasTaintFlow } { - // "android.net;Uri;true;toString;;;Argument[-1];ReturnValue;taint;manual" + // "android.net;Uri;true;toString;;;Argument[this];ReturnValue;taint;manual" String out = null; Uri in = (Uri)source(); out = in.toString(); diff --git a/java/ql/test/library-tests/frameworks/apache-ant/Test.java b/java/ql/test/library-tests/frameworks/apache-ant/Test.java index 13ba98041c5..bbf639c230e 100644 --- a/java/ql/test/library-tests/frameworks/apache-ant/Test.java +++ b/java/ql/test/library-tests/frameworks/apache-ant/Test.java @@ -14,7 +14,7 @@ public class Test { public void test() throws Exception { { - // "org.apache.tools.zip;ZipEntry;true;ZipEntry;(String);;Argument[0];Argument[-1];taint;ai-generated" + // "org.apache.tools.zip;ZipEntry;true;ZipEntry;(String);;Argument[0];Argument[this];taint;ai-generated" ZipEntry out = null; String in = (String) source(); out = new ZipEntry(in); diff --git a/java/ql/test/library-tests/frameworks/apache-collections/Test.java b/java/ql/test/library-tests/frameworks/apache-collections/Test.java index 7b31165a345..188849457ac 100644 --- a/java/ql/test/library-tests/frameworks/apache-collections/Test.java +++ b/java/ql/test/library-tests/frameworks/apache-collections/Test.java @@ -313,364 +313,364 @@ public class Test { public void test() throws Exception { { - // "org.apache.commons.collections4.keyvalue;AbstractKeyValue;true;AbstractKeyValue;;;Argument[0];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.keyvalue;AbstractKeyValue;true;AbstractKeyValue;;;Argument[0];MapKey of Argument[this];value;manual" AbstractKeyValue out = null; Object in = source(); out = new MyAbstractKeyValue(in, null); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.keyvalue;AbstractKeyValue;true;AbstractKeyValue;;;Argument[1];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.keyvalue;AbstractKeyValue;true;AbstractKeyValue;;;Argument[1];MapValue of Argument[this];value;manual" AbstractKeyValue out = null; Object in = source(); out = new MyAbstractKeyValue(null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.keyvalue;AbstractKeyValue;true;setKey;;;Argument[0];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.keyvalue;AbstractKeyValue;true;setKey;;;Argument[0];MapKey of Argument[this];value;manual" DefaultKeyValue out = null; Object in = source(); out.setKey(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.keyvalue;AbstractKeyValue;true;setKey;;;Argument[0];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.keyvalue;AbstractKeyValue;true;setKey;;;Argument[0];MapKey of Argument[this];value;manual" MyAbstractKeyValue out = null; Object in = source(); out.mySetKey(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.keyvalue;AbstractKeyValue;true;setKey;;;MapKey of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4.keyvalue;AbstractKeyValue;true;setKey;;;MapKey of Argument[this];ReturnValue;value;manual" Object out = null; DefaultKeyValue in = newDKVWithMapKey((String)source()); out = in.setKey(null); sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4.keyvalue;AbstractKeyValue;true;setKey;;;MapKey of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4.keyvalue;AbstractKeyValue;true;setKey;;;MapKey of Argument[this];ReturnValue;value;manual" Object out = null; MyAbstractKeyValue in = newMAKVWithMapKey((String)source()); out = in.mySetKey(null); sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4.keyvalue;AbstractKeyValue;true;setValue;;;Argument[0];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.keyvalue;AbstractKeyValue;true;setValue;;;Argument[0];MapValue of Argument[this];value;manual" UnmodifiableMapEntry out = null; Object in = source(); out.setValue(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.keyvalue;AbstractKeyValue;true;setValue;;;Argument[0];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.keyvalue;AbstractKeyValue;true;setValue;;;Argument[0];MapValue of Argument[this];value;manual" DefaultKeyValue out = null; Object in = source(); out.setValue(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.keyvalue;AbstractKeyValue;true;setValue;;;Argument[0];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.keyvalue;AbstractKeyValue;true;setValue;;;Argument[0];MapValue of Argument[this];value;manual" AbstractMapEntry out = null; Object in = source(); out.setValue(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.keyvalue;AbstractKeyValue;true;setValue;;;Argument[0];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.keyvalue;AbstractKeyValue;true;setValue;;;Argument[0];MapValue of Argument[this];value;manual" MyAbstractKeyValue out = null; Object in = source(); out.mySetValue(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.keyvalue;AbstractKeyValue;true;setValue;;;MapValue of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4.keyvalue;AbstractKeyValue;true;setValue;;;MapValue of Argument[this];ReturnValue;value;manual" Object out = null; UnmodifiableMapEntry in = newUMEWithMapValue((String)source()); out = in.setValue(null); sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4.keyvalue;AbstractKeyValue;true;setValue;;;MapValue of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4.keyvalue;AbstractKeyValue;true;setValue;;;MapValue of Argument[this];ReturnValue;value;manual" Object out = null; DefaultKeyValue in = newDKVWithMapValue((String)source()); out = in.setValue(null); sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4.keyvalue;AbstractKeyValue;true;setValue;;;MapValue of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4.keyvalue;AbstractKeyValue;true;setValue;;;MapValue of Argument[this];ReturnValue;value;manual" Object out = null; AbstractMapEntry in = newMAMEWithMapValue((String)source()); out = in.setValue(null); sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4.keyvalue;AbstractKeyValue;true;setValue;;;MapValue of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4.keyvalue;AbstractKeyValue;true;setValue;;;MapValue of Argument[this];ReturnValue;value;manual" Object out = null; AbstractMapEntry in = newMAMEWithMapValue((String)source()); out = in.setValue(null); sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4.keyvalue;AbstractKeyValue;true;setValue;;;MapValue of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4.keyvalue;AbstractKeyValue;true;setValue;;;MapValue of Argument[this];ReturnValue;value;manual" Object out = null; MyAbstractKeyValue in = newMAKVWithMapValue((String)source()); out = in.mySetValue(null); sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4.keyvalue;AbstractKeyValue;true;setValue;;;MapValue of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4.keyvalue;AbstractKeyValue;true;setValue;;;MapValue of Argument[this];ReturnValue;value;manual" Object out = null; MyAbstractKeyValue in = newMAKVWithMapValue((String)source()); out = in.mySetValue((Object)null); sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4.keyvalue;AbstractMapEntry;true;AbstractMapEntry;;;Argument[0];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.keyvalue;AbstractMapEntry;true;AbstractMapEntry;;;Argument[0];MapKey of Argument[this];value;manual" AbstractMapEntry out = null; Object in = source(); out = new MyAbstractMapEntry(in, null); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.keyvalue;AbstractMapEntry;true;AbstractMapEntry;;;Argument[1];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.keyvalue;AbstractMapEntry;true;AbstractMapEntry;;;Argument[1];MapValue of Argument[this];value;manual" AbstractMapEntry out = null; Object in = source(); out = new MyAbstractMapEntry(null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.keyvalue;AbstractMapEntryDecorator;true;AbstractMapEntryDecorator;;;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.keyvalue;AbstractMapEntryDecorator;true;AbstractMapEntryDecorator;;;MapKey of Argument[0];MapKey of Argument[this];value;manual" AbstractMapEntryDecorator out = null; Map.Entry<String,String> in = newMAMEWithMapKey((String)source()); out = new MyAbstractMapEntryDecorator(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.keyvalue;AbstractMapEntryDecorator;true;AbstractMapEntryDecorator;;;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.keyvalue;AbstractMapEntryDecorator;true;AbstractMapEntryDecorator;;;MapValue of Argument[0];MapValue of Argument[this];value;manual" AbstractMapEntryDecorator out = null; Map.Entry<String,String> in = newMAMEWithMapValue((String)source()); out = new MyAbstractMapEntryDecorator(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.keyvalue;AbstractMapEntryDecorator;true;getMapEntry;;;MapKey of Argument[-1];MapKey of ReturnValue;value;manual" + // "org.apache.commons.collections4.keyvalue;AbstractMapEntryDecorator;true;getMapEntry;;;MapKey of Argument[this];MapKey of ReturnValue;value;manual" Map.Entry<String,String> out = null; MyAbstractMapEntryDecorator in = newMAMEDWithMapKey((String)source()); out = in.myGetMapEntry(); sink(getMapKeyFromEntry(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.keyvalue;AbstractMapEntryDecorator;true;getMapEntry;;;MapValue of Argument[-1];MapValue of ReturnValue;value;manual" + // "org.apache.commons.collections4.keyvalue;AbstractMapEntryDecorator;true;getMapEntry;;;MapValue of Argument[this];MapValue of ReturnValue;value;manual" Map.Entry<String,String> out = null; MyAbstractMapEntryDecorator in = newMAMEDWithMapValue((String)source()); out = in.myGetMapEntry(); sink(getMapValueFromEntry(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.keyvalue;DefaultKeyValue;true;DefaultKeyValue;(Entry);;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.keyvalue;DefaultKeyValue;true;DefaultKeyValue;(Entry);;MapKey of Argument[0];MapKey of Argument[this];value;manual" DefaultKeyValue out = null; Map.Entry<String,String> in = newMAMEWithMapKey((String)source()); out = new DefaultKeyValue(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.keyvalue;DefaultKeyValue;true;DefaultKeyValue;(Entry);;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.keyvalue;DefaultKeyValue;true;DefaultKeyValue;(Entry);;MapValue of Argument[0];MapValue of Argument[this];value;manual" DefaultKeyValue out = null; Map.Entry<String,String> in = newMAMEWithMapValue((String)source()); out = new DefaultKeyValue(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.keyvalue;DefaultKeyValue;true;DefaultKeyValue;(KeyValue);;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.keyvalue;DefaultKeyValue;true;DefaultKeyValue;(KeyValue);;MapKey of Argument[0];MapKey of Argument[this];value;manual" DefaultKeyValue out = null; KeyValue in = newMAKVWithMapKey((String)source()); out = new DefaultKeyValue(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.keyvalue;DefaultKeyValue;true;DefaultKeyValue;(KeyValue);;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.keyvalue;DefaultKeyValue;true;DefaultKeyValue;(KeyValue);;MapValue of Argument[0];MapValue of Argument[this];value;manual" DefaultKeyValue out = null; KeyValue in = newMAKVWithMapValue((String)source()); out = new DefaultKeyValue(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.keyvalue;DefaultKeyValue;true;DefaultKeyValue;(Object,Object);;Argument[0];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.keyvalue;DefaultKeyValue;true;DefaultKeyValue;(Object,Object);;Argument[0];MapKey of Argument[this];value;manual" DefaultKeyValue out = null; Object in = source(); out = new DefaultKeyValue(in, null); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.keyvalue;DefaultKeyValue;true;DefaultKeyValue;(Object,Object);;Argument[1];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.keyvalue;DefaultKeyValue;true;DefaultKeyValue;(Object,Object);;Argument[1];MapValue of Argument[this];value;manual" DefaultKeyValue out = null; Object in = source(); out = new DefaultKeyValue(null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.keyvalue;DefaultKeyValue;true;toMapEntry;;;MapKey of Argument[-1];MapKey of ReturnValue;value;manual" + // "org.apache.commons.collections4.keyvalue;DefaultKeyValue;true;toMapEntry;;;MapKey of Argument[this];MapKey of ReturnValue;value;manual" Map.Entry<String,String> out = null; DefaultKeyValue in = newDKVWithMapKey((String)source()); out = in.toMapEntry(); sink(getMapKeyFromEntry(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.keyvalue;DefaultKeyValue;true;toMapEntry;;;MapValue of Argument[-1];MapValue of ReturnValue;value;manual" + // "org.apache.commons.collections4.keyvalue;DefaultKeyValue;true;toMapEntry;;;MapValue of Argument[this];MapValue of ReturnValue;value;manual" Map.Entry<String,String> out = null; DefaultKeyValue in = newDKVWithMapValue((String)source()); out = in.toMapEntry(); sink(getMapValueFromEntry(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.keyvalue;DefaultMapEntry;true;DefaultMapEntry;(Entry);;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.keyvalue;DefaultMapEntry;true;DefaultMapEntry;(Entry);;MapKey of Argument[0];MapKey of Argument[this];value;manual" DefaultMapEntry out = null; Map.Entry<String,String> in = newMAMEWithMapKey((String)source()); out = new DefaultMapEntry(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.keyvalue;DefaultMapEntry;true;DefaultMapEntry;(Entry);;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.keyvalue;DefaultMapEntry;true;DefaultMapEntry;(Entry);;MapValue of Argument[0];MapValue of Argument[this];value;manual" DefaultMapEntry out = null; Map.Entry<String,String> in = newMAMEWithMapValue((String)source()); out = new DefaultMapEntry(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.keyvalue;DefaultMapEntry;true;DefaultMapEntry;(KeyValue);;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.keyvalue;DefaultMapEntry;true;DefaultMapEntry;(KeyValue);;MapKey of Argument[0];MapKey of Argument[this];value;manual" DefaultMapEntry out = null; KeyValue in = newMAKVWithMapKey((String)source()); out = new DefaultMapEntry(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.keyvalue;DefaultMapEntry;true;DefaultMapEntry;(KeyValue);;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.keyvalue;DefaultMapEntry;true;DefaultMapEntry;(KeyValue);;MapValue of Argument[0];MapValue of Argument[this];value;manual" DefaultMapEntry out = null; KeyValue in = newMAKVWithMapValue((String)source()); out = new DefaultMapEntry(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.keyvalue;DefaultMapEntry;true;DefaultMapEntry;(Object,Object);;Argument[0];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.keyvalue;DefaultMapEntry;true;DefaultMapEntry;(Object,Object);;Argument[0];MapKey of Argument[this];value;manual" DefaultMapEntry out = null; Object in = source(); out = new DefaultMapEntry(in, null); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.keyvalue;DefaultMapEntry;true;DefaultMapEntry;(Object,Object);;Argument[1];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.keyvalue;DefaultMapEntry;true;DefaultMapEntry;(Object,Object);;Argument[1];MapValue of Argument[this];value;manual" DefaultMapEntry out = null; Object in = source(); out = new DefaultMapEntry(null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.keyvalue;TiedMapEntry;true;TiedMapEntry;;;Argument[1];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.keyvalue;TiedMapEntry;true;TiedMapEntry;;;Argument[1];MapKey of Argument[this];value;manual" TiedMapEntry out = null; Object in = source(); out = new TiedMapEntry(null, in); sink(getMapKeyFromEntry(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.keyvalue;TiedMapEntry;true;TiedMapEntry;;;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.keyvalue;TiedMapEntry;true;TiedMapEntry;;;MapValue of Argument[0];MapValue of Argument[this];value;manual" TiedMapEntry out = null; Map in = newTreeMapWithMapValue((String)source()); out = new TiedMapEntry(in, null); sink(getMapValueFromEntry(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.keyvalue;UnmodifiableMapEntry;true;UnmodifiableMapEntry;(Entry);;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.keyvalue;UnmodifiableMapEntry;true;UnmodifiableMapEntry;(Entry);;MapKey of Argument[0];MapKey of Argument[this];value;manual" UnmodifiableMapEntry out = null; Map.Entry<String,String> in = newMAMEWithMapKey((String)source()); out = new UnmodifiableMapEntry(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.keyvalue;UnmodifiableMapEntry;true;UnmodifiableMapEntry;(Entry);;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.keyvalue;UnmodifiableMapEntry;true;UnmodifiableMapEntry;(Entry);;MapValue of Argument[0];MapValue of Argument[this];value;manual" UnmodifiableMapEntry out = null; Map.Entry<String,String> in = newMAMEWithMapValue((String)source()); out = new UnmodifiableMapEntry(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.keyvalue;UnmodifiableMapEntry;true;UnmodifiableMapEntry;(KeyValue);;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.keyvalue;UnmodifiableMapEntry;true;UnmodifiableMapEntry;(KeyValue);;MapKey of Argument[0];MapKey of Argument[this];value;manual" UnmodifiableMapEntry out = null; KeyValue in = newMAKVWithMapKey((String)source()); out = new UnmodifiableMapEntry(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.keyvalue;UnmodifiableMapEntry;true;UnmodifiableMapEntry;(KeyValue);;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.keyvalue;UnmodifiableMapEntry;true;UnmodifiableMapEntry;(KeyValue);;MapValue of Argument[0];MapValue of Argument[this];value;manual" UnmodifiableMapEntry out = null; KeyValue in = newMAKVWithMapValue((String)source()); out = new UnmodifiableMapEntry(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.keyvalue;UnmodifiableMapEntry;true;UnmodifiableMapEntry;(Object,Object);;Argument[0];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.keyvalue;UnmodifiableMapEntry;true;UnmodifiableMapEntry;(Object,Object);;Argument[0];MapKey of Argument[this];value;manual" UnmodifiableMapEntry out = null; Object in = source(); out = new UnmodifiableMapEntry(in, null); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.keyvalue;UnmodifiableMapEntry;true;UnmodifiableMapEntry;(Object,Object);;Argument[1];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.keyvalue;UnmodifiableMapEntry;true;UnmodifiableMapEntry;(Object,Object);;Argument[1];MapValue of Argument[this];value;manual" UnmodifiableMapEntry out = null; Object in = source(); out = new UnmodifiableMapEntry(null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;KeyValue;true;getKey;;;MapKey of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4;KeyValue;true;getKey;;;MapKey of Argument[this];ReturnValue;value;manual" Object out = null; TiedMapEntry in = newTMEWithMapKey((String)source()); out = in.getKey(); sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4;KeyValue;true;getKey;;;MapKey of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4;KeyValue;true;getKey;;;MapKey of Argument[this];ReturnValue;value;manual" Object out = null; KeyValue in = newMAKVWithMapKey((String)source()); out = in.getKey(); sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4;KeyValue;true;getKey;;;MapKey of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4;KeyValue;true;getKey;;;MapKey of Argument[this];ReturnValue;value;manual" Object out = null; AbstractMapEntryDecorator in = newMAMEDWithMapKey((String)source()); out = in.getKey(); sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4;KeyValue;true;getKey;;;MapKey of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4;KeyValue;true;getKey;;;MapKey of Argument[this];ReturnValue;value;manual" Object out = null; AbstractKeyValue in = newMAKVWithMapKey((String)source()); out = in.getKey(); sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4;KeyValue;true;getValue;;;MapValue of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4;KeyValue;true;getValue;;;MapValue of Argument[this];ReturnValue;value;manual" Object out = null; TiedMapEntry in = newTMEWithMapValue((String)source()); out = in.getValue(); sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4;KeyValue;true;getValue;;;MapValue of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4;KeyValue;true;getValue;;;MapValue of Argument[this];ReturnValue;value;manual" Object out = null; KeyValue in = newMAKVWithMapValue((String)source()); out = in.getValue(); sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4;KeyValue;true;getValue;;;MapValue of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4;KeyValue;true;getValue;;;MapValue of Argument[this];ReturnValue;value;manual" Object out = null; AbstractMapEntryDecorator in = newMAMEDWithMapValue((String)source()); out = in.getValue(); sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4;KeyValue;true;getValue;;;MapValue of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4;KeyValue;true;getValue;;;MapValue of Argument[this];ReturnValue;value;manual" Object out = null; AbstractKeyValue in = newMAKVWithMapValue((String)source()); out = in.getValue(); @@ -1169,28 +1169,28 @@ public class Test { sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;ArrayStack;true;peek;;;Element of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4;ArrayStack;true;peek;;;Element of Argument[this];ReturnValue;value;manual" Object out = null; ArrayStack in = newArrayStackWithElement((String)source()); out = in.peek(0); sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4;ArrayStack;true;peek;;;Element of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4;ArrayStack;true;peek;;;Element of Argument[this];ReturnValue;value;manual" Object out = null; ArrayStack in = newArrayStackWithElement((String)source()); out = in.peek(); sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4;ArrayStack;true;pop;;;Element of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4;ArrayStack;true;pop;;;Element of Argument[this];ReturnValue;value;manual" Object out = null; ArrayStack in = newArrayStackWithElement((String)source()); out = in.pop(); sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4;ArrayStack;true;push;;;Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4;ArrayStack;true;push;;;Argument[0];Element of Argument[this];value;manual" ArrayStack out = null; Object in = source(); out.push(in); @@ -1205,21 +1205,21 @@ public class Test { sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4;Bag;true;add;;;Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4;Bag;true;add;;;Argument[0];Element of Argument[this];value;manual" Bag out = null; Object in = source(); out.add(in, 0); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;Bag;true;add;;;Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4;Bag;true;add;;;Argument[0];Element of Argument[this];value;manual" Bag out = null; Object in = source(); out.add(in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;Bag;true;uniqueSet;;;Element of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4;Bag;true;uniqueSet;;;Element of Argument[this];Element of ReturnValue;value;manual" Set out = null; Bag in = newTreeBagWithElement((String)source()); out = in.uniqueSet(); @@ -1289,28 +1289,28 @@ public class Test { sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;BidiMap;true;getKey;;;MapKey of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4;BidiMap;true;getKey;;;MapKey of Argument[this];ReturnValue;value;manual" Object out = null; BidiMap in = newTreeBidiMapWithMapKey((String)source()); out = in.getKey(null); sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4;BidiMap;true;inverseBidiMap;;;MapKey of Argument[-1];MapValue of ReturnValue;value;manual" + // "org.apache.commons.collections4;BidiMap;true;inverseBidiMap;;;MapKey of Argument[this];MapValue of ReturnValue;value;manual" BidiMap out = null; BidiMap in = newTreeBidiMapWithMapKey((String)source()); out = in.inverseBidiMap(); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;BidiMap;true;inverseBidiMap;;;MapValue of Argument[-1];MapKey of ReturnValue;value;manual" + // "org.apache.commons.collections4;BidiMap;true;inverseBidiMap;;;MapValue of Argument[this];MapKey of ReturnValue;value;manual" BidiMap out = null; BidiMap in = newTreeBidiMapWithMapValue((String)source()); out = in.inverseBidiMap(); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;BidiMap;true;removeValue;;;MapKey of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4;BidiMap;true;removeValue;;;MapKey of Argument[this];ReturnValue;value;manual" Object out = null; BidiMap in = newTreeBidiMapWithMapKey((String)source()); out = in.removeValue(null); @@ -1709,7 +1709,7 @@ public class Test { sink(getElement(out)); // $ hasTaintFlow } { - // "org.apache.commons.collections4;FluentIterable;true;append;(Iterable);;Element of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4;FluentIterable;true;append;(Iterable);;Element of Argument[this];Element of ReturnValue;value;manual" FluentIterable out = null; FluentIterable in = newFluentIterableWithElement((String)source()); out = in.append((Iterable)null); @@ -1732,28 +1732,28 @@ public class Test { sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;FluentIterable;true;append;(Object[]);;Element of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4;FluentIterable;true;append;(Object[]);;Element of Argument[this];Element of ReturnValue;value;manual" FluentIterable out = null; FluentIterable in = newFluentIterableWithElement((String)source()); out = in.append(); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;FluentIterable;true;asEnumeration;;;Element of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4;FluentIterable;true;asEnumeration;;;Element of Argument[this];Element of ReturnValue;value;manual" Enumeration out = null; FluentIterable in = newFluentIterableWithElement((String)source()); out = in.asEnumeration(); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;FluentIterable;true;collate;;;Element of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4;FluentIterable;true;collate;;;Element of Argument[this];Element of ReturnValue;value;manual" FluentIterable out = null; FluentIterable in = newFluentIterableWithElement((String)source()); out = in.collate(null, null); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;FluentIterable;true;collate;;;Element of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4;FluentIterable;true;collate;;;Element of Argument[this];Element of ReturnValue;value;manual" FluentIterable out = null; FluentIterable in = newFluentIterableWithElement((String)source()); out = in.collate(null); @@ -1776,42 +1776,42 @@ public class Test { sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;FluentIterable;true;copyInto;;;Element of Argument[-1];Element of Argument[0];value;manual" + // "org.apache.commons.collections4;FluentIterable;true;copyInto;;;Element of Argument[this];Element of Argument[0];value;manual" Collection out = null; FluentIterable in = newFluentIterableWithElement((String)source()); in.copyInto(out); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;FluentIterable;true;eval;;;Element of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4;FluentIterable;true;eval;;;Element of Argument[this];Element of ReturnValue;value;manual" FluentIterable out = null; FluentIterable in = newFluentIterableWithElement((String)source()); out = in.eval(); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;FluentIterable;true;filter;;;Element of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4;FluentIterable;true;filter;;;Element of Argument[this];Element of ReturnValue;value;manual" FluentIterable out = null; FluentIterable in = newFluentIterableWithElement((String)source()); out = in.filter(null); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;FluentIterable;true;get;;;Element of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4;FluentIterable;true;get;;;Element of Argument[this];ReturnValue;value;manual" Object out = null; FluentIterable in = newFluentIterableWithElement((String)source()); out = in.get(0); sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4;FluentIterable;true;limit;;;Element of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4;FluentIterable;true;limit;;;Element of Argument[this];Element of ReturnValue;value;manual" FluentIterable out = null; FluentIterable in = newFluentIterableWithElement((String)source()); out = in.limit(0L); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;FluentIterable;true;loop;;;Element of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4;FluentIterable;true;loop;;;Element of Argument[this];Element of ReturnValue;value;manual" FluentIterable out = null; FluentIterable in = newFluentIterableWithElement((String)source()); out = in.loop(); @@ -1839,49 +1839,49 @@ public class Test { sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;FluentIterable;true;reverse;;;Element of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4;FluentIterable;true;reverse;;;Element of Argument[this];Element of ReturnValue;value;manual" FluentIterable out = null; FluentIterable in = newFluentIterableWithElement((String)source()); out = in.reverse(); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;FluentIterable;true;skip;;;Element of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4;FluentIterable;true;skip;;;Element of Argument[this];Element of ReturnValue;value;manual" FluentIterable out = null; FluentIterable in = newFluentIterableWithElement((String)source()); out = in.skip(0L); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;FluentIterable;true;toArray;;;Element of Argument[-1];ArrayElement of ReturnValue;value;manual" + // "org.apache.commons.collections4;FluentIterable;true;toArray;;;Element of Argument[this];ArrayElement of ReturnValue;value;manual" Object[] out = null; FluentIterable in = newFluentIterableWithElement((String)source()); out = in.toArray(null); sink(getArrayElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;FluentIterable;true;toList;;;Element of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4;FluentIterable;true;toList;;;Element of Argument[this];Element of ReturnValue;value;manual" List out = null; FluentIterable in = newFluentIterableWithElement((String)source()); out = in.toList(); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;FluentIterable;true;unique;;;Element of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4;FluentIterable;true;unique;;;Element of Argument[this];Element of ReturnValue;value;manual" FluentIterable out = null; FluentIterable in = newFluentIterableWithElement((String)source()); out = in.unique(); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;FluentIterable;true;unmodifiable;;;Element of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4;FluentIterable;true;unmodifiable;;;Element of Argument[this];Element of ReturnValue;value;manual" FluentIterable out = null; FluentIterable in = newFluentIterableWithElement((String)source()); out = in.unmodifiable(); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;FluentIterable;true;zip;(Iterable);;Element of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4;FluentIterable;true;zip;(Iterable);;Element of Argument[this];Element of ReturnValue;value;manual" FluentIterable out = null; FluentIterable in = newFluentIterableWithElement((String)source()); out = in.zip((Iterable)null); @@ -1896,7 +1896,7 @@ public class Test { sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;FluentIterable;true;zip;(Iterable[]);;Element of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4;FluentIterable;true;zip;(Iterable[]);;Element of Argument[this];Element of ReturnValue;value;manual" FluentIterable out = null; FluentIterable in = newFluentIterableWithElement((String)source()); out = in.zip((Iterable)null, (Iterable)null); @@ -1911,175 +1911,175 @@ public class Test { sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;Get;true;entrySet;;;MapKey of Argument[-1];MapKey of Element of ReturnValue;value;manual" + // "org.apache.commons.collections4;Get;true;entrySet;;;MapKey of Argument[this];MapKey of Element of ReturnValue;value;manual" Set<Map.Entry> out = null; MultiValueMap in = newMVMWithMapKey((String)source()); out = in.entrySet(); sink(getMapKeyFromEntry(getElement(out))); // $ hasValueFlow } { - // "org.apache.commons.collections4;Get;true;entrySet;;;MapKey of Argument[-1];MapKey of Element of ReturnValue;value;manual" + // "org.apache.commons.collections4;Get;true;entrySet;;;MapKey of Argument[this];MapKey of Element of ReturnValue;value;manual" Set<Map.Entry> out = null; Get in = newPatriciaTrieWithMapKey((String)source()); out = in.entrySet(); sink(getMapKeyFromEntry(getElement(out))); // $ hasValueFlow } { - // "org.apache.commons.collections4;Get;true;entrySet;;;MapKey of Argument[-1];MapKey of Element of ReturnValue;value;manual" + // "org.apache.commons.collections4;Get;true;entrySet;;;MapKey of Argument[this];MapKey of Element of ReturnValue;value;manual" Set<Map.Entry> out = null; AbstractMapDecorator in = newMVMWithMapKey((String)source()); out = in.entrySet(); sink(getMapKeyFromEntry(getElement(out))); // $ hasValueFlow } { - // "org.apache.commons.collections4;Get;true;entrySet;;;MapValue of Argument[-1];MapValue of Element of ReturnValue;value;manual" + // "org.apache.commons.collections4;Get;true;entrySet;;;MapValue of Argument[this];MapValue of Element of ReturnValue;value;manual" Set<Map.Entry> out = null; MultiValueMap in = newMVMWithMapValue((String)source()); out = in.entrySet(); sink(getMapValueFromEntry(getElement(out))); // $ hasValueFlow } { - // "org.apache.commons.collections4;Get;true;entrySet;;;MapValue of Argument[-1];MapValue of Element of ReturnValue;value;manual" + // "org.apache.commons.collections4;Get;true;entrySet;;;MapValue of Argument[this];MapValue of Element of ReturnValue;value;manual" Set<Map.Entry> out = null; Get in = newPatriciaTrieWithMapValue((String)source()); out = in.entrySet(); sink(getMapValueFromEntry(getElement(out))); // $ hasValueFlow } { - // "org.apache.commons.collections4;Get;true;entrySet;;;MapValue of Argument[-1];MapValue of Element of ReturnValue;value;manual" + // "org.apache.commons.collections4;Get;true;entrySet;;;MapValue of Argument[this];MapValue of Element of ReturnValue;value;manual" Set<Map.Entry> out = null; AbstractMapDecorator in = newMVMWithMapValue((String)source()); out = in.entrySet(); sink(getMapValueFromEntry(getElement(out))); // $ hasValueFlow } { - // "org.apache.commons.collections4;Get;true;get;;;MapValue of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4;Get;true;get;;;MapValue of Argument[this];ReturnValue;value;manual" Object out = null; MultiMap in = newMVMWithMapValue((String)source()); out = in.get(null); sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4;Get;true;get;;;MapValue of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4;Get;true;get;;;MapValue of Argument[this];ReturnValue;value;manual" Object out = null; Get in = newPatriciaTrieWithMapValue((String)source()); out = in.get(null); sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4;Get;true;get;;;MapValue of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4;Get;true;get;;;MapValue of Argument[this];ReturnValue;value;manual" Object out = null; AbstractMapDecorator in = newMVMWithMapValue((String)source()); out = in.get(null); sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4;Get;true;keySet;();;MapKey of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4;Get;true;keySet;();;MapKey of Argument[this];Element of ReturnValue;value;manual" Set out = null; Get in = newPatriciaTrieWithMapKey((String)source()); out = in.keySet(); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;Get;true;keySet;();;MapKey of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4;Get;true;keySet;();;MapKey of Argument[this];Element of ReturnValue;value;manual" Set out = null; AbstractMapDecorator in = newMVMWithMapKey((String)source()); out = in.keySet(); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;Get;true;remove;(Object);;MapValue of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4;Get;true;remove;(Object);;MapValue of Argument[this];ReturnValue;value;manual" Object out = null; MultiMap in = newMVMWithMapValue((String)source()); out = in.remove(null); sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4;Get;true;remove;(Object);;MapValue of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4;Get;true;remove;(Object);;MapValue of Argument[this];ReturnValue;value;manual" Object out = null; Get in = newPatriciaTrieWithMapValue((String)source()); out = in.remove(null); sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4;Get;true;remove;(Object);;MapValue of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4;Get;true;remove;(Object);;MapValue of Argument[this];ReturnValue;value;manual" Object out = null; AbstractMapDecorator in = newMVMWithMapValue((String)source()); out = in.remove(null); sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4;Get;true;values;();;MapValue of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4;Get;true;values;();;MapValue of Argument[this];Element of ReturnValue;value;manual" Set out = null; BidiMap in = newTreeBidiMapWithMapValue((String)source()); out = in.values(); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;Get;true;values;();;MapValue of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4;Get;true;values;();;MapValue of Argument[this];Element of ReturnValue;value;manual" Collection out = null; MultiValueMap in = newMVMWithMapValue((String)source()); out = in.values(); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;Get;true;values;();;MapValue of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4;Get;true;values;();;MapValue of Argument[this];Element of ReturnValue;value;manual" Collection out = null; MultiMap in = newMVMWithMapValue((String)source()); out = in.values(); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;Get;true;values;();;MapValue of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4;Get;true;values;();;MapValue of Argument[this];Element of ReturnValue;value;manual" Collection out = null; Get in = newPatriciaTrieWithMapValue((String)source()); out = in.values(); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;Get;true;values;();;MapValue of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4;Get;true;values;();;MapValue of Argument[this];Element of ReturnValue;value;manual" Collection out = null; AbstractMapDecorator in = newMVMWithMapValue((String)source()); out = in.values(); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;IterableGet;true;mapIterator;;;MapKey of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4;IterableGet;true;mapIterator;;;MapKey of Argument[this];Element of ReturnValue;value;manual" OrderedMapIterator out = null; OrderedMap in = newTreeBidiMapWithMapKey((String)source()); out = in.mapIterator(); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;IterableGet;true;mapIterator;;;MapKey of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4;IterableGet;true;mapIterator;;;MapKey of Argument[this];Element of ReturnValue;value;manual" MapIterator out = null; IterableGet in = newHashedMapWithMapKey((String)source()); out = in.mapIterator(); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;IterableGet;true;mapIterator;;;MapKey of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4;IterableGet;true;mapIterator;;;MapKey of Argument[this];Element of ReturnValue;value;manual" MapIterator out = null; AbstractIterableMap in = newMVMWithMapKey((String)source()); out = in.mapIterator(); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;IterableGet;true;mapIterator;;;MapValue of Argument[-1];MapValue of ReturnValue;value;manual" + // "org.apache.commons.collections4;IterableGet;true;mapIterator;;;MapValue of Argument[this];MapValue of ReturnValue;value;manual" OrderedMapIterator out = null; OrderedMap in = newTreeBidiMapWithMapValue((String)source()); out = in.mapIterator(); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;IterableGet;true;mapIterator;;;MapValue of Argument[-1];MapValue of ReturnValue;value;manual" + // "org.apache.commons.collections4;IterableGet;true;mapIterator;;;MapValue of Argument[this];MapValue of ReturnValue;value;manual" MapIterator out = null; IterableGet in = newHashedMapWithMapValue((String)source()); out = in.mapIterator(); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;IterableGet;true;mapIterator;;;MapValue of Argument[-1];MapValue of ReturnValue;value;manual" + // "org.apache.commons.collections4;IterableGet;true;mapIterator;;;MapValue of Argument[this];MapValue of ReturnValue;value;manual" MapIterator out = null; AbstractIterableMap in = newMVMWithMapValue((String)source()); out = in.mapIterator(); @@ -2975,77 +2975,77 @@ public class Test { sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;MapIterator;true;getKey;;;Element of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4;MapIterator;true;getKey;;;Element of Argument[this];ReturnValue;value;manual" Object out = null; MapIterator in = newOMIWithElement((String)source()); out = in.getKey(); sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4;MapIterator;true;getValue;;;MapValue of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4;MapIterator;true;getValue;;;MapValue of Argument[this];ReturnValue;value;manual" Object out = null; MapIterator in = newOMIWithMapValue((String)source()); out = in.getValue(); sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4;MapIterator;true;setValue;;;Argument[0];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4;MapIterator;true;setValue;;;Argument[0];MapValue of Argument[this];value;manual" MapIterator out = null; Object in = source(); out.setValue(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;MapIterator;true;setValue;;;MapValue of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4;MapIterator;true;setValue;;;MapValue of Argument[this];ReturnValue;value;manual" Object out = null; MapIterator in = newOMIWithMapValue((String)source()); out = in.setValue(null); sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4;MultiMap;true;get;;;Element of MapValue of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4;MultiMap;true;get;;;Element of MapValue of Argument[this];Element of ReturnValue;value;manual" Collection out = null; MultiMap in = newMVMWithMapValue((String)source()); out = (Collection)in.get(null); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;MultiMap;true;put;;;Argument[0];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4;MultiMap;true;put;;;Argument[0];MapKey of Argument[this];value;manual" MultiValueMap out = null; Object in = source(); out.put(in, null); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;MultiMap;true;put;;;Argument[0];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4;MultiMap;true;put;;;Argument[0];MapKey of Argument[this];value;manual" MultiMap out = null; Object in = source(); out.put(in, null); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;MultiMap;true;put;;;Argument[1];Element of MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4;MultiMap;true;put;;;Argument[1];Element of MapValue of Argument[this];value;manual" MultiValueMap out = null; Object in = source(); out.put(null, in); sink(getElement((Collection)getMapValue(out))); // $ hasValueFlow } { - // "org.apache.commons.collections4;MultiMap;true;put;;;Argument[1];Element of MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4;MultiMap;true;put;;;Argument[1];Element of MapValue of Argument[this];value;manual" MultiMap out = null; Object in = source(); out.put(null, in); sink(getElement((Collection)getMapValue(out))); // $ hasValueFlow } { - // "org.apache.commons.collections4;MultiMap;true;values;;;Element of MapValue of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4;MultiMap;true;values;;;Element of MapValue of Argument[this];Element of ReturnValue;value;manual" Collection out = null; MultiValueMap in = newMVMWithMapValue((String)source()); out = in.values(); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;MultiMap;true;values;;;Element of MapValue of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4;MultiMap;true;values;;;Element of MapValue of Argument[this];Element of ReturnValue;value;manual" Collection out = null; MultiMap in = newMVMWithMapValue((String)source()); out = in.values(); @@ -3059,14 +3059,14 @@ public class Test { sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4;MultiValuedMap;true;entries;;;MapKey of Argument[-1];MapKey of Element of ReturnValue;value;manual" + // "org.apache.commons.collections4;MultiValuedMap;true;entries;;;MapKey of Argument[this];MapKey of Element of ReturnValue;value;manual" Collection<Map.Entry> out = null; MultiValuedMap in = newALVHMWithMapKey((String)source()); out = in.entries(); sink(getMapKeyFromEntry(getElement(out))); // $ hasValueFlow } { - // "org.apache.commons.collections4;MultiValuedMap;true;entries;;;Element of MapValue of Argument[-1];MapValue of Element of ReturnValue;value;manual" + // "org.apache.commons.collections4;MultiValuedMap;true;entries;;;Element of MapValue of Argument[this];MapValue of Element of ReturnValue;value;manual" Collection<Map.Entry> out = null; MultiValuedMap in = newALVHMWithMapValue((String)source()); out = in.entries(); @@ -3129,35 +3129,35 @@ public class Test { sink(getElement(getMapValue(out))); // $ hasValueFlow } { - // "org.apache.commons.collections4;MultiSet$Entry;true;getElement;;;Element of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4;MultiSet$Entry;true;getElement;;;Element of Argument[this];ReturnValue;value;manual" Object out = null; MultiSet.Entry in = newMultiSetEntryWithElement((String)source()); out = in.getElement(); sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4;MultiSet;true;add;;;Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4;MultiSet;true;add;;;Argument[0];Element of Argument[this];value;manual" MultiSet out = null; Object in = source(); out.add(in, 0); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;MultiSet;true;add;;;Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4;MultiSet;true;add;;;Argument[0];Element of Argument[this];value;manual" MultiSet out = null; Object in = source(); out.add(in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;MultiSet;true;entrySet;;;Element of Argument[-1];Element of Element of ReturnValue;value;manual" + // "org.apache.commons.collections4;MultiSet;true;entrySet;;;Element of Argument[this];Element of Element of ReturnValue;value;manual" Set<MultiSet.Entry> out = null; MultiSet in = newMultiSetWithElement((String)source()); out = in.entrySet(); sink(getElement(getElement(out))); // $ hasValueFlow } { - // "org.apache.commons.collections4;MultiSet;true;uniqueSet;;;Element of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4;MultiSet;true;uniqueSet;;;Element of Argument[this];Element of ReturnValue;value;manual" Set out = null; MultiSet in = newMultiSetWithElement((String)source()); out = in.uniqueSet(); @@ -3185,336 +3185,336 @@ public class Test { sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;MultiValuedMap;true;asMap;;;Element of MapValue of Argument[-1];Element of MapValue of ReturnValue;value;manual" + // "org.apache.commons.collections4;MultiValuedMap;true;asMap;;;Element of MapValue of Argument[this];Element of MapValue of ReturnValue;value;manual" Map out = null; MultiValuedMap in = newALVHMWithMapValue((String)source()); out = in.asMap(); sink(getElement((Collection)getMapValue(out))); // $ hasValueFlow } { - // "org.apache.commons.collections4;MultiValuedMap;true;asMap;;;MapKey of Argument[-1];MapKey of ReturnValue;value;manual" + // "org.apache.commons.collections4;MultiValuedMap;true;asMap;;;MapKey of Argument[this];MapKey of ReturnValue;value;manual" Map out = null; MultiValuedMap in = newALVHMWithMapKey((String)source()); out = in.asMap(); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;MultiValuedMap;true;get;;;Element of MapValue of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4;MultiValuedMap;true;get;;;Element of MapValue of Argument[this];Element of ReturnValue;value;manual" Set out = null; SetValuedMap in = newHSVHMWithMapValue((String)source()); out = in.get(null); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;MultiValuedMap;true;get;;;Element of MapValue of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4;MultiValuedMap;true;get;;;Element of MapValue of Argument[this];Element of ReturnValue;value;manual" List out = null; ListValuedMap in = newALVHMWithMapValue((String)source()); out = in.get(null); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;MultiValuedMap;true;get;;;Element of MapValue of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4;MultiValuedMap;true;get;;;Element of MapValue of Argument[this];Element of ReturnValue;value;manual" Collection out = null; MultiValuedMap in = newALVHMWithMapValue((String)source()); out = in.get(null); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;MultiValuedMap;true;keySet;;;MapKey of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4;MultiValuedMap;true;keySet;;;MapKey of Argument[this];Element of ReturnValue;value;manual" Set out = null; MultiValuedMap in = newALVHMWithMapKey((String)source()); out = in.keySet(); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;MultiValuedMap;true;keys;;;MapKey of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4;MultiValuedMap;true;keys;;;MapKey of Argument[this];Element of ReturnValue;value;manual" MultiSet out = null; MultiValuedMap in = newALVHMWithMapKey((String)source()); out = in.keys(); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;MultiValuedMap;true;mapIterator;;;Element of MapValue of Argument[-1];MapValue of ReturnValue;value;manual" + // "org.apache.commons.collections4;MultiValuedMap;true;mapIterator;;;Element of MapValue of Argument[this];MapValue of ReturnValue;value;manual" MapIterator out = null; MultiValuedMap in = newALVHMWithMapValue((String)source()); out = in.mapIterator(); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;MultiValuedMap;true;mapIterator;;;MapKey of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4;MultiValuedMap;true;mapIterator;;;MapKey of Argument[this];Element of ReturnValue;value;manual" MapIterator out = null; MultiValuedMap in = newALVHMWithMapKey((String)source()); out = in.mapIterator(); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;MultiValuedMap;true;put;;;Argument[0];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4;MultiValuedMap;true;put;;;Argument[0];MapKey of Argument[this];value;manual" MultiValuedMap out = null; Object in = source(); out.put(in, null); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;MultiValuedMap;true;put;;;Argument[1];Element of MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4;MultiValuedMap;true;put;;;Argument[1];Element of MapValue of Argument[this];value;manual" MultiValuedMap out = null; Object in = source(); out.put(null, in); sink(getElement(getMapValue(out))); // $ hasValueFlow } { - // "org.apache.commons.collections4;MultiValuedMap;true;putAll;(Map);;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4;MultiValuedMap;true;putAll;(Map);;MapKey of Argument[0];MapKey of Argument[this];value;manual" MultiValuedMap out = null; Map in = newTreeMapWithMapKey((String)source()); out.putAll(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;MultiValuedMap;true;putAll;(Map);;MapValue of Argument[0];Element of MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4;MultiValuedMap;true;putAll;(Map);;MapValue of Argument[0];Element of MapValue of Argument[this];value;manual" MultiValuedMap out = null; Map in = newTreeMapWithMapValue((String)source()); out.putAll(in); sink(getElement(getMapValue(out))); // $ hasValueFlow } { - // "org.apache.commons.collections4;MultiValuedMap;true;putAll;(MultiValuedMap);;Element of MapValue of Argument[0];Element of MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4;MultiValuedMap;true;putAll;(MultiValuedMap);;Element of MapValue of Argument[0];Element of MapValue of Argument[this];value;manual" MultiValuedMap out = null; MultiValuedMap in = newALVHMWithMapValue((String)source()); out.putAll(in); sink(getElement(getMapValue(out))); // $ hasValueFlow } { - // "org.apache.commons.collections4;MultiValuedMap;true;putAll;(MultiValuedMap);;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4;MultiValuedMap;true;putAll;(MultiValuedMap);;MapKey of Argument[0];MapKey of Argument[this];value;manual" MultiValuedMap out = null; MultiValuedMap in = newALVHMWithMapKey((String)source()); out.putAll(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;MultiValuedMap;true;putAll;(Object,Iterable);;Argument[0];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4;MultiValuedMap;true;putAll;(Object,Iterable);;Argument[0];MapKey of Argument[this];value;manual" MultiValuedMap out = null; Object in = source(); out.putAll(in, null); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;MultiValuedMap;true;putAll;(Object,Iterable);;Element of Argument[1];Element of MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4;MultiValuedMap;true;putAll;(Object,Iterable);;Element of Argument[1];Element of MapValue of Argument[this];value;manual" MultiValuedMap out = null; Iterable in = newFluentIterableWithElement((String)source()); out.putAll(null, in); sink(getElement(getMapValue(out))); // $ hasValueFlow } { - // "org.apache.commons.collections4;MultiValuedMap;true;remove;;;Element of MapValue of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4;MultiValuedMap;true;remove;;;Element of MapValue of Argument[this];Element of ReturnValue;value;manual" Set out = null; SetValuedMap in = newHSVHMWithMapValue((String)source()); out = in.remove(null); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;MultiValuedMap;true;remove;;;Element of MapValue of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4;MultiValuedMap;true;remove;;;Element of MapValue of Argument[this];Element of ReturnValue;value;manual" List out = null; ListValuedMap in = newALVHMWithMapValue((String)source()); out = in.remove(null); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;MultiValuedMap;true;remove;;;Element of MapValue of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4;MultiValuedMap;true;remove;;;Element of MapValue of Argument[this];Element of ReturnValue;value;manual" Collection out = null; MultiValuedMap in = newALVHMWithMapValue((String)source()); out = in.remove(null); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;MultiValuedMap;true;values;;;Element of MapValue of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4;MultiValuedMap;true;values;;;Element of MapValue of Argument[this];Element of ReturnValue;value;manual" Collection out = null; MultiValuedMap in = newALVHMWithMapValue((String)source()); out = in.values(); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;OrderedIterator;true;previous;;;Element of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4;OrderedIterator;true;previous;;;Element of Argument[this];ReturnValue;value;manual" Object out = null; OrderedMapIterator in = newOMIWithElement((String)source()); out = in.previous(); sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4;OrderedIterator;true;previous;;;Element of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4;OrderedIterator;true;previous;;;Element of Argument[this];ReturnValue;value;manual" Object out = null; OrderedIterator in = newOMIWithElement((String)source()); out = in.previous(); sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4;OrderedMap;true;firstKey;;;MapKey of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4;OrderedMap;true;firstKey;;;MapKey of Argument[this];ReturnValue;value;manual" Object out = null; OrderedMap in = newTreeBidiMapWithMapKey((String)source()); out = in.firstKey(); sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4;OrderedMap;true;lastKey;;;MapKey of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4;OrderedMap;true;lastKey;;;MapKey of Argument[this];ReturnValue;value;manual" Object out = null; OrderedMap in = newTreeBidiMapWithMapKey((String)source()); out = in.lastKey(); sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4;OrderedMap;true;nextKey;;;MapKey of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4;OrderedMap;true;nextKey;;;MapKey of Argument[this];ReturnValue;value;manual" Object out = null; OrderedMap in = newTreeBidiMapWithMapKey((String)source()); out = in.nextKey(null); sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4;OrderedMap;true;previousKey;;;MapKey of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4;OrderedMap;true;previousKey;;;MapKey of Argument[this];ReturnValue;value;manual" Object out = null; OrderedMap in = newTreeBidiMapWithMapKey((String)source()); out = in.previousKey(null); sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4;Put;true;put;;;Argument[0];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4;Put;true;put;;;Argument[0];MapKey of Argument[this];value;manual" Put out = null; Object in = source(); out.put(in, null); sink(getMapKeyFromPut(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;Put;true;put;;;Argument[0];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4;Put;true;put;;;Argument[0];MapKey of Argument[this];value;manual" MultiValueMap out = null; Object in = source(); out.put(in, null); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;Put;true;put;;;Argument[0];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4;Put;true;put;;;Argument[0];MapKey of Argument[this];value;manual" MultiMap out = null; Object in = source(); out.put(in, null); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;Put;true;put;;;Argument[0];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4;Put;true;put;;;Argument[0];MapKey of Argument[this];value;manual" BidiMap out = null; Object in = source(); out.put(in, null); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;Put;true;put;;;Argument[0];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4;Put;true;put;;;Argument[0];MapKey of Argument[this];value;manual" AbstractMapDecorator out = null; Object in = source(); out.put(in, null); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;Put;true;put;;;Argument[1];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4;Put;true;put;;;Argument[1];MapValue of Argument[this];value;manual" Put out = null; Object in = source(); out.put(null, in); sink(getMapValueFromPut(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;Put;true;put;;;Argument[1];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4;Put;true;put;;;Argument[1];MapValue of Argument[this];value;manual" MultiValueMap out = null; Object in = source(); out.put(null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;Put;true;put;;;Argument[1];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4;Put;true;put;;;Argument[1];MapValue of Argument[this];value;manual" MultiMap out = null; Object in = source(); out.put(null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;Put;true;put;;;Argument[1];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4;Put;true;put;;;Argument[1];MapValue of Argument[this];value;manual" BidiMap out = null; Object in = source(); out.put(null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;Put;true;put;;;Argument[1];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4;Put;true;put;;;Argument[1];MapValue of Argument[this];value;manual" AbstractMapDecorator out = null; Object in = source(); out.put(null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;Put;true;put;;;MapValue of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4;Put;true;put;;;MapValue of Argument[this];ReturnValue;value;manual" Object out = null; Put in = newHashedMapWithMapValue((String)source()); out = in.put(null, null); sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4;Put;true;put;;;MapValue of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4;Put;true;put;;;MapValue of Argument[this];ReturnValue;value;manual" Object out = null; MultiValueMap in = newMVMWithMapValue((String)source()); out = in.put(null, null); sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4;Put;true;put;;;MapValue of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4;Put;true;put;;;MapValue of Argument[this];ReturnValue;value;manual" Object out = null; MultiMap in = newMVMWithMapValue((String)source()); out = in.put(null, null); sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4;Put;true;put;;;MapValue of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4;Put;true;put;;;MapValue of Argument[this];ReturnValue;value;manual" Object out = null; BidiMap in = newTreeBidiMapWithMapValue((String)source()); out = in.put(null, null); sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4;Put;true;put;;;MapValue of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4;Put;true;put;;;MapValue of Argument[this];ReturnValue;value;manual" Object out = null; AbstractMapDecorator in = newMVMWithMapValue((String)source()); out = in.put(null, null); sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4;Put;true;putAll;(Map);;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4;Put;true;putAll;(Map);;MapKey of Argument[0];MapKey of Argument[this];value;manual" Put out = null; Map in = newTreeMapWithMapKey((String)source()); out.putAll(in); sink(getMapKeyFromPut(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;Put;true;putAll;(Map);;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4;Put;true;putAll;(Map);;MapKey of Argument[0];MapKey of Argument[this];value;manual" MultiValueMap out = null; Map in = newTreeMapWithMapKey((String)source()); out.putAll(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;Put;true;putAll;(Map);;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4;Put;true;putAll;(Map);;MapKey of Argument[0];MapKey of Argument[this];value;manual" AbstractMapDecorator out = null; Map in = newTreeMapWithMapKey((String)source()); out.putAll(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;Put;true;putAll;(Map);;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4;Put;true;putAll;(Map);;MapValue of Argument[0];MapValue of Argument[this];value;manual" Put out = null; Map in = newTreeMapWithMapValue((String)source()); out.putAll(in); sink(getMapValueFromPut(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;Put;true;putAll;(Map);;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4;Put;true;putAll;(Map);;MapValue of Argument[0];MapValue of Argument[this];value;manual" MultiValueMap out = null; Map in = newTreeMapWithMapValue((String)source()); out.putAll(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;Put;true;putAll;(Map);;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4;Put;true;putAll;(Map);;MapValue of Argument[0];MapValue of Argument[this];value;manual" AbstractMapDecorator out = null; Map in = newTreeMapWithMapValue((String)source()); out.putAll(in); @@ -3549,21 +3549,21 @@ public class Test { sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;SetUtils$SetView;true;copyInto;;;Element of Argument[-1];Element of Argument[0];value;manual" + // "org.apache.commons.collections4;SetUtils$SetView;true;copyInto;;;Element of Argument[this];Element of Argument[0];value;manual" Set out = null; SetUtils.SetView in = newSetViewWithElement((String)source()); in.copyInto(out); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;SetUtils$SetView;true;createIterator;;;Element of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4;SetUtils$SetView;true;createIterator;;;Element of Argument[this];Element of ReturnValue;value;manual" Iterator out = null; MySetView in = newSetViewWithElement((String)source()); out = in.myCreateIterator(); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;SetUtils$SetView;true;toSet;;;Element of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4;SetUtils$SetView;true;toSet;;;Element of Argument[this];Element of ReturnValue;value;manual" Set out = null; MySetView in = newSetViewWithElement((String)source()); out = in.toSet(); @@ -3724,14 +3724,14 @@ public class Test { sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;SortedBag;true;first;;;Element of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4;SortedBag;true;first;;;Element of Argument[this];ReturnValue;value;manual" Object out = null; SortedBag in = newTreeBagWithElement((String)source()); out = in.first(); sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4;SortedBag;true;last;;;Element of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4;SortedBag;true;last;;;Element of Argument[this];ReturnValue;value;manual" Object out = null; SortedBag in = newTreeBagWithElement((String)source()); out = in.last(); @@ -3766,14 +3766,14 @@ public class Test { sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;Trie;true;prefixMap;;;MapKey of Argument[-1];MapKey of ReturnValue;value;manual" + // "org.apache.commons.collections4;Trie;true;prefixMap;;;MapKey of Argument[this];MapKey of ReturnValue;value;manual" SortedMap out = null; Trie in = newPatriciaTrieWithMapKey((String)source()); out = in.prefixMap(null); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4;Trie;true;prefixMap;;;MapValue of Argument[-1];MapValue of ReturnValue;value;manual" + // "org.apache.commons.collections4;Trie;true;prefixMap;;;MapValue of Argument[this];MapValue of ReturnValue;value;manual" SortedMap out = null; Trie in = newPatriciaTrieWithMapValue((String)source()); out = in.prefixMap(null); @@ -3794,35 +3794,35 @@ public class Test { sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.bag;AbstractBagDecorator;true;AbstractBagDecorator;;;Element of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.bag;AbstractBagDecorator;true;AbstractBagDecorator;;;Element of Argument[0];Element of Argument[this];value;manual" AbstractBagDecorator out = null; Bag in = newTreeBagWithElement((String)source()); out = new MyAbstractBagDecorator(in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.bag;AbstractMapBag;true;AbstractMapBag;;;MapKey of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.bag;AbstractMapBag;true;AbstractMapBag;;;MapKey of Argument[0];Element of Argument[this];value;manual" AbstractMapBag out = null; Map in = Map.of((String)source(), null); out = new MyAbstractMapBag(in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.bag;AbstractMapBag;true;getMap;;;Element of Argument[-1];MapKey of ReturnValue;value;manual" + // "org.apache.commons.collections4.bag;AbstractMapBag;true;getMap;;;Element of Argument[this];MapKey of ReturnValue;value;manual" Map out = null; MyAbstractMapBag in = new MyAbstractMapBag(Map.of((String)source(), null)); out = in.myGetMap(); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.bag;AbstractSortedBagDecorator;true;AbstractSortedBagDecorator;;;Element of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.bag;AbstractSortedBagDecorator;true;AbstractSortedBagDecorator;;;Element of Argument[0];Element of Argument[this];value;manual" AbstractSortedBagDecorator out = null; SortedBag in = newTreeBagWithElement((String)source()); out = new MyAbstractSortedBagDecorator(in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.bag;CollectionBag;true;CollectionBag;;;Element of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.bag;CollectionBag;true;CollectionBag;;;Element of Argument[0];Element of Argument[this];value;manual" CollectionBag out = null; Bag in = newTreeBagWithElement((String)source()); out = new CollectionBag(in); @@ -3836,7 +3836,7 @@ public class Test { sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.bag;CollectionSortedBag;true;CollectionSortedBag;;;Element of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.bag;CollectionSortedBag;true;CollectionSortedBag;;;Element of Argument[0];Element of Argument[this];value;manual" CollectionSortedBag out = null; SortedBag in = newTreeBagWithElement((String)source()); out = new CollectionSortedBag(in); @@ -3850,7 +3850,7 @@ public class Test { sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.bag;HashBag;true;HashBag;;;Element of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.bag;HashBag;true;HashBag;;;Element of Argument[0];Element of Argument[this];value;manual" HashBag out = null; Collection in = newTreeBagWithElement((String)source()); out = new HashBag(in); @@ -3899,7 +3899,7 @@ public class Test { sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.bag;TreeBag;true;TreeBag;(Collection);;Element of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.bag;TreeBag;true;TreeBag;(Collection);;Element of Argument[0];Element of Argument[this];value;manual" TreeBag out = null; Collection in = newTreeBagWithElement((String)source()); out = new TreeBag(in); @@ -3920,168 +3920,168 @@ public class Test { sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.bidimap;AbstractBidiMapDecorator;true;AbstractBidiMapDecorator;;;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.bidimap;AbstractBidiMapDecorator;true;AbstractBidiMapDecorator;;;MapKey of Argument[0];MapKey of Argument[this];value;manual" AbstractBidiMapDecorator out = null; BidiMap in = newDualTreeBidiMapWithMapKey((String)source()); out = new MyAbstractBidiMapDecorator(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.bidimap;AbstractBidiMapDecorator;true;AbstractBidiMapDecorator;;;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.bidimap;AbstractBidiMapDecorator;true;AbstractBidiMapDecorator;;;MapValue of Argument[0];MapValue of Argument[this];value;manual" AbstractBidiMapDecorator out = null; BidiMap in = newDualTreeBidiMapWithMapValue((String)source()); out = new MyAbstractBidiMapDecorator(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.bidimap;AbstractDualBidiMap;true;AbstractDualBidiMap;;;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.bidimap;AbstractDualBidiMap;true;AbstractDualBidiMap;;;MapKey of Argument[0];MapKey of Argument[this];value;manual" AbstractDualBidiMap out = null; BidiMap in = newDualTreeBidiMapWithMapKey((String)source()); out = new MyAbstractDualBidiMap(in, null, null); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.bidimap;AbstractDualBidiMap;true;AbstractDualBidiMap;;;MapKey of Argument[1];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.bidimap;AbstractDualBidiMap;true;AbstractDualBidiMap;;;MapKey of Argument[1];MapValue of Argument[this];value;manual" AbstractDualBidiMap out = null; BidiMap in = newDualTreeBidiMapWithMapKey((String)source()); out = new MyAbstractDualBidiMap(null, in, null); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.bidimap;AbstractDualBidiMap;true;AbstractDualBidiMap;;;MapKey of Argument[2];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.bidimap;AbstractDualBidiMap;true;AbstractDualBidiMap;;;MapKey of Argument[2];MapValue of Argument[this];value;manual" AbstractDualBidiMap out = null; BidiMap in = newDualTreeBidiMapWithMapKey((String)source()); out = new MyAbstractDualBidiMap(null, null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.bidimap;AbstractDualBidiMap;true;AbstractDualBidiMap;;;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.bidimap;AbstractDualBidiMap;true;AbstractDualBidiMap;;;MapValue of Argument[0];MapValue of Argument[this];value;manual" AbstractDualBidiMap out = null; BidiMap in = newDualTreeBidiMapWithMapValue((String)source()); out = new MyAbstractDualBidiMap(in, null, null); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.bidimap;AbstractDualBidiMap;true;AbstractDualBidiMap;;;MapValue of Argument[1];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.bidimap;AbstractDualBidiMap;true;AbstractDualBidiMap;;;MapValue of Argument[1];MapKey of Argument[this];value;manual" AbstractDualBidiMap out = null; BidiMap in = newDualTreeBidiMapWithMapValue((String)source()); out = new MyAbstractDualBidiMap(null, in, null); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.bidimap;AbstractDualBidiMap;true;AbstractDualBidiMap;;;MapValue of Argument[2];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.bidimap;AbstractDualBidiMap;true;AbstractDualBidiMap;;;MapValue of Argument[2];MapKey of Argument[this];value;manual" AbstractDualBidiMap out = null; BidiMap in = newDualTreeBidiMapWithMapValue((String)source()); out = new MyAbstractDualBidiMap(null, null, in); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.bidimap;AbstractOrderedBidiMapDecorator;true;AbstractOrderedBidiMapDecorator;;;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.bidimap;AbstractOrderedBidiMapDecorator;true;AbstractOrderedBidiMapDecorator;;;MapKey of Argument[0];MapKey of Argument[this];value;manual" AbstractOrderedBidiMapDecorator out = null; OrderedBidiMap in = newDualTreeBidiMapWithMapKey((String)source()); out = new MyAbstractOrderedBidiMapDecorator(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.bidimap;AbstractOrderedBidiMapDecorator;true;AbstractOrderedBidiMapDecorator;;;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.bidimap;AbstractOrderedBidiMapDecorator;true;AbstractOrderedBidiMapDecorator;;;MapValue of Argument[0];MapValue of Argument[this];value;manual" AbstractOrderedBidiMapDecorator out = null; OrderedBidiMap in = newDualTreeBidiMapWithMapValue((String)source()); out = new MyAbstractOrderedBidiMapDecorator(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.bidimap;AbstractSortedBidiMapDecorator;true;AbstractSortedBidiMapDecorator;;;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.bidimap;AbstractSortedBidiMapDecorator;true;AbstractSortedBidiMapDecorator;;;MapKey of Argument[0];MapKey of Argument[this];value;manual" AbstractSortedBidiMapDecorator out = null; SortedBidiMap in = newDualTreeBidiMapWithMapKey((String)source()); out = new MyAbstractSortedBidiMapDecorator(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.bidimap;AbstractSortedBidiMapDecorator;true;AbstractSortedBidiMapDecorator;;;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.bidimap;AbstractSortedBidiMapDecorator;true;AbstractSortedBidiMapDecorator;;;MapValue of Argument[0];MapValue of Argument[this];value;manual" AbstractSortedBidiMapDecorator out = null; SortedBidiMap in = newDualTreeBidiMapWithMapValue((String)source()); out = new MyAbstractSortedBidiMapDecorator(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.bidimap;DualHashBidiMap;true;DualHashBidiMap;(Map);;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.bidimap;DualHashBidiMap;true;DualHashBidiMap;(Map);;MapKey of Argument[0];MapKey of Argument[this];value;manual" DualHashBidiMap out = null; Map in = Map.of((String)source(), null); out = new DualHashBidiMap(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.bidimap;DualHashBidiMap;true;DualHashBidiMap;(Map);;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.bidimap;DualHashBidiMap;true;DualHashBidiMap;(Map);;MapValue of Argument[0];MapValue of Argument[this];value;manual" DualHashBidiMap out = null; Map in = Map.of(null, (String)source()); out = new DualHashBidiMap(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.bidimap;DualLinkedHashBidiMap;true;DualLinkedHashBidiMap;(Map);;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.bidimap;DualLinkedHashBidiMap;true;DualLinkedHashBidiMap;(Map);;MapKey of Argument[0];MapKey of Argument[this];value;manual" DualLinkedHashBidiMap out = null; Map in = Map.of((String)source(), null); out = new DualLinkedHashBidiMap(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.bidimap;DualLinkedHashBidiMap;true;DualLinkedHashBidiMap;(Map);;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.bidimap;DualLinkedHashBidiMap;true;DualLinkedHashBidiMap;(Map);;MapValue of Argument[0];MapValue of Argument[this];value;manual" DualLinkedHashBidiMap out = null; Map in = Map.of(null, (String)source()); out = new DualLinkedHashBidiMap(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.bidimap;DualTreeBidiMap;true;DualTreeBidiMap;(Map);;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.bidimap;DualTreeBidiMap;true;DualTreeBidiMap;(Map);;MapKey of Argument[0];MapKey of Argument[this];value;manual" DualTreeBidiMap out = null; Map in = Map.of((String)source(), null); out = new DualTreeBidiMap(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.bidimap;DualTreeBidiMap;true;DualTreeBidiMap;(Map);;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.bidimap;DualTreeBidiMap;true;DualTreeBidiMap;(Map);;MapValue of Argument[0];MapValue of Argument[this];value;manual" DualTreeBidiMap out = null; Map in = Map.of(null, (String)source()); out = new DualTreeBidiMap(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.bidimap;DualTreeBidiMap;true;inverseOrderedBidiMap;;;MapKey of Argument[-1];MapValue of ReturnValue;value;manual" + // "org.apache.commons.collections4.bidimap;DualTreeBidiMap;true;inverseOrderedBidiMap;;;MapKey of Argument[this];MapValue of ReturnValue;value;manual" OrderedBidiMap out = null; DualTreeBidiMap in = newDualTreeBidiMapWithMapKey((String)source()); out = in.inverseOrderedBidiMap(); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.bidimap;DualTreeBidiMap;true;inverseOrderedBidiMap;;;MapValue of Argument[-1];MapKey of ReturnValue;value;manual" + // "org.apache.commons.collections4.bidimap;DualTreeBidiMap;true;inverseOrderedBidiMap;;;MapValue of Argument[this];MapKey of ReturnValue;value;manual" OrderedBidiMap out = null; DualTreeBidiMap in = newDualTreeBidiMapWithMapValue((String)source()); out = in.inverseOrderedBidiMap(); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.bidimap;DualTreeBidiMap;true;inverseSortedBidiMap;;;MapKey of Argument[-1];MapValue of ReturnValue;value;manual" + // "org.apache.commons.collections4.bidimap;DualTreeBidiMap;true;inverseSortedBidiMap;;;MapKey of Argument[this];MapValue of ReturnValue;value;manual" SortedBidiMap out = null; DualTreeBidiMap in = newDualTreeBidiMapWithMapKey((String)source()); out = in.inverseSortedBidiMap(); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.bidimap;DualTreeBidiMap;true;inverseSortedBidiMap;;;MapValue of Argument[-1];MapKey of ReturnValue;value;manual" + // "org.apache.commons.collections4.bidimap;DualTreeBidiMap;true;inverseSortedBidiMap;;;MapValue of Argument[this];MapKey of ReturnValue;value;manual" SortedBidiMap out = null; DualTreeBidiMap in = newDualTreeBidiMapWithMapValue((String)source()); out = in.inverseSortedBidiMap(); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.bidimap;TreeBidiMap;true;TreeBidiMap;;;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.bidimap;TreeBidiMap;true;TreeBidiMap;;;MapKey of Argument[0];MapKey of Argument[this];value;manual" TreeBidiMap out = null; Map in = Map.of((String)source(), null); out = new TreeBidiMap(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.bidimap;TreeBidiMap;true;TreeBidiMap;;;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.bidimap;TreeBidiMap;true;TreeBidiMap;;;MapValue of Argument[0];MapValue of Argument[this];value;manual" TreeBidiMap out = null; Map in = Map.of(null, (String)source()); out = new TreeBidiMap(in); @@ -4102,14 +4102,14 @@ public class Test { sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.bidimap;UnmodifiableOrderedBidiMap;true;inverseOrderedBidiMap;;;MapKey of Argument[-1];MapValue of ReturnValue;value;manual" + // "org.apache.commons.collections4.bidimap;UnmodifiableOrderedBidiMap;true;inverseOrderedBidiMap;;;MapKey of Argument[this];MapValue of ReturnValue;value;manual" OrderedBidiMap out = null; UnmodifiableOrderedBidiMap in = (UnmodifiableOrderedBidiMap)UnmodifiableOrderedBidiMap.unmodifiableOrderedBidiMap(newDualTreeBidiMapWithMapKey((String)source())); out = in.inverseOrderedBidiMap(); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.bidimap;UnmodifiableOrderedBidiMap;true;inverseOrderedBidiMap;;;MapValue of Argument[-1];MapKey of ReturnValue;value;manual" + // "org.apache.commons.collections4.bidimap;UnmodifiableOrderedBidiMap;true;inverseOrderedBidiMap;;;MapValue of Argument[this];MapKey of ReturnValue;value;manual" OrderedBidiMap out = null; UnmodifiableOrderedBidiMap in = (UnmodifiableOrderedBidiMap)UnmodifiableOrderedBidiMap.unmodifiableOrderedBidiMap(newDualTreeBidiMapWithMapValue((String)source())); out = in.inverseOrderedBidiMap(); @@ -4144,21 +4144,21 @@ public class Test { sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.collection;AbstractCollectionDecorator;true;AbstractCollectionDecorator;;;Element of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.collection;AbstractCollectionDecorator;true;AbstractCollectionDecorator;;;Element of Argument[0];Element of Argument[this];value;manual" AbstractCollectionDecorator out = null; Collection in = newTreeBagWithElement((String)source()); out = new MyAbstractCollectionDecorator(in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.collection;AbstractCollectionDecorator;true;decorated;;;Element of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4.collection;AbstractCollectionDecorator;true;decorated;;;Element of Argument[this];Element of ReturnValue;value;manual" Collection out = null; MyAbstractCollectionDecorator in = new MyAbstractCollectionDecorator(newTreeBagWithElement((String)source())); out = in.myDecorated(); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.collection;AbstractCollectionDecorator;true;setCollection;;;Element of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.collection;AbstractCollectionDecorator;true;setCollection;;;Element of Argument[0];Element of Argument[this];value;manual" MyAbstractCollectionDecorator out = null; Collection in = newTreeBagWithElement((String)source()); out.mySetCollection(in); @@ -4197,84 +4197,84 @@ public class Test { sink(getElement(getElement(out))); // $ hasValueFlow } { - // "org.apache.commons.collections4.collection;CompositeCollection;true;CompositeCollection;(Collection);;Element of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.collection;CompositeCollection;true;CompositeCollection;(Collection);;Element of Argument[0];Element of Argument[this];value;manual" CompositeCollection out = null; Collection in = newTreeBagWithElement((String)source()); out = new CompositeCollection(in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.collection;CompositeCollection;true;CompositeCollection;(Collection,Collection);;Element of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.collection;CompositeCollection;true;CompositeCollection;(Collection,Collection);;Element of Argument[0];Element of Argument[this];value;manual" CompositeCollection out = null; Collection in = newTreeBagWithElement((String)source()); out = new CompositeCollection(in, null); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.collection;CompositeCollection;true;CompositeCollection;(Collection,Collection);;Element of Argument[1];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.collection;CompositeCollection;true;CompositeCollection;(Collection,Collection);;Element of Argument[1];Element of Argument[this];value;manual" CompositeCollection out = null; Collection in = newTreeBagWithElement((String)source()); out = new CompositeCollection(null, in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.collection;CompositeCollection;true;CompositeCollection;(Collection[]);;Element of ArrayElement of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.collection;CompositeCollection;true;CompositeCollection;(Collection[]);;Element of ArrayElement of Argument[0];Element of Argument[this];value;manual" CompositeCollection out = null; Collection[] in = new Collection[]{newTreeBagWithElement((String)source())}; out = new CompositeCollection(in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.collection;CompositeCollection;true;addComposited;(Collection);;Element of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.collection;CompositeCollection;true;addComposited;(Collection);;Element of Argument[0];Element of Argument[this];value;manual" CompositeCollection out = null; Collection in = newTreeBagWithElement((String)source()); out.addComposited(in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.collection;CompositeCollection;true;addComposited;(Collection,Collection);;Element of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.collection;CompositeCollection;true;addComposited;(Collection,Collection);;Element of Argument[0];Element of Argument[this];value;manual" CompositeCollection out = null; Collection in = newTreeBagWithElement((String)source()); out.addComposited(in, null); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.collection;CompositeCollection;true;addComposited;(Collection,Collection);;Element of Argument[1];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.collection;CompositeCollection;true;addComposited;(Collection,Collection);;Element of Argument[1];Element of Argument[this];value;manual" CompositeCollection out = null; Collection in = newTreeBagWithElement((String)source()); out.addComposited(null, in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.collection;CompositeCollection;true;addComposited;(Collection[]);;Element of ArrayElement of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.collection;CompositeCollection;true;addComposited;(Collection[]);;Element of ArrayElement of Argument[0];Element of Argument[this];value;manual" CompositeCollection out = null; Collection[] in = new Collection[]{newTreeBagWithElement((String)source())}; out.addComposited(in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.collection;CompositeCollection;true;getCollections;;;Element of Argument[-1];Element of Element of ReturnValue;value;manual" + // "org.apache.commons.collections4.collection;CompositeCollection;true;getCollections;;;Element of Argument[this];Element of Element of ReturnValue;value;manual" List<Collection> out = null; CompositeCollection in = new CompositeCollection(newTreeBagWithElement((String)source())); out = in.getCollections(); sink(getElement(getElement(out))); // $ hasValueFlow } { - // "org.apache.commons.collections4.collection;CompositeCollection;true;toCollection;;;Element of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4.collection;CompositeCollection;true;toCollection;;;Element of Argument[this];Element of ReturnValue;value;manual" Collection out = null; CompositeCollection in = new CompositeCollection(newTreeBagWithElement((String)source())); out = in.toCollection(); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.collection;IndexedCollection;true;IndexedCollection;;;Element of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.collection;IndexedCollection;true;IndexedCollection;;;Element of Argument[0];Element of Argument[this];value;manual" IndexedCollection out = null; Collection in = newTreeBagWithElement((String)source()); out = new IndexedCollection(in, null, null, false); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.collection;IndexedCollection;true;get;;;Element of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4.collection;IndexedCollection;true;get;;;Element of Argument[this];ReturnValue;value;manual" Object out = null; IndexedCollection in = new IndexedCollection(newTreeBagWithElement((String)source()), null, null, false); out = in.get(null); @@ -4295,35 +4295,35 @@ public class Test { sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.collection;IndexedCollection;true;values;;;Element of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4.collection;IndexedCollection;true;values;;;Element of Argument[this];Element of ReturnValue;value;manual" Collection out = null; IndexedCollection in = new IndexedCollection(newTreeBagWithElement((String)source()), null, null, false); out = in.values(null); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.collection;PredicatedCollection$Builder;true;add;;;Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.collection;PredicatedCollection$Builder;true;add;;;Argument[0];Element of Argument[this];value;manual" PredicatedCollection.Builder out = null; Object in = (String)source(); out.add(in); sink(getElement(out.createPredicatedList())); // $ hasValueFlow } { - // "org.apache.commons.collections4.collection;PredicatedCollection$Builder;true;addAll;;;Element of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.collection;PredicatedCollection$Builder;true;addAll;;;Element of Argument[0];Element of Argument[this];value;manual" PredicatedCollection.Builder out = null; Collection in = List.of((String)source()); out.addAll(in); sink(getElement(out.createPredicatedList())); // $ hasValueFlow } { - // "org.apache.commons.collections4.collection;PredicatedCollection$Builder;true;createPredicatedBag;;;Element of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4.collection;PredicatedCollection$Builder;true;createPredicatedBag;;;Element of Argument[this];Element of ReturnValue;value;manual" Bag out = null; PredicatedCollection.Builder in = newPredicatedCollectionBuilderWithElement((String)source()); out = in.createPredicatedBag(null); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.collection;PredicatedCollection$Builder;true;createPredicatedBag;;;Element of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4.collection;PredicatedCollection$Builder;true;createPredicatedBag;;;Element of Argument[this];Element of ReturnValue;value;manual" Bag out = null; PredicatedCollection.Builder in = newPredicatedCollectionBuilderWithElement((String)source()); out = in.createPredicatedBag(); @@ -4338,14 +4338,14 @@ public class Test { sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.collection;PredicatedCollection$Builder;true;createPredicatedList;;;Element of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4.collection;PredicatedCollection$Builder;true;createPredicatedList;;;Element of Argument[this];Element of ReturnValue;value;manual" List out = null; PredicatedCollection.Builder in = newPredicatedCollectionBuilderWithElement((String)source()); out = in.createPredicatedList(null); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.collection;PredicatedCollection$Builder;true;createPredicatedList;;;Element of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4.collection;PredicatedCollection$Builder;true;createPredicatedList;;;Element of Argument[this];Element of ReturnValue;value;manual" List out = null; PredicatedCollection.Builder in = newPredicatedCollectionBuilderWithElement((String)source()); out = in.createPredicatedList(); @@ -4360,14 +4360,14 @@ public class Test { sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.collection;PredicatedCollection$Builder;true;createPredicatedMultiSet;;;Element of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4.collection;PredicatedCollection$Builder;true;createPredicatedMultiSet;;;Element of Argument[this];Element of ReturnValue;value;manual" MultiSet out = null; PredicatedCollection.Builder in = newPredicatedCollectionBuilderWithElement((String)source()); out = in.createPredicatedMultiSet(null); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.collection;PredicatedCollection$Builder;true;createPredicatedMultiSet;;;Element of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4.collection;PredicatedCollection$Builder;true;createPredicatedMultiSet;;;Element of Argument[this];Element of ReturnValue;value;manual" MultiSet out = null; PredicatedCollection.Builder in = newPredicatedCollectionBuilderWithElement((String)source()); out = in.createPredicatedMultiSet(); @@ -4382,14 +4382,14 @@ public class Test { sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.collection;PredicatedCollection$Builder;true;createPredicatedQueue;;;Element of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4.collection;PredicatedCollection$Builder;true;createPredicatedQueue;;;Element of Argument[this];Element of ReturnValue;value;manual" Queue out = null; PredicatedCollection.Builder in = newPredicatedCollectionBuilderWithElement((String)source()); out = in.createPredicatedQueue(null); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.collection;PredicatedCollection$Builder;true;createPredicatedQueue;;;Element of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4.collection;PredicatedCollection$Builder;true;createPredicatedQueue;;;Element of Argument[this];Element of ReturnValue;value;manual" Queue out = null; PredicatedCollection.Builder in = newPredicatedCollectionBuilderWithElement((String)source()); out = in.createPredicatedQueue(); @@ -4404,14 +4404,14 @@ public class Test { sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.collection;PredicatedCollection$Builder;true;createPredicatedSet;;;Element of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4.collection;PredicatedCollection$Builder;true;createPredicatedSet;;;Element of Argument[this];Element of ReturnValue;value;manual" Set out = null; PredicatedCollection.Builder in = newPredicatedCollectionBuilderWithElement((String)source()); out = in.createPredicatedSet(null); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.collection;PredicatedCollection$Builder;true;createPredicatedSet;;;Element of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4.collection;PredicatedCollection$Builder;true;createPredicatedSet;;;Element of Argument[this];Element of ReturnValue;value;manual" Set out = null; PredicatedCollection.Builder in = newPredicatedCollectionBuilderWithElement((String)source()); out = in.createPredicatedSet(); @@ -4426,7 +4426,7 @@ public class Test { sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.collection;PredicatedCollection$Builder;true;rejectedElements;;;Element of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4.collection;PredicatedCollection$Builder;true;rejectedElements;;;Element of Argument[this];Element of ReturnValue;value;manual" Collection out = null; PredicatedCollection.Builder in = newPredicatedCollectionBuilderWithElement((String)source()); out = in.rejectedElements(); @@ -4475,448 +4475,448 @@ public class Test { sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;AbstractIteratorDecorator;true;AbstractIteratorDecorator;;;Element of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.iterators;AbstractIteratorDecorator;true;AbstractIteratorDecorator;;;Element of Argument[0];Element of Argument[this];value;manual" AbstractIteratorDecorator out = null; Iterator in = newListIteratorWithElement((String)source()); out = new MyAbstractIteratorDecorator(in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;AbstractListIteratorDecorator;true;AbstractListIteratorDecorator;;;Element of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.iterators;AbstractListIteratorDecorator;true;AbstractListIteratorDecorator;;;Element of Argument[0];Element of Argument[this];value;manual" AbstractListIteratorDecorator out = null; ListIterator in = newListIteratorWithElement((String)source()); out = new MyAbstractListIteratorDecorator(in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;AbstractListIteratorDecorator;true;getListIterator;;;Element of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4.iterators;AbstractListIteratorDecorator;true;getListIterator;;;Element of Argument[this];Element of ReturnValue;value;manual" ListIterator out = null; MyAbstractListIteratorDecorator in = new MyAbstractListIteratorDecorator(newListIteratorWithElement((String)source())); out = in.myGetListIterator(); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;AbstractMapIteratorDecorator;true;AbstractMapIteratorDecorator;;;Element of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.iterators;AbstractMapIteratorDecorator;true;AbstractMapIteratorDecorator;;;Element of Argument[0];Element of Argument[this];value;manual" AbstractMapIteratorDecorator out = null; MapIterator in = newLinkedMapWithMapKey((String)source()).mapIterator(); out = new MyAbstractMapIteratorDecorator(in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;AbstractMapIteratorDecorator;true;AbstractMapIteratorDecorator;;;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.iterators;AbstractMapIteratorDecorator;true;AbstractMapIteratorDecorator;;;MapValue of Argument[0];MapValue of Argument[this];value;manual" AbstractMapIteratorDecorator out = null; MapIterator in = newLinkedMapWithMapValue((String)source()).mapIterator(); out = new MyAbstractMapIteratorDecorator(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;AbstractMapIteratorDecorator;true;getMapIterator;;;Element of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4.iterators;AbstractMapIteratorDecorator;true;getMapIterator;;;Element of Argument[this];Element of ReturnValue;value;manual" MapIterator out = null; MyAbstractMapIteratorDecorator in = new MyAbstractMapIteratorDecorator(newLinkedMapWithMapKey((String)source()).mapIterator()); out = in.myGetMapIterator(); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;AbstractMapIteratorDecorator;true;getMapIterator;;;MapValue of Argument[-1];MapValue of ReturnValue;value;manual" + // "org.apache.commons.collections4.iterators;AbstractMapIteratorDecorator;true;getMapIterator;;;MapValue of Argument[this];MapValue of ReturnValue;value;manual" MapIterator out = null; MyAbstractMapIteratorDecorator in = new MyAbstractMapIteratorDecorator(newLinkedMapWithMapValue((String)source()).mapIterator()); out = in.myGetMapIterator(); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;AbstractOrderedMapIteratorDecorator;true;AbstractOrderedMapIteratorDecorator;;;Element of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.iterators;AbstractOrderedMapIteratorDecorator;true;AbstractOrderedMapIteratorDecorator;;;Element of Argument[0];Element of Argument[this];value;manual" AbstractOrderedMapIteratorDecorator out = null; OrderedMapIterator in = newListOrderedMapWithMapKey((String)source()).mapIterator(); out = new MyAbstractOrderedMapIteratorDecorator(in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;AbstractOrderedMapIteratorDecorator;true;AbstractOrderedMapIteratorDecorator;;;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.iterators;AbstractOrderedMapIteratorDecorator;true;AbstractOrderedMapIteratorDecorator;;;MapValue of Argument[0];MapValue of Argument[this];value;manual" AbstractOrderedMapIteratorDecorator out = null; OrderedMapIterator in = newListOrderedMapWithMapValue((String)source()).mapIterator(); out = new MyAbstractOrderedMapIteratorDecorator(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;AbstractOrderedMapIteratorDecorator;true;getOrderedMapIterator;;;Element of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4.iterators;AbstractOrderedMapIteratorDecorator;true;getOrderedMapIterator;;;Element of Argument[this];Element of ReturnValue;value;manual" OrderedMapIterator out = null; MyAbstractOrderedMapIteratorDecorator in = new MyAbstractOrderedMapIteratorDecorator(newListOrderedMapWithMapKey((String)source()).mapIterator()); out = in.myGetOrderedMapIterator(); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;AbstractOrderedMapIteratorDecorator;true;getOrderedMapIterator;;;MapValue of Argument[-1];MapValue of ReturnValue;value;manual" + // "org.apache.commons.collections4.iterators;AbstractOrderedMapIteratorDecorator;true;getOrderedMapIterator;;;MapValue of Argument[this];MapValue of ReturnValue;value;manual" OrderedMapIterator out = null; MyAbstractOrderedMapIteratorDecorator in = new MyAbstractOrderedMapIteratorDecorator(newListOrderedMapWithMapValue((String)source()).mapIterator()); out = in.myGetOrderedMapIterator(); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;AbstractUntypedIteratorDecorator;true;AbstractUntypedIteratorDecorator;;;Element of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.iterators;AbstractUntypedIteratorDecorator;true;AbstractUntypedIteratorDecorator;;;Element of Argument[0];Element of Argument[this];value;manual" AbstractUntypedIteratorDecorator out = null; Iterator in = newListIteratorWithElement((String)source()); out = new MyAbstractUntypedIteratorDecorator(in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;AbstractUntypedIteratorDecorator;true;getIterator;;;Element of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4.iterators;AbstractUntypedIteratorDecorator;true;getIterator;;;Element of Argument[this];Element of ReturnValue;value;manual" Iterator out = null; MyAbstractUntypedIteratorDecorator in = new MyAbstractUntypedIteratorDecorator(newListIteratorWithElement((String)source())); out = in.myGetIterator(); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;ArrayIterator;true;ArrayIterator;;;ArrayElement of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.iterators;ArrayIterator;true;ArrayIterator;;;ArrayElement of Argument[0];Element of Argument[this];value;manual" ArrayIterator out = null; Object in = (Object)newWithArrayElement((String)source()); out = new ArrayIterator(in, 0, 0); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;ArrayIterator;true;ArrayIterator;;;ArrayElement of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.iterators;ArrayIterator;true;ArrayIterator;;;ArrayElement of Argument[0];Element of Argument[this];value;manual" ArrayIterator out = null; Object in = (Object)newWithArrayElement((String)source()); out = new ArrayIterator(in, 0); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;ArrayIterator;true;ArrayIterator;;;ArrayElement of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.iterators;ArrayIterator;true;ArrayIterator;;;ArrayElement of Argument[0];Element of Argument[this];value;manual" ArrayIterator out = null; Object in = (Object)newWithArrayElement((String)source()); out = new ArrayIterator(in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;ArrayIterator;true;getArray;;;Element of Argument[-1];ArrayElement of ReturnValue;value;manual" + // "org.apache.commons.collections4.iterators;ArrayIterator;true;getArray;;;Element of Argument[this];ArrayElement of ReturnValue;value;manual" String[] out = null; ArrayIterator in = new ArrayIterator((Object)newWithArrayElement((String)source())); out = (String[])in.getArray(); sink(getArrayElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;ArrayListIterator;true;ArrayListIterator;;;ArrayElement of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.iterators;ArrayListIterator;true;ArrayListIterator;;;ArrayElement of Argument[0];Element of Argument[this];value;manual" ArrayListIterator out = null; Object in = (Object)newWithArrayElement((String)source()); out = new ArrayListIterator(in, 0, 0); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;ArrayListIterator;true;ArrayListIterator;;;ArrayElement of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.iterators;ArrayListIterator;true;ArrayListIterator;;;ArrayElement of Argument[0];Element of Argument[this];value;manual" ArrayListIterator out = null; Object in = (Object)newWithArrayElement((String)source()); out = new ArrayListIterator(in, 0); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;ArrayListIterator;true;ArrayListIterator;;;ArrayElement of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.iterators;ArrayListIterator;true;ArrayListIterator;;;ArrayElement of Argument[0];Element of Argument[this];value;manual" ArrayListIterator out = null; Object in = (Object)newWithArrayElement((String)source()); out = new ArrayListIterator(in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;BoundedIterator;true;BoundedIterator;;;Element of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.iterators;BoundedIterator;true;BoundedIterator;;;Element of Argument[0];Element of Argument[this];value;manual" BoundedIterator out = null; Iterator in = newListIteratorWithElement((String)source()); out = new BoundedIterator(in, 0L, 0L); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;CollatingIterator;true;CollatingIterator;(Comparator,Collection);;Element of Element of Argument[1];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.iterators;CollatingIterator;true;CollatingIterator;(Comparator,Collection);;Element of Element of Argument[1];Element of Argument[this];value;manual" CollatingIterator out = null; Collection in = List.of(newListIteratorWithElement((String)source())); out = new CollatingIterator((Comparator)null, in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;CollatingIterator;true;CollatingIterator;(Comparator,Iterator,Iterator);;Element of Argument[1];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.iterators;CollatingIterator;true;CollatingIterator;(Comparator,Iterator,Iterator);;Element of Argument[1];Element of Argument[this];value;manual" CollatingIterator out = null; Iterator in = newListIteratorWithElement((String)source()); out = new CollatingIterator(null, in, null); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;CollatingIterator;true;CollatingIterator;(Comparator,Iterator,Iterator);;Element of Argument[2];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.iterators;CollatingIterator;true;CollatingIterator;(Comparator,Iterator,Iterator);;Element of Argument[2];Element of Argument[this];value;manual" CollatingIterator out = null; Iterator in = newListIteratorWithElement((String)source()); out = new CollatingIterator(null, null, in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;CollatingIterator;true;CollatingIterator;(Comparator,Iterator[]);;Element of ArrayElement of Argument[1];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.iterators;CollatingIterator;true;CollatingIterator;(Comparator,Iterator[]);;Element of ArrayElement of Argument[1];Element of Argument[this];value;manual" CollatingIterator out = null; Iterator[] in = new Iterator[]{newListIteratorWithElement((String)source())}; out = new CollatingIterator((Comparator)null, in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;CollatingIterator;true;addIterator;;;Element of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.iterators;CollatingIterator;true;addIterator;;;Element of Argument[0];Element of Argument[this];value;manual" CollatingIterator out = null; Iterator in = newListIteratorWithElement((String)source()); out.addIterator(in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;CollatingIterator;true;getIterators;;;Element of Argument[-1];Element of Element of ReturnValue;value;manual" + // "org.apache.commons.collections4.iterators;CollatingIterator;true;getIterators;;;Element of Argument[this];Element of Element of ReturnValue;value;manual" List<Iterator> out = null; CollatingIterator in = new CollatingIterator((Comparator)null, List.of(newListIteratorWithElement((String)source()))); out = in.getIterators(); sink(getElement(getElement(out))); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;CollatingIterator;true;setIterator;;;Element of Argument[1];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.iterators;CollatingIterator;true;setIterator;;;Element of Argument[1];Element of Argument[this];value;manual" CollatingIterator out = null; Iterator in = newListIteratorWithElement((String)source()); out.setIterator(0, in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;EnumerationIterator;true;EnumerationIterator;;;Element of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.iterators;EnumerationIterator;true;EnumerationIterator;;;Element of Argument[0];Element of Argument[this];value;manual" EnumerationIterator out = null; Enumeration in = newEnumerationWithElement((String)source()); out = new EnumerationIterator(in, null); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;EnumerationIterator;true;EnumerationIterator;;;Element of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.iterators;EnumerationIterator;true;EnumerationIterator;;;Element of Argument[0];Element of Argument[this];value;manual" EnumerationIterator out = null; Enumeration in = newEnumerationWithElement((String)source()); out = new EnumerationIterator(in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;EnumerationIterator;true;getEnumeration;;;Element of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4.iterators;EnumerationIterator;true;getEnumeration;;;Element of Argument[this];Element of ReturnValue;value;manual" Enumeration out = null; EnumerationIterator in = new EnumerationIterator(newEnumerationWithElement((String)source())); out = in.getEnumeration(); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;EnumerationIterator;true;setEnumeration;;;Element of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.iterators;EnumerationIterator;true;setEnumeration;;;Element of Argument[0];Element of Argument[this];value;manual" EnumerationIterator out = null; Enumeration in = newEnumerationWithElement((String)source()); out.setEnumeration(in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;FilterIterator;true;FilterIterator;;;Element of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.iterators;FilterIterator;true;FilterIterator;;;Element of Argument[0];Element of Argument[this];value;manual" FilterIterator out = null; Iterator in = newListIteratorWithElement((String)source()); out = new FilterIterator(in, null); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;FilterIterator;true;FilterIterator;;;Element of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.iterators;FilterIterator;true;FilterIterator;;;Element of Argument[0];Element of Argument[this];value;manual" FilterIterator out = null; Iterator in = newListIteratorWithElement((String)source()); out = new FilterIterator(in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;FilterIterator;true;getIterator;;;Element of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4.iterators;FilterIterator;true;getIterator;;;Element of Argument[this];Element of ReturnValue;value;manual" Iterator out = null; FilterIterator in = new FilterIterator(newListIteratorWithElement((String)source())); out = in.getIterator(); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;FilterIterator;true;setIterator;;;Element of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.iterators;FilterIterator;true;setIterator;;;Element of Argument[0];Element of Argument[this];value;manual" FilterIterator out = null; Iterator in = newListIteratorWithElement((String)source()); out.setIterator(in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;FilterListIterator;true;FilterListIterator;(ListIterator);;Element of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.iterators;FilterListIterator;true;FilterListIterator;(ListIterator);;Element of Argument[0];Element of Argument[this];value;manual" FilterListIterator out = null; ListIterator in = newListIteratorWithElement((String)source()); out = new FilterListIterator(in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;FilterListIterator;true;FilterListIterator;(ListIterator,Predicate);;Element of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.iterators;FilterListIterator;true;FilterListIterator;(ListIterator,Predicate);;Element of Argument[0];Element of Argument[this];value;manual" FilterListIterator out = null; ListIterator in = newListIteratorWithElement((String)source()); out = new FilterListIterator(in, null); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;FilterListIterator;true;getListIterator;;;Element of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4.iterators;FilterListIterator;true;getListIterator;;;Element of Argument[this];Element of ReturnValue;value;manual" ListIterator out = null; FilterListIterator in = new FilterListIterator(newListIteratorWithElement((String)source())); out = in.getListIterator(); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;FilterListIterator;true;setListIterator;;;Element of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.iterators;FilterListIterator;true;setListIterator;;;Element of Argument[0];Element of Argument[this];value;manual" FilterListIterator out = null; ListIterator in = newListIteratorWithElement((String)source()); out.setListIterator(in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;IteratorChain;true;IteratorChain;(Collection);;Element of Element of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.iterators;IteratorChain;true;IteratorChain;(Collection);;Element of Element of Argument[0];Element of Argument[this];value;manual" IteratorChain out = null; Collection in = newTreeBagWithElement(newListIteratorWithElement((String)source())); out = new IteratorChain(in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;IteratorChain;true;IteratorChain;(Iterator);;Element of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.iterators;IteratorChain;true;IteratorChain;(Iterator);;Element of Argument[0];Element of Argument[this];value;manual" IteratorChain out = null; Iterator in = newListIteratorWithElement((String)source()); out = new IteratorChain(in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;IteratorChain;true;IteratorChain;(Iterator,Iterator);;Element of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.iterators;IteratorChain;true;IteratorChain;(Iterator,Iterator);;Element of Argument[0];Element of Argument[this];value;manual" IteratorChain out = null; Iterator in = newListIteratorWithElement((String)source()); out = new IteratorChain(in, null); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;IteratorChain;true;IteratorChain;(Iterator,Iterator);;Element of Argument[1];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.iterators;IteratorChain;true;IteratorChain;(Iterator,Iterator);;Element of Argument[1];Element of Argument[this];value;manual" IteratorChain out = null; Iterator in = newListIteratorWithElement((String)source()); out = new IteratorChain(null, in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;IteratorChain;true;IteratorChain;(Iterator[]);;Element of ArrayElement of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.iterators;IteratorChain;true;IteratorChain;(Iterator[]);;Element of ArrayElement of Argument[0];Element of Argument[this];value;manual" IteratorChain out = null; Iterator[] in = new Iterator[]{newListIteratorWithElement((String)source())}; out = new IteratorChain(in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;IteratorChain;true;addIterator;;;Element of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.iterators;IteratorChain;true;addIterator;;;Element of Argument[0];Element of Argument[this];value;manual" IteratorChain out = null; Iterator in = newListIteratorWithElement((String)source()); out.addIterator(in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;IteratorEnumeration;true;IteratorEnumeration;;;Element of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.iterators;IteratorEnumeration;true;IteratorEnumeration;;;Element of Argument[0];Element of Argument[this];value;manual" IteratorEnumeration out = null; Iterator in = newListIteratorWithElement((String)source()); out = new IteratorEnumeration(in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;IteratorEnumeration;true;getIterator;;;Element of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4.iterators;IteratorEnumeration;true;getIterator;;;Element of Argument[this];Element of ReturnValue;value;manual" Iterator out = null; IteratorEnumeration in = new IteratorEnumeration(newListIteratorWithElement((String)source())); out = in.getIterator(); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;IteratorEnumeration;true;setIterator;;;Element of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.iterators;IteratorEnumeration;true;setIterator;;;Element of Argument[0];Element of Argument[this];value;manual" IteratorEnumeration out = null; Iterator in = newListIteratorWithElement((String)source()); out.setIterator(in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;IteratorIterable;true;IteratorIterable;;;Element of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.iterators;IteratorIterable;true;IteratorIterable;;;Element of Argument[0];Element of Argument[this];value;manual" IteratorIterable out = null; Iterator in = newListIteratorWithElement((String)source()); out = new IteratorIterable(in, false); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;IteratorIterable;true;IteratorIterable;;;Element of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.iterators;IteratorIterable;true;IteratorIterable;;;Element of Argument[0];Element of Argument[this];value;manual" IteratorIterable out = null; Iterator in = newListIteratorWithElement((String)source()); out = new IteratorIterable(in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;ListIteratorWrapper;true;ListIteratorWrapper;;;Element of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.iterators;ListIteratorWrapper;true;ListIteratorWrapper;;;Element of Argument[0];Element of Argument[this];value;manual" ListIteratorWrapper out = null; Iterator in = newListIteratorWithElement((String)source()); out = new ListIteratorWrapper(in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;LoopingIterator;true;LoopingIterator;;;Element of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.iterators;LoopingIterator;true;LoopingIterator;;;Element of Argument[0];Element of Argument[this];value;manual" LoopingIterator out = null; Collection in = newTreeBagWithElement((String)source()); out = new LoopingIterator(in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;LoopingListIterator;true;LoopingListIterator;;;Element of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.iterators;LoopingListIterator;true;LoopingListIterator;;;Element of Argument[0];Element of Argument[this];value;manual" LoopingListIterator out = null; List in = List.of((String)source()); out = new LoopingListIterator(in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;ObjectArrayIterator;true;ObjectArrayIterator;;;ArrayElement of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.iterators;ObjectArrayIterator;true;ObjectArrayIterator;;;ArrayElement of Argument[0];Element of Argument[this];value;manual" ObjectArrayIterator out = null; Object[] in = new Object[]{(String)source()}; out = new ObjectArrayIterator(in, 0, 0); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;ObjectArrayIterator;true;ObjectArrayIterator;;;ArrayElement of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.iterators;ObjectArrayIterator;true;ObjectArrayIterator;;;ArrayElement of Argument[0];Element of Argument[this];value;manual" ObjectArrayIterator out = null; Object[] in = new Object[]{(String)source()}; out = new ObjectArrayIterator(in, 0); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;ObjectArrayIterator;true;ObjectArrayIterator;;;ArrayElement of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.iterators;ObjectArrayIterator;true;ObjectArrayIterator;;;ArrayElement of Argument[0];Element of Argument[this];value;manual" ObjectArrayIterator out = null; Object[] in = new Object[]{(String)source()}; out = new ObjectArrayIterator(in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;ObjectArrayIterator;true;getArray;;;Element of Argument[-1];ArrayElement of ReturnValue;value;manual" + // "org.apache.commons.collections4.iterators;ObjectArrayIterator;true;getArray;;;Element of Argument[this];ArrayElement of ReturnValue;value;manual" Object[] out = null; ObjectArrayIterator in = new ObjectArrayIterator(new Object[]{(String)source()}); out = in.getArray(); sink(getArrayElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;ObjectArrayListIterator;true;ObjectArrayListIterator;;;ArrayElement of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.iterators;ObjectArrayListIterator;true;ObjectArrayListIterator;;;ArrayElement of Argument[0];Element of Argument[this];value;manual" ObjectArrayListIterator out = null; Object[] in = new Object[]{(String)source()}; out = new ObjectArrayListIterator(in, 0, 0); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;ObjectArrayListIterator;true;ObjectArrayListIterator;;;ArrayElement of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.iterators;ObjectArrayListIterator;true;ObjectArrayListIterator;;;ArrayElement of Argument[0];Element of Argument[this];value;manual" ObjectArrayListIterator out = null; Object[] in = new Object[]{(String)source()}; out = new ObjectArrayListIterator(in, 0); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;ObjectArrayListIterator;true;ObjectArrayListIterator;;;ArrayElement of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.iterators;ObjectArrayListIterator;true;ObjectArrayListIterator;;;ArrayElement of Argument[0];Element of Argument[this];value;manual" ObjectArrayListIterator out = null; Object[] in = new Object[]{(String)source()}; out = new ObjectArrayListIterator(in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;PeekingIterator;true;PeekingIterator;;;Element of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.iterators;PeekingIterator;true;PeekingIterator;;;Element of Argument[0];Element of Argument[this];value;manual" PeekingIterator out = null; Iterator in = newListIteratorWithElement((String)source()); out = new PeekingIterator(in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;PeekingIterator;true;element;;;Element of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4.iterators;PeekingIterator;true;element;;;Element of Argument[this];ReturnValue;value;manual" Object out = null; PeekingIterator in = new PeekingIterator(newListIteratorWithElement((String)source())); out = in.element(); sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;PeekingIterator;true;peek;;;Element of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4.iterators;PeekingIterator;true;peek;;;Element of Argument[this];ReturnValue;value;manual" Object out = null; PeekingIterator in = new PeekingIterator(newListIteratorWithElement((String)source())); out = in.peek(); @@ -4930,21 +4930,21 @@ public class Test { sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;PermutationIterator;true;PermutationIterator;;;Element of Argument[0];Element of Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.iterators;PermutationIterator;true;PermutationIterator;;;Element of Argument[0];Element of Element of Argument[this];value;manual" PermutationIterator<String> out = null; Collection<String> in = List.<String>of((String)source()); out = new PermutationIterator(in); sink(getElement(getElement(out))); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;PushbackIterator;true;PushbackIterator;;;Element of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.iterators;PushbackIterator;true;PushbackIterator;;;Element of Argument[0];Element of Argument[this];value;manual" PushbackIterator out = null; Iterator in = newListIteratorWithElement((String)source()); out = new PushbackIterator(in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;PushbackIterator;true;pushback;;;Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.iterators;PushbackIterator;true;pushback;;;Argument[0];Element of Argument[this];value;manual" PushbackIterator out = null; Object in = source(); out.pushback(in); @@ -4958,42 +4958,42 @@ public class Test { sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;ReverseListIterator;true;ReverseListIterator;;;Element of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.iterators;ReverseListIterator;true;ReverseListIterator;;;Element of Argument[0];Element of Argument[this];value;manual" ReverseListIterator out = null; List in = List.of((String)source()); out = new ReverseListIterator(in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;SingletonIterator;true;SingletonIterator;;;Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.iterators;SingletonIterator;true;SingletonIterator;;;Argument[0];Element of Argument[this];value;manual" SingletonIterator out = null; Object in = source(); out = new SingletonIterator(in, false); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;SingletonIterator;true;SingletonIterator;;;Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.iterators;SingletonIterator;true;SingletonIterator;;;Argument[0];Element of Argument[this];value;manual" SingletonIterator out = null; Object in = source(); out = new SingletonIterator(in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;SingletonListIterator;true;SingletonListIterator;;;Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.iterators;SingletonListIterator;true;SingletonListIterator;;;Argument[0];Element of Argument[this];value;manual" SingletonListIterator out = null; Object in = source(); out = new SingletonListIterator(in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;SkippingIterator;true;SkippingIterator;;;Element of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.iterators;SkippingIterator;true;SkippingIterator;;;Element of Argument[0];Element of Argument[this];value;manual" SkippingIterator out = null; Iterator in = newListIteratorWithElement((String)source()); out = new SkippingIterator(in, 0L); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;UniqueFilterIterator;true;UniqueFilterIterator;;;Element of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.iterators;UniqueFilterIterator;true;UniqueFilterIterator;;;Element of Argument[0];Element of Argument[this];value;manual" UniqueFilterIterator out = null; Iterator in = newListIteratorWithElement((String)source()); out = new UniqueFilterIterator(in); @@ -5042,252 +5042,252 @@ public class Test { sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;ZippingIterator;true;ZippingIterator;(Iterator,Iterator);;Element of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.iterators;ZippingIterator;true;ZippingIterator;(Iterator,Iterator);;Element of Argument[0];Element of Argument[this];value;manual" ZippingIterator out = null; Iterator in = newListIteratorWithElement((String)source()); out = new ZippingIterator(in, null); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;ZippingIterator;true;ZippingIterator;(Iterator,Iterator);;Element of Argument[1];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.iterators;ZippingIterator;true;ZippingIterator;(Iterator,Iterator);;Element of Argument[1];Element of Argument[this];value;manual" ZippingIterator out = null; Iterator in = newListIteratorWithElement((String)source()); out = new ZippingIterator(null, in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;ZippingIterator;true;ZippingIterator;(Iterator,Iterator,Iterator);;Element of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.iterators;ZippingIterator;true;ZippingIterator;(Iterator,Iterator,Iterator);;Element of Argument[0];Element of Argument[this];value;manual" ZippingIterator out = null; Iterator in = newListIteratorWithElement((String)source()); out = new ZippingIterator(in, null, null); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;ZippingIterator;true;ZippingIterator;(Iterator,Iterator,Iterator);;Element of Argument[1];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.iterators;ZippingIterator;true;ZippingIterator;(Iterator,Iterator,Iterator);;Element of Argument[1];Element of Argument[this];value;manual" ZippingIterator out = null; Iterator in = newListIteratorWithElement((String)source()); out = new ZippingIterator(null, in, null); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;ZippingIterator;true;ZippingIterator;(Iterator,Iterator,Iterator);;Element of Argument[2];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.iterators;ZippingIterator;true;ZippingIterator;(Iterator,Iterator,Iterator);;Element of Argument[2];Element of Argument[this];value;manual" ZippingIterator out = null; Iterator in = newListIteratorWithElement((String)source()); out = new ZippingIterator(null, null, in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.iterators;ZippingIterator;true;ZippingIterator;(Iterator[]);;Element of ArrayElement of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.iterators;ZippingIterator;true;ZippingIterator;(Iterator[]);;Element of ArrayElement of Argument[0];Element of Argument[this];value;manual" ZippingIterator out = null; Iterator[] in = new Iterator[]{newListIteratorWithElement((String)source())}; out = new ZippingIterator(in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.keyvalue;MultiKey;true;MultiKey;(Object,Object);;Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.keyvalue;MultiKey;true;MultiKey;(Object,Object);;Argument[0];Element of Argument[this];value;manual" MultiKey out = null; Object in = source(); out = new MultiKey(in, (Object)null); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.keyvalue;MultiKey;true;MultiKey;(Object,Object);;Argument[1];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.keyvalue;MultiKey;true;MultiKey;(Object,Object);;Argument[1];Element of Argument[this];value;manual" MultiKey out = null; Object in = source(); out = new MultiKey((Object)null, in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.keyvalue;MultiKey;true;MultiKey;(Object,Object,Object);;Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.keyvalue;MultiKey;true;MultiKey;(Object,Object,Object);;Argument[0];Element of Argument[this];value;manual" MultiKey out = null; Object in = source(); out = new MultiKey(in, null, null); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.keyvalue;MultiKey;true;MultiKey;(Object,Object,Object);;Argument[1];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.keyvalue;MultiKey;true;MultiKey;(Object,Object,Object);;Argument[1];Element of Argument[this];value;manual" MultiKey out = null; Object in = source(); out = new MultiKey(null, in, null); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.keyvalue;MultiKey;true;MultiKey;(Object,Object,Object);;Argument[2];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.keyvalue;MultiKey;true;MultiKey;(Object,Object,Object);;Argument[2];Element of Argument[this];value;manual" MultiKey out = null; Object in = source(); out = new MultiKey(null, null, in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.keyvalue;MultiKey;true;MultiKey;(Object,Object,Object,Object);;Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.keyvalue;MultiKey;true;MultiKey;(Object,Object,Object,Object);;Argument[0];Element of Argument[this];value;manual" MultiKey out = null; Object in = source(); out = new MultiKey(in, null, null, null); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.keyvalue;MultiKey;true;MultiKey;(Object,Object,Object,Object);;Argument[1];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.keyvalue;MultiKey;true;MultiKey;(Object,Object,Object,Object);;Argument[1];Element of Argument[this];value;manual" MultiKey out = null; Object in = source(); out = new MultiKey(null, in, null, null); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.keyvalue;MultiKey;true;MultiKey;(Object,Object,Object,Object);;Argument[2];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.keyvalue;MultiKey;true;MultiKey;(Object,Object,Object,Object);;Argument[2];Element of Argument[this];value;manual" MultiKey out = null; Object in = source(); out = new MultiKey(null, null, in, null); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.keyvalue;MultiKey;true;MultiKey;(Object,Object,Object,Object);;Argument[3];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.keyvalue;MultiKey;true;MultiKey;(Object,Object,Object,Object);;Argument[3];Element of Argument[this];value;manual" MultiKey out = null; Object in = source(); out = new MultiKey(null, null, null, in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.keyvalue;MultiKey;true;MultiKey;(Object,Object,Object,Object,Object);;Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.keyvalue;MultiKey;true;MultiKey;(Object,Object,Object,Object,Object);;Argument[0];Element of Argument[this];value;manual" MultiKey out = null; Object in = source(); out = new MultiKey(in, null, null, null, null); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.keyvalue;MultiKey;true;MultiKey;(Object,Object,Object,Object,Object);;Argument[1];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.keyvalue;MultiKey;true;MultiKey;(Object,Object,Object,Object,Object);;Argument[1];Element of Argument[this];value;manual" MultiKey out = null; Object in = source(); out = new MultiKey(null, in, null, null, null); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.keyvalue;MultiKey;true;MultiKey;(Object,Object,Object,Object,Object);;Argument[2];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.keyvalue;MultiKey;true;MultiKey;(Object,Object,Object,Object,Object);;Argument[2];Element of Argument[this];value;manual" MultiKey out = null; Object in = source(); out = new MultiKey(null, null, in, null, null); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.keyvalue;MultiKey;true;MultiKey;(Object,Object,Object,Object,Object);;Argument[3];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.keyvalue;MultiKey;true;MultiKey;(Object,Object,Object,Object,Object);;Argument[3];Element of Argument[this];value;manual" MultiKey out = null; Object in = source(); out = new MultiKey(null, null, null, in, null); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.keyvalue;MultiKey;true;MultiKey;(Object,Object,Object,Object,Object);;Argument[4];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.keyvalue;MultiKey;true;MultiKey;(Object,Object,Object,Object,Object);;Argument[4];Element of Argument[this];value;manual" MultiKey out = null; Object in = source(); out = new MultiKey(null, null, null, null, in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.keyvalue;MultiKey;true;MultiKey;(Object[]);;ArrayElement of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.keyvalue;MultiKey;true;MultiKey;(Object[]);;ArrayElement of Argument[0];Element of Argument[this];value;manual" MultiKey out = null; Object[] in = new Object[]{(String)source()}; out = new MultiKey(in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.keyvalue;MultiKey;true;MultiKey;(Object[],boolean);;ArrayElement of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.keyvalue;MultiKey;true;MultiKey;(Object[],boolean);;ArrayElement of Argument[0];Element of Argument[this];value;manual" MultiKey out = null; Object[] in = new Object[]{(String)source()}; out = new MultiKey(in, false); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.keyvalue;MultiKey;true;getKey;;;Element of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4.keyvalue;MultiKey;true;getKey;;;Element of Argument[this];ReturnValue;value;manual" Object out = null; MultiKey in = newMultiKeyWithElement((String)source()); out = in.getKey(0); sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4.keyvalue;MultiKey;true;getKeys;;;Element of Argument[-1];ArrayElement of ReturnValue;value;manual" + // "org.apache.commons.collections4.keyvalue;MultiKey;true;getKeys;;;Element of Argument[this];ArrayElement of ReturnValue;value;manual" Object[] out = null; MultiKey in = newMultiKeyWithElement((String)source()); out = in.getKeys(); sink(getArrayElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.list;AbstractLinkedList;true;AbstractLinkedList;;;Element of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.list;AbstractLinkedList;true;AbstractLinkedList;;;Element of Argument[0];Element of Argument[this];value;manual" AbstractLinkedList out = null; Collection in = newTreeBagWithElement((String)source()); out = new MyAbstractLinkedList(in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.list;AbstractLinkedList;true;addFirst;;;Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.list;AbstractLinkedList;true;addFirst;;;Argument[0];Element of Argument[this];value;manual" AbstractLinkedList out = null; Object in = source(); out.addFirst(in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.list;AbstractLinkedList;true;addLast;;;Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.list;AbstractLinkedList;true;addLast;;;Argument[0];Element of Argument[this];value;manual" AbstractLinkedList out = null; Object in = source(); out.addLast(in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.list;AbstractLinkedList;true;getFirst;;;Element of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4.list;AbstractLinkedList;true;getFirst;;;Element of Argument[this];ReturnValue;value;manual" Object out = null; AbstractLinkedList in = newCursorableLinkedListWithElement((String)source()); out = in.getFirst(); sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4.list;AbstractLinkedList;true;getLast;;;Element of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4.list;AbstractLinkedList;true;getLast;;;Element of Argument[this];ReturnValue;value;manual" Object out = null; AbstractLinkedList in = newCursorableLinkedListWithElement((String)source()); out = in.getLast(); sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4.list;AbstractLinkedList;true;removeFirst;;;Element of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4.list;AbstractLinkedList;true;removeFirst;;;Element of Argument[this];ReturnValue;value;manual" Object out = null; AbstractLinkedList in = newCursorableLinkedListWithElement((String)source()); out = in.removeFirst(); sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4.list;AbstractLinkedList;true;removeLast;;;Element of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4.list;AbstractLinkedList;true;removeLast;;;Element of Argument[this];ReturnValue;value;manual" Object out = null; AbstractLinkedList in = newCursorableLinkedListWithElement((String)source()); out = in.removeLast(); sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4.list;AbstractListDecorator;true;AbstractListDecorator;;;Element of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.list;AbstractListDecorator;true;AbstractListDecorator;;;Element of Argument[0];Element of Argument[this];value;manual" AbstractListDecorator out = null; List in = List.of((String)source()); out = new MyAbstractListDecorator(in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.list;AbstractSerializableListDecorator;true;AbstractSerializableListDecorator;;;Element of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.list;AbstractSerializableListDecorator;true;AbstractSerializableListDecorator;;;Element of Argument[0];Element of Argument[this];value;manual" AbstractSerializableListDecorator out = null; List in = List.of((String)source()); out = new MyAbstractSerializableListDecorator(in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.list;CursorableLinkedList;true;CursorableLinkedList;;;Element of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.list;CursorableLinkedList;true;CursorableLinkedList;;;Element of Argument[0];Element of Argument[this];value;manual" CursorableLinkedList out = null; Collection in = List.of((String)source()); out = new CursorableLinkedList(in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.list;CursorableLinkedList;true;cursor;;;Element of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4.list;CursorableLinkedList;true;cursor;;;Element of Argument[this];Element of ReturnValue;value;manual" CursorableLinkedList.Cursor out = null; CursorableLinkedList in = newCursorableLinkedListWithElement((String)source()); out = in.cursor(0); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.list;CursorableLinkedList;true;cursor;;;Element of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4.list;CursorableLinkedList;true;cursor;;;Element of Argument[this];Element of ReturnValue;value;manual" CursorableLinkedList.Cursor out = null; CursorableLinkedList in = newCursorableLinkedListWithElement((String)source()); out = in.cursor(); @@ -5322,7 +5322,7 @@ public class Test { sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.list;NodeCachingLinkedList;true;NodeCachingLinkedList;(Collection);;Element of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.list;NodeCachingLinkedList;true;NodeCachingLinkedList;(Collection);;Element of Argument[0];Element of Argument[this];value;manual" NodeCachingLinkedList out = null; Collection in = List.of((String)source()); out = new NodeCachingLinkedList(in); @@ -5336,7 +5336,7 @@ public class Test { sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.list;SetUniqueList;true;asSet;;;Element of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4.list;SetUniqueList;true;asSet;;;Element of Argument[this];Element of ReturnValue;value;manual" Set out = null; SetUniqueList in = SetUniqueList.setUniqueList(List.of((String)source())); out = in.asSet(); @@ -5357,14 +5357,14 @@ public class Test { sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.list;TreeList;true;TreeList;;;Element of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.list;TreeList;true;TreeList;;;Element of Argument[0];Element of Argument[this];value;manual" TreeList out = null; Collection in = List.of((String)source()); out = new TreeList(in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.list;UnmodifiableList;true;UnmodifiableList;;;Element of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.list;UnmodifiableList;true;UnmodifiableList;;;Element of Argument[0];Element of Argument[this];value;manual" UnmodifiableList out = null; List in = List.of((String)source()); out = new UnmodifiableList(in); @@ -5378,196 +5378,196 @@ public class Test { sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;AbstractHashedMap;true;AbstractHashedMap;(Map);;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;AbstractHashedMap;true;AbstractHashedMap;(Map);;MapKey of Argument[0];MapKey of Argument[this];value;manual" AbstractHashedMap out = null; Map in = Map.of((String)source(), null); out = new MyAbstractHashedMap(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;AbstractHashedMap;true;AbstractHashedMap;(Map);;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;AbstractHashedMap;true;AbstractHashedMap;(Map);;MapValue of Argument[0];MapValue of Argument[this];value;manual" AbstractHashedMap out = null; Map in = Map.of(null, (String)source()); out = new MyAbstractHashedMap(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;AbstractLinkedMap;true;AbstractLinkedMap;(Map);;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;AbstractLinkedMap;true;AbstractLinkedMap;(Map);;MapKey of Argument[0];MapKey of Argument[this];value;manual" AbstractLinkedMap out = null; Map in = Map.of((String)source(), null); out = new MyAbstractLinkedMap(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;AbstractLinkedMap;true;AbstractLinkedMap;(Map);;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;AbstractLinkedMap;true;AbstractLinkedMap;(Map);;MapValue of Argument[0];MapValue of Argument[this];value;manual" AbstractLinkedMap out = null; Map in = Map.of(null, (String)source()); out = new MyAbstractLinkedMap(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;AbstractMapDecorator;true;AbstractMapDecorator;(Map);;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;AbstractMapDecorator;true;AbstractMapDecorator;(Map);;MapKey of Argument[0];MapKey of Argument[this];value;manual" AbstractMapDecorator out = null; Map in = Map.of((String)source(), null); out = new MyAbstractMapDecorator(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;AbstractMapDecorator;true;AbstractMapDecorator;(Map);;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;AbstractMapDecorator;true;AbstractMapDecorator;(Map);;MapValue of Argument[0];MapValue of Argument[this];value;manual" AbstractMapDecorator out = null; Map in = Map.of(null, (String)source()); out = new MyAbstractMapDecorator(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;AbstractMapDecorator;true;decorated;;;MapKey of Argument[-1];MapKey of ReturnValue;value;manual" + // "org.apache.commons.collections4.map;AbstractMapDecorator;true;decorated;;;MapKey of Argument[this];MapKey of ReturnValue;value;manual" Map out = null; MyAbstractMapDecorator in = new MyAbstractMapDecorator(Map.of((String)source(), null)); out = in.myDecorated(); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;AbstractMapDecorator;true;decorated;;;MapValue of Argument[-1];MapValue of ReturnValue;value;manual" + // "org.apache.commons.collections4.map;AbstractMapDecorator;true;decorated;;;MapValue of Argument[this];MapValue of ReturnValue;value;manual" Map out = null; MyAbstractMapDecorator in = new MyAbstractMapDecorator(Map.of(null, (String)source())); out = in.myDecorated(); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;AbstractOrderedMapDecorator;true;AbstractOrderedMapDecorator;(OrderedMap);;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;AbstractOrderedMapDecorator;true;AbstractOrderedMapDecorator;(OrderedMap);;MapKey of Argument[0];MapKey of Argument[this];value;manual" AbstractOrderedMapDecorator out = null; OrderedMap in = newListOrderedMapWithMapKey((String)source()); out = new MyAbstractOrderedMapDecorator(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;AbstractOrderedMapDecorator;true;AbstractOrderedMapDecorator;(OrderedMap);;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;AbstractOrderedMapDecorator;true;AbstractOrderedMapDecorator;(OrderedMap);;MapValue of Argument[0];MapValue of Argument[this];value;manual" AbstractOrderedMapDecorator out = null; OrderedMap in = newListOrderedMapWithMapValue((String)source()); out = new MyAbstractOrderedMapDecorator(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;AbstractSortedMapDecorator;true;AbstractSortedMapDecorator;(SortedMap);;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;AbstractSortedMapDecorator;true;AbstractSortedMapDecorator;(SortedMap);;MapKey of Argument[0];MapKey of Argument[this];value;manual" AbstractSortedMapDecorator out = null; SortedMap in = newTreeMapWithMapKey((String)source()); out = new MyAbstractSortedMapDecorator(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;AbstractSortedMapDecorator;true;AbstractSortedMapDecorator;(SortedMap);;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;AbstractSortedMapDecorator;true;AbstractSortedMapDecorator;(SortedMap);;MapValue of Argument[0];MapValue of Argument[this];value;manual" AbstractSortedMapDecorator out = null; SortedMap in = newTreeMapWithMapValue((String)source()); out = new MyAbstractSortedMapDecorator(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;CaseInsensitiveMap;true;CaseInsensitiveMap;(Map);;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;CaseInsensitiveMap;true;CaseInsensitiveMap;(Map);;MapKey of Argument[0];MapKey of Argument[this];value;manual" CaseInsensitiveMap out = null; Map in = Map.of((String)source(), null); out = new CaseInsensitiveMap(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;CaseInsensitiveMap;true;CaseInsensitiveMap;(Map);;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;CaseInsensitiveMap;true;CaseInsensitiveMap;(Map);;MapValue of Argument[0];MapValue of Argument[this];value;manual" CaseInsensitiveMap out = null; Map in = Map.of(null, (String)source()); out = new CaseInsensitiveMap(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;CompositeMap;true;CompositeMap;(Map,Map);;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;CompositeMap;true;CompositeMap;(Map,Map);;MapKey of Argument[0];MapKey of Argument[this];value;manual" CompositeMap out = null; Map in = Map.of((String)source(), null); out = new CompositeMap(in, (Map)null); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;CompositeMap;true;CompositeMap;(Map,Map);;MapKey of Argument[1];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;CompositeMap;true;CompositeMap;(Map,Map);;MapKey of Argument[1];MapKey of Argument[this];value;manual" CompositeMap out = null; Map in = Map.of((String)source(), null); out = new CompositeMap((Map)null, in); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;CompositeMap;true;CompositeMap;(Map,Map);;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;CompositeMap;true;CompositeMap;(Map,Map);;MapValue of Argument[0];MapValue of Argument[this];value;manual" CompositeMap out = null; Map in = Map.of(null, (String)source()); out = new CompositeMap(in, (Map)null); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;CompositeMap;true;CompositeMap;(Map,Map);;MapValue of Argument[1];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;CompositeMap;true;CompositeMap;(Map,Map);;MapValue of Argument[1];MapValue of Argument[this];value;manual" CompositeMap out = null; Map in = Map.of(null, (String)source()); out = new CompositeMap((Map)null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;CompositeMap;true;CompositeMap;(Map,Map,MapMutator);;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;CompositeMap;true;CompositeMap;(Map,Map,MapMutator);;MapKey of Argument[0];MapKey of Argument[this];value;manual" CompositeMap out = null; Map in = Map.of((String)source(), null); out = new CompositeMap(in, null, null); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;CompositeMap;true;CompositeMap;(Map,Map,MapMutator);;MapKey of Argument[1];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;CompositeMap;true;CompositeMap;(Map,Map,MapMutator);;MapKey of Argument[1];MapKey of Argument[this];value;manual" CompositeMap out = null; Map in = Map.of((String)source(), null); out = new CompositeMap(null, in, null); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;CompositeMap;true;CompositeMap;(Map,Map,MapMutator);;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;CompositeMap;true;CompositeMap;(Map,Map,MapMutator);;MapValue of Argument[0];MapValue of Argument[this];value;manual" CompositeMap out = null; Map in = Map.of(null, (String)source()); out = new CompositeMap(in, null, null); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;CompositeMap;true;CompositeMap;(Map,Map,MapMutator);;MapValue of Argument[1];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;CompositeMap;true;CompositeMap;(Map,Map,MapMutator);;MapValue of Argument[1];MapValue of Argument[this];value;manual" CompositeMap out = null; Map in = Map.of(null, (String)source()); out = new CompositeMap(null, in, null); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;CompositeMap;true;CompositeMap;(Map[]);;MapKey of ArrayElement of Argument[0];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;CompositeMap;true;CompositeMap;(Map[]);;MapKey of ArrayElement of Argument[0];MapKey of Argument[this];value;manual" CompositeMap out = null; Map[] in = new Map[]{Map.of((String)source(), null)}; out = new CompositeMap(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;CompositeMap;true;CompositeMap;(Map[]);;MapValue of ArrayElement of Argument[0];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;CompositeMap;true;CompositeMap;(Map[]);;MapValue of ArrayElement of Argument[0];MapValue of Argument[this];value;manual" CompositeMap out = null; Map[] in = new Map[]{Map.of(null, (String)source())}; out = new CompositeMap(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;CompositeMap;true;CompositeMap;(Map[],MapMutator);;MapKey of ArrayElement of Argument[0];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;CompositeMap;true;CompositeMap;(Map[],MapMutator);;MapKey of ArrayElement of Argument[0];MapKey of Argument[this];value;manual" CompositeMap out = null; Map[] in = new Map[]{Map.of((String)source(), null)}; out = new CompositeMap(in, (CompositeMap.MapMutator)null); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;CompositeMap;true;CompositeMap;(Map[],MapMutator);;MapValue of ArrayElement of Argument[0];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;CompositeMap;true;CompositeMap;(Map[],MapMutator);;MapValue of ArrayElement of Argument[0];MapValue of Argument[this];value;manual" CompositeMap out = null; Map[] in = new Map[]{Map.of(null, (String)source())}; out = new CompositeMap(in, (CompositeMap.MapMutator)null); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;CompositeMap;true;addComposited;;;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;CompositeMap;true;addComposited;;;MapKey of Argument[0];MapKey of Argument[this];value;manual" CompositeMap out = null; Map in = Map.of((String)source(), null); out.addComposited(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;CompositeMap;true;addComposited;;;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;CompositeMap;true;addComposited;;;MapValue of Argument[0];MapValue of Argument[this];value;manual" CompositeMap out = null; Map in = Map.of(null, (String)source()); out.addComposited(in); @@ -5582,21 +5582,21 @@ public class Test { sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;CompositeMap;true;removeComposited;;;MapKey of Argument[-1];MapKey of ReturnValue;value;manual" + // "org.apache.commons.collections4.map;CompositeMap;true;removeComposited;;;MapKey of Argument[this];MapKey of ReturnValue;value;manual" Map out = null; CompositeMap in = new CompositeMap(Map.of((String)source(), null), null); out = in.removeComposited(null); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;CompositeMap;true;removeComposited;;;MapValue of Argument[-1];MapValue of ReturnValue;value;manual" + // "org.apache.commons.collections4.map;CompositeMap;true;removeComposited;;;MapValue of Argument[this];MapValue of ReturnValue;value;manual" Map out = null; CompositeMap in = new CompositeMap(Map.of(null, (String)source()), null); out = in.removeComposited(null); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;DefaultedMap;true;DefaultedMap;(Object);;Argument[0];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;DefaultedMap;true;DefaultedMap;(Object);;Argument[0];MapValue of Argument[this];value;manual" DefaultedMap out = null; Object in = source(); out = new DefaultedMap(in); @@ -5652,14 +5652,14 @@ public class Test { sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;EntrySetToMapIteratorAdapter;true;EntrySetToMapIteratorAdapter;;;MapKey of Element of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;EntrySetToMapIteratorAdapter;true;EntrySetToMapIteratorAdapter;;;MapKey of Element of Argument[0];Element of Argument[this];value;manual" EntrySetToMapIteratorAdapter out = null; Set in = newListOrderedSetWithElement(newTMEWithMapKey((String)source())); out = new EntrySetToMapIteratorAdapter(in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;EntrySetToMapIteratorAdapter;true;EntrySetToMapIteratorAdapter;;;MapValue of Element of Argument[0];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;EntrySetToMapIteratorAdapter;true;EntrySetToMapIteratorAdapter;;;MapValue of Element of Argument[0];MapValue of Argument[this];value;manual" EntrySetToMapIteratorAdapter out = null; Set in = newListOrderedSetWithElement(newTMEWithMapValue((String)source())); out = new EntrySetToMapIteratorAdapter(in); @@ -5694,56 +5694,56 @@ public class Test { sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;Flat3Map;true;Flat3Map;;;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;Flat3Map;true;Flat3Map;;;MapKey of Argument[0];MapKey of Argument[this];value;manual" Flat3Map out = null; Map in = Map.of((String)source(), null); out = new Flat3Map(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;Flat3Map;true;Flat3Map;;;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;Flat3Map;true;Flat3Map;;;MapValue of Argument[0];MapValue of Argument[this];value;manual" Flat3Map out = null; Map in = Map.of(null, (String)source()); out = new Flat3Map(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;HashedMap;true;HashedMap;(Map);;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;HashedMap;true;HashedMap;(Map);;MapKey of Argument[0];MapKey of Argument[this];value;manual" HashedMap out = null; Map in = Map.of((String)source(), null); out = new HashedMap(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;HashedMap;true;HashedMap;(Map);;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;HashedMap;true;HashedMap;(Map);;MapValue of Argument[0];MapValue of Argument[this];value;manual" HashedMap out = null; Map in = Map.of(null, (String)source()); out = new HashedMap(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;LRUMap;true;LRUMap;(Map);;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;LRUMap;true;LRUMap;(Map);;MapKey of Argument[0];MapKey of Argument[this];value;manual" LRUMap out = null; Map in = Map.of((String)source(), null); out = new LRUMap(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;LRUMap;true;LRUMap;(Map);;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;LRUMap;true;LRUMap;(Map);;MapValue of Argument[0];MapValue of Argument[this];value;manual" LRUMap out = null; Map in = Map.of(null, (String)source()); out = new LRUMap(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;LRUMap;true;LRUMap;(Map,boolean);;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;LRUMap;true;LRUMap;(Map,boolean);;MapKey of Argument[0];MapKey of Argument[this];value;manual" LRUMap out = null; Map in = Map.of((String)source(), null); out = new LRUMap(in, false); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;LRUMap;true;LRUMap;(Map,boolean);;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;LRUMap;true;LRUMap;(Map,boolean);;MapValue of Argument[0];MapValue of Argument[this];value;manual" LRUMap out = null; Map in = Map.of(null, (String)source()); out = new LRUMap(in, false); @@ -5814,70 +5814,70 @@ public class Test { sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;LinkedMap;true;LinkedMap;(Map);;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;LinkedMap;true;LinkedMap;(Map);;MapKey of Argument[0];MapKey of Argument[this];value;manual" LinkedMap out = null; Map in = Map.of((String)source(), null); out = new LinkedMap(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;LinkedMap;true;LinkedMap;(Map);;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;LinkedMap;true;LinkedMap;(Map);;MapValue of Argument[0];MapValue of Argument[this];value;manual" LinkedMap out = null; Map in = Map.of(null, (String)source()); out = new LinkedMap(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;LinkedMap;true;asList;;;MapKey of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4.map;LinkedMap;true;asList;;;MapKey of Argument[this];Element of ReturnValue;value;manual" List out = null; LinkedMap in = newLinkedMapWithMapKey((String)source()); out = in.asList(); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;LinkedMap;true;get;(int);;MapKey of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4.map;LinkedMap;true;get;(int);;MapKey of Argument[this];ReturnValue;value;manual" Object out = null; LinkedMap in = newLinkedMapWithMapKey((String)source()); out = in.get(0); sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;LinkedMap;true;getValue;(int);;MapValue of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4.map;LinkedMap;true;getValue;(int);;MapValue of Argument[this];ReturnValue;value;manual" Object out = null; LinkedMap in = newLinkedMapWithMapValue((String)source()); out = in.getValue(0); sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;LinkedMap;true;remove;(int);;MapValue of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4.map;LinkedMap;true;remove;(int);;MapValue of Argument[this];ReturnValue;value;manual" Object out = null; LinkedMap in = newLinkedMapWithMapValue((String)source()); out = in.remove(0); sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;ListOrderedMap;true;asList;;;MapKey of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4.map;ListOrderedMap;true;asList;;;MapKey of Argument[this];Element of ReturnValue;value;manual" List out = null; ListOrderedMap in = newListOrderedMapWithMapKey((String)source()); out = in.asList(); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;ListOrderedMap;true;get;(int);;MapKey of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4.map;ListOrderedMap;true;get;(int);;MapKey of Argument[this];ReturnValue;value;manual" Object out = null; ListOrderedMap in = newListOrderedMapWithMapKey(source()); out = in.get(0); sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;ListOrderedMap;true;getValue;(int);;MapValue of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4.map;ListOrderedMap;true;getValue;(int);;MapValue of Argument[this];ReturnValue;value;manual" Object out = null; ListOrderedMap in = newListOrderedMapWithMapValue(source()); out = in.getValue(0); sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;ListOrderedMap;true;keyList;;;MapKey of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4.map;ListOrderedMap;true;keyList;;;MapKey of Argument[this];Element of ReturnValue;value;manual" List out = null; ListOrderedMap in = newListOrderedMapWithMapKey((String)source()); out = in.keyList(); @@ -5898,301 +5898,301 @@ public class Test { sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;ListOrderedMap;true;put;;;Argument[1];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;ListOrderedMap;true;put;;;Argument[1];MapKey of Argument[this];value;manual" ListOrderedMap out = null; Object in = source(); out.put(null, in); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;ListOrderedMap;true;put;;;Argument[1];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;ListOrderedMap;true;put;;;Argument[1];MapKey of Argument[this];value;manual" ListOrderedMap out = null; Object in = source(); out.put(0, in, null); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;ListOrderedMap;true;put;;;Argument[2];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;ListOrderedMap;true;put;;;Argument[2];MapValue of Argument[this];value;manual" ListOrderedMap out = null; Object in = source(); out.put(0, null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;ListOrderedMap;true;putAll;;;MapKey of Argument[1];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;ListOrderedMap;true;putAll;;;MapKey of Argument[1];MapKey of Argument[this];value;manual" ListOrderedMap out = null; Map in = Map.of((String)source(), null); out.putAll(0, in); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;ListOrderedMap;true;putAll;;;MapValue of Argument[1];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;ListOrderedMap;true;putAll;;;MapValue of Argument[1];MapValue of Argument[this];value;manual" ListOrderedMap out = null; Map in = Map.of(null, (String)source()); out.putAll(0, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;ListOrderedMap;true;remove;(int);;MapValue of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4.map;ListOrderedMap;true;remove;(int);;MapValue of Argument[this];ReturnValue;value;manual" Object out = null; ListOrderedMap in = newListOrderedMapWithMapValue((String)source()); out = in.remove(0); sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;ListOrderedMap;true;setValue;;;Argument[1];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;ListOrderedMap;true;setValue;;;Argument[1];MapValue of Argument[this];value;manual" ListOrderedMap out = null; Object in = source(); out.setValue(0, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;ListOrderedMap;true;valueList;;;MapValue of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4.map;ListOrderedMap;true;valueList;;;MapValue of Argument[this];Element of ReturnValue;value;manual" List out = null; ListOrderedMap in = newListOrderedMapWithMapValue((String)source()); out = in.valueList(); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;MultiKeyMap;true;get;;;MapValue of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4.map;MultiKeyMap;true;get;;;MapValue of Argument[this];ReturnValue;value;manual" Object out = null; MultiKeyMap in = newMKMWithMapValue((String)source()); out = in.get(null, null, null, null, null); sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;MultiKeyMap;true;get;;;MapValue of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4.map;MultiKeyMap;true;get;;;MapValue of Argument[this];ReturnValue;value;manual" Object out = null; MultiKeyMap in = newMKMWithMapValue((String)source()); out = in.get(null, null, null, null); sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;MultiKeyMap;true;get;;;MapValue of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4.map;MultiKeyMap;true;get;;;MapValue of Argument[this];ReturnValue;value;manual" Object out = null; MultiKeyMap in = newMKMWithMapValue((String)source()); out = in.get(null, null, null); sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;MultiKeyMap;true;get;;;MapValue of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4.map;MultiKeyMap;true;get;;;MapValue of Argument[this];ReturnValue;value;manual" Object out = null; MultiKeyMap in = newMKMWithMapValue((String)source()); out = in.get(null, null); sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;MultiKeyMap;true;put;(Object,Object,Object);;Argument[0..1];Element of MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;MultiKeyMap;true;put;(Object,Object,Object);;Argument[0..1];Element of MapKey of Argument[this];value;manual" MultiKeyMap<String,String> out = null; String in = (String)source(); out.put(null, in, null); sink(getElement(getMapKey(out))); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;MultiKeyMap;true;put;(Object,Object,Object);;Argument[0..1];Element of MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;MultiKeyMap;true;put;(Object,Object,Object);;Argument[0..1];Element of MapKey of Argument[this];value;manual" MultiKeyMap<String,String> out = null; String in = (String)source(); out.put(in, null, null); sink(getElement(getMapKey(out))); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;MultiKeyMap;true;put;(Object,Object,Object);;Argument[2];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;MultiKeyMap;true;put;(Object,Object,Object);;Argument[2];MapValue of Argument[this];value;manual" MultiKeyMap<String,String> out = null; String in = (String)source(); out.put(null, null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;MultiKeyMap;true;put;(Object,Object,Object,Object);;Argument[0..2];Element of MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;MultiKeyMap;true;put;(Object,Object,Object,Object);;Argument[0..2];Element of MapKey of Argument[this];value;manual" MultiKeyMap<String,String> out = null; String in = (String)source(); out.put(null, null, in, null); sink(getElement(getMapKey(out))); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;MultiKeyMap;true;put;(Object,Object,Object,Object);;Argument[0..2];Element of MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;MultiKeyMap;true;put;(Object,Object,Object,Object);;Argument[0..2];Element of MapKey of Argument[this];value;manual" MultiKeyMap<String,String> out = null; String in = (String)source(); out.put(null, in, null, null); sink(getElement(getMapKey(out))); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;MultiKeyMap;true;put;(Object,Object,Object,Object);;Argument[0..2];Element of MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;MultiKeyMap;true;put;(Object,Object,Object,Object);;Argument[0..2];Element of MapKey of Argument[this];value;manual" MultiKeyMap<String,String> out = null; String in = (String)source(); out.put(in, null, null, null); sink(getElement(getMapKey(out))); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;MultiKeyMap;true;put;(Object,Object,Object,Object);;Argument[3];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;MultiKeyMap;true;put;(Object,Object,Object,Object);;Argument[3];MapValue of Argument[this];value;manual" MultiKeyMap<String,String> out = null; String in = (String)source(); out.put(null, null, null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;MultiKeyMap;true;put;(Object,Object,Object,Object,Object);;Argument[0..3];Element of MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;MultiKeyMap;true;put;(Object,Object,Object,Object,Object);;Argument[0..3];Element of MapKey of Argument[this];value;manual" MultiKeyMap<String,String> out = null; String in = (String)source(); out.put(null, null, null, in, null); sink(getElement(getMapKey(out))); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;MultiKeyMap;true;put;(Object,Object,Object,Object,Object);;Argument[0..3];Element of MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;MultiKeyMap;true;put;(Object,Object,Object,Object,Object);;Argument[0..3];Element of MapKey of Argument[this];value;manual" MultiKeyMap<String,String> out = null; String in = (String)source(); out.put(null, null, in, null, null); sink(getElement(getMapKey(out))); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;MultiKeyMap;true;put;(Object,Object,Object,Object,Object);;Argument[0..3];Element of MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;MultiKeyMap;true;put;(Object,Object,Object,Object,Object);;Argument[0..3];Element of MapKey of Argument[this];value;manual" MultiKeyMap<String,String> out = null; String in = (String)source(); out.put(null, in, null, null, null); sink(getElement(getMapKey(out))); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;MultiKeyMap;true;put;(Object,Object,Object,Object,Object);;Argument[0..3];Element of MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;MultiKeyMap;true;put;(Object,Object,Object,Object,Object);;Argument[0..3];Element of MapKey of Argument[this];value;manual" MultiKeyMap<String,String> out = null; String in = (String)source(); out.put(in, null, null, null, null); sink(getElement(getMapKey(out))); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;MultiKeyMap;true;put;(Object,Object,Object,Object,Object);;Argument[4];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;MultiKeyMap;true;put;(Object,Object,Object,Object,Object);;Argument[4];MapValue of Argument[this];value;manual" MultiKeyMap<String,String> out = null; String in = (String)source(); out.put(null, null, null, null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;MultiKeyMap;true;put;(Object,Object,Object,Object,Object,Object);;Argument[0..4];Element of MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;MultiKeyMap;true;put;(Object,Object,Object,Object,Object,Object);;Argument[0..4];Element of MapKey of Argument[this];value;manual" MultiKeyMap<String,String> out = null; String in = (String)source(); out.put(null, null, null, null, in, null); sink(getElement(getMapKey(out))); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;MultiKeyMap;true;put;(Object,Object,Object,Object,Object,Object);;Argument[0..4];Element of MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;MultiKeyMap;true;put;(Object,Object,Object,Object,Object,Object);;Argument[0..4];Element of MapKey of Argument[this];value;manual" MultiKeyMap<String,String> out = null; String in = (String)source(); out.put(null, null, null, in, null, null); sink(getElement(getMapKey(out))); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;MultiKeyMap;true;put;(Object,Object,Object,Object,Object,Object);;Argument[0..4];Element of MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;MultiKeyMap;true;put;(Object,Object,Object,Object,Object,Object);;Argument[0..4];Element of MapKey of Argument[this];value;manual" MultiKeyMap<String,String> out = null; String in = (String)source(); out.put(null, null, in, null, null, null); sink(getElement(getMapKey(out))); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;MultiKeyMap;true;put;(Object,Object,Object,Object,Object,Object);;Argument[0..4];Element of MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;MultiKeyMap;true;put;(Object,Object,Object,Object,Object,Object);;Argument[0..4];Element of MapKey of Argument[this];value;manual" MultiKeyMap<String,String> out = null; String in = (String)source(); out.put(null, in, null, null, null, null); sink(getElement(getMapKey(out))); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;MultiKeyMap;true;put;(Object,Object,Object,Object,Object,Object);;Argument[0..4];Element of MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;MultiKeyMap;true;put;(Object,Object,Object,Object,Object,Object);;Argument[0..4];Element of MapKey of Argument[this];value;manual" MultiKeyMap<String,String> out = null; String in = (String)source(); out.put(in, null, null, null, null, null); sink(getElement(getMapKey(out))); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;MultiKeyMap;true;put;(Object,Object,Object,Object,Object,Object);;Argument[5];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;MultiKeyMap;true;put;(Object,Object,Object,Object,Object,Object);;Argument[5];MapValue of Argument[this];value;manual" MultiKeyMap<String,String> out = null; String in = (String)source(); out.put(null, null, null, null, null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;MultiKeyMap;true;put;;;MapValue of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4.map;MultiKeyMap;true;put;;;MapValue of Argument[this];ReturnValue;value;manual" Object out = null; MultiKeyMap in = newMKMWithMapValue((String)source()); out = in.put(null, null, null, null, null, null); sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;MultiKeyMap;true;put;;;MapValue of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4.map;MultiKeyMap;true;put;;;MapValue of Argument[this];ReturnValue;value;manual" Object out = null; MultiKeyMap in = newMKMWithMapValue((String)source()); out = in.put(null, null, null, null, null); sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;MultiKeyMap;true;put;;;MapValue of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4.map;MultiKeyMap;true;put;;;MapValue of Argument[this];ReturnValue;value;manual" Object out = null; MultiKeyMap in = newMKMWithMapValue((String)source()); out = in.put(null, null, null, null); sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;MultiKeyMap;true;put;;;MapValue of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4.map;MultiKeyMap;true;put;;;MapValue of Argument[this];ReturnValue;value;manual" Object out = null; MultiKeyMap in = newMKMWithMapValue((String)source()); out = in.put(null, null, null); sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;MultiKeyMap;true;put;;;MapValue of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4.map;MultiKeyMap;true;put;;;MapValue of Argument[this];ReturnValue;value;manual" Object out = null; MultiKeyMap in = newMKMWithMapValue((String)source()); out = in.put(null, null); sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;MultiKeyMap;true;removeMultiKey;;;MapValue of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4.map;MultiKeyMap;true;removeMultiKey;;;MapValue of Argument[this];ReturnValue;value;manual" Object out = null; MultiKeyMap in = newMKMWithMapValue((String)source()); out = in.removeMultiKey(null, null, null, null, null); sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;MultiKeyMap;true;removeMultiKey;;;MapValue of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4.map;MultiKeyMap;true;removeMultiKey;;;MapValue of Argument[this];ReturnValue;value;manual" Object out = null; MultiKeyMap in = newMKMWithMapValue((String)source()); out = in.removeMultiKey(null, null, null, null); sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;MultiKeyMap;true;removeMultiKey;;;MapValue of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4.map;MultiKeyMap;true;removeMultiKey;;;MapValue of Argument[this];ReturnValue;value;manual" Object out = null; MultiKeyMap in = newMKMWithMapValue((String)source()); out = in.removeMultiKey(null, null, null); sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;MultiKeyMap;true;removeMultiKey;;;MapValue of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4.map;MultiKeyMap;true;removeMultiKey;;;MapValue of Argument[this];ReturnValue;value;manual" Object out = null; MultiKeyMap in = newMKMWithMapValue((String)source()); out = in.removeMultiKey(null, null); sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;MultiValueMap;true;getCollection;;;Element of MapValue of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4.map;MultiValueMap;true;getCollection;;;Element of MapValue of Argument[this];Element of ReturnValue;value;manual" Collection out = null; MultiValueMap in = newMVMWithMapValue((String)source()); out = in.getCollection(null); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;MultiValueMap;true;iterator;();;Element of MapValue of Argument[-1];MapValue of Element of ReturnValue;value;manual" + // "org.apache.commons.collections4.map;MultiValueMap;true;iterator;();;Element of MapValue of Argument[this];MapValue of Element of ReturnValue;value;manual" Iterator<Map.Entry<String,String>> out = null; MultiValueMap<String,String> in = newMVMWithMapValue((String)source()); out = in.iterator(); sink(getMapValueFromEntry(getElement(out))); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;<String,String>;true;iterator;();;MapKey of Argument[-1];MapKey of Element of ReturnValue;value;manual" + // "org.apache.commons.collections4.map;<String,String>;true;iterator;();;MapKey of Argument[this];MapKey of Element of ReturnValue;value;manual" Iterator<Map.Entry<String,String>> out = null; MultiValueMap<String,String> in = newMVMWithMapKey((String)source()); out = in.iterator(); sink(getMapKeyFromEntry(getElement(out))); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;MultiValueMap;true;iterator;(Object);;Element of MapValue of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4.map;MultiValueMap;true;iterator;(Object);;Element of MapValue of Argument[this];Element of ReturnValue;value;manual" Iterator<String> out = null; MultiValueMap<String,String> in = newMVMWithMapValue((String)source()); out = in.iterator(null); @@ -6241,91 +6241,91 @@ public class Test { sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;MultiValueMap;true;putAll;(Map);;Element of MapValue of Argument[0];Element of MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;MultiValueMap;true;putAll;(Map);;Element of MapValue of Argument[0];Element of MapValue of Argument[this];value;manual" MultiValueMap out = null; Map in = newMVMWithMapValue((String)source()); out.putAll(in); sink(getElement((Collection)getMapValue(out))); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;MultiValueMap;true;putAll;(Map);;MapValue of Argument[0];Element of MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;MultiValueMap;true;putAll;(Map);;MapValue of Argument[0];Element of MapValue of Argument[this];value;manual" MultiValueMap out = null; Map in = Map.of(null, source()); out.putAll(in); sink(getElement((Collection)getMapValue(out))); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;MultiValueMap;true;putAll;(Object,Collection);;Argument[0];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;MultiValueMap;true;putAll;(Object,Collection);;Argument[0];MapKey of Argument[this];value;manual" MultiValueMap out = null; Object in = source(); out.putAll(in, null); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;MultiValueMap;true;putAll;(Object,Collection);;Element of Argument[1];Element of MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;MultiValueMap;true;putAll;(Object,Collection);;Element of Argument[1];Element of MapValue of Argument[this];value;manual" MultiValueMap out = null; Collection in = newTreeBagWithElement((String)source()); out.putAll(null, in); sink(getElement((Collection)getMapValue(out))); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;MultiValueMap;true;values;;;Element of MapValue of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4.map;MultiValueMap;true;values;;;Element of MapValue of Argument[this];Element of ReturnValue;value;manual" Collection out = null; MultiValueMap in = newMVMWithMapValue((String)source()); out = in.values(); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;PassiveExpiringMap;true;PassiveExpiringMap;(ExpirationPolicy,Map);;MapKey of Argument[1];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;PassiveExpiringMap;true;PassiveExpiringMap;(ExpirationPolicy,Map);;MapKey of Argument[1];MapKey of Argument[this];value;manual" PassiveExpiringMap out = null; Map in = Map.of((String)source(), null); out = new PassiveExpiringMap((PassiveExpiringMap.ExpirationPolicy)null, in); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;PassiveExpiringMap;true;PassiveExpiringMap;(ExpirationPolicy,Map);;MapValue of Argument[1];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;PassiveExpiringMap;true;PassiveExpiringMap;(ExpirationPolicy,Map);;MapValue of Argument[1];MapValue of Argument[this];value;manual" PassiveExpiringMap out = null; Map in = Map.of(null, (String)source()); out = new PassiveExpiringMap((PassiveExpiringMap.ExpirationPolicy)null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;PassiveExpiringMap;true;PassiveExpiringMap;(Map);;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;PassiveExpiringMap;true;PassiveExpiringMap;(Map);;MapKey of Argument[0];MapKey of Argument[this];value;manual" PassiveExpiringMap out = null; Map in = Map.of((String)source(), null); out = new PassiveExpiringMap(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;PassiveExpiringMap;true;PassiveExpiringMap;(Map);;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;PassiveExpiringMap;true;PassiveExpiringMap;(Map);;MapValue of Argument[0];MapValue of Argument[this];value;manual" PassiveExpiringMap out = null; Map in = Map.of(null, (String)source()); out = new PassiveExpiringMap(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;PassiveExpiringMap;true;PassiveExpiringMap;(long,Map);;MapKey of Argument[1];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;PassiveExpiringMap;true;PassiveExpiringMap;(long,Map);;MapKey of Argument[1];MapKey of Argument[this];value;manual" PassiveExpiringMap out = null; Map in = Map.of((String)source(), null); out = new PassiveExpiringMap(0L, in); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;PassiveExpiringMap;true;PassiveExpiringMap;(long,Map);;MapValue of Argument[1];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;PassiveExpiringMap;true;PassiveExpiringMap;(long,Map);;MapValue of Argument[1];MapValue of Argument[this];value;manual" PassiveExpiringMap out = null; Map in = Map.of(null, (String)source()); out = new PassiveExpiringMap(0L, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;PassiveExpiringMap;true;PassiveExpiringMap;(long,TimeUnit,Map);;MapKey of Argument[2];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;PassiveExpiringMap;true;PassiveExpiringMap;(long,TimeUnit,Map);;MapKey of Argument[2];MapKey of Argument[this];value;manual" PassiveExpiringMap out = null; Map in = Map.of((String)source(), null); out = new PassiveExpiringMap(0L, null, in); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;PassiveExpiringMap;true;PassiveExpiringMap;(long,TimeUnit,Map);;MapValue of Argument[2];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;PassiveExpiringMap;true;PassiveExpiringMap;(long,TimeUnit,Map);;MapValue of Argument[2];MapValue of Argument[this];value;manual" PassiveExpiringMap out = null; Map in = Map.of(null, (String)source()); out = new PassiveExpiringMap(0L, null, in); @@ -6360,63 +6360,63 @@ public class Test { sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;SingletonMap;true;SingletonMap;(Entry);;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;SingletonMap;true;SingletonMap;(Entry);;MapKey of Argument[0];MapKey of Argument[this];value;manual" SingletonMap out = null; Map.Entry in = newTMEWithMapKey((String)source()); out = new SingletonMap(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;SingletonMap;true;SingletonMap;(Entry);;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;SingletonMap;true;SingletonMap;(Entry);;MapValue of Argument[0];MapValue of Argument[this];value;manual" SingletonMap out = null; Map.Entry in = newTMEWithMapValue((String)source()); out = new SingletonMap(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;SingletonMap;true;SingletonMap;(KeyValue);;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;SingletonMap;true;SingletonMap;(KeyValue);;MapKey of Argument[0];MapKey of Argument[this];value;manual" SingletonMap out = null; KeyValue in = newDKVWithMapKey((String)source()); out = new SingletonMap(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;SingletonMap;true;SingletonMap;(KeyValue);;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;SingletonMap;true;SingletonMap;(KeyValue);;MapValue of Argument[0];MapValue of Argument[this];value;manual" SingletonMap out = null; KeyValue in = newDKVWithMapValue((String)source()); out = new SingletonMap(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;SingletonMap;true;SingletonMap;(Map);;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;SingletonMap;true;SingletonMap;(Map);;MapKey of Argument[0];MapKey of Argument[this];value;manual" SingletonMap out = null; Map in = Map.of((String)source(), null); out = new SingletonMap(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;SingletonMap;true;SingletonMap;(Map);;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;SingletonMap;true;SingletonMap;(Map);;MapValue of Argument[0];MapValue of Argument[this];value;manual" SingletonMap out = null; Map in = Map.of(null, (String)source()); out = new SingletonMap(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;SingletonMap;true;SingletonMap;(Object,Object);;Argument[0];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;SingletonMap;true;SingletonMap;(Object,Object);;Argument[0];MapKey of Argument[this];value;manual" SingletonMap out = null; Object in = source(); out = new SingletonMap(in, null); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;SingletonMap;true;SingletonMap;(Object,Object);;Argument[1];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;SingletonMap;true;SingletonMap;(Object,Object);;Argument[1];MapValue of Argument[this];value;manual" SingletonMap out = null; Object in = source(); out = new SingletonMap(null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.map;SingletonMap;true;setValue;;;Argument[0];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.map;SingletonMap;true;setValue;;;Argument[0];MapValue of Argument[this];value;manual" SingletonMap out = null; Object in = source(); out.setValue(in); @@ -6507,56 +6507,56 @@ public class Test { sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.multimap;ArrayListValuedHashMap;true;ArrayListValuedHashMap;(Map);;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.multimap;ArrayListValuedHashMap;true;ArrayListValuedHashMap;(Map);;MapKey of Argument[0];MapKey of Argument[this];value;manual" ArrayListValuedHashMap out = null; Map in = Map.of((String)source(), null); out = new ArrayListValuedHashMap(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.multimap;ArrayListValuedHashMap;true;ArrayListValuedHashMap;(Map);;MapValue of Argument[0];Element of MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.multimap;ArrayListValuedHashMap;true;ArrayListValuedHashMap;(Map);;MapValue of Argument[0];Element of MapValue of Argument[this];value;manual" ArrayListValuedHashMap out = null; Map in = Map.of(null, (String)source()); out = new ArrayListValuedHashMap(in); sink(getElement(getMapValue(out))); // $ hasValueFlow } { - // "org.apache.commons.collections4.multimap;ArrayListValuedHashMap;true;ArrayListValuedHashMap;(MultiValuedMap);;Element of MapValue of Argument[0];Element of MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.multimap;ArrayListValuedHashMap;true;ArrayListValuedHashMap;(MultiValuedMap);;Element of MapValue of Argument[0];Element of MapValue of Argument[this];value;manual" ArrayListValuedHashMap out = null; MultiValuedMap in = newALVHMWithMapValue((String)source()); out = new ArrayListValuedHashMap(in); sink(getElement(getMapValue(out))); // $ hasValueFlow } { - // "org.apache.commons.collections4.multimap;ArrayListValuedHashMap;true;ArrayListValuedHashMap;(MultiValuedMap);;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.multimap;ArrayListValuedHashMap;true;ArrayListValuedHashMap;(MultiValuedMap);;MapKey of Argument[0];MapKey of Argument[this];value;manual" ArrayListValuedHashMap out = null; MultiValuedMap in = newALVHMWithMapKey((String)source()); out = new ArrayListValuedHashMap(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.multimap;HashSetValuedHashMap;true;HashSetValuedHashMap;(Map);;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.multimap;HashSetValuedHashMap;true;HashSetValuedHashMap;(Map);;MapKey of Argument[0];MapKey of Argument[this];value;manual" HashSetValuedHashMap out = null; Map in = Map.of((String)source(), null); out = new HashSetValuedHashMap(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.multimap;HashSetValuedHashMap;true;HashSetValuedHashMap;(Map);;MapValue of Argument[0];Element of MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.multimap;HashSetValuedHashMap;true;HashSetValuedHashMap;(Map);;MapValue of Argument[0];Element of MapValue of Argument[this];value;manual" HashSetValuedHashMap out = null; Map in = Map.of(null, (String)source()); out = new HashSetValuedHashMap(in); sink(getElement(getMapValue(out))); // $ hasValueFlow } { - // "org.apache.commons.collections4.multimap;HashSetValuedHashMap;true;HashSetValuedHashMap;(MultiValuedMap);;Element of MapValue of Argument[0];Element of MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.multimap;HashSetValuedHashMap;true;HashSetValuedHashMap;(MultiValuedMap);;Element of MapValue of Argument[0];Element of MapValue of Argument[this];value;manual" HashSetValuedHashMap out = null; MultiValuedMap in = newALVHMWithMapValue((String)source()); out = new HashSetValuedHashMap(in); sink(getElement(getMapValue(out))); // $ hasValueFlow } { - // "org.apache.commons.collections4.multimap;HashSetValuedHashMap;true;HashSetValuedHashMap;(MultiValuedMap);;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.multimap;HashSetValuedHashMap;true;HashSetValuedHashMap;(MultiValuedMap);;MapKey of Argument[0];MapKey of Argument[this];value;manual" HashSetValuedHashMap out = null; MultiValuedMap in = newALVHMWithMapKey((String)source()); out = new HashSetValuedHashMap(in); @@ -6591,7 +6591,7 @@ public class Test { sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.multiset;HashMultiSet;true;HashMultiSet;;;Element of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.multiset;HashMultiSet;true;HashMultiSet;;;Element of Argument[0];Element of Argument[this];value;manual" HashMultiSet out = null; Collection in = newTreeBagWithElement((String)source()); out = new HashMultiSet(in); @@ -6683,14 +6683,14 @@ public class Test { sink(out); // $ hasTaintFlow } { - // "org.apache.commons.collections4.queue;CircularFifoQueue;true;CircularFifoQueue;(Collection);;Element of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.queue;CircularFifoQueue;true;CircularFifoQueue;(Collection);;Element of Argument[0];Element of Argument[this];value;manual" CircularFifoQueue out = null; Collection in = newTreeBagWithElement((String)source()); out = new CircularFifoQueue(in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.queue;CircularFifoQueue;true;get;;;Element of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4.queue;CircularFifoQueue;true;get;;;Element of Argument[this];ReturnValue;value;manual" Object out = null; CircularFifoQueue in = newCircularFifoQueueWithElement((String)source()); out = in.get(0); @@ -6725,21 +6725,21 @@ public class Test { sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.set;AbstractNavigableSetDecorator;true;AbstractNavigableSetDecorator;;;Element of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.set;AbstractNavigableSetDecorator;true;AbstractNavigableSetDecorator;;;Element of Argument[0];Element of Argument[this];value;manual" AbstractNavigableSetDecorator out = null; NavigableSet in = newTreeSetWithElement((String)source()); out = new MyAbstractNavigableSetDecorator(in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.set;AbstractSetDecorator;true;AbstractSetDecorator;;;Element of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.set;AbstractSetDecorator;true;AbstractSetDecorator;;;Element of Argument[0];Element of Argument[this];value;manual" AbstractSetDecorator out = null; Set in = newListOrderedSetWithElement((String)source()); out = new MyAbstractSetDecorator(in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.set;AbstractSortedSetDecorator;true;AbstractSortedSetDecorator;;;Element of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.set;AbstractSortedSetDecorator;true;AbstractSortedSetDecorator;;;Element of Argument[0];Element of Argument[this];value;manual" AbstractSortedSetDecorator out = null; Set in = newListOrderedSetWithElement((String)source()); out = new MyAbstractSortedSetDecorator(in); @@ -6778,84 +6778,84 @@ public class Test { sink(getElement(getElement(out))); // $ hasValueFlow } { - // "org.apache.commons.collections4.set;CompositeSet;true;CompositeSet;(Set);;Element of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.set;CompositeSet;true;CompositeSet;(Set);;Element of Argument[0];Element of Argument[this];value;manual" CompositeSet out = null; Set in = newListOrderedSetWithElement((String)source()); out = new CompositeSet(in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.set;CompositeSet;true;CompositeSet;(Set[]);;Element of ArrayElement of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.set;CompositeSet;true;CompositeSet;(Set[]);;Element of ArrayElement of Argument[0];Element of Argument[this];value;manual" CompositeSet out = null; Set[] in = new Set[]{newListOrderedSetWithElement((String)source())}; out = new CompositeSet(in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.set;CompositeSet;true;addComposited;(Set);;Element of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.set;CompositeSet;true;addComposited;(Set);;Element of Argument[0];Element of Argument[this];value;manual" CompositeSet out = null; Set in = newListOrderedSetWithElement((String)source()); out.addComposited(in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.set;CompositeSet;true;addComposited;(Set,Set);;Element of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.set;CompositeSet;true;addComposited;(Set,Set);;Element of Argument[0];Element of Argument[this];value;manual" CompositeSet out = null; Set in = newListOrderedSetWithElement((String)source()); out.addComposited(in, null); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.set;CompositeSet;true;addComposited;(Set,Set);;Element of Argument[1];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.set;CompositeSet;true;addComposited;(Set,Set);;Element of Argument[1];Element of Argument[this];value;manual" CompositeSet out = null; Set in = newListOrderedSetWithElement((String)source()); out.addComposited(null, in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.set;CompositeSet;true;addComposited;(Set[]);;Element of ArrayElement of Argument[0];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.set;CompositeSet;true;addComposited;(Set[]);;Element of ArrayElement of Argument[0];Element of Argument[this];value;manual" CompositeSet out = null; Set[] in = new Set[]{newListOrderedSetWithElement((String)source())}; out.addComposited(in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.set;CompositeSet;true;getSets;;;Element of Argument[-1];Element of Element of ReturnValue;value;manual" + // "org.apache.commons.collections4.set;CompositeSet;true;getSets;;;Element of Argument[this];Element of Element of ReturnValue;value;manual" List<Set<String>> out = null; CompositeSet<String> in = newCompositeSetWithElement((String)source()); out = in.getSets(); sink(getElement(getElement(out))); // $ hasValueFlow } { - // "org.apache.commons.collections4.set;CompositeSet;true;toSet;;;Element of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4.set;CompositeSet;true;toSet;;;Element of Argument[this];Element of ReturnValue;value;manual" Set out = null; CompositeSet in = newCompositeSetWithElement((String)source()); out = in.toSet(); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.set;ListOrderedSet;true;add;;;Argument[1];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.set;ListOrderedSet;true;add;;;Argument[1];Element of Argument[this];value;manual" ListOrderedSet out = null; Object in = source(); out.add(0, in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.set;ListOrderedSet;true;addAll;;;Element of Argument[1];Element of Argument[-1];value;manual" + // "org.apache.commons.collections4.set;ListOrderedSet;true;addAll;;;Element of Argument[1];Element of Argument[this];value;manual" ListOrderedSet out = null; Collection in = List.of((String)source()); out.addAll(0, in); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.set;ListOrderedSet;true;asList;;;Element of Argument[-1];Element of ReturnValue;value;manual" + // "org.apache.commons.collections4.set;ListOrderedSet;true;asList;;;Element of Argument[this];Element of ReturnValue;value;manual" List out = null; ListOrderedSet in = newListOrderedSetWithElement((String)source()); out = in.asList(); sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.set;ListOrderedSet;true;get;;;Element of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4.set;ListOrderedSet;true;get;;;Element of Argument[this];ReturnValue;value;manual" Object out = null; ListOrderedSet in = newListOrderedSetWithElement((String)source()); out = in.get(0); @@ -6953,14 +6953,14 @@ public class Test { sink(getElement(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.splitmap;AbstractIterableGetMapDecorator;true;AbstractIterableGetMapDecorator;;;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.splitmap;AbstractIterableGetMapDecorator;true;AbstractIterableGetMapDecorator;;;MapKey of Argument[0];MapKey of Argument[this];value;manual" AbstractIterableGetMapDecorator out = null; Map in = Map.of((String)source(), null); out = new AbstractIterableGetMapDecorator(in); sink(getMapKeyFromGet(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.splitmap;AbstractIterableGetMapDecorator;true;AbstractIterableGetMapDecorator;;;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.splitmap;AbstractIterableGetMapDecorator;true;AbstractIterableGetMapDecorator;;;MapValue of Argument[0];MapValue of Argument[this];value;manual" AbstractIterableGetMapDecorator out = null; Map in = Map.of(null, (String)source()); out = new AbstractIterableGetMapDecorator(in); @@ -6981,42 +6981,42 @@ public class Test { sink(getMapValueFromGet(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.trie;PatriciaTrie;true;PatriciaTrie;;;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "org.apache.commons.collections4.trie;PatriciaTrie;true;PatriciaTrie;;;MapKey of Argument[0];MapKey of Argument[this];value;manual" PatriciaTrie out = null; Map in = Map.of((String)source(), null); out = new PatriciaTrie(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.trie;PatriciaTrie;true;PatriciaTrie;;;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "org.apache.commons.collections4.trie;PatriciaTrie;true;PatriciaTrie;;;MapValue of Argument[0];MapValue of Argument[this];value;manual" PatriciaTrie out = null; Map in = Map.of(null, (String)source()); out = new PatriciaTrie(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.trie;AbstractPatriciaTrie;true;select;;;MapKey of Argument[-1];MapKey of ReturnValue;value;manual" + // "org.apache.commons.collections4.trie;AbstractPatriciaTrie;true;select;;;MapKey of Argument[this];MapKey of ReturnValue;value;manual" PatriciaTrie<Object> in = newPatriciaTrieWithMapKey((String)source()); Map.Entry<String,Object> out = null; out = in.select(null); sink(getMapKeyFromEntry(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.trie;AbstractPatriciaTrie;true;select;;;MapValue of Argument[-1];MapValue of ReturnValue;value;manual" + // "org.apache.commons.collections4.trie;AbstractPatriciaTrie;true;select;;;MapValue of Argument[this];MapValue of ReturnValue;value;manual" PatriciaTrie<String> in = newPatriciaTrieWithMapValue((String)source()); Map.Entry<String,String> out = null; out = in.select(null); sink(getMapValueFromEntry(out)); // $ hasValueFlow } { - // "org.apache.commons.collections4.trie;AbstractPatriciaTrie;true;selectKey;;;MapKey of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4.trie;AbstractPatriciaTrie;true;selectKey;;;MapKey of Argument[this];ReturnValue;value;manual" PatriciaTrie<Object> in = newPatriciaTrieWithMapKey((String)source()); String out = null; out = in.selectKey(null); sink(out); // $ hasValueFlow } { - // "org.apache.commons.collections4.trie;AbstractPatriciaTrie;true;selectValue;;;MapValue of Argument[-1];ReturnValue;value;manual" + // "org.apache.commons.collections4.trie;AbstractPatriciaTrie;true;selectValue;;;MapValue of Argument[this];ReturnValue;value;manual" PatriciaTrie<String> in = newPatriciaTrieWithMapValue((String)source()); String out = null; out = in.selectValue(null); diff --git a/java/ql/test/library-tests/frameworks/apache-commons-compress/Test.java b/java/ql/test/library-tests/frameworks/apache-commons-compress/Test.java index 9f1a83f51ba..bb702aa6d99 100644 --- a/java/ql/test/library-tests/frameworks/apache-commons-compress/Test.java +++ b/java/ql/test/library-tests/frameworks/apache-commons-compress/Test.java @@ -13,28 +13,28 @@ public class Test { public void test() throws Exception { { - // "org.apache.commons.compress.archivers.tar;TarArchiveEntry;true;TarArchiveEntry;(String);;Argument[0];Argument[-1];taint;ai-generated" + // "org.apache.commons.compress.archivers.tar;TarArchiveEntry;true;TarArchiveEntry;(String);;Argument[0];Argument[this];taint;ai-generated" TarArchiveEntry out = null; String in = (String) source(); out = new TarArchiveEntry(in); sink(out); // $ hasTaintFlow } { - // "org.apache.commons.compress.archivers.tar;TarArchiveEntry;true;TarArchiveEntry;(String,boolean);;Argument[0];Argument[-1];taint;ai-generated" + // "org.apache.commons.compress.archivers.tar;TarArchiveEntry;true;TarArchiveEntry;(String,boolean);;Argument[0];Argument[this];taint;ai-generated" TarArchiveEntry out = null; String in = (String) source(); out = new TarArchiveEntry(in, false); sink(out); // $ hasTaintFlow } { - // "org.apache.commons.compress.archivers.tar;TarArchiveEntry;true;TarArchiveEntry;(String,byte);;Argument[0];Argument[-1];taint;ai-generated" + // "org.apache.commons.compress.archivers.tar;TarArchiveEntry;true;TarArchiveEntry;(String,byte);;Argument[0];Argument[this];taint;ai-generated" TarArchiveEntry out = null; String in = (String) source(); out = new TarArchiveEntry(in, (byte) 0); sink(out); // $ hasTaintFlow } { - // "org.apache.commons.compress.archivers.tar;TarArchiveEntry;true;setLinkName;(String);;Argument[0];Argument[-1];taint;ai-generated" + // "org.apache.commons.compress.archivers.tar;TarArchiveEntry;true;setLinkName;(String);;Argument[0];Argument[this];taint;ai-generated" TarArchiveEntry out = null; String in = (String) source(); out.setLinkName(in); diff --git a/java/ql/test/library-tests/frameworks/apache-http/Client.java b/java/ql/test/library-tests/frameworks/apache-http/Client.java index e5aab168f87..e7c73af1247 100644 --- a/java/ql/test/library-tests/frameworks/apache-http/Client.java +++ b/java/ql/test/library-tests/frameworks/apache-http/Client.java @@ -25,21 +25,21 @@ public class Client { public void test() throws Exception { { - // "org.apache.http.client.utils;URIBuilder;true;URIBuilder;(String);;Argument[0];Argument[-1];taint;ai-generated" + // "org.apache.http.client.utils;URIBuilder;true;URIBuilder;(String);;Argument[0];Argument[this];taint;ai-generated" URIBuilder out = null; String in = (String) taint(); out = new URIBuilder(in); sink(out); // $ hasTaintFlow } { - // "org.apache.http.client.utils;URIBuilder;true;URIBuilder;(URI);;Argument[0];Argument[-1];taint;ai-generated" + // "org.apache.http.client.utils;URIBuilder;true;URIBuilder;(URI);;Argument[0];Argument[this];taint;ai-generated" URIBuilder out = null; URI in = (URI) taint(); out = new URIBuilder(in); sink(out); // $ hasTaintFlow } { - // "org.apache.http.client.utils;URIBuilder;true;setHost;(String);;Argument[0];Argument[-1];taint;ai-generated" + // "org.apache.http.client.utils;URIBuilder;true;setHost;(String);;Argument[0];Argument[this];taint;ai-generated" URIBuilder out = null; String in = (String) taint(); out.setHost(in); @@ -54,14 +54,14 @@ public class Client { sink(out); // $ hasTaintFlow } { - // "org.apache.http.client.utils;URIBuilder;true;setPath;(String);;Argument[0];Argument[-1].SyntheticField[org.apache.http.client.utils.URIBuilder.path];taint;ai-generated" + // "org.apache.http.client.utils;URIBuilder;true;setPath;(String);;Argument[0];Argument[this].SyntheticField[org.apache.http.client.utils.URIBuilder.path];taint;ai-generated" URIBuilder out = null; String in = (String) taint(); out.setPath(in); sink(getURIBuilder_pathDefault(out)); // $ hasTaintFlow } { - // "org.apache.http.client.utils;URIBuilder;true;setPathSegments;(List);;Argument[0];Argument[-1].SyntheticField[org.apache.http.client.utils.URIBuilder.path];taint;ai-generated" + // "org.apache.http.client.utils;URIBuilder;true;setPathSegments;(List);;Argument[0];Argument[this].SyntheticField[org.apache.http.client.utils.URIBuilder.path];taint;ai-generated" URIBuilder out = null; List in = (List) taint(); out.setPathSegments(in); diff --git a/java/ql/test/library-tests/frameworks/guava/generated/cache/Test.java b/java/ql/test/library-tests/frameworks/guava/generated/cache/Test.java index 631fc62da7b..ec239db4a00 100644 --- a/java/ql/test/library-tests/frameworks/guava/generated/cache/Test.java +++ b/java/ql/test/library-tests/frameworks/guava/generated/cache/Test.java @@ -48,35 +48,35 @@ public class Test { public void test() throws Exception { { - // "com.google.common.cache;Cache;true;asMap;();;MapKey of Argument[-1];MapKey of ReturnValue;value;manual" + // "com.google.common.cache;Cache;true;asMap;();;MapKey of Argument[this];MapKey of ReturnValue;value;manual" ConcurrentMap out = null; LoadingCache in = newCacheWithMapKey(source()); out = in.asMap(); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.cache;Cache;true;asMap;();;MapKey of Argument[-1];MapKey of ReturnValue;value;manual" + // "com.google.common.cache;Cache;true;asMap;();;MapKey of Argument[this];MapKey of ReturnValue;value;manual" ConcurrentMap out = null; Cache in = newCacheWithMapKey(source()); out = in.asMap(); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.cache;Cache;true;asMap;();;MapValue of Argument[-1];MapValue of ReturnValue;value;manual" + // "com.google.common.cache;Cache;true;asMap;();;MapValue of Argument[this];MapValue of ReturnValue;value;manual" ConcurrentMap out = null; LoadingCache in = newCacheWithMapValue(source()); out = in.asMap(); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.cache;Cache;true;asMap;();;MapValue of Argument[-1];MapValue of ReturnValue;value;manual" + // "com.google.common.cache;Cache;true;asMap;();;MapValue of Argument[this];MapValue of ReturnValue;value;manual" ConcurrentMap out = null; Cache in = newCacheWithMapValue(source()); out = in.asMap(); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.cache;Cache;true;get;(Object,Callable);;MapValue of Argument[-1];ReturnValue;value;manual" + // "com.google.common.cache;Cache;true;get;(Object,Callable);;MapValue of Argument[this];ReturnValue;value;manual" Object out = null; Cache in = newCacheWithMapValue(source()); out = in.get(null, null); @@ -91,63 +91,63 @@ public class Test { sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.cache;Cache;true;getAllPresent;(Iterable);;MapKey of Argument[-1];MapKey of ReturnValue;value;manual" + // "com.google.common.cache;Cache;true;getAllPresent;(Iterable);;MapKey of Argument[this];MapKey of ReturnValue;value;manual" ImmutableMap out = null; Cache in = newCacheWithMapKey(source()); out = in.getAllPresent(null); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.cache;Cache;true;getIfPresent;;;MapValue of Argument[-1];ReturnValue;value;manual" + // "com.google.common.cache;Cache;true;getIfPresent;;;MapValue of Argument[this];ReturnValue;value;manual" Object out = null; Cache in = newCacheWithMapValue(source()); out = in.getIfPresent(null); sink(out); // $ hasValueFlow } { - // "com.google.common.cache;Cache;true;put;(Object,Object);;Argument[0];MapKey of Argument[-1];value;manual" + // "com.google.common.cache;Cache;true;put;(Object,Object);;Argument[0];MapKey of Argument[this];value;manual" Cache out = null; Object in = source(); out.put(in, null); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.cache;Cache;true;put;(Object,Object);;Argument[1];MapValue of Argument[-1];value;manual" + // "com.google.common.cache;Cache;true;put;(Object,Object);;Argument[1];MapValue of Argument[this];value;manual" Cache out = null; Object in = source(); out.put(null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.cache;Cache;true;putAll;(Map);;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "com.google.common.cache;Cache;true;putAll;(Map);;MapKey of Argument[0];MapKey of Argument[this];value;manual" Cache out = null; Map in = newMapWithMapKey(source()); out.putAll(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.cache;Cache;true;putAll;(Map);;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "com.google.common.cache;Cache;true;putAll;(Map);;MapValue of Argument[0];MapValue of Argument[this];value;manual" Cache out = null; Map in = newMapWithMapValue(source()); out.putAll(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.cache;LoadingCache;true;apply;;;MapValue of Argument[-1];ReturnValue;value;manual" + // "com.google.common.cache;LoadingCache;true;apply;;;MapValue of Argument[this];ReturnValue;value;manual" Object out = null; LoadingCache in = newCacheWithMapValue(source()); out = in.apply(null); sink(out); // $ hasValueFlow } { - // "com.google.common.cache;LoadingCache;true;get;;;MapValue of Argument[-1];ReturnValue;value;manual" + // "com.google.common.cache;LoadingCache;true;get;;;MapValue of Argument[this];ReturnValue;value;manual" Object out = null; LoadingCache in = newCacheWithMapValue(source()); out = in.get(null); sink(out); // $ hasValueFlow } { - // "com.google.common.cache;LoadingCache;true;getAll;(Iterable);;Element of Argument[0];MapKey of Argument[-1];value;manual" + // "com.google.common.cache;LoadingCache;true;getAll;(Iterable);;Element of Argument[0];MapKey of Argument[this];value;manual" LoadingCache out = null; Iterable in = (Iterable)newWithElement(source()); out.getAll(in); @@ -162,14 +162,14 @@ public class Test { sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.cache;LoadingCache;true;getAll;(Iterable);;MapValue of Argument[-1];MapValue of ReturnValue;value;manual" + // "com.google.common.cache;LoadingCache;true;getAll;(Iterable);;MapValue of Argument[this];MapValue of ReturnValue;value;manual" ImmutableMap out = null; LoadingCache in = newCacheWithMapValue(source()); out = in.getAll(null); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.cache;LoadingCache;true;getUnchecked;;;MapValue of Argument[-1];ReturnValue;value;manual" + // "com.google.common.cache;LoadingCache;true;getUnchecked;;;MapValue of Argument[this];ReturnValue;value;manual" Object out = null; LoadingCache in = newCacheWithMapValue(source()); out = in.getUnchecked(null); diff --git a/java/ql/test/library-tests/frameworks/guava/generated/collect/Test.java b/java/ql/test/library-tests/frameworks/guava/generated/collect/Test.java index ae81ed4150b..39a10dc8141 100644 --- a/java/ql/test/library-tests/frameworks/guava/generated/collect/Test.java +++ b/java/ql/test/library-tests/frameworks/guava/generated/collect/Test.java @@ -176,147 +176,147 @@ public class Test { sink(getTable_rowKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;BiMap;true;forcePut;(Object,Object);;Argument[0];MapKey of Argument[-1];value;manual" + // "com.google.common.collect;BiMap;true;forcePut;(Object,Object);;Argument[0];MapKey of Argument[this];value;manual" ImmutableBiMap out = null; Object in = (Object)source(); out.forcePut(in, null); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;BiMap;true;forcePut;(Object,Object);;Argument[0];MapKey of Argument[-1];value;manual" + // "com.google.common.collect;BiMap;true;forcePut;(Object,Object);;Argument[0];MapKey of Argument[this];value;manual" HashBiMap out = null; Object in = (Object)source(); out.forcePut(in, null); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;BiMap;true;forcePut;(Object,Object);;Argument[0];MapKey of Argument[-1];value;manual" + // "com.google.common.collect;BiMap;true;forcePut;(Object,Object);;Argument[0];MapKey of Argument[this];value;manual" BiMap out = null; Object in = (Object)source(); out.forcePut(in, null); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;BiMap;true;forcePut;(Object,Object);;Argument[1];MapValue of Argument[-1];value;manual" + // "com.google.common.collect;BiMap;true;forcePut;(Object,Object);;Argument[1];MapValue of Argument[this];value;manual" ImmutableBiMap out = null; Object in = (Object)source(); out.forcePut(null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;BiMap;true;forcePut;(Object,Object);;Argument[1];MapValue of Argument[-1];value;manual" + // "com.google.common.collect;BiMap;true;forcePut;(Object,Object);;Argument[1];MapValue of Argument[this];value;manual" HashBiMap out = null; Object in = (Object)source(); out.forcePut(null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;BiMap;true;forcePut;(Object,Object);;Argument[1];MapValue of Argument[-1];value;manual" + // "com.google.common.collect;BiMap;true;forcePut;(Object,Object);;Argument[1];MapValue of Argument[this];value;manual" BiMap out = null; Object in = (Object)source(); out.forcePut(null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;BiMap;true;inverse;();;MapKey of Argument[-1];MapValue of ReturnValue;value;manual" + // "com.google.common.collect;BiMap;true;inverse;();;MapKey of Argument[this];MapValue of ReturnValue;value;manual" ImmutableBiMap out = null; ImmutableBiMap in = (ImmutableBiMap)ImmutableBiMap.of(source(), null); out = in.inverse(); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;BiMap;true;inverse;();;MapKey of Argument[-1];MapValue of ReturnValue;value;manual" + // "com.google.common.collect;BiMap;true;inverse;();;MapKey of Argument[this];MapValue of ReturnValue;value;manual" BiMap out = null; HashBiMap in = (HashBiMap)HashBiMap.create(Map.of(source(), null)); out = in.inverse(); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;BiMap;true;inverse;();;MapKey of Argument[-1];MapValue of ReturnValue;value;manual" + // "com.google.common.collect;BiMap;true;inverse;();;MapKey of Argument[this];MapValue of ReturnValue;value;manual" BiMap out = null; BiMap in = (BiMap)ImmutableBiMap.of(source(), null); out = in.inverse(); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;BiMap;true;inverse;();;MapValue of Argument[-1];MapKey of ReturnValue;value;manual" + // "com.google.common.collect;BiMap;true;inverse;();;MapValue of Argument[this];MapKey of ReturnValue;value;manual" ImmutableBiMap out = null; ImmutableBiMap in = (ImmutableBiMap)ImmutableBiMap.of(null, source()); out = in.inverse(); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;BiMap;true;inverse;();;MapValue of Argument[-1];MapKey of ReturnValue;value;manual" + // "com.google.common.collect;BiMap;true;inverse;();;MapValue of Argument[this];MapKey of ReturnValue;value;manual" BiMap out = null; HashBiMap in = (HashBiMap)HashBiMap.create(Map.of(null, source())); out = in.inverse(); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;BiMap;true;inverse;();;MapValue of Argument[-1];MapKey of ReturnValue;value;manual" + // "com.google.common.collect;BiMap;true;inverse;();;MapValue of Argument[this];MapKey of ReturnValue;value;manual" BiMap out = null; BiMap in = (BiMap)ImmutableBiMap.of(null, source()); out = in.inverse(); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;ClassToInstanceMap;true;getInstance;(Class);;MapValue of Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ClassToInstanceMap;true;getInstance;(Class);;MapValue of Argument[this];ReturnValue;value;manual" Object out = null; MutableClassToInstanceMap in = (MutableClassToInstanceMap)MutableClassToInstanceMap.create(Map.of(null, source())); out = in.getInstance(null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ClassToInstanceMap;true;getInstance;(Class);;MapValue of Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ClassToInstanceMap;true;getInstance;(Class);;MapValue of Argument[this];ReturnValue;value;manual" Object out = null; ImmutableClassToInstanceMap in = (ImmutableClassToInstanceMap)ImmutableClassToInstanceMap.of(null, source()); out = in.getInstance(null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ClassToInstanceMap;true;getInstance;(Class);;MapValue of Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ClassToInstanceMap;true;getInstance;(Class);;MapValue of Argument[this];ReturnValue;value;manual" Object out = null; ClassToInstanceMap in = (ClassToInstanceMap)ImmutableClassToInstanceMap.of(null, source()); out = in.getInstance(null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ClassToInstanceMap;true;putInstance;(Class,Object);;Argument[1];MapValue of Argument[-1];value;manual" + // "com.google.common.collect;ClassToInstanceMap;true;putInstance;(Class,Object);;Argument[1];MapValue of Argument[this];value;manual" MutableClassToInstanceMap out = null; Object in = (Object)source(); out.putInstance(null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;ClassToInstanceMap;true;putInstance;(Class,Object);;Argument[1];MapValue of Argument[-1];value;manual" + // "com.google.common.collect;ClassToInstanceMap;true;putInstance;(Class,Object);;Argument[1];MapValue of Argument[this];value;manual" ImmutableClassToInstanceMap out = null; Object in = (Object)source(); out.putInstance(null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;ClassToInstanceMap;true;putInstance;(Class,Object);;Argument[1];MapValue of Argument[-1];value;manual" + // "com.google.common.collect;ClassToInstanceMap;true;putInstance;(Class,Object);;Argument[1];MapValue of Argument[this];value;manual" ClassToInstanceMap out = null; Object in = (Object)source(); out.putInstance(null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;ClassToInstanceMap;true;putInstance;(Class,Object);;MapValue of Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ClassToInstanceMap;true;putInstance;(Class,Object);;MapValue of Argument[this];ReturnValue;value;manual" Object out = null; MutableClassToInstanceMap in = (MutableClassToInstanceMap)MutableClassToInstanceMap.create(Map.of(null, source())); out = in.putInstance(null, null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ClassToInstanceMap;true;putInstance;(Class,Object);;MapValue of Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ClassToInstanceMap;true;putInstance;(Class,Object);;MapValue of Argument[this];ReturnValue;value;manual" Object out = null; ImmutableClassToInstanceMap in = (ImmutableClassToInstanceMap)ImmutableClassToInstanceMap.of(null, source()); out = in.putInstance(null, null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ClassToInstanceMap;true;putInstance;(Class,Object);;MapValue of Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ClassToInstanceMap;true;putInstance;(Class,Object);;MapValue of Argument[this];ReturnValue;value;manual" Object out = null; ClassToInstanceMap in = (ClassToInstanceMap)ImmutableClassToInstanceMap.of(null, source()); out = in.putInstance(null, null); @@ -652,406 +652,406 @@ public class Test { sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableCollection$Builder;true;add;(Object);;Argument[0];Element of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableCollection$Builder;true;add;(Object);;Argument[0];Element of Argument[this];value;manual" ImmutableSortedSet.Builder out = null; Object in = (Object)source(); out.add(in); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableCollection$Builder;true;add;(Object);;Argument[0];Element of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableCollection$Builder;true;add;(Object);;Argument[0];Element of Argument[this];value;manual" ImmutableSortedMultiset.Builder out = null; Object in = (Object)source(); out.add(in); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableCollection$Builder;true;add;(Object);;Argument[0];Element of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableCollection$Builder;true;add;(Object);;Argument[0];Element of Argument[this];value;manual" ImmutableSet.Builder out = null; Object in = (Object)source(); out.add(in); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableCollection$Builder;true;add;(Object);;Argument[0];Element of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableCollection$Builder;true;add;(Object);;Argument[0];Element of Argument[this];value;manual" ImmutableMultiset.Builder out = null; Object in = (Object)source(); out.add(in); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableCollection$Builder;true;add;(Object);;Argument[0];Element of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableCollection$Builder;true;add;(Object);;Argument[0];Element of Argument[this];value;manual" ImmutableList.Builder out = null; Object in = (Object)source(); out.add(in); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableCollection$Builder;true;add;(Object);;Argument[0];Element of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableCollection$Builder;true;add;(Object);;Argument[0];Element of Argument[this];value;manual" ImmutableCollection.Builder out = null; Object in = (Object)source(); out.add(in); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableCollection$Builder;true;add;(Object[]);;ArrayElement of Argument[0];Element of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableCollection$Builder;true;add;(Object[]);;ArrayElement of Argument[0];Element of Argument[this];value;manual" ImmutableSortedSet.Builder out = null; Object[] in = (Object[])new Object[]{source()}; out.add(in); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableCollection$Builder;true;add;(Object[]);;ArrayElement of Argument[0];Element of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableCollection$Builder;true;add;(Object[]);;ArrayElement of Argument[0];Element of Argument[this];value;manual" ImmutableSortedMultiset.Builder out = null; Object[] in = (Object[])new Object[]{source()}; out.add(in); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableCollection$Builder;true;add;(Object[]);;ArrayElement of Argument[0];Element of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableCollection$Builder;true;add;(Object[]);;ArrayElement of Argument[0];Element of Argument[this];value;manual" ImmutableSet.Builder out = null; Object[] in = (Object[])new Object[]{source()}; out.add(in); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableCollection$Builder;true;add;(Object[]);;ArrayElement of Argument[0];Element of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableCollection$Builder;true;add;(Object[]);;ArrayElement of Argument[0];Element of Argument[this];value;manual" ImmutableMultiset.Builder out = null; Object[] in = (Object[])new Object[]{source()}; out.add(in); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableCollection$Builder;true;add;(Object[]);;ArrayElement of Argument[0];Element of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableCollection$Builder;true;add;(Object[]);;ArrayElement of Argument[0];Element of Argument[this];value;manual" ImmutableList.Builder out = null; Object[] in = (Object[])new Object[]{source()}; out.add(in); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableCollection$Builder;true;add;(Object[]);;ArrayElement of Argument[0];Element of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableCollection$Builder;true;add;(Object[]);;ArrayElement of Argument[0];Element of Argument[this];value;manual" ImmutableCollection.Builder out = null; Object[] in = (Object[])new Object[]{source()}; out.add(in); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableCollection$Builder;true;add;;;Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ImmutableCollection$Builder;true;add;;;Argument[this];ReturnValue;value;manual" ImmutableSortedSet.Builder out = null; ImmutableSortedSet.Builder in = (ImmutableSortedSet.Builder)source(); out = in.add((Object[])null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableCollection$Builder;true;add;;;Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ImmutableCollection$Builder;true;add;;;Argument[this];ReturnValue;value;manual" ImmutableSortedSet.Builder out = null; ImmutableSortedSet.Builder in = (ImmutableSortedSet.Builder)source(); out = in.add((Object)null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableCollection$Builder;true;add;;;Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ImmutableCollection$Builder;true;add;;;Argument[this];ReturnValue;value;manual" ImmutableSortedMultiset.Builder out = null; ImmutableSortedMultiset.Builder in = (ImmutableSortedMultiset.Builder)source(); out = in.add((Object[])null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableCollection$Builder;true;add;;;Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ImmutableCollection$Builder;true;add;;;Argument[this];ReturnValue;value;manual" ImmutableSortedMultiset.Builder out = null; ImmutableSortedMultiset.Builder in = (ImmutableSortedMultiset.Builder)source(); out = in.add((Object)null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableCollection$Builder;true;add;;;Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ImmutableCollection$Builder;true;add;;;Argument[this];ReturnValue;value;manual" ImmutableSet.Builder out = null; ImmutableSet.Builder in = (ImmutableSet.Builder)source(); out = in.add((Object[])null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableCollection$Builder;true;add;;;Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ImmutableCollection$Builder;true;add;;;Argument[this];ReturnValue;value;manual" ImmutableSet.Builder out = null; ImmutableSet.Builder in = (ImmutableSet.Builder)source(); out = in.add((Object)null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableCollection$Builder;true;add;;;Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ImmutableCollection$Builder;true;add;;;Argument[this];ReturnValue;value;manual" ImmutableMultiset.Builder out = null; ImmutableMultiset.Builder in = (ImmutableMultiset.Builder)source(); out = in.add((Object[])null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableCollection$Builder;true;add;;;Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ImmutableCollection$Builder;true;add;;;Argument[this];ReturnValue;value;manual" ImmutableMultiset.Builder out = null; ImmutableMultiset.Builder in = (ImmutableMultiset.Builder)source(); out = in.add((Object)null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableCollection$Builder;true;add;;;Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ImmutableCollection$Builder;true;add;;;Argument[this];ReturnValue;value;manual" ImmutableList.Builder out = null; ImmutableList.Builder in = (ImmutableList.Builder)source(); out = in.add((Object[])null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableCollection$Builder;true;add;;;Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ImmutableCollection$Builder;true;add;;;Argument[this];ReturnValue;value;manual" ImmutableList.Builder out = null; ImmutableList.Builder in = (ImmutableList.Builder)source(); out = in.add((Object)null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableCollection$Builder;true;add;;;Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ImmutableCollection$Builder;true;add;;;Argument[this];ReturnValue;value;manual" ImmutableCollection.Builder out = null; ImmutableCollection.Builder in = (ImmutableCollection.Builder)source(); out = in.add((Object[])null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableCollection$Builder;true;add;;;Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ImmutableCollection$Builder;true;add;;;Argument[this];ReturnValue;value;manual" ImmutableCollection.Builder out = null; ImmutableCollection.Builder in = (ImmutableCollection.Builder)source(); out = in.add((Object)null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableCollection$Builder;true;addAll;(Iterable);;Element of Argument[0];Element of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableCollection$Builder;true;addAll;(Iterable);;Element of Argument[0];Element of Argument[this];value;manual" ImmutableSortedSet.Builder out = null; Iterable in = (Iterable)List.of(source()); out.addAll(in); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableCollection$Builder;true;addAll;(Iterable);;Element of Argument[0];Element of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableCollection$Builder;true;addAll;(Iterable);;Element of Argument[0];Element of Argument[this];value;manual" ImmutableSortedMultiset.Builder out = null; Iterable in = (Iterable)List.of(source()); out.addAll(in); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableCollection$Builder;true;addAll;(Iterable);;Element of Argument[0];Element of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableCollection$Builder;true;addAll;(Iterable);;Element of Argument[0];Element of Argument[this];value;manual" ImmutableSet.Builder out = null; Iterable in = (Iterable)List.of(source()); out.addAll(in); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableCollection$Builder;true;addAll;(Iterable);;Element of Argument[0];Element of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableCollection$Builder;true;addAll;(Iterable);;Element of Argument[0];Element of Argument[this];value;manual" ImmutableMultiset.Builder out = null; Iterable in = (Iterable)List.of(source()); out.addAll(in); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableCollection$Builder;true;addAll;(Iterable);;Element of Argument[0];Element of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableCollection$Builder;true;addAll;(Iterable);;Element of Argument[0];Element of Argument[this];value;manual" ImmutableList.Builder out = null; Iterable in = (Iterable)List.of(source()); out.addAll(in); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableCollection$Builder;true;addAll;(Iterable);;Element of Argument[0];Element of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableCollection$Builder;true;addAll;(Iterable);;Element of Argument[0];Element of Argument[this];value;manual" ImmutableCollection.Builder out = null; Iterable in = (Iterable)List.of(source()); out.addAll(in); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableCollection$Builder;true;addAll;(Iterator);;Element of Argument[0];Element of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableCollection$Builder;true;addAll;(Iterator);;Element of Argument[0];Element of Argument[this];value;manual" ImmutableSortedSet.Builder out = null; Iterator in = (Iterator)List.of(source()).iterator(); out.addAll(in); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableCollection$Builder;true;addAll;(Iterator);;Element of Argument[0];Element of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableCollection$Builder;true;addAll;(Iterator);;Element of Argument[0];Element of Argument[this];value;manual" ImmutableSortedMultiset.Builder out = null; Iterator in = (Iterator)List.of(source()).iterator(); out.addAll(in); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableCollection$Builder;true;addAll;(Iterator);;Element of Argument[0];Element of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableCollection$Builder;true;addAll;(Iterator);;Element of Argument[0];Element of Argument[this];value;manual" ImmutableSet.Builder out = null; Iterator in = (Iterator)List.of(source()).iterator(); out.addAll(in); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableCollection$Builder;true;addAll;(Iterator);;Element of Argument[0];Element of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableCollection$Builder;true;addAll;(Iterator);;Element of Argument[0];Element of Argument[this];value;manual" ImmutableMultiset.Builder out = null; Iterator in = (Iterator)List.of(source()).iterator(); out.addAll(in); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableCollection$Builder;true;addAll;(Iterator);;Element of Argument[0];Element of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableCollection$Builder;true;addAll;(Iterator);;Element of Argument[0];Element of Argument[this];value;manual" ImmutableList.Builder out = null; Iterator in = (Iterator)List.of(source()).iterator(); out.addAll(in); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableCollection$Builder;true;addAll;(Iterator);;Element of Argument[0];Element of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableCollection$Builder;true;addAll;(Iterator);;Element of Argument[0];Element of Argument[this];value;manual" ImmutableCollection.Builder out = null; Iterator in = (Iterator)List.of(source()).iterator(); out.addAll(in); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableCollection$Builder;true;addAll;;;Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ImmutableCollection$Builder;true;addAll;;;Argument[this];ReturnValue;value;manual" ImmutableSortedSet.Builder out = null; ImmutableSortedSet.Builder in = (ImmutableSortedSet.Builder)source(); out = in.addAll((Iterator)null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableCollection$Builder;true;addAll;;;Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ImmutableCollection$Builder;true;addAll;;;Argument[this];ReturnValue;value;manual" ImmutableSortedSet.Builder out = null; ImmutableSortedSet.Builder in = (ImmutableSortedSet.Builder)source(); out = in.addAll((Iterable)null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableCollection$Builder;true;addAll;;;Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ImmutableCollection$Builder;true;addAll;;;Argument[this];ReturnValue;value;manual" ImmutableSortedMultiset.Builder out = null; ImmutableSortedMultiset.Builder in = (ImmutableSortedMultiset.Builder)source(); out = in.addAll((Iterator)null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableCollection$Builder;true;addAll;;;Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ImmutableCollection$Builder;true;addAll;;;Argument[this];ReturnValue;value;manual" ImmutableSortedMultiset.Builder out = null; ImmutableSortedMultiset.Builder in = (ImmutableSortedMultiset.Builder)source(); out = in.addAll((Iterable)null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableCollection$Builder;true;addAll;;;Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ImmutableCollection$Builder;true;addAll;;;Argument[this];ReturnValue;value;manual" ImmutableSet.Builder out = null; ImmutableSet.Builder in = (ImmutableSet.Builder)source(); out = in.addAll((Iterator)null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableCollection$Builder;true;addAll;;;Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ImmutableCollection$Builder;true;addAll;;;Argument[this];ReturnValue;value;manual" ImmutableSet.Builder out = null; ImmutableSet.Builder in = (ImmutableSet.Builder)source(); out = in.addAll((Iterable)null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableCollection$Builder;true;addAll;;;Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ImmutableCollection$Builder;true;addAll;;;Argument[this];ReturnValue;value;manual" ImmutableMultiset.Builder out = null; ImmutableMultiset.Builder in = (ImmutableMultiset.Builder)source(); out = in.addAll((Iterator)null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableCollection$Builder;true;addAll;;;Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ImmutableCollection$Builder;true;addAll;;;Argument[this];ReturnValue;value;manual" ImmutableMultiset.Builder out = null; ImmutableMultiset.Builder in = (ImmutableMultiset.Builder)source(); out = in.addAll((Iterable)null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableCollection$Builder;true;addAll;;;Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ImmutableCollection$Builder;true;addAll;;;Argument[this];ReturnValue;value;manual" ImmutableList.Builder out = null; ImmutableList.Builder in = (ImmutableList.Builder)source(); out = in.addAll((Iterator)null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableCollection$Builder;true;addAll;;;Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ImmutableCollection$Builder;true;addAll;;;Argument[this];ReturnValue;value;manual" ImmutableList.Builder out = null; ImmutableList.Builder in = (ImmutableList.Builder)source(); out = in.addAll((Iterable)null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableCollection$Builder;true;addAll;;;Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ImmutableCollection$Builder;true;addAll;;;Argument[this];ReturnValue;value;manual" ImmutableCollection.Builder out = null; ImmutableCollection.Builder in = (ImmutableCollection.Builder)source(); out = in.addAll((Iterator)null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableCollection$Builder;true;addAll;;;Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ImmutableCollection$Builder;true;addAll;;;Argument[this];ReturnValue;value;manual" ImmutableCollection.Builder out = null; ImmutableCollection.Builder in = (ImmutableCollection.Builder)source(); out = in.addAll((Iterable)null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableCollection$Builder;true;build;();;Element of Argument[-1];Element of ReturnValue;value;manual" + // "com.google.common.collect;ImmutableCollection$Builder;true;build;();;Element of Argument[this];Element of ReturnValue;value;manual" ImmutableSortedSet out = null; ImmutableSortedSet.Builder in = (ImmutableSortedSet.Builder)ImmutableSortedSet.builder().add(source()); out = in.build(); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableCollection$Builder;true;build;();;Element of Argument[-1];Element of ReturnValue;value;manual" + // "com.google.common.collect;ImmutableCollection$Builder;true;build;();;Element of Argument[this];Element of ReturnValue;value;manual" ImmutableSortedMultiset out = null; ImmutableSortedMultiset.Builder in = (ImmutableSortedMultiset.Builder)ImmutableSortedMultiset.builder().add(source()); out = in.build(); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableCollection$Builder;true;build;();;Element of Argument[-1];Element of ReturnValue;value;manual" + // "com.google.common.collect;ImmutableCollection$Builder;true;build;();;Element of Argument[this];Element of ReturnValue;value;manual" ImmutableSet out = null; ImmutableSet.Builder in = (ImmutableSet.Builder)ImmutableSet.builder().add(source()); out = in.build(); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableCollection$Builder;true;build;();;Element of Argument[-1];Element of ReturnValue;value;manual" + // "com.google.common.collect;ImmutableCollection$Builder;true;build;();;Element of Argument[this];Element of ReturnValue;value;manual" ImmutableMultiset out = null; ImmutableMultiset.Builder in = (ImmutableMultiset.Builder)ImmutableMultiset.builder().add(source()); out = in.build(); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableCollection$Builder;true;build;();;Element of Argument[-1];Element of ReturnValue;value;manual" + // "com.google.common.collect;ImmutableCollection$Builder;true;build;();;Element of Argument[this];Element of ReturnValue;value;manual" ImmutableList out = null; ImmutableList.Builder in = (ImmutableList.Builder)ImmutableList.builder().add(source()); out = in.build(); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableCollection$Builder;true;build;();;Element of Argument[-1];Element of ReturnValue;value;manual" + // "com.google.common.collect;ImmutableCollection$Builder;true;build;();;Element of Argument[this];Element of ReturnValue;value;manual" ImmutableCollection out = null; ImmutableCollection.Builder in = (ImmutableCollection.Builder)ImmutableList.builder().add(source()); out = in.build(); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableCollection;true;asList;();;Element of Argument[-1];Element of ReturnValue;value;manual" + // "com.google.common.collect;ImmutableCollection;true;asList;();;Element of Argument[this];Element of ReturnValue;value;manual" ImmutableList out = null; ImmutableSet in = (ImmutableSet)ImmutableSet.of(source()); out = in.asList(); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableCollection;true;asList;();;Element of Argument[-1];Element of ReturnValue;value;manual" + // "com.google.common.collect;ImmutableCollection;true;asList;();;Element of Argument[this];Element of ReturnValue;value;manual" ImmutableList out = null; ImmutableMultiset in = (ImmutableMultiset)ImmutableMultiset.of(source()); out = in.asList(); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableCollection;true;asList;();;Element of Argument[-1];Element of ReturnValue;value;manual" + // "com.google.common.collect;ImmutableCollection;true;asList;();;Element of Argument[this];Element of ReturnValue;value;manual" ImmutableList out = null; ImmutableList in = (ImmutableList)ImmutableList.of(source()); out = in.asList(); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableCollection;true;asList;();;Element of Argument[-1];Element of ReturnValue;value;manual" + // "com.google.common.collect;ImmutableCollection;true;asList;();;Element of Argument[this];Element of ReturnValue;value;manual" ImmutableList out = null; ImmutableCollection in = (ImmutableCollection)ImmutableList.of(source()); out = in.asList(); @@ -1639,7 +1639,7 @@ public class Test { sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableList;true;reverse;();;Element of Argument[-1];Element of ReturnValue;value;manual" + // "com.google.common.collect;ImmutableList;true;reverse;();;Element of Argument[this];Element of ReturnValue;value;manual" ImmutableList out = null; ImmutableList in = (ImmutableList)ImmutableList.of(source()); out = in.reverse(); @@ -1870,315 +1870,315 @@ public class Test { sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMap$Builder;true;build;();;MapKey of Argument[-1];MapKey of ReturnValue;value;manual" + // "com.google.common.collect;ImmutableMap$Builder;true;build;();;MapKey of Argument[this];MapKey of ReturnValue;value;manual" ImmutableSortedMap out = null; ImmutableSortedMap.Builder in = (ImmutableSortedMap.Builder)ImmutableSortedMap.builder().put(source(), null); out = in.build(); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMap$Builder;true;build;();;MapKey of Argument[-1];MapKey of ReturnValue;value;manual" + // "com.google.common.collect;ImmutableMap$Builder;true;build;();;MapKey of Argument[this];MapKey of ReturnValue;value;manual" ImmutableMap out = null; ImmutableMap.Builder in = (ImmutableMap.Builder)ImmutableMap.builder().put(source(), null); out = in.build(); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMap$Builder;true;build;();;MapKey of Argument[-1];MapKey of ReturnValue;value;manual" + // "com.google.common.collect;ImmutableMap$Builder;true;build;();;MapKey of Argument[this];MapKey of ReturnValue;value;manual" ImmutableBiMap out = null; ImmutableBiMap.Builder in = (ImmutableBiMap.Builder)ImmutableBiMap.builder().put(source(), null); out = in.build(); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMap$Builder;true;build;();;MapValue of Argument[-1];MapValue of ReturnValue;value;manual" + // "com.google.common.collect;ImmutableMap$Builder;true;build;();;MapValue of Argument[this];MapValue of ReturnValue;value;manual" ImmutableSortedMap out = null; ImmutableSortedMap.Builder in = (ImmutableSortedMap.Builder)ImmutableSortedMap.builder().put(null, source()); out = in.build(); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMap$Builder;true;build;();;MapValue of Argument[-1];MapValue of ReturnValue;value;manual" + // "com.google.common.collect;ImmutableMap$Builder;true;build;();;MapValue of Argument[this];MapValue of ReturnValue;value;manual" ImmutableMap out = null; ImmutableMap.Builder in = (ImmutableMap.Builder)ImmutableMap.builder().put(null, source()); out = in.build(); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMap$Builder;true;build;();;MapValue of Argument[-1];MapValue of ReturnValue;value;manual" + // "com.google.common.collect;ImmutableMap$Builder;true;build;();;MapValue of Argument[this];MapValue of ReturnValue;value;manual" ImmutableBiMap out = null; ImmutableBiMap.Builder in = (ImmutableBiMap.Builder)ImmutableBiMap.builder().put(null, source()); out = in.build(); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMap$Builder;true;orderEntriesByValue;(Comparator);;Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ImmutableMap$Builder;true;orderEntriesByValue;(Comparator);;Argument[this];ReturnValue;value;manual" ImmutableSortedMap.Builder out = null; ImmutableSortedMap.Builder in = (ImmutableSortedMap.Builder)source(); out = in.orderEntriesByValue(null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMap$Builder;true;orderEntriesByValue;(Comparator);;Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ImmutableMap$Builder;true;orderEntriesByValue;(Comparator);;Argument[this];ReturnValue;value;manual" ImmutableMap.Builder out = null; ImmutableMap.Builder in = (ImmutableMap.Builder)source(); out = in.orderEntriesByValue(null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMap$Builder;true;orderEntriesByValue;(Comparator);;Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ImmutableMap$Builder;true;orderEntriesByValue;(Comparator);;Argument[this];ReturnValue;value;manual" ImmutableBiMap.Builder out = null; ImmutableBiMap.Builder in = (ImmutableBiMap.Builder)source(); out = in.orderEntriesByValue(null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMap$Builder;true;put;(Entry);;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableMap$Builder;true;put;(Entry);;MapKey of Argument[0];MapKey of Argument[this];value;manual" ImmutableSortedMap.Builder out = null; Map.Entry in = (Map.Entry)newEntryWithMapKey(source()); out.put(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMap$Builder;true;put;(Entry);;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableMap$Builder;true;put;(Entry);;MapKey of Argument[0];MapKey of Argument[this];value;manual" ImmutableMap.Builder out = null; Map.Entry in = (Map.Entry)newEntryWithMapKey(source()); out.put(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMap$Builder;true;put;(Entry);;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableMap$Builder;true;put;(Entry);;MapKey of Argument[0];MapKey of Argument[this];value;manual" ImmutableBiMap.Builder out = null; Map.Entry in = (Map.Entry)newEntryWithMapKey(source()); out.put(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMap$Builder;true;put;(Entry);;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableMap$Builder;true;put;(Entry);;MapValue of Argument[0];MapValue of Argument[this];value;manual" ImmutableSortedMap.Builder out = null; Map.Entry in = (Map.Entry)newEntryWithMapValue(source()); out.put(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMap$Builder;true;put;(Entry);;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableMap$Builder;true;put;(Entry);;MapValue of Argument[0];MapValue of Argument[this];value;manual" ImmutableMap.Builder out = null; Map.Entry in = (Map.Entry)newEntryWithMapValue(source()); out.put(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMap$Builder;true;put;(Entry);;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableMap$Builder;true;put;(Entry);;MapValue of Argument[0];MapValue of Argument[this];value;manual" ImmutableBiMap.Builder out = null; Map.Entry in = (Map.Entry)newEntryWithMapValue(source()); out.put(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMap$Builder;true;put;(Object,Object);;Argument[0];MapKey of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableMap$Builder;true;put;(Object,Object);;Argument[0];MapKey of Argument[this];value;manual" ImmutableSortedMap.Builder out = null; Object in = (Object)source(); out.put(in, null); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMap$Builder;true;put;(Object,Object);;Argument[0];MapKey of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableMap$Builder;true;put;(Object,Object);;Argument[0];MapKey of Argument[this];value;manual" ImmutableMap.Builder out = null; Object in = (Object)source(); out.put(in, null); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMap$Builder;true;put;(Object,Object);;Argument[0];MapKey of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableMap$Builder;true;put;(Object,Object);;Argument[0];MapKey of Argument[this];value;manual" ImmutableBiMap.Builder out = null; Object in = (Object)source(); out.put(in, null); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMap$Builder;true;put;(Object,Object);;Argument[1];MapValue of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableMap$Builder;true;put;(Object,Object);;Argument[1];MapValue of Argument[this];value;manual" ImmutableSortedMap.Builder out = null; Object in = (Object)source(); out.put(null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMap$Builder;true;put;(Object,Object);;Argument[1];MapValue of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableMap$Builder;true;put;(Object,Object);;Argument[1];MapValue of Argument[this];value;manual" ImmutableMap.Builder out = null; Object in = (Object)source(); out.put(null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMap$Builder;true;put;(Object,Object);;Argument[1];MapValue of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableMap$Builder;true;put;(Object,Object);;Argument[1];MapValue of Argument[this];value;manual" ImmutableBiMap.Builder out = null; Object in = (Object)source(); out.put(null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMap$Builder;true;put;;;Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ImmutableMap$Builder;true;put;;;Argument[this];ReturnValue;value;manual" ImmutableSortedMap.Builder out = null; ImmutableSortedMap.Builder in = (ImmutableSortedMap.Builder)source(); out = in.put(null, null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMap$Builder;true;put;;;Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ImmutableMap$Builder;true;put;;;Argument[this];ReturnValue;value;manual" ImmutableSortedMap.Builder out = null; ImmutableSortedMap.Builder in = (ImmutableSortedMap.Builder)source(); out = in.put(null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMap$Builder;true;put;;;Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ImmutableMap$Builder;true;put;;;Argument[this];ReturnValue;value;manual" ImmutableMap.Builder out = null; ImmutableMap.Builder in = (ImmutableMap.Builder)source(); out = in.put(null, null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMap$Builder;true;put;;;Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ImmutableMap$Builder;true;put;;;Argument[this];ReturnValue;value;manual" ImmutableMap.Builder out = null; ImmutableMap.Builder in = (ImmutableMap.Builder)source(); out = in.put(null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMap$Builder;true;put;;;Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ImmutableMap$Builder;true;put;;;Argument[this];ReturnValue;value;manual" ImmutableBiMap.Builder out = null; ImmutableBiMap.Builder in = (ImmutableBiMap.Builder)source(); out = in.put(null, null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMap$Builder;true;put;;;Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ImmutableMap$Builder;true;put;;;Argument[this];ReturnValue;value;manual" ImmutableBiMap.Builder out = null; ImmutableBiMap.Builder in = (ImmutableBiMap.Builder)source(); out = in.put(null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMap$Builder;true;putAll;(Iterable);;MapKey of Element of Argument[0];MapKey of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableMap$Builder;true;putAll;(Iterable);;MapKey of Element of Argument[0];MapKey of Argument[this];value;manual" ImmutableSortedMap.Builder out = null; Iterable in = (Iterable)List.of(newEntryWithMapKey(source())); out.putAll(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMap$Builder;true;putAll;(Iterable);;MapKey of Element of Argument[0];MapKey of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableMap$Builder;true;putAll;(Iterable);;MapKey of Element of Argument[0];MapKey of Argument[this];value;manual" ImmutableMap.Builder out = null; Iterable in = (Iterable)List.of(newEntryWithMapKey(source())); out.putAll(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMap$Builder;true;putAll;(Iterable);;MapKey of Element of Argument[0];MapKey of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableMap$Builder;true;putAll;(Iterable);;MapKey of Element of Argument[0];MapKey of Argument[this];value;manual" ImmutableBiMap.Builder out = null; Iterable in = (Iterable)List.of(newEntryWithMapKey(source())); out.putAll(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMap$Builder;true;putAll;(Iterable);;MapValue of Element of Argument[0];MapValue of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableMap$Builder;true;putAll;(Iterable);;MapValue of Element of Argument[0];MapValue of Argument[this];value;manual" ImmutableSortedMap.Builder out = null; Iterable in = (Iterable)List.of(newEntryWithMapValue(source())); out.putAll(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMap$Builder;true;putAll;(Iterable);;MapValue of Element of Argument[0];MapValue of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableMap$Builder;true;putAll;(Iterable);;MapValue of Element of Argument[0];MapValue of Argument[this];value;manual" ImmutableMap.Builder out = null; Iterable in = (Iterable)List.of(newEntryWithMapValue(source())); out.putAll(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMap$Builder;true;putAll;(Iterable);;MapValue of Element of Argument[0];MapValue of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableMap$Builder;true;putAll;(Iterable);;MapValue of Element of Argument[0];MapValue of Argument[this];value;manual" ImmutableBiMap.Builder out = null; Iterable in = (Iterable)List.of(newEntryWithMapValue(source())); out.putAll(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMap$Builder;true;putAll;(Map);;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableMap$Builder;true;putAll;(Map);;MapKey of Argument[0];MapKey of Argument[this];value;manual" ImmutableSortedMap.Builder out = null; Map in = (Map)Map.of(source(), null); out.putAll(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMap$Builder;true;putAll;(Map);;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableMap$Builder;true;putAll;(Map);;MapKey of Argument[0];MapKey of Argument[this];value;manual" ImmutableMap.Builder out = null; Map in = (Map)Map.of(source(), null); out.putAll(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMap$Builder;true;putAll;(Map);;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableMap$Builder;true;putAll;(Map);;MapKey of Argument[0];MapKey of Argument[this];value;manual" ImmutableBiMap.Builder out = null; Map in = (Map)Map.of(source(), null); out.putAll(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMap$Builder;true;putAll;(Map);;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableMap$Builder;true;putAll;(Map);;MapValue of Argument[0];MapValue of Argument[this];value;manual" ImmutableSortedMap.Builder out = null; Map in = (Map)Map.of(null, source()); out.putAll(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMap$Builder;true;putAll;(Map);;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableMap$Builder;true;putAll;(Map);;MapValue of Argument[0];MapValue of Argument[this];value;manual" ImmutableMap.Builder out = null; Map in = (Map)Map.of(null, source()); out.putAll(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMap$Builder;true;putAll;(Map);;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableMap$Builder;true;putAll;(Map);;MapValue of Argument[0];MapValue of Argument[this];value;manual" ImmutableBiMap.Builder out = null; Map in = (Map)Map.of(null, source()); out.putAll(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMap$Builder;true;putAll;;;Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ImmutableMap$Builder;true;putAll;;;Argument[this];ReturnValue;value;manual" ImmutableSortedMap.Builder out = null; ImmutableSortedMap.Builder in = (ImmutableSortedMap.Builder)source(); out = in.putAll((Map)null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMap$Builder;true;putAll;;;Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ImmutableMap$Builder;true;putAll;;;Argument[this];ReturnValue;value;manual" ImmutableSortedMap.Builder out = null; ImmutableSortedMap.Builder in = (ImmutableSortedMap.Builder)source(); out = in.putAll((Iterable)null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMap$Builder;true;putAll;;;Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ImmutableMap$Builder;true;putAll;;;Argument[this];ReturnValue;value;manual" ImmutableMap.Builder out = null; ImmutableMap.Builder in = (ImmutableMap.Builder)source(); out = in.putAll((Map)null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMap$Builder;true;putAll;;;Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ImmutableMap$Builder;true;putAll;;;Argument[this];ReturnValue;value;manual" ImmutableMap.Builder out = null; ImmutableMap.Builder in = (ImmutableMap.Builder)source(); out = in.putAll((Iterable)null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMap$Builder;true;putAll;;;Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ImmutableMap$Builder;true;putAll;;;Argument[this];ReturnValue;value;manual" ImmutableBiMap.Builder out = null; ImmutableBiMap.Builder in = (ImmutableBiMap.Builder)source(); out = in.putAll((Map)null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMap$Builder;true;putAll;;;Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ImmutableMap$Builder;true;putAll;;;Argument[this];ReturnValue;value;manual" ImmutableBiMap.Builder out = null; ImmutableBiMap.Builder in = (ImmutableBiMap.Builder)source(); out = in.putAll((Iterable)null); @@ -2423,462 +2423,462 @@ public class Test { sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap$Builder;true;build;();;MapKey of Argument[-1];MapKey of ReturnValue;value;manual" + // "com.google.common.collect;ImmutableMultimap$Builder;true;build;();;MapKey of Argument[this];MapKey of ReturnValue;value;manual" ImmutableSetMultimap out = null; ImmutableSetMultimap.Builder in = (ImmutableSetMultimap.Builder)ImmutableSetMultimap.builder().put(source(), null); out = in.build(); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap$Builder;true;build;();;MapKey of Argument[-1];MapKey of ReturnValue;value;manual" + // "com.google.common.collect;ImmutableMultimap$Builder;true;build;();;MapKey of Argument[this];MapKey of ReturnValue;value;manual" ImmutableMultimap out = null; ImmutableMultimap.Builder in = (ImmutableMultimap.Builder)ImmutableMultimap.builder().put(source(), null); out = in.build(); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap$Builder;true;build;();;MapKey of Argument[-1];MapKey of ReturnValue;value;manual" + // "com.google.common.collect;ImmutableMultimap$Builder;true;build;();;MapKey of Argument[this];MapKey of ReturnValue;value;manual" ImmutableListMultimap out = null; ImmutableListMultimap.Builder in = (ImmutableListMultimap.Builder)ImmutableListMultimap.builder().put(source(), null); out = in.build(); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap$Builder;true;build;();;MapValue of Argument[-1];MapValue of ReturnValue;value;manual" + // "com.google.common.collect;ImmutableMultimap$Builder;true;build;();;MapValue of Argument[this];MapValue of ReturnValue;value;manual" ImmutableSetMultimap out = null; ImmutableSetMultimap.Builder in = (ImmutableSetMultimap.Builder)ImmutableSetMultimap.builder().put(null, source()); out = in.build(); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap$Builder;true;build;();;MapValue of Argument[-1];MapValue of ReturnValue;value;manual" + // "com.google.common.collect;ImmutableMultimap$Builder;true;build;();;MapValue of Argument[this];MapValue of ReturnValue;value;manual" ImmutableMultimap out = null; ImmutableMultimap.Builder in = (ImmutableMultimap.Builder)ImmutableMultimap.builder().put(null, source()); out = in.build(); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap$Builder;true;build;();;MapValue of Argument[-1];MapValue of ReturnValue;value;manual" + // "com.google.common.collect;ImmutableMultimap$Builder;true;build;();;MapValue of Argument[this];MapValue of ReturnValue;value;manual" ImmutableListMultimap out = null; ImmutableListMultimap.Builder in = (ImmutableListMultimap.Builder)ImmutableListMultimap.builder().put(null, source()); out = in.build(); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap$Builder;true;orderKeysBy;(Comparator);;Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ImmutableMultimap$Builder;true;orderKeysBy;(Comparator);;Argument[this];ReturnValue;value;manual" ImmutableSetMultimap.Builder out = null; ImmutableSetMultimap.Builder in = (ImmutableSetMultimap.Builder)source(); out = in.orderKeysBy(null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap$Builder;true;orderKeysBy;(Comparator);;Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ImmutableMultimap$Builder;true;orderKeysBy;(Comparator);;Argument[this];ReturnValue;value;manual" ImmutableMultimap.Builder out = null; ImmutableMultimap.Builder in = (ImmutableMultimap.Builder)source(); out = in.orderKeysBy(null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap$Builder;true;orderKeysBy;(Comparator);;Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ImmutableMultimap$Builder;true;orderKeysBy;(Comparator);;Argument[this];ReturnValue;value;manual" ImmutableListMultimap.Builder out = null; ImmutableListMultimap.Builder in = (ImmutableListMultimap.Builder)source(); out = in.orderKeysBy(null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap$Builder;true;orderValuesBy;(Comparator);;Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ImmutableMultimap$Builder;true;orderValuesBy;(Comparator);;Argument[this];ReturnValue;value;manual" ImmutableSetMultimap.Builder out = null; ImmutableSetMultimap.Builder in = (ImmutableSetMultimap.Builder)source(); out = in.orderValuesBy(null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap$Builder;true;orderValuesBy;(Comparator);;Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ImmutableMultimap$Builder;true;orderValuesBy;(Comparator);;Argument[this];ReturnValue;value;manual" ImmutableMultimap.Builder out = null; ImmutableMultimap.Builder in = (ImmutableMultimap.Builder)source(); out = in.orderValuesBy(null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap$Builder;true;orderValuesBy;(Comparator);;Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ImmutableMultimap$Builder;true;orderValuesBy;(Comparator);;Argument[this];ReturnValue;value;manual" ImmutableListMultimap.Builder out = null; ImmutableListMultimap.Builder in = (ImmutableListMultimap.Builder)source(); out = in.orderValuesBy(null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap$Builder;true;put;(Entry);;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableMultimap$Builder;true;put;(Entry);;MapKey of Argument[0];MapKey of Argument[this];value;manual" ImmutableSetMultimap.Builder out = null; Map.Entry in = (Map.Entry)newEntryWithMapKey(source()); out.put(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap$Builder;true;put;(Entry);;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableMultimap$Builder;true;put;(Entry);;MapKey of Argument[0];MapKey of Argument[this];value;manual" ImmutableMultimap.Builder out = null; Map.Entry in = (Map.Entry)newEntryWithMapKey(source()); out.put(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap$Builder;true;put;(Entry);;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableMultimap$Builder;true;put;(Entry);;MapKey of Argument[0];MapKey of Argument[this];value;manual" ImmutableListMultimap.Builder out = null; Map.Entry in = (Map.Entry)newEntryWithMapKey(source()); out.put(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap$Builder;true;put;(Entry);;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableMultimap$Builder;true;put;(Entry);;MapValue of Argument[0];MapValue of Argument[this];value;manual" ImmutableSetMultimap.Builder out = null; Map.Entry in = (Map.Entry)newEntryWithMapValue(source()); out.put(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap$Builder;true;put;(Entry);;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableMultimap$Builder;true;put;(Entry);;MapValue of Argument[0];MapValue of Argument[this];value;manual" ImmutableMultimap.Builder out = null; Map.Entry in = (Map.Entry)newEntryWithMapValue(source()); out.put(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap$Builder;true;put;(Entry);;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableMultimap$Builder;true;put;(Entry);;MapValue of Argument[0];MapValue of Argument[this];value;manual" ImmutableListMultimap.Builder out = null; Map.Entry in = (Map.Entry)newEntryWithMapValue(source()); out.put(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap$Builder;true;put;(Object,Object);;Argument[0];MapKey of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableMultimap$Builder;true;put;(Object,Object);;Argument[0];MapKey of Argument[this];value;manual" ImmutableSetMultimap.Builder out = null; Object in = (Object)source(); out.put(in, null); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap$Builder;true;put;(Object,Object);;Argument[0];MapKey of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableMultimap$Builder;true;put;(Object,Object);;Argument[0];MapKey of Argument[this];value;manual" ImmutableMultimap.Builder out = null; Object in = (Object)source(); out.put(in, null); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap$Builder;true;put;(Object,Object);;Argument[0];MapKey of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableMultimap$Builder;true;put;(Object,Object);;Argument[0];MapKey of Argument[this];value;manual" ImmutableListMultimap.Builder out = null; Object in = (Object)source(); out.put(in, null); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap$Builder;true;put;(Object,Object);;Argument[1];MapValue of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableMultimap$Builder;true;put;(Object,Object);;Argument[1];MapValue of Argument[this];value;manual" ImmutableSetMultimap.Builder out = null; Object in = (Object)source(); out.put(null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap$Builder;true;put;(Object,Object);;Argument[1];MapValue of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableMultimap$Builder;true;put;(Object,Object);;Argument[1];MapValue of Argument[this];value;manual" ImmutableMultimap.Builder out = null; Object in = (Object)source(); out.put(null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap$Builder;true;put;(Object,Object);;Argument[1];MapValue of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableMultimap$Builder;true;put;(Object,Object);;Argument[1];MapValue of Argument[this];value;manual" ImmutableListMultimap.Builder out = null; Object in = (Object)source(); out.put(null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap$Builder;true;put;;;Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ImmutableMultimap$Builder;true;put;;;Argument[this];ReturnValue;value;manual" ImmutableSetMultimap.Builder out = null; ImmutableSetMultimap.Builder in = (ImmutableSetMultimap.Builder)source(); out = in.put(null, null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap$Builder;true;put;;;Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ImmutableMultimap$Builder;true;put;;;Argument[this];ReturnValue;value;manual" ImmutableSetMultimap.Builder out = null; ImmutableSetMultimap.Builder in = (ImmutableSetMultimap.Builder)source(); out = in.put(null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap$Builder;true;put;;;Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ImmutableMultimap$Builder;true;put;;;Argument[this];ReturnValue;value;manual" ImmutableMultimap.Builder out = null; ImmutableMultimap.Builder in = (ImmutableMultimap.Builder)source(); out = in.put(null, null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap$Builder;true;put;;;Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ImmutableMultimap$Builder;true;put;;;Argument[this];ReturnValue;value;manual" ImmutableMultimap.Builder out = null; ImmutableMultimap.Builder in = (ImmutableMultimap.Builder)source(); out = in.put(null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap$Builder;true;put;;;Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ImmutableMultimap$Builder;true;put;;;Argument[this];ReturnValue;value;manual" ImmutableListMultimap.Builder out = null; ImmutableListMultimap.Builder in = (ImmutableListMultimap.Builder)source(); out = in.put(null, null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap$Builder;true;put;;;Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ImmutableMultimap$Builder;true;put;;;Argument[this];ReturnValue;value;manual" ImmutableListMultimap.Builder out = null; ImmutableListMultimap.Builder in = (ImmutableListMultimap.Builder)source(); out = in.put(null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;(Iterable);;MapKey of Element of Argument[0];MapKey of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;(Iterable);;MapKey of Element of Argument[0];MapKey of Argument[this];value;manual" ImmutableSetMultimap.Builder out = null; Iterable in = (Iterable)List.of(newEntryWithMapKey(source())); out.putAll(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;(Iterable);;MapKey of Element of Argument[0];MapKey of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;(Iterable);;MapKey of Element of Argument[0];MapKey of Argument[this];value;manual" ImmutableMultimap.Builder out = null; Iterable in = (Iterable)List.of(newEntryWithMapKey(source())); out.putAll(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;(Iterable);;MapKey of Element of Argument[0];MapKey of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;(Iterable);;MapKey of Element of Argument[0];MapKey of Argument[this];value;manual" ImmutableListMultimap.Builder out = null; Iterable in = (Iterable)List.of(newEntryWithMapKey(source())); out.putAll(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;(Iterable);;MapValue of Element of Argument[0];MapValue of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;(Iterable);;MapValue of Element of Argument[0];MapValue of Argument[this];value;manual" ImmutableSetMultimap.Builder out = null; Iterable in = (Iterable)List.of(newEntryWithMapValue(source())); out.putAll(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;(Iterable);;MapValue of Element of Argument[0];MapValue of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;(Iterable);;MapValue of Element of Argument[0];MapValue of Argument[this];value;manual" ImmutableMultimap.Builder out = null; Iterable in = (Iterable)List.of(newEntryWithMapValue(source())); out.putAll(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;(Iterable);;MapValue of Element of Argument[0];MapValue of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;(Iterable);;MapValue of Element of Argument[0];MapValue of Argument[this];value;manual" ImmutableListMultimap.Builder out = null; Iterable in = (Iterable)List.of(newEntryWithMapValue(source())); out.putAll(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;(Multimap);;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;(Multimap);;MapKey of Argument[0];MapKey of Argument[this];value;manual" ImmutableSetMultimap.Builder out = null; Multimap in = (Multimap)ImmutableMultimap.of(source(), null); out.putAll(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;(Multimap);;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;(Multimap);;MapKey of Argument[0];MapKey of Argument[this];value;manual" ImmutableMultimap.Builder out = null; Multimap in = (Multimap)ImmutableMultimap.of(source(), null); out.putAll(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;(Multimap);;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;(Multimap);;MapKey of Argument[0];MapKey of Argument[this];value;manual" ImmutableListMultimap.Builder out = null; Multimap in = (Multimap)ImmutableMultimap.of(source(), null); out.putAll(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;(Multimap);;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;(Multimap);;MapValue of Argument[0];MapValue of Argument[this];value;manual" ImmutableSetMultimap.Builder out = null; Multimap in = (Multimap)ImmutableMultimap.of(null, source()); out.putAll(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;(Multimap);;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;(Multimap);;MapValue of Argument[0];MapValue of Argument[this];value;manual" ImmutableMultimap.Builder out = null; Multimap in = (Multimap)ImmutableMultimap.of(null, source()); out.putAll(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;(Multimap);;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;(Multimap);;MapValue of Argument[0];MapValue of Argument[this];value;manual" ImmutableListMultimap.Builder out = null; Multimap in = (Multimap)ImmutableMultimap.of(null, source()); out.putAll(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;(Object,Iterable);;Argument[0];MapKey of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;(Object,Iterable);;Argument[0];MapKey of Argument[this];value;manual" ImmutableSetMultimap.Builder out = null; Object in = (Object)source(); out.putAll(in, (Iterable)null); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;(Object,Iterable);;Argument[0];MapKey of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;(Object,Iterable);;Argument[0];MapKey of Argument[this];value;manual" ImmutableMultimap.Builder out = null; Object in = (Object)source(); out.putAll(in, (Iterable)null); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;(Object,Iterable);;Argument[0];MapKey of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;(Object,Iterable);;Argument[0];MapKey of Argument[this];value;manual" ImmutableListMultimap.Builder out = null; Object in = (Object)source(); out.putAll(in, (Iterable)null); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;(Object,Iterable);;Element of Argument[1];MapValue of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;(Object,Iterable);;Element of Argument[1];MapValue of Argument[this];value;manual" ImmutableSetMultimap.Builder out = null; Iterable in = (Iterable)List.of(source()); out.putAll((Object)null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;(Object,Iterable);;Element of Argument[1];MapValue of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;(Object,Iterable);;Element of Argument[1];MapValue of Argument[this];value;manual" ImmutableMultimap.Builder out = null; Iterable in = (Iterable)List.of(source()); out.putAll((Object)null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;(Object,Iterable);;Element of Argument[1];MapValue of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;(Object,Iterable);;Element of Argument[1];MapValue of Argument[this];value;manual" ImmutableListMultimap.Builder out = null; Iterable in = (Iterable)List.of(source()); out.putAll((Object)null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;(Object,Object[]);;Argument[0];MapKey of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;(Object,Object[]);;Argument[0];MapKey of Argument[this];value;manual" ImmutableSetMultimap.Builder out = null; Object in = (Object)source(); out.putAll(in, (Object[])null); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;(Object,Object[]);;Argument[0];MapKey of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;(Object,Object[]);;Argument[0];MapKey of Argument[this];value;manual" ImmutableMultimap.Builder out = null; Object in = (Object)source(); out.putAll(in, (Object[])null); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;(Object,Object[]);;Argument[0];MapKey of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;(Object,Object[]);;Argument[0];MapKey of Argument[this];value;manual" ImmutableListMultimap.Builder out = null; Object in = (Object)source(); out.putAll(in, (Object[])null); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;(Object,Object[]);;ArrayElement of Argument[1];MapValue of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;(Object,Object[]);;ArrayElement of Argument[1];MapValue of Argument[this];value;manual" ImmutableSetMultimap.Builder out = null; Object[] in = (Object[])new Object[]{source()}; out.putAll((Object)null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;(Object,Object[]);;ArrayElement of Argument[1];MapValue of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;(Object,Object[]);;ArrayElement of Argument[1];MapValue of Argument[this];value;manual" ImmutableMultimap.Builder out = null; Object[] in = (Object[])new Object[]{source()}; out.putAll((Object)null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;(Object,Object[]);;ArrayElement of Argument[1];MapValue of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;(Object,Object[]);;ArrayElement of Argument[1];MapValue of Argument[this];value;manual" ImmutableListMultimap.Builder out = null; Object[] in = (Object[])new Object[]{source()}; out.putAll((Object)null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;;;Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;;;Argument[this];ReturnValue;value;manual" ImmutableSetMultimap.Builder out = null; ImmutableSetMultimap.Builder in = (ImmutableSetMultimap.Builder)source(); out = in.putAll((Object)null, (Object[])null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;;;Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;;;Argument[this];ReturnValue;value;manual" ImmutableSetMultimap.Builder out = null; ImmutableSetMultimap.Builder in = (ImmutableSetMultimap.Builder)source(); out = in.putAll((Object)null, (Iterable)null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;;;Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;;;Argument[this];ReturnValue;value;manual" ImmutableSetMultimap.Builder out = null; ImmutableSetMultimap.Builder in = (ImmutableSetMultimap.Builder)source(); out = in.putAll((Multimap)null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;;;Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;;;Argument[this];ReturnValue;value;manual" ImmutableSetMultimap.Builder out = null; ImmutableSetMultimap.Builder in = (ImmutableSetMultimap.Builder)source(); out = in.putAll((Iterable)null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;;;Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;;;Argument[this];ReturnValue;value;manual" ImmutableMultimap.Builder out = null; ImmutableMultimap.Builder in = (ImmutableMultimap.Builder)source(); out = in.putAll((Object)null, (Object[])null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;;;Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;;;Argument[this];ReturnValue;value;manual" ImmutableMultimap.Builder out = null; ImmutableMultimap.Builder in = (ImmutableMultimap.Builder)source(); out = in.putAll((Object)null, (Iterable)null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;;;Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;;;Argument[this];ReturnValue;value;manual" ImmutableMultimap.Builder out = null; ImmutableMultimap.Builder in = (ImmutableMultimap.Builder)source(); out = in.putAll((Multimap)null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;;;Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;;;Argument[this];ReturnValue;value;manual" ImmutableMultimap.Builder out = null; ImmutableMultimap.Builder in = (ImmutableMultimap.Builder)source(); out = in.putAll((Iterable)null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;;;Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;;;Argument[this];ReturnValue;value;manual" ImmutableListMultimap.Builder out = null; ImmutableListMultimap.Builder in = (ImmutableListMultimap.Builder)source(); out = in.putAll((Object)null, (Object[])null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;;;Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;;;Argument[this];ReturnValue;value;manual" ImmutableListMultimap.Builder out = null; ImmutableListMultimap.Builder in = (ImmutableListMultimap.Builder)source(); out = in.putAll((Object)null, (Iterable)null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;;;Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;;;Argument[this];ReturnValue;value;manual" ImmutableListMultimap.Builder out = null; ImmutableListMultimap.Builder in = (ImmutableListMultimap.Builder)source(); out = in.putAll((Multimap)null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;;;Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ImmutableMultimap$Builder;true;putAll;;;Argument[this];ReturnValue;value;manual" ImmutableListMultimap.Builder out = null; ImmutableListMultimap.Builder in = (ImmutableListMultimap.Builder)source(); out = in.putAll((Iterable)null); @@ -2913,42 +2913,42 @@ public class Test { sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap;true;inverse;();;MapKey of Argument[-1];MapValue of ReturnValue;value;manual" + // "com.google.common.collect;ImmutableMultimap;true;inverse;();;MapKey of Argument[this];MapValue of ReturnValue;value;manual" ImmutableSetMultimap out = null; ImmutableSetMultimap in = (ImmutableSetMultimap)ImmutableSetMultimap.of(source(), null); out = in.inverse(); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap;true;inverse;();;MapKey of Argument[-1];MapValue of ReturnValue;value;manual" + // "com.google.common.collect;ImmutableMultimap;true;inverse;();;MapKey of Argument[this];MapValue of ReturnValue;value;manual" ImmutableMultimap out = null; ImmutableMultimap in = (ImmutableMultimap)ImmutableMultimap.of(source(), null); out = in.inverse(); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap;true;inverse;();;MapKey of Argument[-1];MapValue of ReturnValue;value;manual" + // "com.google.common.collect;ImmutableMultimap;true;inverse;();;MapKey of Argument[this];MapValue of ReturnValue;value;manual" ImmutableListMultimap out = null; ImmutableListMultimap in = (ImmutableListMultimap)ImmutableListMultimap.of(source(), null); out = in.inverse(); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap;true;inverse;();;MapValue of Argument[-1];MapKey of ReturnValue;value;manual" + // "com.google.common.collect;ImmutableMultimap;true;inverse;();;MapValue of Argument[this];MapKey of ReturnValue;value;manual" ImmutableSetMultimap out = null; ImmutableSetMultimap in = (ImmutableSetMultimap)ImmutableSetMultimap.of(null, source()); out = in.inverse(); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap;true;inverse;();;MapValue of Argument[-1];MapKey of ReturnValue;value;manual" + // "com.google.common.collect;ImmutableMultimap;true;inverse;();;MapValue of Argument[this];MapKey of ReturnValue;value;manual" ImmutableMultimap out = null; ImmutableMultimap in = (ImmutableMultimap)ImmutableMultimap.of(null, source()); out = in.inverse(); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultimap;true;inverse;();;MapValue of Argument[-1];MapKey of ReturnValue;value;manual" + // "com.google.common.collect;ImmutableMultimap;true;inverse;();;MapValue of Argument[this];MapKey of ReturnValue;value;manual" ImmutableListMultimap out = null; ImmutableListMultimap in = (ImmutableListMultimap)ImmutableListMultimap.of(null, source()); out = in.inverse(); @@ -3165,42 +3165,42 @@ public class Test { sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultiset$Builder;true;addCopies;(Object,int);;Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ImmutableMultiset$Builder;true;addCopies;(Object,int);;Argument[this];ReturnValue;value;manual" ImmutableSortedMultiset.Builder out = null; ImmutableSortedMultiset.Builder in = (ImmutableSortedMultiset.Builder)source(); out = in.addCopies(null, 0); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultiset$Builder;true;addCopies;(Object,int);;Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ImmutableMultiset$Builder;true;addCopies;(Object,int);;Argument[this];ReturnValue;value;manual" ImmutableMultiset.Builder out = null; ImmutableMultiset.Builder in = (ImmutableMultiset.Builder)source(); out = in.addCopies(null, 0); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultiset$Builder;true;addCopies;(Object,int);;Argument[0];Element of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableMultiset$Builder;true;addCopies;(Object,int);;Argument[0];Element of Argument[this];value;manual" ImmutableSortedMultiset.Builder out = null; Object in = (Object)source(); out.addCopies(in, 0); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultiset$Builder;true;addCopies;(Object,int);;Argument[0];Element of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableMultiset$Builder;true;addCopies;(Object,int);;Argument[0];Element of Argument[this];value;manual" ImmutableMultiset.Builder out = null; Object in = (Object)source(); out.addCopies(in, 0); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultiset$Builder;true;setCount;(Object,int);;Argument[0];Element of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableMultiset$Builder;true;setCount;(Object,int);;Argument[0];Element of Argument[this];value;manual" ImmutableSortedMultiset.Builder out = null; Object in = (Object)source(); out.setCount(in, 0); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableMultiset$Builder;true;setCount;(Object,int);;Argument[0];Element of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableMultiset$Builder;true;setCount;(Object,int);;Argument[0];Element of Argument[this];value;manual" ImmutableMultiset.Builder out = null; Object in = (Object)source(); out.setCount(in, 0); @@ -4460,119 +4460,119 @@ public class Test { sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableTable$Builder;true;build;();;MapValue of Argument[-1];MapValue of ReturnValue;value;manual" + // "com.google.common.collect;ImmutableTable$Builder;true;build;();;MapValue of Argument[this];MapValue of ReturnValue;value;manual" ImmutableTable out = null; ImmutableTable.Builder in = (ImmutableTable.Builder)ImmutableTable.builder().put(null, null, source()); out = in.build(); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableTable$Builder;true;build;();;SyntheticField[com.google.common.collect.Table.columnKey] of Argument[-1];SyntheticField[com.google.common.collect.Table.columnKey] of ReturnValue;value;manual" + // "com.google.common.collect;ImmutableTable$Builder;true;build;();;SyntheticField[com.google.common.collect.Table.columnKey] of Argument[this];SyntheticField[com.google.common.collect.Table.columnKey] of ReturnValue;value;manual" ImmutableTable out = null; ImmutableTable.Builder in = (ImmutableTable.Builder)ImmutableTable.builder().put(null, source(), null); out = in.build(); sink(getTable_columnKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableTable$Builder;true;build;();;SyntheticField[com.google.common.collect.Table.rowKey] of Argument[-1];SyntheticField[com.google.common.collect.Table.rowKey] of ReturnValue;value;manual" + // "com.google.common.collect;ImmutableTable$Builder;true;build;();;SyntheticField[com.google.common.collect.Table.rowKey] of Argument[this];SyntheticField[com.google.common.collect.Table.rowKey] of ReturnValue;value;manual" ImmutableTable out = null; ImmutableTable.Builder in = (ImmutableTable.Builder)ImmutableTable.builder().put(source(), null, null); out = in.build(); sink(getTable_rowKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableTable$Builder;true;orderColumnsBy;(Comparator);;Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ImmutableTable$Builder;true;orderColumnsBy;(Comparator);;Argument[this];ReturnValue;value;manual" ImmutableTable.Builder out = null; ImmutableTable.Builder in = (ImmutableTable.Builder)source(); out = in.orderColumnsBy(null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableTable$Builder;true;orderRowsBy;(Comparator);;Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ImmutableTable$Builder;true;orderRowsBy;(Comparator);;Argument[this];ReturnValue;value;manual" ImmutableTable.Builder out = null; ImmutableTable.Builder in = (ImmutableTable.Builder)source(); out = in.orderRowsBy(null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableTable$Builder;true;put;(Cell);;Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ImmutableTable$Builder;true;put;(Cell);;Argument[this];ReturnValue;value;manual" ImmutableTable.Builder out = null; ImmutableTable.Builder in = (ImmutableTable.Builder)source(); out = in.put(null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableTable$Builder;true;put;(Cell);;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableTable$Builder;true;put;(Cell);;MapValue of Argument[0];MapValue of Argument[this];value;manual" ImmutableTable.Builder out = null; Table.Cell in = (Table.Cell)newTableCell(null, null, source()); out.put(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableTable$Builder;true;put;(Cell);;SyntheticField[com.google.common.collect.Table.columnKey] of Argument[0];SyntheticField[com.google.common.collect.Table.columnKey] of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableTable$Builder;true;put;(Cell);;SyntheticField[com.google.common.collect.Table.columnKey] of Argument[0];SyntheticField[com.google.common.collect.Table.columnKey] of Argument[this];value;manual" ImmutableTable.Builder out = null; Table.Cell in = (Table.Cell)newTableCell(null, source(), null); out.put(in); sink(getTable_columnKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableTable$Builder;true;put;(Cell);;SyntheticField[com.google.common.collect.Table.rowKey] of Argument[0];SyntheticField[com.google.common.collect.Table.rowKey] of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableTable$Builder;true;put;(Cell);;SyntheticField[com.google.common.collect.Table.rowKey] of Argument[0];SyntheticField[com.google.common.collect.Table.rowKey] of Argument[this];value;manual" ImmutableTable.Builder out = null; Table.Cell in = (Table.Cell)newTableCell(source(), null, null); out.put(in); sink(getTable_rowKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableTable$Builder;true;put;(Object,Object,Object);;Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ImmutableTable$Builder;true;put;(Object,Object,Object);;Argument[this];ReturnValue;value;manual" ImmutableTable.Builder out = null; ImmutableTable.Builder in = (ImmutableTable.Builder)source(); out = in.put(null, null, null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableTable$Builder;true;put;(Object,Object,Object);;Argument[0];SyntheticField[com.google.common.collect.Table.rowKey] of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableTable$Builder;true;put;(Object,Object,Object);;Argument[0];SyntheticField[com.google.common.collect.Table.rowKey] of Argument[this];value;manual" ImmutableTable.Builder out = null; Object in = (Object)source(); out.put(in, null, null); sink(getTable_rowKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableTable$Builder;true;put;(Object,Object,Object);;Argument[1];SyntheticField[com.google.common.collect.Table.columnKey] of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableTable$Builder;true;put;(Object,Object,Object);;Argument[1];SyntheticField[com.google.common.collect.Table.columnKey] of Argument[this];value;manual" ImmutableTable.Builder out = null; Object in = (Object)source(); out.put(null, in, null); sink(getTable_columnKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableTable$Builder;true;put;(Object,Object,Object);;Argument[2];MapValue of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableTable$Builder;true;put;(Object,Object,Object);;Argument[2];MapValue of Argument[this];value;manual" ImmutableTable.Builder out = null; Object in = (Object)source(); out.put(null, null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableTable$Builder;true;putAll;(Table);;Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;ImmutableTable$Builder;true;putAll;(Table);;Argument[this];ReturnValue;value;manual" ImmutableTable.Builder out = null; ImmutableTable.Builder in = (ImmutableTable.Builder)source(); out = in.putAll(null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableTable$Builder;true;putAll;(Table);;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableTable$Builder;true;putAll;(Table);;MapValue of Argument[0];MapValue of Argument[this];value;manual" ImmutableTable.Builder out = null; Table in = (Table)ImmutableTable.of(null, null, source()); out.putAll(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableTable$Builder;true;putAll;(Table);;SyntheticField[com.google.common.collect.Table.columnKey] of Argument[0];SyntheticField[com.google.common.collect.Table.columnKey] of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableTable$Builder;true;putAll;(Table);;SyntheticField[com.google.common.collect.Table.columnKey] of Argument[0];SyntheticField[com.google.common.collect.Table.columnKey] of Argument[this];value;manual" ImmutableTable.Builder out = null; Table in = (Table)ImmutableTable.of(null, source(), null); out.putAll(in); sink(getTable_columnKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;ImmutableTable$Builder;true;putAll;(Table);;SyntheticField[com.google.common.collect.Table.rowKey] of Argument[0];SyntheticField[com.google.common.collect.Table.rowKey] of Argument[-1];value;manual" + // "com.google.common.collect;ImmutableTable$Builder;true;putAll;(Table);;SyntheticField[com.google.common.collect.Table.rowKey] of Argument[0];SyntheticField[com.google.common.collect.Table.rowKey] of Argument[this];value;manual" ImmutableTable.Builder out = null; Table in = (Table)ImmutableTable.of(source(), null, null); out.putAll(in); @@ -5356,182 +5356,182 @@ public class Test { sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;MapDifference$ValueDifference;true;leftValue;();;SyntheticField[com.google.common.collect.MapDifference.left] of Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;MapDifference$ValueDifference;true;leftValue;();;SyntheticField[com.google.common.collect.MapDifference.left] of Argument[this];ReturnValue;value;manual" Object out = null; MapDifference.ValueDifference in = (MapDifference.ValueDifference)newMapValueDifference(source(), null); out = in.leftValue(); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;MapDifference$ValueDifference;true;rightValue;();;SyntheticField[com.google.common.collect.MapDifference.right] of Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;MapDifference$ValueDifference;true;rightValue;();;SyntheticField[com.google.common.collect.MapDifference.right] of Argument[this];ReturnValue;value;manual" Object out = null; MapDifference.ValueDifference in = (MapDifference.ValueDifference)newMapValueDifference(null, source()); out = in.rightValue(); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;MapDifference;true;entriesDiffering;();;MapKey of SyntheticField[com.google.common.collect.MapDifference.left] of Argument[-1];MapKey of ReturnValue;value;manual" + // "com.google.common.collect;MapDifference;true;entriesDiffering;();;MapKey of SyntheticField[com.google.common.collect.MapDifference.left] of Argument[this];MapKey of ReturnValue;value;manual" SortedMap out = null; SortedMapDifference in = (SortedMapDifference)Maps.difference(ImmutableSortedMap.of((Comparable)source(), null), null); out = in.entriesDiffering(); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;MapDifference;true;entriesDiffering;();;MapKey of SyntheticField[com.google.common.collect.MapDifference.left] of Argument[-1];MapKey of ReturnValue;value;manual" + // "com.google.common.collect;MapDifference;true;entriesDiffering;();;MapKey of SyntheticField[com.google.common.collect.MapDifference.left] of Argument[this];MapKey of ReturnValue;value;manual" Map out = null; MapDifference in = (MapDifference)Maps.difference(Map.of(source(), null), null); out = in.entriesDiffering(); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;MapDifference;true;entriesDiffering;();;MapKey of SyntheticField[com.google.common.collect.MapDifference.right] of Argument[-1];MapKey of ReturnValue;value;manual" + // "com.google.common.collect;MapDifference;true;entriesDiffering;();;MapKey of SyntheticField[com.google.common.collect.MapDifference.right] of Argument[this];MapKey of ReturnValue;value;manual" SortedMap out = null; SortedMapDifference in = (SortedMapDifference)Maps.difference(null, ImmutableSortedMap.of((Comparable)source(), null)); out = in.entriesDiffering(); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;MapDifference;true;entriesDiffering;();;MapKey of SyntheticField[com.google.common.collect.MapDifference.right] of Argument[-1];MapKey of ReturnValue;value;manual" + // "com.google.common.collect;MapDifference;true;entriesDiffering;();;MapKey of SyntheticField[com.google.common.collect.MapDifference.right] of Argument[this];MapKey of ReturnValue;value;manual" Map out = null; MapDifference in = (MapDifference)Maps.difference(null, Map.of(source(), null)); out = in.entriesDiffering(); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;MapDifference;true;entriesDiffering;();;MapValue of SyntheticField[com.google.common.collect.MapDifference.left] of Argument[-1];SyntheticField[com.google.common.collect.MapDifference.left] of MapValue of ReturnValue;value;manual" + // "com.google.common.collect;MapDifference;true;entriesDiffering;();;MapValue of SyntheticField[com.google.common.collect.MapDifference.left] of Argument[this];SyntheticField[com.google.common.collect.MapDifference.left] of MapValue of ReturnValue;value;manual" SortedMap<Object,MapDifference.ValueDifference> out = null; SortedMapDifference in = (SortedMapDifference)Maps.difference(ImmutableSortedMap.of((Comparable)null, source()), null); out = in.entriesDiffering(); sink(getMapValue(out).leftValue()); // $ hasValueFlow } { - // "com.google.common.collect;MapDifference;true;entriesDiffering;();;MapValue of SyntheticField[com.google.common.collect.MapDifference.left] of Argument[-1];SyntheticField[com.google.common.collect.MapDifference.left] of MapValue of ReturnValue;value;manual" + // "com.google.common.collect;MapDifference;true;entriesDiffering;();;MapValue of SyntheticField[com.google.common.collect.MapDifference.left] of Argument[this];SyntheticField[com.google.common.collect.MapDifference.left] of MapValue of ReturnValue;value;manual" Map<Object,MapDifference.ValueDifference> out = null; MapDifference in = (MapDifference)Maps.difference(Map.of(null, source()), null); out = in.entriesDiffering(); sink(getMapValue(out).leftValue()); // $ hasValueFlow } { - // "com.google.common.collect;MapDifference;true;entriesDiffering;();;MapValue of SyntheticField[com.google.common.collect.MapDifference.right] of Argument[-1];SyntheticField[com.google.common.collect.MapDifference.right] of MapValue of ReturnValue;value;manual" + // "com.google.common.collect;MapDifference;true;entriesDiffering;();;MapValue of SyntheticField[com.google.common.collect.MapDifference.right] of Argument[this];SyntheticField[com.google.common.collect.MapDifference.right] of MapValue of ReturnValue;value;manual" SortedMap<Object,MapDifference.ValueDifference> out = null; SortedMapDifference in = (SortedMapDifference)Maps.difference(null, ImmutableSortedMap.of((Comparable)null, source())); out = in.entriesDiffering(); sink(getMapValue(out).rightValue()); // $ hasValueFlow } { - // "com.google.common.collect;MapDifference;true;entriesDiffering;();;MapValue of SyntheticField[com.google.common.collect.MapDifference.right] of Argument[-1];SyntheticField[com.google.common.collect.MapDifference.right] of MapValue of ReturnValue;value;manual" + // "com.google.common.collect;MapDifference;true;entriesDiffering;();;MapValue of SyntheticField[com.google.common.collect.MapDifference.right] of Argument[this];SyntheticField[com.google.common.collect.MapDifference.right] of MapValue of ReturnValue;value;manual" Map<Object,MapDifference.ValueDifference> out = null; MapDifference in = (MapDifference)Maps.difference(null, Map.of(null, source())); out = in.entriesDiffering(); sink(getMapValue(out).rightValue()); // $ hasValueFlow } { - // "com.google.common.collect;MapDifference;true;entriesInCommon;();;MapKey of SyntheticField[com.google.common.collect.MapDifference.left] of Argument[-1];MapKey of ReturnValue;value;manual" + // "com.google.common.collect;MapDifference;true;entriesInCommon;();;MapKey of SyntheticField[com.google.common.collect.MapDifference.left] of Argument[this];MapKey of ReturnValue;value;manual" SortedMap out = null; SortedMapDifference in = (SortedMapDifference)Maps.difference(ImmutableSortedMap.of((Comparable)source(), null), null); out = in.entriesInCommon(); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;MapDifference;true;entriesInCommon;();;MapKey of SyntheticField[com.google.common.collect.MapDifference.left] of Argument[-1];MapKey of ReturnValue;value;manual" + // "com.google.common.collect;MapDifference;true;entriesInCommon;();;MapKey of SyntheticField[com.google.common.collect.MapDifference.left] of Argument[this];MapKey of ReturnValue;value;manual" Map out = null; MapDifference in = (MapDifference)Maps.difference(Map.of(source(), null), null); out = in.entriesInCommon(); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;MapDifference;true;entriesInCommon;();;MapKey of SyntheticField[com.google.common.collect.MapDifference.right] of Argument[-1];MapKey of ReturnValue;value;manual" + // "com.google.common.collect;MapDifference;true;entriesInCommon;();;MapKey of SyntheticField[com.google.common.collect.MapDifference.right] of Argument[this];MapKey of ReturnValue;value;manual" SortedMap out = null; SortedMapDifference in = (SortedMapDifference)Maps.difference(null, ImmutableSortedMap.of((Comparable)source(), null)); out = in.entriesInCommon(); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;MapDifference;true;entriesInCommon;();;MapKey of SyntheticField[com.google.common.collect.MapDifference.right] of Argument[-1];MapKey of ReturnValue;value;manual" + // "com.google.common.collect;MapDifference;true;entriesInCommon;();;MapKey of SyntheticField[com.google.common.collect.MapDifference.right] of Argument[this];MapKey of ReturnValue;value;manual" Map out = null; MapDifference in = (MapDifference)Maps.difference(null, Map.of(source(), null)); out = in.entriesInCommon(); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;MapDifference;true;entriesInCommon;();;MapValue of SyntheticField[com.google.common.collect.MapDifference.left] of Argument[-1];MapValue of ReturnValue;value;manual" + // "com.google.common.collect;MapDifference;true;entriesInCommon;();;MapValue of SyntheticField[com.google.common.collect.MapDifference.left] of Argument[this];MapValue of ReturnValue;value;manual" SortedMap out = null; SortedMapDifference in = (SortedMapDifference)Maps.difference(ImmutableSortedMap.of((Comparable)null, source()), null); out = in.entriesInCommon(); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;MapDifference;true;entriesInCommon;();;MapValue of SyntheticField[com.google.common.collect.MapDifference.left] of Argument[-1];MapValue of ReturnValue;value;manual" + // "com.google.common.collect;MapDifference;true;entriesInCommon;();;MapValue of SyntheticField[com.google.common.collect.MapDifference.left] of Argument[this];MapValue of ReturnValue;value;manual" Map out = null; MapDifference in = (MapDifference)Maps.difference(Map.of(null, source()), null); out = in.entriesInCommon(); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;MapDifference;true;entriesInCommon;();;MapValue of SyntheticField[com.google.common.collect.MapDifference.right] of Argument[-1];MapValue of ReturnValue;value;manual" + // "com.google.common.collect;MapDifference;true;entriesInCommon;();;MapValue of SyntheticField[com.google.common.collect.MapDifference.right] of Argument[this];MapValue of ReturnValue;value;manual" SortedMap out = null; SortedMapDifference in = (SortedMapDifference)Maps.difference(null, ImmutableSortedMap.of((Comparable)null, source())); out = in.entriesInCommon(); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;MapDifference;true;entriesInCommon;();;MapValue of SyntheticField[com.google.common.collect.MapDifference.right] of Argument[-1];MapValue of ReturnValue;value;manual" + // "com.google.common.collect;MapDifference;true;entriesInCommon;();;MapValue of SyntheticField[com.google.common.collect.MapDifference.right] of Argument[this];MapValue of ReturnValue;value;manual" Map out = null; MapDifference in = (MapDifference)Maps.difference(null, Map.of(null, source())); out = in.entriesInCommon(); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;MapDifference;true;entriesOnlyOnLeft;();;MapKey of SyntheticField[com.google.common.collect.MapDifference.left] of Argument[-1];MapKey of ReturnValue;value;manual" + // "com.google.common.collect;MapDifference;true;entriesOnlyOnLeft;();;MapKey of SyntheticField[com.google.common.collect.MapDifference.left] of Argument[this];MapKey of ReturnValue;value;manual" SortedMap out = null; SortedMapDifference in = (SortedMapDifference)Maps.difference(ImmutableSortedMap.of((Comparable)source(), null), null); out = in.entriesOnlyOnLeft(); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;MapDifference;true;entriesOnlyOnLeft;();;MapKey of SyntheticField[com.google.common.collect.MapDifference.left] of Argument[-1];MapKey of ReturnValue;value;manual" + // "com.google.common.collect;MapDifference;true;entriesOnlyOnLeft;();;MapKey of SyntheticField[com.google.common.collect.MapDifference.left] of Argument[this];MapKey of ReturnValue;value;manual" Map out = null; MapDifference in = (MapDifference)Maps.difference(Map.of(source(), null), null); out = in.entriesOnlyOnLeft(); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;MapDifference;true;entriesOnlyOnLeft;();;MapValue of SyntheticField[com.google.common.collect.MapDifference.left] of Argument[-1];MapValue of ReturnValue;value;manual" + // "com.google.common.collect;MapDifference;true;entriesOnlyOnLeft;();;MapValue of SyntheticField[com.google.common.collect.MapDifference.left] of Argument[this];MapValue of ReturnValue;value;manual" SortedMap out = null; SortedMapDifference in = (SortedMapDifference)Maps.difference(ImmutableSortedMap.of((Comparable)null, source()), null); out = in.entriesOnlyOnLeft(); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;MapDifference;true;entriesOnlyOnLeft;();;MapValue of SyntheticField[com.google.common.collect.MapDifference.left] of Argument[-1];MapValue of ReturnValue;value;manual" + // "com.google.common.collect;MapDifference;true;entriesOnlyOnLeft;();;MapValue of SyntheticField[com.google.common.collect.MapDifference.left] of Argument[this];MapValue of ReturnValue;value;manual" Map out = null; MapDifference in = (MapDifference)Maps.difference(Map.of(null, source()), null); out = in.entriesOnlyOnLeft(); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;MapDifference;true;entriesOnlyOnRight;();;MapKey of SyntheticField[com.google.common.collect.MapDifference.right] of Argument[-1];MapKey of ReturnValue;value;manual" + // "com.google.common.collect;MapDifference;true;entriesOnlyOnRight;();;MapKey of SyntheticField[com.google.common.collect.MapDifference.right] of Argument[this];MapKey of ReturnValue;value;manual" SortedMap out = null; SortedMapDifference in = (SortedMapDifference)Maps.difference(null, ImmutableSortedMap.of((Comparable)source(),null)); out = in.entriesOnlyOnRight(); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;MapDifference;true;entriesOnlyOnRight;();;MapKey of SyntheticField[com.google.common.collect.MapDifference.right] of Argument[-1];MapKey of ReturnValue;value;manual" + // "com.google.common.collect;MapDifference;true;entriesOnlyOnRight;();;MapKey of SyntheticField[com.google.common.collect.MapDifference.right] of Argument[this];MapKey of ReturnValue;value;manual" Map out = null; MapDifference in = (MapDifference)Maps.difference(null, Map.of(source(), null)); out = in.entriesOnlyOnRight(); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;MapDifference;true;entriesOnlyOnRight;();;MapValue of SyntheticField[com.google.common.collect.MapDifference.right] of Argument[-1];MapValue of ReturnValue;value;manual" + // "com.google.common.collect;MapDifference;true;entriesOnlyOnRight;();;MapValue of SyntheticField[com.google.common.collect.MapDifference.right] of Argument[this];MapValue of ReturnValue;value;manual" SortedMap out = null; SortedMapDifference in = (SortedMapDifference)Maps.difference(null, ImmutableSortedMap.of((Comparable)null, source())); out = in.entriesOnlyOnRight(); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;MapDifference;true;entriesOnlyOnRight;();;MapValue of SyntheticField[com.google.common.collect.MapDifference.right] of Argument[-1];MapValue of ReturnValue;value;manual" + // "com.google.common.collect;MapDifference;true;entriesOnlyOnRight;();;MapValue of SyntheticField[com.google.common.collect.MapDifference.right] of Argument[this];MapValue of ReturnValue;value;manual" Map out = null; MapDifference in = (MapDifference)Maps.difference(null, Map.of(null, source())); out = in.entriesOnlyOnRight(); @@ -5930,644 +5930,644 @@ public class Test { sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;asMap;();;MapKey of Argument[-1];MapKey of ReturnValue;value;manual" + // "com.google.common.collect;Multimap;true;asMap;();;MapKey of Argument[this];MapKey of ReturnValue;value;manual" NavigableMap out = null; TreeMultimap in = (TreeMultimap)TreeMultimap.create(ImmutableMultimap.of((Comparable)source(), null)); out = in.asMap(); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;asMap;();;MapKey of Argument[-1];MapKey of ReturnValue;value;manual" + // "com.google.common.collect;Multimap;true;asMap;();;MapKey of Argument[this];MapKey of ReturnValue;value;manual" Map out = null; SortedSetMultimap in = (SortedSetMultimap)TreeMultimap.create(ImmutableMultimap.of((Comparable)source(), null)); out = in.asMap(); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;asMap;();;MapKey of Argument[-1];MapKey of ReturnValue;value;manual" + // "com.google.common.collect;Multimap;true;asMap;();;MapKey of Argument[this];MapKey of ReturnValue;value;manual" Map out = null; SetMultimap in = (SetMultimap)ImmutableSetMultimap.of(source(), null); out = in.asMap(); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;asMap;();;MapKey of Argument[-1];MapKey of ReturnValue;value;manual" + // "com.google.common.collect;Multimap;true;asMap;();;MapKey of Argument[this];MapKey of ReturnValue;value;manual" Map out = null; Multimap in = (Multimap)ImmutableMultimap.of(source(), null); out = in.asMap(); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;asMap;();;MapKey of Argument[-1];MapKey of ReturnValue;value;manual" + // "com.google.common.collect;Multimap;true;asMap;();;MapKey of Argument[this];MapKey of ReturnValue;value;manual" Map out = null; ListMultimap in = (ListMultimap)ImmutableListMultimap.of(source(), null); out = in.asMap(); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;asMap;();;MapKey of Argument[-1];MapKey of ReturnValue;value;manual" + // "com.google.common.collect;Multimap;true;asMap;();;MapKey of Argument[this];MapKey of ReturnValue;value;manual" ImmutableMap out = null; ImmutableMultimap in = (ImmutableMultimap)ImmutableMultimap.of(source(), null); out = in.asMap(); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;asMap;();;MapValue of Argument[-1];Element of MapValue of ReturnValue;value;manual" + // "com.google.common.collect;Multimap;true;asMap;();;MapValue of Argument[this];Element of MapValue of ReturnValue;value;manual" NavigableMap<Object,Collection> out = null; TreeMultimap in = (TreeMultimap)TreeMultimap.create(ImmutableMultimap.of(null, (Comparable)source())); out = in.asMap(); sink(getElement(getMapValue(out))); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;asMap;();;MapValue of Argument[-1];Element of MapValue of ReturnValue;value;manual" + // "com.google.common.collect;Multimap;true;asMap;();;MapValue of Argument[this];Element of MapValue of ReturnValue;value;manual" Map<Object,Collection> out = null; SortedSetMultimap in = (SortedSetMultimap)TreeMultimap.create(ImmutableMultimap.of(null, (Comparable)source())); out = in.asMap(); sink(getElement(getMapValue(out))); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;asMap;();;MapValue of Argument[-1];Element of MapValue of ReturnValue;value;manual" + // "com.google.common.collect;Multimap;true;asMap;();;MapValue of Argument[this];Element of MapValue of ReturnValue;value;manual" Map<Object,Collection> out = null; SetMultimap in = (SetMultimap)ImmutableSetMultimap.of(null, source()); out = in.asMap(); sink(getElement(getMapValue(out))); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;asMap;();;MapValue of Argument[-1];Element of MapValue of ReturnValue;value;manual" + // "com.google.common.collect;Multimap;true;asMap;();;MapValue of Argument[this];Element of MapValue of ReturnValue;value;manual" Map<Object,Collection> out = null; Multimap in = (Multimap)ImmutableMultimap.of(null, source()); out = in.asMap(); sink(getElement(getMapValue(out))); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;asMap;();;MapValue of Argument[-1];Element of MapValue of ReturnValue;value;manual" + // "com.google.common.collect;Multimap;true;asMap;();;MapValue of Argument[this];Element of MapValue of ReturnValue;value;manual" Map<Object,Collection> out = null; ListMultimap in = (ListMultimap)ImmutableListMultimap.of(null, source()); out = in.asMap(); sink(getElement(getMapValue(out))); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;asMap;();;MapValue of Argument[-1];Element of MapValue of ReturnValue;value;manual" + // "com.google.common.collect;Multimap;true;asMap;();;MapValue of Argument[this];Element of MapValue of ReturnValue;value;manual" ImmutableMap<Object,Collection> out = null; ImmutableMultimap in = (ImmutableMultimap)ImmutableMultimap.of(null, source()); out = in.asMap(); sink(getElement(getMapValue(out))); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;entries;();;MapKey of Argument[-1];MapKey of Element of ReturnValue;value;manual" + // "com.google.common.collect;Multimap;true;entries;();;MapKey of Argument[this];MapKey of Element of ReturnValue;value;manual" Set<Map.Entry> out = null; SetMultimap in = (SetMultimap)ImmutableSetMultimap.of(source(), null); out = in.entries(); sink(getElement(out).getKey()); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;entries;();;MapKey of Argument[-1];MapKey of Element of ReturnValue;value;manual" + // "com.google.common.collect;Multimap;true;entries;();;MapKey of Argument[this];MapKey of Element of ReturnValue;value;manual" Set<Map.Entry> out = null; LinkedHashMultimap in = (LinkedHashMultimap)LinkedHashMultimap.create(ImmutableMultimap.of(source(), null)); out = in.entries(); sink(getElement(out).getKey()); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;entries;();;MapKey of Argument[-1];MapKey of Element of ReturnValue;value;manual" + // "com.google.common.collect;Multimap;true;entries;();;MapKey of Argument[this];MapKey of Element of ReturnValue;value;manual" List<Map.Entry> out = null; LinkedListMultimap in = (LinkedListMultimap)LinkedListMultimap.create(ImmutableMultimap.of(source(), null)); out = in.entries(); sink(getElement(out).getKey()); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;entries;();;MapKey of Argument[-1];MapKey of Element of ReturnValue;value;manual" + // "com.google.common.collect;Multimap;true;entries;();;MapKey of Argument[this];MapKey of Element of ReturnValue;value;manual" ImmutableSet<Map.Entry> out = null; ImmutableSetMultimap in = (ImmutableSetMultimap)ImmutableSetMultimap.of(source(), null); out = in.entries(); sink(getElement(out).getKey()); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;entries;();;MapKey of Argument[-1];MapKey of Element of ReturnValue;value;manual" + // "com.google.common.collect;Multimap;true;entries;();;MapKey of Argument[this];MapKey of Element of ReturnValue;value;manual" ImmutableCollection<Map.Entry> out = null; ImmutableMultimap in = (ImmutableMultimap)ImmutableMultimap.of(source(), null); out = in.entries(); sink(getElement(out).getKey()); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;entries;();;MapKey of Argument[-1];MapKey of Element of ReturnValue;value;manual" + // "com.google.common.collect;Multimap;true;entries;();;MapKey of Argument[this];MapKey of Element of ReturnValue;value;manual" Collection<Map.Entry> out = null; Multimap in = (Multimap)ImmutableMultimap.of(source(), null); out = in.entries(); sink(getElement(out).getKey()); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;entries;();;MapValue of Argument[-1];MapValue of Element of ReturnValue;value;manual" + // "com.google.common.collect;Multimap;true;entries;();;MapValue of Argument[this];MapValue of Element of ReturnValue;value;manual" Set<Map.Entry> out = null; SetMultimap in = (SetMultimap)ImmutableSetMultimap.of(null, source()); out = in.entries(); sink(getElement(out).getValue()); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;entries;();;MapValue of Argument[-1];MapValue of Element of ReturnValue;value;manual" + // "com.google.common.collect;Multimap;true;entries;();;MapValue of Argument[this];MapValue of Element of ReturnValue;value;manual" Set<Map.Entry> out = null; LinkedHashMultimap in = (LinkedHashMultimap)LinkedHashMultimap.create(ImmutableMultimap.of(null, source())); out = in.entries(); sink(getElement(out).getValue()); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;entries;();;MapValue of Argument[-1];MapValue of Element of ReturnValue;value;manual" + // "com.google.common.collect;Multimap;true;entries;();;MapValue of Argument[this];MapValue of Element of ReturnValue;value;manual" List<Map.Entry> out = null; LinkedListMultimap in = (LinkedListMultimap)LinkedListMultimap.create(ImmutableMultimap.of(null, source())); out = in.entries(); sink(getElement(out).getValue()); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;entries;();;MapValue of Argument[-1];MapValue of Element of ReturnValue;value;manual" + // "com.google.common.collect;Multimap;true;entries;();;MapValue of Argument[this];MapValue of Element of ReturnValue;value;manual" ImmutableSet<Map.Entry> out = null; ImmutableSetMultimap in = (ImmutableSetMultimap)ImmutableSetMultimap.of(null, source()); out = in.entries(); sink(getElement(out).getValue()); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;entries;();;MapValue of Argument[-1];MapValue of Element of ReturnValue;value;manual" + // "com.google.common.collect;Multimap;true;entries;();;MapValue of Argument[this];MapValue of Element of ReturnValue;value;manual" ImmutableCollection<Map.Entry> out = null; ImmutableMultimap in = (ImmutableMultimap)ImmutableMultimap.of(null, source()); out = in.entries(); sink(getElement(out).getValue()); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;entries;();;MapValue of Argument[-1];MapValue of Element of ReturnValue;value;manual" + // "com.google.common.collect;Multimap;true;entries;();;MapValue of Argument[this];MapValue of Element of ReturnValue;value;manual" Collection<Map.Entry> out = null; Multimap in = (Multimap)ImmutableMultimap.of(null, source()); out = in.entries(); sink(getElement(out).getValue()); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;get;(Object);;MapValue of Argument[-1];Element of ReturnValue;value;manual" + // "com.google.common.collect;Multimap;true;get;(Object);;MapValue of Argument[this];Element of ReturnValue;value;manual" SortedSet out = null; SortedSetMultimap in = (SortedSetMultimap)TreeMultimap.create(ImmutableMultimap.of(null, (Comparable)source())); out = in.get(null); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;get;(Object);;MapValue of Argument[-1];Element of ReturnValue;value;manual" + // "com.google.common.collect;Multimap;true;get;(Object);;MapValue of Argument[this];Element of ReturnValue;value;manual" Set out = null; SetMultimap in = (SetMultimap)ImmutableSetMultimap.of(null, source()); out = in.get(null); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;get;(Object);;MapValue of Argument[-1];Element of ReturnValue;value;manual" + // "com.google.common.collect;Multimap;true;get;(Object);;MapValue of Argument[this];Element of ReturnValue;value;manual" NavigableSet out = null; TreeMultimap in = (TreeMultimap)TreeMultimap.create(ImmutableMultimap.of(null, (Comparable)source())); out = in.get(null); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;get;(Object);;MapValue of Argument[-1];Element of ReturnValue;value;manual" + // "com.google.common.collect;Multimap;true;get;(Object);;MapValue of Argument[this];Element of ReturnValue;value;manual" List out = null; ListMultimap in = (ListMultimap)ImmutableListMultimap.of(null, source()); out = in.get(null); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;get;(Object);;MapValue of Argument[-1];Element of ReturnValue;value;manual" + // "com.google.common.collect;Multimap;true;get;(Object);;MapValue of Argument[this];Element of ReturnValue;value;manual" List out = null; LinkedListMultimap in = (LinkedListMultimap)LinkedListMultimap.create(ImmutableMultimap.of(null, source())); out = in.get(null); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;get;(Object);;MapValue of Argument[-1];Element of ReturnValue;value;manual" + // "com.google.common.collect;Multimap;true;get;(Object);;MapValue of Argument[this];Element of ReturnValue;value;manual" ImmutableSet out = null; ImmutableSetMultimap in = (ImmutableSetMultimap)ImmutableSetMultimap.of(null, source()); out = in.get(null); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;get;(Object);;MapValue of Argument[-1];Element of ReturnValue;value;manual" + // "com.google.common.collect;Multimap;true;get;(Object);;MapValue of Argument[this];Element of ReturnValue;value;manual" ImmutableList out = null; ImmutableListMultimap in = (ImmutableListMultimap)ImmutableListMultimap.of(null, source()); out = in.get(null); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;get;(Object);;MapValue of Argument[-1];Element of ReturnValue;value;manual" + // "com.google.common.collect;Multimap;true;get;(Object);;MapValue of Argument[this];Element of ReturnValue;value;manual" ImmutableCollection out = null; ImmutableMultimap in = (ImmutableMultimap)ImmutableMultimap.of(null, source()); out = in.get(null); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;get;(Object);;MapValue of Argument[-1];Element of ReturnValue;value;manual" + // "com.google.common.collect;Multimap;true;get;(Object);;MapValue of Argument[this];Element of ReturnValue;value;manual" Collection out = null; Multimap in = (Multimap)ImmutableMultimap.of(null, source()); out = in.get(null); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;keySet;();;MapKey of Argument[-1];Element of ReturnValue;value;manual" + // "com.google.common.collect;Multimap;true;keySet;();;MapKey of Argument[this];Element of ReturnValue;value;manual" Set out = null; Multimap in = (Multimap)ImmutableMultimap.of(source(), null); out = in.keySet(); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;keySet;();;MapKey of Argument[-1];Element of ReturnValue;value;manual" + // "com.google.common.collect;Multimap;true;keySet;();;MapKey of Argument[this];Element of ReturnValue;value;manual" Set out = null; LinkedHashMultimap in = (LinkedHashMultimap)LinkedHashMultimap.create(ImmutableMultimap.of(source(), null)); out = in.keySet(); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;keySet;();;MapKey of Argument[-1];Element of ReturnValue;value;manual" + // "com.google.common.collect;Multimap;true;keySet;();;MapKey of Argument[this];Element of ReturnValue;value;manual" NavigableSet out = null; TreeMultimap in = (TreeMultimap)TreeMultimap.create(ImmutableMultimap.of((Comparable)source(), null)); out = in.keySet(); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;keySet;();;MapKey of Argument[-1];Element of ReturnValue;value;manual" + // "com.google.common.collect;Multimap;true;keySet;();;MapKey of Argument[this];Element of ReturnValue;value;manual" ImmutableSet out = null; ImmutableMultimap in = (ImmutableMultimap)ImmutableMultimap.of(source(), null); out = in.keySet(); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;keys;();;MapKey of Argument[-1];Element of ReturnValue;value;manual" + // "com.google.common.collect;Multimap;true;keys;();;MapKey of Argument[this];Element of ReturnValue;value;manual" Multiset out = null; Multimap in = (Multimap)ImmutableMultimap.of(source(), null); out = in.keys(); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;keys;();;MapKey of Argument[-1];Element of ReturnValue;value;manual" + // "com.google.common.collect;Multimap;true;keys;();;MapKey of Argument[this];Element of ReturnValue;value;manual" ImmutableMultiset out = null; ImmutableMultimap in = (ImmutableMultimap)ImmutableMultimap.of(source(), null); out = in.keys(); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;put;(Object,Object);;Argument[0];MapKey of Argument[-1];value;manual" + // "com.google.common.collect;Multimap;true;put;(Object,Object);;Argument[0];MapKey of Argument[this];value;manual" Multimap out = null; Object in = (Object)source(); out.put(in, null); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;put;(Object,Object);;Argument[0];MapKey of Argument[-1];value;manual" + // "com.google.common.collect;Multimap;true;put;(Object,Object);;Argument[0];MapKey of Argument[this];value;manual" LinkedListMultimap out = null; Object in = (Object)source(); out.put(in, null); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;put;(Object,Object);;Argument[0];MapKey of Argument[-1];value;manual" + // "com.google.common.collect;Multimap;true;put;(Object,Object);;Argument[0];MapKey of Argument[this];value;manual" ImmutableMultimap out = null; Object in = (Object)source(); out.put(in, null); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;put;(Object,Object);;Argument[1];MapValue of Argument[-1];value;manual" + // "com.google.common.collect;Multimap;true;put;(Object,Object);;Argument[1];MapValue of Argument[this];value;manual" Multimap out = null; Object in = (Object)source(); out.put(null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;put;(Object,Object);;Argument[1];MapValue of Argument[-1];value;manual" + // "com.google.common.collect;Multimap;true;put;(Object,Object);;Argument[1];MapValue of Argument[this];value;manual" LinkedListMultimap out = null; Object in = (Object)source(); out.put(null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;put;(Object,Object);;Argument[1];MapValue of Argument[-1];value;manual" + // "com.google.common.collect;Multimap;true;put;(Object,Object);;Argument[1];MapValue of Argument[this];value;manual" ImmutableMultimap out = null; Object in = (Object)source(); out.put(null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;putAll;(Multimap);;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "com.google.common.collect;Multimap;true;putAll;(Multimap);;MapKey of Argument[0];MapKey of Argument[this];value;manual" Multimap out = null; Multimap in = (Multimap)ImmutableMultimap.of(source(), null); out.putAll(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;putAll;(Multimap);;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "com.google.common.collect;Multimap;true;putAll;(Multimap);;MapKey of Argument[0];MapKey of Argument[this];value;manual" ImmutableMultimap out = null; Multimap in = (Multimap)ImmutableMultimap.of(source(), null); out.putAll(in); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;putAll;(Multimap);;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "com.google.common.collect;Multimap;true;putAll;(Multimap);;MapValue of Argument[0];MapValue of Argument[this];value;manual" Multimap out = null; Multimap in = (Multimap)ImmutableMultimap.of(null, source()); out.putAll(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;putAll;(Multimap);;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "com.google.common.collect;Multimap;true;putAll;(Multimap);;MapValue of Argument[0];MapValue of Argument[this];value;manual" ImmutableMultimap out = null; Multimap in = (Multimap)ImmutableMultimap.of(null, source()); out.putAll(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;putAll;(Object,Iterable);;Argument[0];MapKey of Argument[-1];value;manual" + // "com.google.common.collect;Multimap;true;putAll;(Object,Iterable);;Argument[0];MapKey of Argument[this];value;manual" Multimap out = null; Object in = (Object)source(); out.putAll(in, null); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;putAll;(Object,Iterable);;Argument[0];MapKey of Argument[-1];value;manual" + // "com.google.common.collect;Multimap;true;putAll;(Object,Iterable);;Argument[0];MapKey of Argument[this];value;manual" ImmutableMultimap out = null; Object in = (Object)source(); out.putAll(in, null); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;putAll;(Object,Iterable);;Element of Argument[1];MapValue of Argument[-1];value;manual" + // "com.google.common.collect;Multimap;true;putAll;(Object,Iterable);;Element of Argument[1];MapValue of Argument[this];value;manual" Multimap out = null; Iterable in = (Iterable)List.of(source()); out.putAll(null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;putAll;(Object,Iterable);;Element of Argument[1];MapValue of Argument[-1];value;manual" + // "com.google.common.collect;Multimap;true;putAll;(Object,Iterable);;Element of Argument[1];MapValue of Argument[this];value;manual" ImmutableMultimap out = null; Iterable in = (Iterable)List.of(source()); out.putAll(null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;removeAll;(Object);;MapValue of Argument[-1];Element of ReturnValue;value;manual" + // "com.google.common.collect;Multimap;true;removeAll;(Object);;MapValue of Argument[this];Element of ReturnValue;value;manual" SortedSet out = null; SortedSetMultimap in = (SortedSetMultimap)TreeMultimap.create(ImmutableMultimap.of(null, (Comparable)source())); out = in.removeAll(null); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;removeAll;(Object);;MapValue of Argument[-1];Element of ReturnValue;value;manual" + // "com.google.common.collect;Multimap;true;removeAll;(Object);;MapValue of Argument[this];Element of ReturnValue;value;manual" Set out = null; SetMultimap in = (SetMultimap)ImmutableSetMultimap.of(null, source()); out = in.removeAll(null); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;removeAll;(Object);;MapValue of Argument[-1];Element of ReturnValue;value;manual" + // "com.google.common.collect;Multimap;true;removeAll;(Object);;MapValue of Argument[this];Element of ReturnValue;value;manual" List out = null; ListMultimap in = (ListMultimap)ImmutableListMultimap.of(null, source()); out = in.removeAll(null); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;removeAll;(Object);;MapValue of Argument[-1];Element of ReturnValue;value;manual" + // "com.google.common.collect;Multimap;true;removeAll;(Object);;MapValue of Argument[this];Element of ReturnValue;value;manual" List out = null; LinkedListMultimap in = (LinkedListMultimap)LinkedListMultimap.create(ImmutableMultimap.of(null, source())); out = in.removeAll(null); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;removeAll;(Object);;MapValue of Argument[-1];Element of ReturnValue;value;manual" + // "com.google.common.collect;Multimap;true;removeAll;(Object);;MapValue of Argument[this];Element of ReturnValue;value;manual" ImmutableSet out = null; ImmutableSetMultimap in = (ImmutableSetMultimap)ImmutableSetMultimap.of(null, source()); out = in.removeAll(null); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;removeAll;(Object);;MapValue of Argument[-1];Element of ReturnValue;value;manual" + // "com.google.common.collect;Multimap;true;removeAll;(Object);;MapValue of Argument[this];Element of ReturnValue;value;manual" ImmutableList out = null; ImmutableListMultimap in = (ImmutableListMultimap)ImmutableListMultimap.of(null, source()); out = in.removeAll(null); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;removeAll;(Object);;MapValue of Argument[-1];Element of ReturnValue;value;manual" + // "com.google.common.collect;Multimap;true;removeAll;(Object);;MapValue of Argument[this];Element of ReturnValue;value;manual" ImmutableCollection out = null; ImmutableMultimap in = (ImmutableMultimap)ImmutableMultimap.of(null, source()); out = in.removeAll(null); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;removeAll;(Object);;MapValue of Argument[-1];Element of ReturnValue;value;manual" + // "com.google.common.collect;Multimap;true;removeAll;(Object);;MapValue of Argument[this];Element of ReturnValue;value;manual" Collection out = null; Multimap in = (Multimap)ImmutableMultimap.of(null, source()); out = in.removeAll(null); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;replaceValues;(Object,Iterable);;Argument[0];MapKey of Argument[-1];value;manual" + // "com.google.common.collect;Multimap;true;replaceValues;(Object,Iterable);;Argument[0];MapKey of Argument[this];value;manual" SortedSetMultimap out = null; Object in = (Object)source(); out.replaceValues(in, null); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;replaceValues;(Object,Iterable);;Argument[0];MapKey of Argument[-1];value;manual" + // "com.google.common.collect;Multimap;true;replaceValues;(Object,Iterable);;Argument[0];MapKey of Argument[this];value;manual" SetMultimap out = null; Object in = (Object)source(); out.replaceValues(in, null); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;replaceValues;(Object,Iterable);;Argument[0];MapKey of Argument[-1];value;manual" + // "com.google.common.collect;Multimap;true;replaceValues;(Object,Iterable);;Argument[0];MapKey of Argument[this];value;manual" Multimap out = null; Object in = (Object)source(); out.replaceValues(in, null); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;replaceValues;(Object,Iterable);;Argument[0];MapKey of Argument[-1];value;manual" + // "com.google.common.collect;Multimap;true;replaceValues;(Object,Iterable);;Argument[0];MapKey of Argument[this];value;manual" ListMultimap out = null; Object in = (Object)source(); out.replaceValues(in, null); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;replaceValues;(Object,Iterable);;Argument[0];MapKey of Argument[-1];value;manual" + // "com.google.common.collect;Multimap;true;replaceValues;(Object,Iterable);;Argument[0];MapKey of Argument[this];value;manual" LinkedListMultimap out = null; Object in = (Object)source(); out.replaceValues(in, null); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;replaceValues;(Object,Iterable);;Argument[0];MapKey of Argument[-1];value;manual" + // "com.google.common.collect;Multimap;true;replaceValues;(Object,Iterable);;Argument[0];MapKey of Argument[this];value;manual" LinkedHashMultimap out = null; Object in = (Object)source(); out.replaceValues(in, null); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;replaceValues;(Object,Iterable);;Argument[0];MapKey of Argument[-1];value;manual" + // "com.google.common.collect;Multimap;true;replaceValues;(Object,Iterable);;Argument[0];MapKey of Argument[this];value;manual" ImmutableSetMultimap out = null; Object in = (Object)source(); out.replaceValues(in, null); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;replaceValues;(Object,Iterable);;Argument[0];MapKey of Argument[-1];value;manual" + // "com.google.common.collect;Multimap;true;replaceValues;(Object,Iterable);;Argument[0];MapKey of Argument[this];value;manual" ImmutableMultimap out = null; Object in = (Object)source(); out.replaceValues(in, null); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;replaceValues;(Object,Iterable);;Argument[0];MapKey of Argument[-1];value;manual" + // "com.google.common.collect;Multimap;true;replaceValues;(Object,Iterable);;Argument[0];MapKey of Argument[this];value;manual" ImmutableListMultimap out = null; Object in = (Object)source(); out.replaceValues(in, null); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;replaceValues;(Object,Iterable);;Element of Argument[1];MapValue of Argument[-1];value;manual" + // "com.google.common.collect;Multimap;true;replaceValues;(Object,Iterable);;Element of Argument[1];MapValue of Argument[this];value;manual" SortedSetMultimap out = null; Iterable in = (Iterable)List.of(source()); out.replaceValues(null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;replaceValues;(Object,Iterable);;Element of Argument[1];MapValue of Argument[-1];value;manual" + // "com.google.common.collect;Multimap;true;replaceValues;(Object,Iterable);;Element of Argument[1];MapValue of Argument[this];value;manual" SetMultimap out = null; Iterable in = (Iterable)List.of(source()); out.replaceValues(null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;replaceValues;(Object,Iterable);;Element of Argument[1];MapValue of Argument[-1];value;manual" + // "com.google.common.collect;Multimap;true;replaceValues;(Object,Iterable);;Element of Argument[1];MapValue of Argument[this];value;manual" Multimap out = null; Iterable in = (Iterable)List.of(source()); out.replaceValues(null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;replaceValues;(Object,Iterable);;Element of Argument[1];MapValue of Argument[-1];value;manual" + // "com.google.common.collect;Multimap;true;replaceValues;(Object,Iterable);;Element of Argument[1];MapValue of Argument[this];value;manual" ListMultimap out = null; Iterable in = (Iterable)List.of(source()); out.replaceValues(null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;replaceValues;(Object,Iterable);;Element of Argument[1];MapValue of Argument[-1];value;manual" + // "com.google.common.collect;Multimap;true;replaceValues;(Object,Iterable);;Element of Argument[1];MapValue of Argument[this];value;manual" LinkedListMultimap out = null; Iterable in = (Iterable)List.of(source()); out.replaceValues(null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;replaceValues;(Object,Iterable);;Element of Argument[1];MapValue of Argument[-1];value;manual" + // "com.google.common.collect;Multimap;true;replaceValues;(Object,Iterable);;Element of Argument[1];MapValue of Argument[this];value;manual" LinkedHashMultimap out = null; Iterable in = (Iterable)List.of(source()); out.replaceValues(null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;replaceValues;(Object,Iterable);;Element of Argument[1];MapValue of Argument[-1];value;manual" + // "com.google.common.collect;Multimap;true;replaceValues;(Object,Iterable);;Element of Argument[1];MapValue of Argument[this];value;manual" ImmutableSetMultimap out = null; Iterable in = (Iterable)List.of(source()); out.replaceValues(null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;replaceValues;(Object,Iterable);;Element of Argument[1];MapValue of Argument[-1];value;manual" + // "com.google.common.collect;Multimap;true;replaceValues;(Object,Iterable);;Element of Argument[1];MapValue of Argument[this];value;manual" ImmutableMultimap out = null; Iterable in = (Iterable)List.of(source()); out.replaceValues(null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;replaceValues;(Object,Iterable);;Element of Argument[1];MapValue of Argument[-1];value;manual" + // "com.google.common.collect;Multimap;true;replaceValues;(Object,Iterable);;Element of Argument[1];MapValue of Argument[this];value;manual" ImmutableListMultimap out = null; Iterable in = (Iterable)List.of(source()); out.replaceValues(null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;replaceValues;(Object,Iterable);;MapValue of Argument[-1];Element of ReturnValue;value;manual" + // "com.google.common.collect;Multimap;true;replaceValues;(Object,Iterable);;MapValue of Argument[this];Element of ReturnValue;value;manual" SortedSet out = null; SortedSetMultimap in = (SortedSetMultimap)TreeMultimap.create(ImmutableMultimap.of(null, (Comparable)source())); out = in.replaceValues(null, null); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;replaceValues;(Object,Iterable);;MapValue of Argument[-1];Element of ReturnValue;value;manual" + // "com.google.common.collect;Multimap;true;replaceValues;(Object,Iterable);;MapValue of Argument[this];Element of ReturnValue;value;manual" Set out = null; SetMultimap in = (SetMultimap)ImmutableSetMultimap.of(null, source()); out = in.replaceValues(null, null); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;replaceValues;(Object,Iterable);;MapValue of Argument[-1];Element of ReturnValue;value;manual" + // "com.google.common.collect;Multimap;true;replaceValues;(Object,Iterable);;MapValue of Argument[this];Element of ReturnValue;value;manual" Set out = null; LinkedHashMultimap in = (LinkedHashMultimap)LinkedHashMultimap.create(ImmutableMultimap.of(null, source())); out = in.replaceValues(null, null); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;replaceValues;(Object,Iterable);;MapValue of Argument[-1];Element of ReturnValue;value;manual" + // "com.google.common.collect;Multimap;true;replaceValues;(Object,Iterable);;MapValue of Argument[this];Element of ReturnValue;value;manual" List out = null; ListMultimap in = (ListMultimap)ImmutableListMultimap.of(null, source()); out = in.replaceValues(null, null); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;replaceValues;(Object,Iterable);;MapValue of Argument[-1];Element of ReturnValue;value;manual" + // "com.google.common.collect;Multimap;true;replaceValues;(Object,Iterable);;MapValue of Argument[this];Element of ReturnValue;value;manual" List out = null; LinkedListMultimap in = (LinkedListMultimap)LinkedListMultimap.create(ImmutableMultimap.of(null, source())); out = in.replaceValues(null, null); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;replaceValues;(Object,Iterable);;MapValue of Argument[-1];Element of ReturnValue;value;manual" + // "com.google.common.collect;Multimap;true;replaceValues;(Object,Iterable);;MapValue of Argument[this];Element of ReturnValue;value;manual" ImmutableSet out = null; ImmutableSetMultimap in = (ImmutableSetMultimap)ImmutableSetMultimap.of(null, source()); out = in.replaceValues(null, null); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;replaceValues;(Object,Iterable);;MapValue of Argument[-1];Element of ReturnValue;value;manual" + // "com.google.common.collect;Multimap;true;replaceValues;(Object,Iterable);;MapValue of Argument[this];Element of ReturnValue;value;manual" ImmutableList out = null; ImmutableListMultimap in = (ImmutableListMultimap)ImmutableListMultimap.of(null, source()); out = in.replaceValues(null, null); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;replaceValues;(Object,Iterable);;MapValue of Argument[-1];Element of ReturnValue;value;manual" + // "com.google.common.collect;Multimap;true;replaceValues;(Object,Iterable);;MapValue of Argument[this];Element of ReturnValue;value;manual" ImmutableCollection out = null; ImmutableMultimap in = (ImmutableMultimap)ImmutableMultimap.of(null, source()); out = in.replaceValues(null, null); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;replaceValues;(Object,Iterable);;MapValue of Argument[-1];Element of ReturnValue;value;manual" + // "com.google.common.collect;Multimap;true;replaceValues;(Object,Iterable);;MapValue of Argument[this];Element of ReturnValue;value;manual" Collection out = null; Multimap in = (Multimap)ImmutableMultimap.of(null, source()); out = in.replaceValues(null, null); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;values;();;MapValue of Argument[-1];Element of ReturnValue;value;manual" + // "com.google.common.collect;Multimap;true;values;();;MapValue of Argument[this];Element of ReturnValue;value;manual" List out = null; LinkedListMultimap in = (LinkedListMultimap)LinkedListMultimap.create(ImmutableMultimap.of(null, source())); out = in.values(); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;values;();;MapValue of Argument[-1];Element of ReturnValue;value;manual" + // "com.google.common.collect;Multimap;true;values;();;MapValue of Argument[this];Element of ReturnValue;value;manual" ImmutableCollection out = null; ImmutableMultimap in = (ImmutableMultimap)ImmutableMultimap.of(null, source()); out = in.values(); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;values;();;MapValue of Argument[-1];Element of ReturnValue;value;manual" + // "com.google.common.collect;Multimap;true;values;();;MapValue of Argument[this];Element of ReturnValue;value;manual" Collection out = null; Multimap in = (Multimap)ImmutableMultimap.of(null, source()); out = in.values(); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multimap;true;values;();;MapValue of Argument[-1];Element of ReturnValue;value;manual" + // "com.google.common.collect;Multimap;true;values;();;MapValue of Argument[this];Element of ReturnValue;value;manual" Collection out = null; LinkedHashMultimap in = (LinkedHashMultimap)LinkedHashMultimap.create(ImmutableMultimap.of(null, source())); out = in.values(); @@ -6987,140 +6987,140 @@ public class Test { sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multiset$Entry;true;getElement;();;Element of Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;Multiset$Entry;true;getElement;();;Element of Argument[this];ReturnValue;value;manual" Object out = null; Multiset.Entry in = (Multiset.Entry)newEntryWithElement(source()); out = in.getElement(); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;Multiset;true;add;(Object,int);;Argument[0];Element of Argument[-1];value;manual" + // "com.google.common.collect;Multiset;true;add;(Object,int);;Argument[0];Element of Argument[this];value;manual" TreeMultiset out = null; Object in = (Object)source(); out.add(in, 0); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multiset;true;add;(Object,int);;Argument[0];Element of Argument[-1];value;manual" + // "com.google.common.collect;Multiset;true;add;(Object,int);;Argument[0];Element of Argument[this];value;manual" Multiset out = null; Object in = (Object)source(); out.add(in, 0); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multiset;true;add;(Object,int);;Argument[0];Element of Argument[-1];value;manual" + // "com.google.common.collect;Multiset;true;add;(Object,int);;Argument[0];Element of Argument[this];value;manual" ImmutableMultiset out = null; Object in = (Object)source(); out.add(in, 0); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multiset;true;add;(Object,int);;Argument[0];Element of Argument[-1];value;manual" + // "com.google.common.collect;Multiset;true;add;(Object,int);;Argument[0];Element of Argument[this];value;manual" ConcurrentHashMultiset out = null; Object in = (Object)source(); out.add(in, 0); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multiset;true;elementSet;();;Element of Argument[-1];Element of ReturnValue;value;manual" + // "com.google.common.collect;Multiset;true;elementSet;();;Element of Argument[this];Element of ReturnValue;value;manual" Set out = null; Multiset in = (Multiset)ImmutableMultiset.of(source()); out = in.elementSet(); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multiset;true;elementSet;();;Element of Argument[-1];Element of ReturnValue;value;manual" + // "com.google.common.collect;Multiset;true;elementSet;();;Element of Argument[this];Element of ReturnValue;value;manual" NavigableSet out = null; SortedMultiset in = (SortedMultiset)ImmutableSortedMultiset.of((Comparable)source()); out = in.elementSet(); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multiset;true;elementSet;();;Element of Argument[-1];Element of ReturnValue;value;manual" + // "com.google.common.collect;Multiset;true;elementSet;();;Element of Argument[this];Element of ReturnValue;value;manual" ImmutableSortedSet out = null; ImmutableSortedMultiset in = (ImmutableSortedMultiset)ImmutableSortedMultiset.of((Comparable)source()); out = in.elementSet(); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multiset;true;elementSet;();;Element of Argument[-1];Element of ReturnValue;value;manual" + // "com.google.common.collect;Multiset;true;elementSet;();;Element of Argument[this];Element of ReturnValue;value;manual" ImmutableSet out = null; ImmutableMultiset in = (ImmutableMultiset)ImmutableMultiset.of(source()); out = in.elementSet(); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multiset;true;entrySet;();;Element of Argument[-1];Element of Element of ReturnValue;value;manual" + // "com.google.common.collect;Multiset;true;entrySet;();;Element of Argument[this];Element of Element of ReturnValue;value;manual" Set<Multiset.Entry> out = null; SortedMultiset in = (SortedMultiset)ImmutableSortedMultiset.of((Comparable)source()); out = in.entrySet(); sink(getElement(out).getElement()); // $ hasValueFlow } { - // "com.google.common.collect;Multiset;true;entrySet;();;Element of Argument[-1];Element of Element of ReturnValue;value;manual" + // "com.google.common.collect;Multiset;true;entrySet;();;Element of Argument[this];Element of Element of ReturnValue;value;manual" Set<Multiset.Entry> out = null; Multiset in = (Multiset)ImmutableMultiset.of(source()); out = in.entrySet(); sink(getElement(out).getElement()); // $ hasValueFlow } { - // "com.google.common.collect;Multiset;true;entrySet;();;Element of Argument[-1];Element of Element of ReturnValue;value;manual" + // "com.google.common.collect;Multiset;true;entrySet;();;Element of Argument[this];Element of Element of ReturnValue;value;manual" ImmutableSet<Multiset.Entry> out = null; ImmutableMultiset in = (ImmutableMultiset)ImmutableMultiset.of(source()); out = in.entrySet(); sink(getElement(out).getElement()); // $ hasValueFlow } { - // "com.google.common.collect;Multiset;true;setCount;(Object,int);;Argument[0];Element of Argument[-1];value;manual" + // "com.google.common.collect;Multiset;true;setCount;(Object,int);;Argument[0];Element of Argument[this];value;manual" TreeMultiset out = null; Object in = (Object)source(); out.setCount(in, 0); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multiset;true;setCount;(Object,int);;Argument[0];Element of Argument[-1];value;manual" + // "com.google.common.collect;Multiset;true;setCount;(Object,int);;Argument[0];Element of Argument[this];value;manual" Multiset out = null; Object in = (Object)source(); out.setCount(in, 0); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multiset;true;setCount;(Object,int);;Argument[0];Element of Argument[-1];value;manual" + // "com.google.common.collect;Multiset;true;setCount;(Object,int);;Argument[0];Element of Argument[this];value;manual" ImmutableMultiset out = null; Object in = (Object)source(); out.setCount(in, 0); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multiset;true;setCount;(Object,int);;Argument[0];Element of Argument[-1];value;manual" + // "com.google.common.collect;Multiset;true;setCount;(Object,int);;Argument[0];Element of Argument[this];value;manual" ConcurrentHashMultiset out = null; Object in = (Object)source(); out.setCount(in, 0); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multiset;true;setCount;(Object,int,int);;Argument[0];Element of Argument[-1];value;manual" + // "com.google.common.collect;Multiset;true;setCount;(Object,int,int);;Argument[0];Element of Argument[this];value;manual" TreeMultiset out = null; Object in = (Object)source(); out.setCount(in, 0, 0); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multiset;true;setCount;(Object,int,int);;Argument[0];Element of Argument[-1];value;manual" + // "com.google.common.collect;Multiset;true;setCount;(Object,int,int);;Argument[0];Element of Argument[this];value;manual" Multiset out = null; Object in = (Object)source(); out.setCount(in, 0, 0); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multiset;true;setCount;(Object,int,int);;Argument[0];Element of Argument[-1];value;manual" + // "com.google.common.collect;Multiset;true;setCount;(Object,int,int);;Argument[0];Element of Argument[this];value;manual" ImmutableMultiset out = null; Object in = (Object)source(); out.setCount(in, 0, 0); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;Multiset;true;setCount;(Object,int,int);;Argument[0];Element of Argument[-1];value;manual" + // "com.google.common.collect;Multiset;true;setCount;(Object,int,int);;Argument[0];Element of Argument[this];value;manual" ConcurrentHashMultiset out = null; Object in = (Object)source(); out.setCount(in, 0, 0); @@ -7344,14 +7344,14 @@ public class Test { sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;Sets$SetView;true;copyInto;(Set);;Element of Argument[-1];Element of Argument[0];value;manual" + // "com.google.common.collect;Sets$SetView;true;copyInto;(Set);;Element of Argument[this];Element of Argument[0];value;manual" Set out = null; Sets.SetView in = (Sets.SetView)Sets.union(Set.of(source()), null); in.copyInto(out); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;Sets$SetView;true;immutableCopy;();;Element of Argument[-1];Element of ReturnValue;value;manual" + // "com.google.common.collect;Sets$SetView;true;immutableCopy;();;Element of Argument[this];Element of ReturnValue;value;manual" ImmutableSet out = null; Sets.SetView in = (Sets.SetView)Sets.union(Set.of(source()), null); out = in.immutableCopy(); @@ -7533,602 +7533,602 @@ public class Test { sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;Table$Cell;true;getColumnKey;();;SyntheticField[com.google.common.collect.Table.columnKey] of Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;Table$Cell;true;getColumnKey;();;SyntheticField[com.google.common.collect.Table.columnKey] of Argument[this];ReturnValue;value;manual" Object out = null; Table.Cell in = (Table.Cell)newTableCell(null, source(), null); out = in.getColumnKey(); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;Table$Cell;true;getRowKey;();;SyntheticField[com.google.common.collect.Table.rowKey] of Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;Table$Cell;true;getRowKey;();;SyntheticField[com.google.common.collect.Table.rowKey] of Argument[this];ReturnValue;value;manual" Object out = null; Table.Cell in = (Table.Cell)newTableCell(source(), null, null); out = in.getRowKey(); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;Table$Cell;true;getValue;();;MapValue of Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;Table$Cell;true;getValue;();;MapValue of Argument[this];ReturnValue;value;manual" Object out = null; Table.Cell in = (Table.Cell)newTableCell(null, null, source()); out = in.getValue(); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;cellSet;();;MapValue of Argument[-1];MapValue of Element of ReturnValue;value;manual" + // "com.google.common.collect;Table;true;cellSet;();;MapValue of Argument[this];MapValue of Element of ReturnValue;value;manual" Set<Table.Cell> out = null; Table in = (Table)newTable(null, null, source()); out = in.cellSet(); sink(getElement(out).getValue()); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;cellSet;();;MapValue of Argument[-1];MapValue of Element of ReturnValue;value;manual" + // "com.google.common.collect;Table;true;cellSet;();;MapValue of Argument[this];MapValue of Element of ReturnValue;value;manual" Set<Table.Cell> out = null; ArrayTable in = (ArrayTable)ArrayTable.create(ImmutableTable.of(null, null, source())); out = in.cellSet(); sink(getElement(out).getValue()); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;cellSet;();;MapValue of Argument[-1];MapValue of Element of ReturnValue;value;manual" + // "com.google.common.collect;Table;true;cellSet;();;MapValue of Argument[this];MapValue of Element of ReturnValue;value;manual" ImmutableSet<Table.Cell> out = null; ImmutableTable in = (ImmutableTable)ImmutableTable.of(null, null, source()); out = in.cellSet(); sink(getElement(out).getValue()); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;cellSet;();;SyntheticField[com.google.common.collect.Table.columnKey] of Argument[-1];SyntheticField[com.google.common.collect.Table.columnKey] of Element of ReturnValue;value;manual" + // "com.google.common.collect;Table;true;cellSet;();;SyntheticField[com.google.common.collect.Table.columnKey] of Argument[this];SyntheticField[com.google.common.collect.Table.columnKey] of Element of ReturnValue;value;manual" Set<Table.Cell> out = null; Table in = (Table)newTable(null, source(), null); out = in.cellSet(); sink(getElement(out).getColumnKey()); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;cellSet;();;SyntheticField[com.google.common.collect.Table.columnKey] of Argument[-1];SyntheticField[com.google.common.collect.Table.columnKey] of Element of ReturnValue;value;manual" + // "com.google.common.collect;Table;true;cellSet;();;SyntheticField[com.google.common.collect.Table.columnKey] of Argument[this];SyntheticField[com.google.common.collect.Table.columnKey] of Element of ReturnValue;value;manual" Set<Table.Cell> out = null; ArrayTable in = (ArrayTable)ArrayTable.create(ImmutableTable.of(null, source(), null)); out = in.cellSet(); sink(getElement(out).getColumnKey()); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;cellSet;();;SyntheticField[com.google.common.collect.Table.columnKey] of Argument[-1];SyntheticField[com.google.common.collect.Table.columnKey] of Element of ReturnValue;value;manual" + // "com.google.common.collect;Table;true;cellSet;();;SyntheticField[com.google.common.collect.Table.columnKey] of Argument[this];SyntheticField[com.google.common.collect.Table.columnKey] of Element of ReturnValue;value;manual" ImmutableSet<Table.Cell> out = null; ImmutableTable in = (ImmutableTable)ImmutableTable.of(null, source(), null); out = in.cellSet(); sink(getElement(out).getColumnKey()); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;cellSet;();;SyntheticField[com.google.common.collect.Table.rowKey] of Argument[-1];SyntheticField[com.google.common.collect.Table.rowKey] of Element of ReturnValue;value;manual" + // "com.google.common.collect;Table;true;cellSet;();;SyntheticField[com.google.common.collect.Table.rowKey] of Argument[this];SyntheticField[com.google.common.collect.Table.rowKey] of Element of ReturnValue;value;manual" Set<Table.Cell> out = null; Table in = (Table)newTable(source(), null, null); out = in.cellSet(); sink(getElement(out).getRowKey()); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;cellSet;();;SyntheticField[com.google.common.collect.Table.rowKey] of Argument[-1];SyntheticField[com.google.common.collect.Table.rowKey] of Element of ReturnValue;value;manual" + // "com.google.common.collect;Table;true;cellSet;();;SyntheticField[com.google.common.collect.Table.rowKey] of Argument[this];SyntheticField[com.google.common.collect.Table.rowKey] of Element of ReturnValue;value;manual" Set<Table.Cell> out = null; ArrayTable in = (ArrayTable)ArrayTable.create(ImmutableTable.of(source(), null, null)); out = in.cellSet(); sink(getElement(out).getRowKey()); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;cellSet;();;SyntheticField[com.google.common.collect.Table.rowKey] of Argument[-1];SyntheticField[com.google.common.collect.Table.rowKey] of Element of ReturnValue;value;manual" + // "com.google.common.collect;Table;true;cellSet;();;SyntheticField[com.google.common.collect.Table.rowKey] of Argument[this];SyntheticField[com.google.common.collect.Table.rowKey] of Element of ReturnValue;value;manual" ImmutableSet<Table.Cell> out = null; ImmutableTable in = (ImmutableTable)ImmutableTable.of(source(), null, null); out = in.cellSet(); sink(getElement(out).getRowKey()); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;column;(Object);;MapValue of Argument[-1];MapValue of ReturnValue;value;manual" + // "com.google.common.collect;Table;true;column;(Object);;MapValue of Argument[this];MapValue of ReturnValue;value;manual" Map out = null; Table in = (Table)newTable(null, null, source()); out = in.column(null); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;column;(Object);;MapValue of Argument[-1];MapValue of ReturnValue;value;manual" + // "com.google.common.collect;Table;true;column;(Object);;MapValue of Argument[this];MapValue of ReturnValue;value;manual" Map out = null; ArrayTable in = (ArrayTable)ArrayTable.create(ImmutableTable.of(null, null, source())); out = in.column(null); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;column;(Object);;MapValue of Argument[-1];MapValue of ReturnValue;value;manual" + // "com.google.common.collect;Table;true;column;(Object);;MapValue of Argument[this];MapValue of ReturnValue;value;manual" ImmutableMap out = null; ImmutableTable in = (ImmutableTable)ImmutableTable.of(null, null, source()); out = in.column(null); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;column;(Object);;SyntheticField[com.google.common.collect.Table.rowKey] of Argument[-1];MapKey of ReturnValue;value;manual" + // "com.google.common.collect;Table;true;column;(Object);;SyntheticField[com.google.common.collect.Table.rowKey] of Argument[this];MapKey of ReturnValue;value;manual" Map out = null; Table in = (Table)newTable(source(), null, null); out = in.column(null); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;column;(Object);;SyntheticField[com.google.common.collect.Table.rowKey] of Argument[-1];MapKey of ReturnValue;value;manual" + // "com.google.common.collect;Table;true;column;(Object);;SyntheticField[com.google.common.collect.Table.rowKey] of Argument[this];MapKey of ReturnValue;value;manual" Map out = null; ArrayTable in = (ArrayTable)ArrayTable.create(ImmutableTable.of(source(), null, null)); out = in.column(null); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;column;(Object);;SyntheticField[com.google.common.collect.Table.rowKey] of Argument[-1];MapKey of ReturnValue;value;manual" + // "com.google.common.collect;Table;true;column;(Object);;SyntheticField[com.google.common.collect.Table.rowKey] of Argument[this];MapKey of ReturnValue;value;manual" ImmutableMap out = null; ImmutableTable in = (ImmutableTable)ImmutableTable.of(source(), null, null); out = in.column(null); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;columnKeySet;();;SyntheticField[com.google.common.collect.Table.columnKey] of Argument[-1];Element of ReturnValue;value;manual" + // "com.google.common.collect;Table;true;columnKeySet;();;SyntheticField[com.google.common.collect.Table.columnKey] of Argument[this];Element of ReturnValue;value;manual" Set out = null; Table in = (Table)newTable(null, source(), null); out = in.columnKeySet(); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;columnKeySet;();;SyntheticField[com.google.common.collect.Table.columnKey] of Argument[-1];Element of ReturnValue;value;manual" + // "com.google.common.collect;Table;true;columnKeySet;();;SyntheticField[com.google.common.collect.Table.columnKey] of Argument[this];Element of ReturnValue;value;manual" ImmutableSet out = null; ImmutableTable in = (ImmutableTable)ImmutableTable.of(null, source(), null); out = in.columnKeySet(); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;columnKeySet;();;SyntheticField[com.google.common.collect.Table.columnKey] of Argument[-1];Element of ReturnValue;value;manual" + // "com.google.common.collect;Table;true;columnKeySet;();;SyntheticField[com.google.common.collect.Table.columnKey] of Argument[this];Element of ReturnValue;value;manual" ImmutableSet out = null; ArrayTable in = (ArrayTable)ArrayTable.create(ImmutableTable.of(null, source(), null)); out = in.columnKeySet(); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;columnMap;();;MapValue of Argument[-1];MapValue of MapValue of ReturnValue;value;manual" + // "com.google.common.collect;Table;true;columnMap;();;MapValue of Argument[this];MapValue of MapValue of ReturnValue;value;manual" Map<Object,Map> out = null; Table in = (Table)newTable(null, null, source()); out = in.columnMap(); sink(getMapValue(getMapValue(out))); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;columnMap;();;MapValue of Argument[-1];MapValue of MapValue of ReturnValue;value;manual" + // "com.google.common.collect;Table;true;columnMap;();;MapValue of Argument[this];MapValue of MapValue of ReturnValue;value;manual" Map<Object,Map> out = null; ArrayTable in = (ArrayTable)ArrayTable.create(ImmutableTable.of(null, null, source())); out = in.columnMap(); sink(getMapValue(getMapValue(out))); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;columnMap;();;MapValue of Argument[-1];MapValue of MapValue of ReturnValue;value;manual" + // "com.google.common.collect;Table;true;columnMap;();;MapValue of Argument[this];MapValue of MapValue of ReturnValue;value;manual" ImmutableMap<Object,Map> out = null; ImmutableTable in = (ImmutableTable)ImmutableTable.of(null, null, source()); out = in.columnMap(); sink(getMapValue(getMapValue(out))); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;columnMap;();;SyntheticField[com.google.common.collect.Table.columnKey] of Argument[-1];MapKey of ReturnValue;value;manual" + // "com.google.common.collect;Table;true;columnMap;();;SyntheticField[com.google.common.collect.Table.columnKey] of Argument[this];MapKey of ReturnValue;value;manual" Map out = null; Table in = (Table)newTable(null, source(), null); out = in.columnMap(); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;columnMap;();;SyntheticField[com.google.common.collect.Table.columnKey] of Argument[-1];MapKey of ReturnValue;value;manual" + // "com.google.common.collect;Table;true;columnMap;();;SyntheticField[com.google.common.collect.Table.columnKey] of Argument[this];MapKey of ReturnValue;value;manual" Map out = null; ArrayTable in = (ArrayTable)ArrayTable.create(ImmutableTable.of(null, source(), null)); out = in.columnMap(); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;columnMap;();;SyntheticField[com.google.common.collect.Table.columnKey] of Argument[-1];MapKey of ReturnValue;value;manual" + // "com.google.common.collect;Table;true;columnMap;();;SyntheticField[com.google.common.collect.Table.columnKey] of Argument[this];MapKey of ReturnValue;value;manual" ImmutableMap out = null; ImmutableTable in = (ImmutableTable)ImmutableTable.of(null, source(), null); out = in.columnMap(); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;columnMap;();;SyntheticField[com.google.common.collect.Table.rowKey] of Argument[-1];MapKey of MapValue of ReturnValue;value;manual" + // "com.google.common.collect;Table;true;columnMap;();;SyntheticField[com.google.common.collect.Table.rowKey] of Argument[this];MapKey of MapValue of ReturnValue;value;manual" Map<Object,Map> out = null; Table in = (Table)newTable(source(), null, null); out = in.columnMap(); sink(getMapKey(getMapValue(out))); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;columnMap;();;SyntheticField[com.google.common.collect.Table.rowKey] of Argument[-1];MapKey of MapValue of ReturnValue;value;manual" + // "com.google.common.collect;Table;true;columnMap;();;SyntheticField[com.google.common.collect.Table.rowKey] of Argument[this];MapKey of MapValue of ReturnValue;value;manual" Map<Object,Map> out = null; ArrayTable in = (ArrayTable)ArrayTable.create(ImmutableTable.of(source(), null, null)); out = in.columnMap(); sink(getMapKey(getMapValue(out))); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;columnMap;();;SyntheticField[com.google.common.collect.Table.rowKey] of Argument[-1];MapKey of MapValue of ReturnValue;value;manual" + // "com.google.common.collect;Table;true;columnMap;();;SyntheticField[com.google.common.collect.Table.rowKey] of Argument[this];MapKey of MapValue of ReturnValue;value;manual" ImmutableMap<Object,Map> out = null; ImmutableTable in = (ImmutableTable)ImmutableTable.of(source(), null, null); out = in.columnMap(); sink(getMapKey(getMapValue(out))); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;get;(Object,Object);;MapValue of Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;Table;true;get;(Object,Object);;MapValue of Argument[this];ReturnValue;value;manual" Object out = null; Table in = (Table)newTable(null, null, source()); out = in.get(null, null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;get;(Object,Object);;MapValue of Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;Table;true;get;(Object,Object);;MapValue of Argument[this];ReturnValue;value;manual" Object out = null; HashBasedTable in = (HashBasedTable)HashBasedTable.create(ImmutableTable.of(null, null, source())); out = in.get(null, null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;get;(Object,Object);;MapValue of Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;Table;true;get;(Object,Object);;MapValue of Argument[this];ReturnValue;value;manual" Object out = null; ArrayTable in = (ArrayTable)ArrayTable.create(ImmutableTable.of(null, null, source())); out = in.get(null, null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;put;(Object,Object,Object);;Argument[0];SyntheticField[com.google.common.collect.Table.rowKey] of Argument[-1];value;manual" + // "com.google.common.collect;Table;true;put;(Object,Object,Object);;Argument[0];SyntheticField[com.google.common.collect.Table.rowKey] of Argument[this];value;manual" Table out = null; Object in = (Object)source(); out.put(in, null, null); sink(getTable_rowKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;put;(Object,Object,Object);;Argument[0];SyntheticField[com.google.common.collect.Table.rowKey] of Argument[-1];value;manual" + // "com.google.common.collect;Table;true;put;(Object,Object,Object);;Argument[0];SyntheticField[com.google.common.collect.Table.rowKey] of Argument[this];value;manual" ImmutableTable out = null; Object in = (Object)source(); out.put(in, null, null); sink(getTable_rowKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;put;(Object,Object,Object);;Argument[0];SyntheticField[com.google.common.collect.Table.rowKey] of Argument[-1];value;manual" + // "com.google.common.collect;Table;true;put;(Object,Object,Object);;Argument[0];SyntheticField[com.google.common.collect.Table.rowKey] of Argument[this];value;manual" ArrayTable out = null; Object in = (Object)source(); out.put(in, null, null); sink(getTable_rowKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;put;(Object,Object,Object);;Argument[1];SyntheticField[com.google.common.collect.Table.columnKey] of Argument[-1];value;manual" + // "com.google.common.collect;Table;true;put;(Object,Object,Object);;Argument[1];SyntheticField[com.google.common.collect.Table.columnKey] of Argument[this];value;manual" Table out = null; Object in = (Object)source(); out.put(null, in, null); sink(getTable_columnKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;put;(Object,Object,Object);;Argument[1];SyntheticField[com.google.common.collect.Table.columnKey] of Argument[-1];value;manual" + // "com.google.common.collect;Table;true;put;(Object,Object,Object);;Argument[1];SyntheticField[com.google.common.collect.Table.columnKey] of Argument[this];value;manual" ImmutableTable out = null; Object in = (Object)source(); out.put(null, in, null); sink(getTable_columnKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;put;(Object,Object,Object);;Argument[1];SyntheticField[com.google.common.collect.Table.columnKey] of Argument[-1];value;manual" + // "com.google.common.collect;Table;true;put;(Object,Object,Object);;Argument[1];SyntheticField[com.google.common.collect.Table.columnKey] of Argument[this];value;manual" ArrayTable out = null; Object in = (Object)source(); out.put(null, in, null); sink(getTable_columnKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;put;(Object,Object,Object);;Argument[2];MapValue of Argument[-1];value;manual" + // "com.google.common.collect;Table;true;put;(Object,Object,Object);;Argument[2];MapValue of Argument[this];value;manual" Table out = null; Object in = (Object)source(); out.put(null, null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;put;(Object,Object,Object);;Argument[2];MapValue of Argument[-1];value;manual" + // "com.google.common.collect;Table;true;put;(Object,Object,Object);;Argument[2];MapValue of Argument[this];value;manual" ImmutableTable out = null; Object in = (Object)source(); out.put(null, null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;put;(Object,Object,Object);;Argument[2];MapValue of Argument[-1];value;manual" + // "com.google.common.collect;Table;true;put;(Object,Object,Object);;Argument[2];MapValue of Argument[this];value;manual" ArrayTable out = null; Object in = (Object)source(); out.put(null, null, in); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;putAll;(Table);;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "com.google.common.collect;Table;true;putAll;(Table);;MapValue of Argument[0];MapValue of Argument[this];value;manual" Table out = null; Table in = (Table)newTable(null, null, source()); out.putAll(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;putAll;(Table);;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "com.google.common.collect;Table;true;putAll;(Table);;MapValue of Argument[0];MapValue of Argument[this];value;manual" ImmutableTable out = null; Table in = (Table)ImmutableTable.of(null, null, source()); out.putAll(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;putAll;(Table);;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "com.google.common.collect;Table;true;putAll;(Table);;MapValue of Argument[0];MapValue of Argument[this];value;manual" ArrayTable out = null; Table in = (Table)ArrayTable.create(ImmutableTable.of(null, null, source())); out.putAll(in); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;putAll;(Table);;SyntheticField[com.google.common.collect.Table.columnKey] of Argument[0];SyntheticField[com.google.common.collect.Table.columnKey] of Argument[-1];value;manual" + // "com.google.common.collect;Table;true;putAll;(Table);;SyntheticField[com.google.common.collect.Table.columnKey] of Argument[0];SyntheticField[com.google.common.collect.Table.columnKey] of Argument[this];value;manual" Table out = null; Table in = (Table)newTable(null, source(), null); out.putAll(in); sink(getTable_columnKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;putAll;(Table);;SyntheticField[com.google.common.collect.Table.columnKey] of Argument[0];SyntheticField[com.google.common.collect.Table.columnKey] of Argument[-1];value;manual" + // "com.google.common.collect;Table;true;putAll;(Table);;SyntheticField[com.google.common.collect.Table.columnKey] of Argument[0];SyntheticField[com.google.common.collect.Table.columnKey] of Argument[this];value;manual" ImmutableTable out = null; Table in = (Table)ImmutableTable.of(null, source(), null); out.putAll(in); sink(getTable_columnKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;putAll;(Table);;SyntheticField[com.google.common.collect.Table.columnKey] of Argument[0];SyntheticField[com.google.common.collect.Table.columnKey] of Argument[-1];value;manual" + // "com.google.common.collect;Table;true;putAll;(Table);;SyntheticField[com.google.common.collect.Table.columnKey] of Argument[0];SyntheticField[com.google.common.collect.Table.columnKey] of Argument[this];value;manual" ArrayTable out = null; Table in = (Table)ArrayTable.create(ImmutableTable.of(null, source(), null)); out.putAll(in); sink(getTable_columnKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;putAll;(Table);;SyntheticField[com.google.common.collect.Table.rowKey] of Argument[0];SyntheticField[com.google.common.collect.Table.rowKey] of Argument[-1];value;manual" + // "com.google.common.collect;Table;true;putAll;(Table);;SyntheticField[com.google.common.collect.Table.rowKey] of Argument[0];SyntheticField[com.google.common.collect.Table.rowKey] of Argument[this];value;manual" Table out = null; Table in = (Table)newTable(source(), null, null); out.putAll(in); sink(getTable_rowKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;putAll;(Table);;SyntheticField[com.google.common.collect.Table.rowKey] of Argument[0];SyntheticField[com.google.common.collect.Table.rowKey] of Argument[-1];value;manual" + // "com.google.common.collect;Table;true;putAll;(Table);;SyntheticField[com.google.common.collect.Table.rowKey] of Argument[0];SyntheticField[com.google.common.collect.Table.rowKey] of Argument[this];value;manual" ImmutableTable out = null; Table in = (Table)ImmutableTable.of(source(), null, null); out.putAll(in); sink(getTable_rowKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;putAll;(Table);;SyntheticField[com.google.common.collect.Table.rowKey] of Argument[0];SyntheticField[com.google.common.collect.Table.rowKey] of Argument[-1];value;manual" + // "com.google.common.collect;Table;true;putAll;(Table);;SyntheticField[com.google.common.collect.Table.rowKey] of Argument[0];SyntheticField[com.google.common.collect.Table.rowKey] of Argument[this];value;manual" ArrayTable out = null; Table in = (Table)ArrayTable.create(ImmutableTable.of(source(), null, null)); out.putAll(in); sink(getTable_rowKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;remove;(Object,Object);;MapValue of Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;Table;true;remove;(Object,Object);;MapValue of Argument[this];ReturnValue;value;manual" Object out = null; Table in = (Table)newTable(null, null, source()); out = in.remove(null, null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;remove;(Object,Object);;MapValue of Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;Table;true;remove;(Object,Object);;MapValue of Argument[this];ReturnValue;value;manual" Object out = null; ImmutableTable in = (ImmutableTable)ImmutableTable.of(null, null, source()); out = in.remove(null, null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;remove;(Object,Object);;MapValue of Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;Table;true;remove;(Object,Object);;MapValue of Argument[this];ReturnValue;value;manual" Object out = null; HashBasedTable in = (HashBasedTable)HashBasedTable.create(ImmutableTable.of(null, null, source())); out = in.remove(null, null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;remove;(Object,Object);;MapValue of Argument[-1];ReturnValue;value;manual" + // "com.google.common.collect;Table;true;remove;(Object,Object);;MapValue of Argument[this];ReturnValue;value;manual" Object out = null; ArrayTable in = (ArrayTable)ArrayTable.create(ImmutableTable.of(null, null, source())); out = in.remove(null, null); sink(out); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;row;(Object);;MapValue of Argument[-1];MapValue of ReturnValue;value;manual" + // "com.google.common.collect;Table;true;row;(Object);;MapValue of Argument[this];MapValue of ReturnValue;value;manual" SortedMap out = null; TreeBasedTable in = (TreeBasedTable)newTable(null, null, source()); out = in.row(null); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;row;(Object);;MapValue of Argument[-1];MapValue of ReturnValue;value;manual" + // "com.google.common.collect;Table;true;row;(Object);;MapValue of Argument[this];MapValue of ReturnValue;value;manual" Map out = null; Table in = (Table)newTable(null, null, source()); out = in.row(null); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;row;(Object);;MapValue of Argument[-1];MapValue of ReturnValue;value;manual" + // "com.google.common.collect;Table;true;row;(Object);;MapValue of Argument[this];MapValue of ReturnValue;value;manual" Map out = null; ArrayTable in = (ArrayTable)ArrayTable.create(ImmutableTable.of(null, null, source())); out = in.row(null); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;row;(Object);;MapValue of Argument[-1];MapValue of ReturnValue;value;manual" + // "com.google.common.collect;Table;true;row;(Object);;MapValue of Argument[this];MapValue of ReturnValue;value;manual" ImmutableMap out = null; ImmutableTable in = (ImmutableTable)ImmutableTable.of(null, null, source()); out = in.row(null); sink(getMapValue(out)); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;row;(Object);;SyntheticField[com.google.common.collect.Table.columnKey] of Argument[-1];MapKey of ReturnValue;value;manual" + // "com.google.common.collect;Table;true;row;(Object);;SyntheticField[com.google.common.collect.Table.columnKey] of Argument[this];MapKey of ReturnValue;value;manual" SortedMap out = null; TreeBasedTable in = (TreeBasedTable)newTable(null, source(), null); out = in.row(null); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;row;(Object);;SyntheticField[com.google.common.collect.Table.columnKey] of Argument[-1];MapKey of ReturnValue;value;manual" + // "com.google.common.collect;Table;true;row;(Object);;SyntheticField[com.google.common.collect.Table.columnKey] of Argument[this];MapKey of ReturnValue;value;manual" Map out = null; Table in = (Table)newTable(null, source(), null); out = in.row(null); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;row;(Object);;SyntheticField[com.google.common.collect.Table.columnKey] of Argument[-1];MapKey of ReturnValue;value;manual" + // "com.google.common.collect;Table;true;row;(Object);;SyntheticField[com.google.common.collect.Table.columnKey] of Argument[this];MapKey of ReturnValue;value;manual" Map out = null; ArrayTable in = (ArrayTable)ArrayTable.create(ImmutableTable.of(null, source(), null)); out = in.row(null); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;row;(Object);;SyntheticField[com.google.common.collect.Table.columnKey] of Argument[-1];MapKey of ReturnValue;value;manual" + // "com.google.common.collect;Table;true;row;(Object);;SyntheticField[com.google.common.collect.Table.columnKey] of Argument[this];MapKey of ReturnValue;value;manual" ImmutableMap out = null; ImmutableTable in = (ImmutableTable)ImmutableTable.of(null, source(), null); out = in.row(null); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;rowKeySet;();;SyntheticField[com.google.common.collect.Table.rowKey] of Argument[-1];Element of ReturnValue;value;manual" + // "com.google.common.collect;Table;true;rowKeySet;();;SyntheticField[com.google.common.collect.Table.rowKey] of Argument[this];Element of ReturnValue;value;manual" SortedSet out = null; TreeBasedTable in = (TreeBasedTable)newTable(source(), null, null); out = in.rowKeySet(); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;rowKeySet;();;SyntheticField[com.google.common.collect.Table.rowKey] of Argument[-1];Element of ReturnValue;value;manual" + // "com.google.common.collect;Table;true;rowKeySet;();;SyntheticField[com.google.common.collect.Table.rowKey] of Argument[this];Element of ReturnValue;value;manual" SortedSet out = null; RowSortedTable in = (RowSortedTable)newTable(source(), null, null); out = in.rowKeySet(); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;rowKeySet;();;SyntheticField[com.google.common.collect.Table.rowKey] of Argument[-1];Element of ReturnValue;value;manual" + // "com.google.common.collect;Table;true;rowKeySet;();;SyntheticField[com.google.common.collect.Table.rowKey] of Argument[this];Element of ReturnValue;value;manual" Set out = null; Table in = (Table)newTable(source(), null, null); out = in.rowKeySet(); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;rowKeySet;();;SyntheticField[com.google.common.collect.Table.rowKey] of Argument[-1];Element of ReturnValue;value;manual" + // "com.google.common.collect;Table;true;rowKeySet;();;SyntheticField[com.google.common.collect.Table.rowKey] of Argument[this];Element of ReturnValue;value;manual" ImmutableSet out = null; ImmutableTable in = (ImmutableTable)ImmutableTable.of(source(), null, null); out = in.rowKeySet(); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;rowKeySet;();;SyntheticField[com.google.common.collect.Table.rowKey] of Argument[-1];Element of ReturnValue;value;manual" + // "com.google.common.collect;Table;true;rowKeySet;();;SyntheticField[com.google.common.collect.Table.rowKey] of Argument[this];Element of ReturnValue;value;manual" ImmutableSet out = null; ArrayTable in = (ArrayTable)ArrayTable.create(ImmutableTable.of(source(), null, null)); out = in.rowKeySet(); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;rowMap;();;MapValue of Argument[-1];MapValue of MapValue of ReturnValue;value;manual" + // "com.google.common.collect;Table;true;rowMap;();;MapValue of Argument[this];MapValue of MapValue of ReturnValue;value;manual" SortedMap<Object,Map> out = null; TreeBasedTable in = (TreeBasedTable)newTable(null, null, source()); out = in.rowMap(); sink(getMapValue(getMapValue(out))); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;rowMap;();;MapValue of Argument[-1];MapValue of MapValue of ReturnValue;value;manual" + // "com.google.common.collect;Table;true;rowMap;();;MapValue of Argument[this];MapValue of MapValue of ReturnValue;value;manual" SortedMap<Object,Map> out = null; RowSortedTable in = (RowSortedTable)newTable(null, null, source()); out = in.rowMap(); sink(getMapValue(getMapValue(out))); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;rowMap;();;MapValue of Argument[-1];MapValue of MapValue of ReturnValue;value;manual" + // "com.google.common.collect;Table;true;rowMap;();;MapValue of Argument[this];MapValue of MapValue of ReturnValue;value;manual" Map<Object,Map> out = null; Table in = (Table)newTable(null, null, source()); out = in.rowMap(); sink(getMapValue(getMapValue(out))); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;rowMap;();;MapValue of Argument[-1];MapValue of MapValue of ReturnValue;value;manual" + // "com.google.common.collect;Table;true;rowMap;();;MapValue of Argument[this];MapValue of MapValue of ReturnValue;value;manual" Map<Object,Map> out = null; ArrayTable in = (ArrayTable)ArrayTable.create(ImmutableTable.of(null, null, source())); out = in.rowMap(); sink(getMapValue(getMapValue(out))); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;rowMap;();;MapValue of Argument[-1];MapValue of MapValue of ReturnValue;value;manual" + // "com.google.common.collect;Table;true;rowMap;();;MapValue of Argument[this];MapValue of MapValue of ReturnValue;value;manual" ImmutableMap<Object,Map> out = null; ImmutableTable in = (ImmutableTable)ImmutableTable.of(null, null, source()); out = in.rowMap(); sink(getMapValue(getMapValue(out))); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;rowMap;();;SyntheticField[com.google.common.collect.Table.columnKey] of Argument[-1];MapKey of MapValue of ReturnValue;value;manual" + // "com.google.common.collect;Table;true;rowMap;();;SyntheticField[com.google.common.collect.Table.columnKey] of Argument[this];MapKey of MapValue of ReturnValue;value;manual" SortedMap<Object,Map> out = null; TreeBasedTable in = (TreeBasedTable)newTable(null, source(), null); out = in.rowMap(); sink(getMapKey(getMapValue(out))); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;rowMap;();;SyntheticField[com.google.common.collect.Table.columnKey] of Argument[-1];MapKey of MapValue of ReturnValue;value;manual" + // "com.google.common.collect;Table;true;rowMap;();;SyntheticField[com.google.common.collect.Table.columnKey] of Argument[this];MapKey of MapValue of ReturnValue;value;manual" SortedMap<Object,Map> out = null; RowSortedTable in = (RowSortedTable)newTable(null, source(), null); out = in.rowMap(); sink(getMapKey(getMapValue(out))); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;rowMap;();;SyntheticField[com.google.common.collect.Table.columnKey] of Argument[-1];MapKey of MapValue of ReturnValue;value;manual" + // "com.google.common.collect;Table;true;rowMap;();;SyntheticField[com.google.common.collect.Table.columnKey] of Argument[this];MapKey of MapValue of ReturnValue;value;manual" Map<Object,Map> out = null; Table in = (Table)newTable(null, source(), null); out = in.rowMap(); sink(getMapKey(getMapValue(out))); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;rowMap;();;SyntheticField[com.google.common.collect.Table.columnKey] of Argument[-1];MapKey of MapValue of ReturnValue;value;manual" + // "com.google.common.collect;Table;true;rowMap;();;SyntheticField[com.google.common.collect.Table.columnKey] of Argument[this];MapKey of MapValue of ReturnValue;value;manual" Map<Object,Map> out = null; ArrayTable in = (ArrayTable)ArrayTable.create(ImmutableTable.of(null, source(), null)); out = in.rowMap(); sink(getMapKey(getMapValue(out))); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;rowMap;();;SyntheticField[com.google.common.collect.Table.columnKey] of Argument[-1];MapKey of MapValue of ReturnValue;value;manual" + // "com.google.common.collect;Table;true;rowMap;();;SyntheticField[com.google.common.collect.Table.columnKey] of Argument[this];MapKey of MapValue of ReturnValue;value;manual" ImmutableMap<Object,Map> out = null; ImmutableTable in = (ImmutableTable)ImmutableTable.of(null, source(), null); out = in.rowMap(); sink(getMapKey(getMapValue(out))); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;rowMap;();;SyntheticField[com.google.common.collect.Table.rowKey] of Argument[-1];MapKey of ReturnValue;value;manual" + // "com.google.common.collect;Table;true;rowMap;();;SyntheticField[com.google.common.collect.Table.rowKey] of Argument[this];MapKey of ReturnValue;value;manual" SortedMap out = null; TreeBasedTable in = (TreeBasedTable)newTable(source(), null, null); out = in.rowMap(); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;rowMap;();;SyntheticField[com.google.common.collect.Table.rowKey] of Argument[-1];MapKey of ReturnValue;value;manual" + // "com.google.common.collect;Table;true;rowMap;();;SyntheticField[com.google.common.collect.Table.rowKey] of Argument[this];MapKey of ReturnValue;value;manual" SortedMap out = null; RowSortedTable in = (RowSortedTable)newTable(source(), null, null); out = in.rowMap(); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;rowMap;();;SyntheticField[com.google.common.collect.Table.rowKey] of Argument[-1];MapKey of ReturnValue;value;manual" + // "com.google.common.collect;Table;true;rowMap;();;SyntheticField[com.google.common.collect.Table.rowKey] of Argument[this];MapKey of ReturnValue;value;manual" Map out = null; Table in = (Table)newTable(source(), null, null); out = in.rowMap(); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;rowMap;();;SyntheticField[com.google.common.collect.Table.rowKey] of Argument[-1];MapKey of ReturnValue;value;manual" + // "com.google.common.collect;Table;true;rowMap;();;SyntheticField[com.google.common.collect.Table.rowKey] of Argument[this];MapKey of ReturnValue;value;manual" Map out = null; ArrayTable in = (ArrayTable)ArrayTable.create(ImmutableTable.of(source(), null, null)); out = in.rowMap(); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;rowMap;();;SyntheticField[com.google.common.collect.Table.rowKey] of Argument[-1];MapKey of ReturnValue;value;manual" + // "com.google.common.collect;Table;true;rowMap;();;SyntheticField[com.google.common.collect.Table.rowKey] of Argument[this];MapKey of ReturnValue;value;manual" ImmutableMap out = null; ImmutableTable in = (ImmutableTable)ImmutableTable.of(source(), null, null); out = in.rowMap(); sink(getMapKey(out)); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;values;();;MapValue of Argument[-1];Element of ReturnValue;value;manual" + // "com.google.common.collect;Table;true;values;();;MapValue of Argument[this];Element of ReturnValue;value;manual" ImmutableCollection out = null; ImmutableTable in = (ImmutableTable)ImmutableTable.of(null, null, source()); out = in.values(); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;values;();;MapValue of Argument[-1];Element of ReturnValue;value;manual" + // "com.google.common.collect;Table;true;values;();;MapValue of Argument[this];Element of ReturnValue;value;manual" Collection out = null; Table in = (Table)newTable(null, null, source()); out = in.values(); sink(getElement(out)); // $ hasValueFlow } { - // "com.google.common.collect;Table;true;values;();;MapValue of Argument[-1];Element of ReturnValue;value;manual" + // "com.google.common.collect;Table;true;values;();;MapValue of Argument[this];Element of ReturnValue;value;manual" Collection out = null; ArrayTable in = (ArrayTable)ArrayTable.create(ImmutableTable.of(null, null, source())); out = in.values(); diff --git a/java/ql/test/library-tests/frameworks/javax-json/Test.java b/java/ql/test/library-tests/frameworks/javax-json/Test.java index d3458f3f4a9..979bfe9a568 100644 --- a/java/ql/test/library-tests/frameworks/javax-json/Test.java +++ b/java/ql/test/library-tests/frameworks/javax-json/Test.java @@ -238,14 +238,14 @@ public class Test { sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonArray;false;getBoolean;;;Argument[-1];ReturnValue;taint;manual" + // "jakarta.json;JsonArray;false;getBoolean;;;Argument[this];ReturnValue;taint;manual" boolean out = false; jakarta.json.JsonArray in = (jakarta.json.JsonArray)source(); out = in.getBoolean(0, false); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonArray;false;getBoolean;;;Argument[-1];ReturnValue;taint;manual" + // "jakarta.json;JsonArray;false;getBoolean;;;Argument[this];ReturnValue;taint;manual" boolean out = false; jakarta.json.JsonArray in = (jakarta.json.JsonArray)source(); out = in.getBoolean(0); @@ -260,14 +260,14 @@ public class Test { sink(out); // $hasValueFlow } { - // "jakarta.json;JsonArray;false;getInt;;;Argument[-1];ReturnValue;taint;manual" + // "jakarta.json;JsonArray;false;getInt;;;Argument[this];ReturnValue;taint;manual" int out = 0; jakarta.json.JsonArray in = (jakarta.json.JsonArray)source(); out = in.getInt(0, 0); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonArray;false;getInt;;;Argument[-1];ReturnValue;taint;manual" + // "jakarta.json;JsonArray;false;getInt;;;Argument[this];ReturnValue;taint;manual" int out = 0; jakarta.json.JsonArray in = (jakarta.json.JsonArray)source(); out = in.getInt(0); @@ -282,42 +282,42 @@ public class Test { sink(out); // $hasValueFlow } { - // "jakarta.json;JsonArray;false;getJsonArray;;;Argument[-1];ReturnValue;taint;manual" + // "jakarta.json;JsonArray;false;getJsonArray;;;Argument[this];ReturnValue;taint;manual" jakarta.json.JsonArray out = null; jakarta.json.JsonArray in = (jakarta.json.JsonArray)source(); out = in.getJsonArray(0); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonArray;false;getJsonNumber;;;Argument[-1];ReturnValue;taint;manual" + // "jakarta.json;JsonArray;false;getJsonNumber;;;Argument[this];ReturnValue;taint;manual" jakarta.json.JsonNumber out = null; jakarta.json.JsonArray in = (jakarta.json.JsonArray)source(); out = in.getJsonNumber(0); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonArray;false;getJsonObject;;;Argument[-1];ReturnValue;taint;manual" + // "jakarta.json;JsonArray;false;getJsonObject;;;Argument[this];ReturnValue;taint;manual" jakarta.json.JsonObject out = null; jakarta.json.JsonArray in = (jakarta.json.JsonArray)source(); out = in.getJsonObject(0); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonArray;false;getJsonString;;;Argument[-1];ReturnValue;taint;manual" + // "jakarta.json;JsonArray;false;getJsonString;;;Argument[this];ReturnValue;taint;manual" jakarta.json.JsonString out = null; jakarta.json.JsonArray in = (jakarta.json.JsonArray)source(); out = in.getJsonString(0); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonArray;false;getString;;;Argument[-1];ReturnValue;taint;manual" + // "jakarta.json;JsonArray;false;getString;;;Argument[this];ReturnValue;taint;manual" String out = null; jakarta.json.JsonArray in = (jakarta.json.JsonArray)source(); out = in.getString(0, null); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonArray;false;getString;;;Argument[-1];ReturnValue;taint;manual" + // "jakarta.json;JsonArray;false;getString;;;Argument[this];ReturnValue;taint;manual" String out = null; jakarta.json.JsonArray in = (jakarta.json.JsonArray)source(); out = in.getString(0); @@ -332,490 +332,490 @@ public class Test { sink(out); // $hasValueFlow } { - // "jakarta.json;JsonArray;false;getValuesAs;;;Argument[-1];ReturnValue;taint;manual" + // "jakarta.json;JsonArray;false;getValuesAs;;;Argument[this];ReturnValue;taint;manual" List out = null; jakarta.json.JsonArray in = (jakarta.json.JsonArray)source(); out = in.getValuesAs((Function)null); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonArray;false;getValuesAs;;;Argument[-1];ReturnValue;taint;manual" + // "jakarta.json;JsonArray;false;getValuesAs;;;Argument[this];ReturnValue;taint;manual" List out = null; jakarta.json.JsonArray in = (jakarta.json.JsonArray)source(); out = in.getValuesAs((Class)null); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonArrayBuilder;false;add;(BigDecimal);;Argument[0];Argument[-1];taint;manual" + // "jakarta.json;JsonArrayBuilder;false;add;(BigDecimal);;Argument[0];Argument[this];taint;manual" jakarta.json.JsonArrayBuilder out = null; BigDecimal in = (BigDecimal)source(); out.add(in); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonArrayBuilder;false;add;(BigInteger);;Argument[0];Argument[-1];taint;manual" + // "jakarta.json;JsonArrayBuilder;false;add;(BigInteger);;Argument[0];Argument[this];taint;manual" jakarta.json.JsonArrayBuilder out = null; BigInteger in = (BigInteger)source(); out.add(in); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonArrayBuilder;false;add;(JsonArrayBuilder);;Argument[0];Argument[-1];taint;manual" + // "jakarta.json;JsonArrayBuilder;false;add;(JsonArrayBuilder);;Argument[0];Argument[this];taint;manual" jakarta.json.JsonArrayBuilder out = null; jakarta.json.JsonArrayBuilder in = (jakarta.json.JsonArrayBuilder)source(); out.add(in); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonArrayBuilder;false;add;(JsonObjectBuilder);;Argument[0];Argument[-1];taint;manual" + // "jakarta.json;JsonArrayBuilder;false;add;(JsonObjectBuilder);;Argument[0];Argument[this];taint;manual" jakarta.json.JsonArrayBuilder out = null; jakarta.json.JsonObjectBuilder in = (jakarta.json.JsonObjectBuilder)source(); out.add(in); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonArrayBuilder;false;add;(JsonValue);;Argument[0];Argument[-1];taint;manual" + // "jakarta.json;JsonArrayBuilder;false;add;(JsonValue);;Argument[0];Argument[this];taint;manual" jakarta.json.JsonArrayBuilder out = null; jakarta.json.JsonValue in = (jakarta.json.JsonValue)source(); out.add(in); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonArrayBuilder;false;add;(String);;Argument[0];Argument[-1];taint;manual" + // "jakarta.json;JsonArrayBuilder;false;add;(String);;Argument[0];Argument[this];taint;manual" jakarta.json.JsonArrayBuilder out = null; String in = (String)source(); out.add(in); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonArrayBuilder;false;add;(boolean);;Argument[0];Argument[-1];taint;manual" + // "jakarta.json;JsonArrayBuilder;false;add;(boolean);;Argument[0];Argument[this];taint;manual" jakarta.json.JsonArrayBuilder out = null; boolean in = (boolean)source(); out.add(in); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonArrayBuilder;false;add;(double);;Argument[0];Argument[-1];taint;manual" + // "jakarta.json;JsonArrayBuilder;false;add;(double);;Argument[0];Argument[this];taint;manual" jakarta.json.JsonArrayBuilder out = null; double in = (double)source(); out.add(in); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonArrayBuilder;false;add;(int);;Argument[0];Argument[-1];taint;manual" + // "jakarta.json;JsonArrayBuilder;false;add;(int);;Argument[0];Argument[this];taint;manual" jakarta.json.JsonArrayBuilder out = null; int in = (int)source(); out.add(in); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonArrayBuilder;false;add;(int,BigDecimal);;Argument[1];Argument[-1];taint;manual" + // "jakarta.json;JsonArrayBuilder;false;add;(int,BigDecimal);;Argument[1];Argument[this];taint;manual" jakarta.json.JsonArrayBuilder out = null; BigDecimal in = (BigDecimal)source(); out.add(0, in); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonArrayBuilder;false;add;(int,BigInteger);;Argument[1];Argument[-1];taint;manual" + // "jakarta.json;JsonArrayBuilder;false;add;(int,BigInteger);;Argument[1];Argument[this];taint;manual" jakarta.json.JsonArrayBuilder out = null; BigInteger in = (BigInteger)source(); out.add(0, in); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonArrayBuilder;false;add;(int,JsonArrayBuilder);;Argument[1];Argument[-1];taint;manual" + // "jakarta.json;JsonArrayBuilder;false;add;(int,JsonArrayBuilder);;Argument[1];Argument[this];taint;manual" jakarta.json.JsonArrayBuilder out = null; jakarta.json.JsonArrayBuilder in = (jakarta.json.JsonArrayBuilder)source(); out.add(0, in); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonArrayBuilder;false;add;(int,JsonObjectBuilder);;Argument[1];Argument[-1];taint;manual" + // "jakarta.json;JsonArrayBuilder;false;add;(int,JsonObjectBuilder);;Argument[1];Argument[this];taint;manual" jakarta.json.JsonArrayBuilder out = null; jakarta.json.JsonObjectBuilder in = (jakarta.json.JsonObjectBuilder)source(); out.add(0, in); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonArrayBuilder;false;add;(int,JsonValue);;Argument[1];Argument[-1];taint;manual" + // "jakarta.json;JsonArrayBuilder;false;add;(int,JsonValue);;Argument[1];Argument[this];taint;manual" jakarta.json.JsonArrayBuilder out = null; jakarta.json.JsonValue in = (jakarta.json.JsonValue)source(); out.add(0, in); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonArrayBuilder;false;add;(int,String);;Argument[1];Argument[-1];taint;manual" + // "jakarta.json;JsonArrayBuilder;false;add;(int,String);;Argument[1];Argument[this];taint;manual" jakarta.json.JsonArrayBuilder out = null; String in = (String)source(); out.add(0, in); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonArrayBuilder;false;add;(int,boolean);;Argument[1];Argument[-1];taint;manual" + // "jakarta.json;JsonArrayBuilder;false;add;(int,boolean);;Argument[1];Argument[this];taint;manual" jakarta.json.JsonArrayBuilder out = null; boolean in = (boolean)source(); out.add(0, in); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonArrayBuilder;false;add;(int,double);;Argument[1];Argument[-1];taint;manual" + // "jakarta.json;JsonArrayBuilder;false;add;(int,double);;Argument[1];Argument[this];taint;manual" jakarta.json.JsonArrayBuilder out = null; double in = (double)source(); out.add(0, in); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonArrayBuilder;false;add;(int,int);;Argument[1];Argument[-1];taint;manual" + // "jakarta.json;JsonArrayBuilder;false;add;(int,int);;Argument[1];Argument[this];taint;manual" jakarta.json.JsonArrayBuilder out = null; int in = (int)source(); out.add(0, in); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonArrayBuilder;false;add;(int,long);;Argument[1];Argument[-1];taint;manual" + // "jakarta.json;JsonArrayBuilder;false;add;(int,long);;Argument[1];Argument[this];taint;manual" jakarta.json.JsonArrayBuilder out = null; long in = (long)source(); out.add(0, in); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonArrayBuilder;false;add;(long);;Argument[0];Argument[-1];taint;manual" + // "jakarta.json;JsonArrayBuilder;false;add;(long);;Argument[0];Argument[this];taint;manual" jakarta.json.JsonArrayBuilder out = null; long in = (long)source(); out.add(in); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonArrayBuilder;false;add;;;Argument[-1];ReturnValue;value;manual" + // "jakarta.json;JsonArrayBuilder;false;add;;;Argument[this];ReturnValue;value;manual" jakarta.json.JsonArrayBuilder out = null; jakarta.json.JsonArrayBuilder in = (jakarta.json.JsonArrayBuilder)source(); out = in.add(false); sink(out); // $hasValueFlow } { - // "jakarta.json;JsonArrayBuilder;false;add;;;Argument[-1];ReturnValue;value;manual" + // "jakarta.json;JsonArrayBuilder;false;add;;;Argument[this];ReturnValue;value;manual" jakarta.json.JsonArrayBuilder out = null; jakarta.json.JsonArrayBuilder in = (jakarta.json.JsonArrayBuilder)source(); out = in.add(0L); sink(out); // $hasValueFlow } { - // "jakarta.json;JsonArrayBuilder;false;add;;;Argument[-1];ReturnValue;value;manual" + // "jakarta.json;JsonArrayBuilder;false;add;;;Argument[this];ReturnValue;value;manual" jakarta.json.JsonArrayBuilder out = null; jakarta.json.JsonArrayBuilder in = (jakarta.json.JsonArrayBuilder)source(); out = in.add(0.0); sink(out); // $hasValueFlow } { - // "jakarta.json;JsonArrayBuilder;false;add;;;Argument[-1];ReturnValue;value;manual" + // "jakarta.json;JsonArrayBuilder;false;add;;;Argument[this];ReturnValue;value;manual" jakarta.json.JsonArrayBuilder out = null; jakarta.json.JsonArrayBuilder in = (jakarta.json.JsonArrayBuilder)source(); out = in.add(0, false); sink(out); // $hasValueFlow } { - // "jakarta.json;JsonArrayBuilder;false;add;;;Argument[-1];ReturnValue;value;manual" + // "jakarta.json;JsonArrayBuilder;false;add;;;Argument[this];ReturnValue;value;manual" jakarta.json.JsonArrayBuilder out = null; jakarta.json.JsonArrayBuilder in = (jakarta.json.JsonArrayBuilder)source(); out = in.add(0, 0L); sink(out); // $hasValueFlow } { - // "jakarta.json;JsonArrayBuilder;false;add;;;Argument[-1];ReturnValue;value;manual" + // "jakarta.json;JsonArrayBuilder;false;add;;;Argument[this];ReturnValue;value;manual" jakarta.json.JsonArrayBuilder out = null; jakarta.json.JsonArrayBuilder in = (jakarta.json.JsonArrayBuilder)source(); out = in.add(0, 0.0); sink(out); // $hasValueFlow } { - // "jakarta.json;JsonArrayBuilder;false;add;;;Argument[-1];ReturnValue;value;manual" + // "jakarta.json;JsonArrayBuilder;false;add;;;Argument[this];ReturnValue;value;manual" jakarta.json.JsonArrayBuilder out = null; jakarta.json.JsonArrayBuilder in = (jakarta.json.JsonArrayBuilder)source(); out = in.add(0, 0); sink(out); // $hasValueFlow } { - // "jakarta.json;JsonArrayBuilder;false;add;;;Argument[-1];ReturnValue;value;manual" + // "jakarta.json;JsonArrayBuilder;false;add;;;Argument[this];ReturnValue;value;manual" jakarta.json.JsonArrayBuilder out = null; jakarta.json.JsonArrayBuilder in = (jakarta.json.JsonArrayBuilder)source(); out = in.add(0, (jakarta.json.JsonValue)null); sink(out); // $hasValueFlow } { - // "jakarta.json;JsonArrayBuilder;false;add;;;Argument[-1];ReturnValue;value;manual" + // "jakarta.json;JsonArrayBuilder;false;add;;;Argument[this];ReturnValue;value;manual" jakarta.json.JsonArrayBuilder out = null; jakarta.json.JsonArrayBuilder in = (jakarta.json.JsonArrayBuilder)source(); out = in.add(0, (jakarta.json.JsonObjectBuilder)null); sink(out); // $hasValueFlow } { - // "jakarta.json;JsonArrayBuilder;false;add;;;Argument[-1];ReturnValue;value;manual" + // "jakarta.json;JsonArrayBuilder;false;add;;;Argument[this];ReturnValue;value;manual" jakarta.json.JsonArrayBuilder out = null; jakarta.json.JsonArrayBuilder in = (jakarta.json.JsonArrayBuilder)source(); out = in.add(0, (jakarta.json.JsonArrayBuilder)null); sink(out); // $hasValueFlow } { - // "jakarta.json;JsonArrayBuilder;false;add;;;Argument[-1];ReturnValue;value;manual" + // "jakarta.json;JsonArrayBuilder;false;add;;;Argument[this];ReturnValue;value;manual" jakarta.json.JsonArrayBuilder out = null; jakarta.json.JsonArrayBuilder in = (jakarta.json.JsonArrayBuilder)source(); out = in.add(0, (String)null); sink(out); // $hasValueFlow } { - // "jakarta.json;JsonArrayBuilder;false;add;;;Argument[-1];ReturnValue;value;manual" + // "jakarta.json;JsonArrayBuilder;false;add;;;Argument[this];ReturnValue;value;manual" jakarta.json.JsonArrayBuilder out = null; jakarta.json.JsonArrayBuilder in = (jakarta.json.JsonArrayBuilder)source(); out = in.add(0, (BigInteger)null); sink(out); // $hasValueFlow } { - // "jakarta.json;JsonArrayBuilder;false;add;;;Argument[-1];ReturnValue;value;manual" + // "jakarta.json;JsonArrayBuilder;false;add;;;Argument[this];ReturnValue;value;manual" jakarta.json.JsonArrayBuilder out = null; jakarta.json.JsonArrayBuilder in = (jakarta.json.JsonArrayBuilder)source(); out = in.add(0, (BigDecimal)null); sink(out); // $hasValueFlow } { - // "jakarta.json;JsonArrayBuilder;false;add;;;Argument[-1];ReturnValue;value;manual" + // "jakarta.json;JsonArrayBuilder;false;add;;;Argument[this];ReturnValue;value;manual" jakarta.json.JsonArrayBuilder out = null; jakarta.json.JsonArrayBuilder in = (jakarta.json.JsonArrayBuilder)source(); out = in.add(0); sink(out); // $hasValueFlow } { - // "jakarta.json;JsonArrayBuilder;false;add;;;Argument[-1];ReturnValue;value;manual" + // "jakarta.json;JsonArrayBuilder;false;add;;;Argument[this];ReturnValue;value;manual" jakarta.json.JsonArrayBuilder out = null; jakarta.json.JsonArrayBuilder in = (jakarta.json.JsonArrayBuilder)source(); out = in.add((jakarta.json.JsonValue)null); sink(out); // $hasValueFlow } { - // "jakarta.json;JsonArrayBuilder;false;add;;;Argument[-1];ReturnValue;value;manual" + // "jakarta.json;JsonArrayBuilder;false;add;;;Argument[this];ReturnValue;value;manual" jakarta.json.JsonArrayBuilder out = null; jakarta.json.JsonArrayBuilder in = (jakarta.json.JsonArrayBuilder)source(); out = in.add((jakarta.json.JsonObjectBuilder)null); sink(out); // $hasValueFlow } { - // "jakarta.json;JsonArrayBuilder;false;add;;;Argument[-1];ReturnValue;value;manual" + // "jakarta.json;JsonArrayBuilder;false;add;;;Argument[this];ReturnValue;value;manual" jakarta.json.JsonArrayBuilder out = null; jakarta.json.JsonArrayBuilder in = (jakarta.json.JsonArrayBuilder)source(); out = in.add((jakarta.json.JsonArrayBuilder)null); sink(out); // $hasValueFlow } { - // "jakarta.json;JsonArrayBuilder;false;add;;;Argument[-1];ReturnValue;value;manual" + // "jakarta.json;JsonArrayBuilder;false;add;;;Argument[this];ReturnValue;value;manual" jakarta.json.JsonArrayBuilder out = null; jakarta.json.JsonArrayBuilder in = (jakarta.json.JsonArrayBuilder)source(); out = in.add((String)null); sink(out); // $hasValueFlow } { - // "jakarta.json;JsonArrayBuilder;false;add;;;Argument[-1];ReturnValue;value;manual" + // "jakarta.json;JsonArrayBuilder;false;add;;;Argument[this];ReturnValue;value;manual" jakarta.json.JsonArrayBuilder out = null; jakarta.json.JsonArrayBuilder in = (jakarta.json.JsonArrayBuilder)source(); out = in.add((BigInteger)null); sink(out); // $hasValueFlow } { - // "jakarta.json;JsonArrayBuilder;false;add;;;Argument[-1];ReturnValue;value;manual" + // "jakarta.json;JsonArrayBuilder;false;add;;;Argument[this];ReturnValue;value;manual" jakarta.json.JsonArrayBuilder out = null; jakarta.json.JsonArrayBuilder in = (jakarta.json.JsonArrayBuilder)source(); out = in.add((BigDecimal)null); sink(out); // $hasValueFlow } { - // "jakarta.json;JsonArrayBuilder;false;addAll;;;Argument[-1];ReturnValue;value;manual" + // "jakarta.json;JsonArrayBuilder;false;addAll;;;Argument[this];ReturnValue;value;manual" jakarta.json.JsonArrayBuilder out = null; jakarta.json.JsonArrayBuilder in = (jakarta.json.JsonArrayBuilder)source(); out = in.addAll(null); sink(out); // $hasValueFlow } { - // "jakarta.json;JsonArrayBuilder;false;addAll;;;Argument[0];Argument[-1];taint;manual" + // "jakarta.json;JsonArrayBuilder;false;addAll;;;Argument[0];Argument[this];taint;manual" jakarta.json.JsonArrayBuilder out = null; jakarta.json.JsonArrayBuilder in = (jakarta.json.JsonArrayBuilder)source(); out.addAll(in); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonArrayBuilder;false;addNull;;;Argument[-1];ReturnValue;value;manual" + // "jakarta.json;JsonArrayBuilder;false;addNull;;;Argument[this];ReturnValue;value;manual" jakarta.json.JsonArrayBuilder out = null; jakarta.json.JsonArrayBuilder in = (jakarta.json.JsonArrayBuilder)source(); out = in.addNull(0); sink(out); // $hasValueFlow } { - // "jakarta.json;JsonArrayBuilder;false;addNull;;;Argument[-1];ReturnValue;value;manual" + // "jakarta.json;JsonArrayBuilder;false;addNull;;;Argument[this];ReturnValue;value;manual" jakarta.json.JsonArrayBuilder out = null; jakarta.json.JsonArrayBuilder in = (jakarta.json.JsonArrayBuilder)source(); out = in.addNull(); sink(out); // $hasValueFlow } { - // "jakarta.json;JsonArrayBuilder;false;build;;;Argument[-1];ReturnValue;taint;manual" + // "jakarta.json;JsonArrayBuilder;false;build;;;Argument[this];ReturnValue;taint;manual" jakarta.json.JsonArray out = null; jakarta.json.JsonArrayBuilder in = (jakarta.json.JsonArrayBuilder)source(); out = in.build(); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonArrayBuilder;false;remove;;;Argument[-1];ReturnValue;value;manual" + // "jakarta.json;JsonArrayBuilder;false;remove;;;Argument[this];ReturnValue;value;manual" jakarta.json.JsonArrayBuilder out = null; jakarta.json.JsonArrayBuilder in = (jakarta.json.JsonArrayBuilder)source(); out = in.remove(0); sink(out); // $hasValueFlow } { - // "jakarta.json;JsonArrayBuilder;false;set;;;Argument[-1];ReturnValue;value;manual" + // "jakarta.json;JsonArrayBuilder;false;set;;;Argument[this];ReturnValue;value;manual" jakarta.json.JsonArrayBuilder out = null; jakarta.json.JsonArrayBuilder in = (jakarta.json.JsonArrayBuilder)source(); out = in.set(0, false); sink(out); // $hasValueFlow } { - // "jakarta.json;JsonArrayBuilder;false;set;;;Argument[-1];ReturnValue;value;manual" + // "jakarta.json;JsonArrayBuilder;false;set;;;Argument[this];ReturnValue;value;manual" jakarta.json.JsonArrayBuilder out = null; jakarta.json.JsonArrayBuilder in = (jakarta.json.JsonArrayBuilder)source(); out = in.set(0, 0L); sink(out); // $hasValueFlow } { - // "jakarta.json;JsonArrayBuilder;false;set;;;Argument[-1];ReturnValue;value;manual" + // "jakarta.json;JsonArrayBuilder;false;set;;;Argument[this];ReturnValue;value;manual" jakarta.json.JsonArrayBuilder out = null; jakarta.json.JsonArrayBuilder in = (jakarta.json.JsonArrayBuilder)source(); out = in.set(0, 0.0); sink(out); // $hasValueFlow } { - // "jakarta.json;JsonArrayBuilder;false;set;;;Argument[-1];ReturnValue;value;manual" + // "jakarta.json;JsonArrayBuilder;false;set;;;Argument[this];ReturnValue;value;manual" jakarta.json.JsonArrayBuilder out = null; jakarta.json.JsonArrayBuilder in = (jakarta.json.JsonArrayBuilder)source(); out = in.set(0, 0); sink(out); // $hasValueFlow } { - // "jakarta.json;JsonArrayBuilder;false;set;;;Argument[-1];ReturnValue;value;manual" + // "jakarta.json;JsonArrayBuilder;false;set;;;Argument[this];ReturnValue;value;manual" jakarta.json.JsonArrayBuilder out = null; jakarta.json.JsonArrayBuilder in = (jakarta.json.JsonArrayBuilder)source(); out = in.set(0, (jakarta.json.JsonValue)null); sink(out); // $hasValueFlow } { - // "jakarta.json;JsonArrayBuilder;false;set;;;Argument[-1];ReturnValue;value;manual" + // "jakarta.json;JsonArrayBuilder;false;set;;;Argument[this];ReturnValue;value;manual" jakarta.json.JsonArrayBuilder out = null; jakarta.json.JsonArrayBuilder in = (jakarta.json.JsonArrayBuilder)source(); out = in.set(0, (jakarta.json.JsonObjectBuilder)null); sink(out); // $hasValueFlow } { - // "jakarta.json;JsonArrayBuilder;false;set;;;Argument[-1];ReturnValue;value;manual" + // "jakarta.json;JsonArrayBuilder;false;set;;;Argument[this];ReturnValue;value;manual" jakarta.json.JsonArrayBuilder out = null; jakarta.json.JsonArrayBuilder in = (jakarta.json.JsonArrayBuilder)source(); out = in.set(0, (jakarta.json.JsonArrayBuilder)null); sink(out); // $hasValueFlow } { - // "jakarta.json;JsonArrayBuilder;false;set;;;Argument[-1];ReturnValue;value;manual" + // "jakarta.json;JsonArrayBuilder;false;set;;;Argument[this];ReturnValue;value;manual" jakarta.json.JsonArrayBuilder out = null; jakarta.json.JsonArrayBuilder in = (jakarta.json.JsonArrayBuilder)source(); out = in.set(0, (String)null); sink(out); // $hasValueFlow } { - // "jakarta.json;JsonArrayBuilder;false;set;;;Argument[-1];ReturnValue;value;manual" + // "jakarta.json;JsonArrayBuilder;false;set;;;Argument[this];ReturnValue;value;manual" jakarta.json.JsonArrayBuilder out = null; jakarta.json.JsonArrayBuilder in = (jakarta.json.JsonArrayBuilder)source(); out = in.set(0, (BigInteger)null); sink(out); // $hasValueFlow } { - // "jakarta.json;JsonArrayBuilder;false;set;;;Argument[-1];ReturnValue;value;manual" + // "jakarta.json;JsonArrayBuilder;false;set;;;Argument[this];ReturnValue;value;manual" jakarta.json.JsonArrayBuilder out = null; jakarta.json.JsonArrayBuilder in = (jakarta.json.JsonArrayBuilder)source(); out = in.set(0, (BigDecimal)null); sink(out); // $hasValueFlow } { - // "jakarta.json;JsonArrayBuilder;false;set;;;Argument[1];Argument[-1];taint;manual" + // "jakarta.json;JsonArrayBuilder;false;set;;;Argument[1];Argument[this];taint;manual" jakarta.json.JsonArrayBuilder out = null; long in = (long)source(); out.set(0, in); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonArrayBuilder;false;set;;;Argument[1];Argument[-1];taint;manual" + // "jakarta.json;JsonArrayBuilder;false;set;;;Argument[1];Argument[this];taint;manual" jakarta.json.JsonArrayBuilder out = null; jakarta.json.JsonValue in = (jakarta.json.JsonValue)source(); out.set(0, in); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonArrayBuilder;false;set;;;Argument[1];Argument[-1];taint;manual" + // "jakarta.json;JsonArrayBuilder;false;set;;;Argument[1];Argument[this];taint;manual" jakarta.json.JsonArrayBuilder out = null; jakarta.json.JsonObjectBuilder in = (jakarta.json.JsonObjectBuilder)source(); out.set(0, in); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonArrayBuilder;false;set;;;Argument[1];Argument[-1];taint;manual" + // "jakarta.json;JsonArrayBuilder;false;set;;;Argument[1];Argument[this];taint;manual" jakarta.json.JsonArrayBuilder out = null; jakarta.json.JsonArrayBuilder in = (jakarta.json.JsonArrayBuilder)source(); out.set(0, in); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonArrayBuilder;false;set;;;Argument[1];Argument[-1];taint;manual" + // "jakarta.json;JsonArrayBuilder;false;set;;;Argument[1];Argument[this];taint;manual" jakarta.json.JsonArrayBuilder out = null; int in = (int)source(); out.set(0, in); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonArrayBuilder;false;set;;;Argument[1];Argument[-1];taint;manual" + // "jakarta.json;JsonArrayBuilder;false;set;;;Argument[1];Argument[this];taint;manual" jakarta.json.JsonArrayBuilder out = null; double in = (double)source(); out.set(0, in); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonArrayBuilder;false;set;;;Argument[1];Argument[-1];taint;manual" + // "jakarta.json;JsonArrayBuilder;false;set;;;Argument[1];Argument[this];taint;manual" jakarta.json.JsonArrayBuilder out = null; boolean in = (boolean)source(); out.set(0, in); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonArrayBuilder;false;set;;;Argument[1];Argument[-1];taint;manual" + // "jakarta.json;JsonArrayBuilder;false;set;;;Argument[1];Argument[this];taint;manual" jakarta.json.JsonArrayBuilder out = null; String in = (String)source(); out.set(0, in); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonArrayBuilder;false;set;;;Argument[1];Argument[-1];taint;manual" + // "jakarta.json;JsonArrayBuilder;false;set;;;Argument[1];Argument[this];taint;manual" jakarta.json.JsonArrayBuilder out = null; BigInteger in = (BigInteger)source(); out.set(0, in); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonArrayBuilder;false;set;;;Argument[1];Argument[-1];taint;manual" + // "jakarta.json;JsonArrayBuilder;false;set;;;Argument[1];Argument[this];taint;manual" jakarta.json.JsonArrayBuilder out = null; BigDecimal in = (BigDecimal)source(); out.set(0, in); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonArrayBuilder;false;setNull;;;Argument[-1];ReturnValue;value;manual" + // "jakarta.json;JsonArrayBuilder;false;setNull;;;Argument[this];ReturnValue;value;manual" jakarta.json.JsonArrayBuilder out = null; jakarta.json.JsonArrayBuilder in = (jakarta.json.JsonArrayBuilder)source(); out = in.setNull(0); sink(out); // $hasValueFlow } { - // "jakarta.json;JsonMergePatch;false;apply;;;Argument[-1];ReturnValue;taint;manual" + // "jakarta.json;JsonMergePatch;false;apply;;;Argument[this];ReturnValue;taint;manual" jakarta.json.JsonValue out = null; jakarta.json.JsonMergePatch in = (jakarta.json.JsonMergePatch)source(); out = in.apply(null); @@ -830,84 +830,84 @@ public class Test { sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonMergePatch;false;toJsonValue;;;Argument[-1];ReturnValue;taint;manual" + // "jakarta.json;JsonMergePatch;false;toJsonValue;;;Argument[this];ReturnValue;taint;manual" jakarta.json.JsonValue out = null; jakarta.json.JsonMergePatch in = (jakarta.json.JsonMergePatch)source(); out = in.toJsonValue(); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonNumber;false;bigDecimalValue;;;Argument[-1];ReturnValue;taint;manual" + // "jakarta.json;JsonNumber;false;bigDecimalValue;;;Argument[this];ReturnValue;taint;manual" BigDecimal out = null; jakarta.json.JsonNumber in = (jakarta.json.JsonNumber)source(); out = in.bigDecimalValue(); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonNumber;false;bigIntegerValue;;;Argument[-1];ReturnValue;taint;manual" + // "jakarta.json;JsonNumber;false;bigIntegerValue;;;Argument[this];ReturnValue;taint;manual" BigInteger out = null; jakarta.json.JsonNumber in = (jakarta.json.JsonNumber)source(); out = in.bigIntegerValue(); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonNumber;false;bigIntegerValueExact;;;Argument[-1];ReturnValue;taint;manual" + // "jakarta.json;JsonNumber;false;bigIntegerValueExact;;;Argument[this];ReturnValue;taint;manual" BigInteger out = null; jakarta.json.JsonNumber in = (jakarta.json.JsonNumber)source(); out = in.bigIntegerValueExact(); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonNumber;false;doubleValue;;;Argument[-1];ReturnValue;taint;manual" + // "jakarta.json;JsonNumber;false;doubleValue;;;Argument[this];ReturnValue;taint;manual" double out = 0.0; jakarta.json.JsonNumber in = (jakarta.json.JsonNumber)source(); out = in.doubleValue(); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonNumber;false;intValue;;;Argument[-1];ReturnValue;taint;manual" + // "jakarta.json;JsonNumber;false;intValue;;;Argument[this];ReturnValue;taint;manual" int out = 0; jakarta.json.JsonNumber in = (jakarta.json.JsonNumber)source(); out = in.intValue(); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonNumber;false;intValueExact;;;Argument[-1];ReturnValue;taint;manual" + // "jakarta.json;JsonNumber;false;intValueExact;;;Argument[this];ReturnValue;taint;manual" int out = 0; jakarta.json.JsonNumber in = (jakarta.json.JsonNumber)source(); out = in.intValueExact(); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonNumber;false;longValue;;;Argument[-1];ReturnValue;taint;manual" + // "jakarta.json;JsonNumber;false;longValue;;;Argument[this];ReturnValue;taint;manual" long out = 0L; jakarta.json.JsonNumber in = (jakarta.json.JsonNumber)source(); out = in.longValue(); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonNumber;false;longValueExact;;;Argument[-1];ReturnValue;taint;manual" + // "jakarta.json;JsonNumber;false;longValueExact;;;Argument[this];ReturnValue;taint;manual" long out = 0L; jakarta.json.JsonNumber in = (jakarta.json.JsonNumber)source(); out = in.longValueExact(); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonNumber;false;numberValue;;;Argument[-1];ReturnValue;taint;manual" + // "jakarta.json;JsonNumber;false;numberValue;;;Argument[this];ReturnValue;taint;manual" Number out = null; jakarta.json.JsonNumber in = (jakarta.json.JsonNumber)source(); out = in.numberValue(); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonObject;false;getBoolean;;;Argument[-1];ReturnValue;taint;manual" + // "jakarta.json;JsonObject;false;getBoolean;;;Argument[this];ReturnValue;taint;manual" boolean out = false; jakarta.json.JsonObject in = (jakarta.json.JsonObject)source(); out = in.getBoolean(null, false); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonObject;false;getBoolean;;;Argument[-1];ReturnValue;taint;manual" + // "jakarta.json;JsonObject;false;getBoolean;;;Argument[this];ReturnValue;taint;manual" boolean out = false; jakarta.json.JsonObject in = (jakarta.json.JsonObject)source(); out = in.getBoolean(null); @@ -922,14 +922,14 @@ public class Test { sink(out); // $hasValueFlow } { - // "jakarta.json;JsonObject;false;getInt;;;Argument[-1];ReturnValue;taint;manual" + // "jakarta.json;JsonObject;false;getInt;;;Argument[this];ReturnValue;taint;manual" int out = 0; jakarta.json.JsonObject in = (jakarta.json.JsonObject)source(); out = in.getInt(null, 0); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonObject;false;getInt;;;Argument[-1];ReturnValue;taint;manual" + // "jakarta.json;JsonObject;false;getInt;;;Argument[this];ReturnValue;taint;manual" int out = 0; jakarta.json.JsonObject in = (jakarta.json.JsonObject)source(); out = in.getInt(null); @@ -944,42 +944,42 @@ public class Test { sink(out); // $hasValueFlow } { - // "jakarta.json;JsonObject;false;getJsonArray;;;Argument[-1];ReturnValue;taint;manual" + // "jakarta.json;JsonObject;false;getJsonArray;;;Argument[this];ReturnValue;taint;manual" jakarta.json.JsonArray out = null; jakarta.json.JsonObject in = (jakarta.json.JsonObject)source(); out = in.getJsonArray(null); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonObject;false;getJsonNumber;;;Argument[-1];ReturnValue;taint;manual" + // "jakarta.json;JsonObject;false;getJsonNumber;;;Argument[this];ReturnValue;taint;manual" jakarta.json.JsonNumber out = null; jakarta.json.JsonObject in = (jakarta.json.JsonObject)source(); out = in.getJsonNumber(null); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonObject;false;getJsonObject;;;Argument[-1];ReturnValue;taint;manual" + // "jakarta.json;JsonObject;false;getJsonObject;;;Argument[this];ReturnValue;taint;manual" jakarta.json.JsonObject out = null; jakarta.json.JsonObject in = (jakarta.json.JsonObject)source(); out = in.getJsonObject(null); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonObject;false;getJsonString;;;Argument[-1];ReturnValue;taint;manual" + // "jakarta.json;JsonObject;false;getJsonString;;;Argument[this];ReturnValue;taint;manual" jakarta.json.JsonString out = null; jakarta.json.JsonObject in = (jakarta.json.JsonObject)source(); out = in.getJsonString(null); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonObject;false;getString;;;Argument[-1];ReturnValue;taint;manual" + // "jakarta.json;JsonObject;false;getString;;;Argument[this];ReturnValue;taint;manual" String out = null; jakarta.json.JsonObject in = (jakarta.json.JsonObject)source(); out = in.getString(null, null); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonObject;false;getString;;;Argument[-1];ReturnValue;taint;manual" + // "jakarta.json;JsonObject;false;getString;;;Argument[this];ReturnValue;taint;manual" String out = null; jakarta.json.JsonObject in = (jakarta.json.JsonObject)source(); out = in.getString(null); @@ -994,147 +994,147 @@ public class Test { sink(out); // $hasValueFlow } { - // "jakarta.json;JsonObjectBuilder;false;add;;;Argument[-1];ReturnValue;value;manual" + // "jakarta.json;JsonObjectBuilder;false;add;;;Argument[this];ReturnValue;value;manual" jakarta.json.JsonObjectBuilder out = null; jakarta.json.JsonObjectBuilder in = (jakarta.json.JsonObjectBuilder)source(); out = in.add((String)null, false); sink(out); // $hasValueFlow } { - // "jakarta.json;JsonObjectBuilder;false;add;;;Argument[-1];ReturnValue;value;manual" + // "jakarta.json;JsonObjectBuilder;false;add;;;Argument[this];ReturnValue;value;manual" jakarta.json.JsonObjectBuilder out = null; jakarta.json.JsonObjectBuilder in = (jakarta.json.JsonObjectBuilder)source(); out = in.add((String)null, 0L); sink(out); // $hasValueFlow } { - // "jakarta.json;JsonObjectBuilder;false;add;;;Argument[-1];ReturnValue;value;manual" + // "jakarta.json;JsonObjectBuilder;false;add;;;Argument[this];ReturnValue;value;manual" jakarta.json.JsonObjectBuilder out = null; jakarta.json.JsonObjectBuilder in = (jakarta.json.JsonObjectBuilder)source(); out = in.add((String)null, 0.0); sink(out); // $hasValueFlow } { - // "jakarta.json;JsonObjectBuilder;false;add;;;Argument[-1];ReturnValue;value;manual" + // "jakarta.json;JsonObjectBuilder;false;add;;;Argument[this];ReturnValue;value;manual" jakarta.json.JsonObjectBuilder out = null; jakarta.json.JsonObjectBuilder in = (jakarta.json.JsonObjectBuilder)source(); out = in.add((String)null, 0); sink(out); // $hasValueFlow } { - // "jakarta.json;JsonObjectBuilder;false;add;;;Argument[-1];ReturnValue;value;manual" + // "jakarta.json;JsonObjectBuilder;false;add;;;Argument[this];ReturnValue;value;manual" jakarta.json.JsonObjectBuilder out = null; jakarta.json.JsonObjectBuilder in = (jakarta.json.JsonObjectBuilder)source(); out = in.add((String)null, (jakarta.json.JsonValue)null); sink(out); // $hasValueFlow } { - // "jakarta.json;JsonObjectBuilder;false;add;;;Argument[-1];ReturnValue;value;manual" + // "jakarta.json;JsonObjectBuilder;false;add;;;Argument[this];ReturnValue;value;manual" jakarta.json.JsonObjectBuilder out = null; jakarta.json.JsonObjectBuilder in = (jakarta.json.JsonObjectBuilder)source(); out = in.add((String)null, (jakarta.json.JsonObjectBuilder)null); sink(out); // $hasValueFlow } { - // "jakarta.json;JsonObjectBuilder;false;add;;;Argument[-1];ReturnValue;value;manual" + // "jakarta.json;JsonObjectBuilder;false;add;;;Argument[this];ReturnValue;value;manual" jakarta.json.JsonObjectBuilder out = null; jakarta.json.JsonObjectBuilder in = (jakarta.json.JsonObjectBuilder)source(); out = in.add((String)null, (jakarta.json.JsonArrayBuilder)null); sink(out); // $hasValueFlow } { - // "jakarta.json;JsonObjectBuilder;false;add;;;Argument[-1];ReturnValue;value;manual" + // "jakarta.json;JsonObjectBuilder;false;add;;;Argument[this];ReturnValue;value;manual" jakarta.json.JsonObjectBuilder out = null; jakarta.json.JsonObjectBuilder in = (jakarta.json.JsonObjectBuilder)source(); out = in.add((String)null, (String)null); sink(out); // $hasValueFlow } { - // "jakarta.json;JsonObjectBuilder;false;add;;;Argument[-1];ReturnValue;value;manual" + // "jakarta.json;JsonObjectBuilder;false;add;;;Argument[this];ReturnValue;value;manual" jakarta.json.JsonObjectBuilder out = null; jakarta.json.JsonObjectBuilder in = (jakarta.json.JsonObjectBuilder)source(); out = in.add((String)null, (BigInteger)null); sink(out); // $hasValueFlow } { - // "jakarta.json;JsonObjectBuilder;false;add;;;Argument[-1];ReturnValue;value;manual" + // "jakarta.json;JsonObjectBuilder;false;add;;;Argument[this];ReturnValue;value;manual" jakarta.json.JsonObjectBuilder out = null; jakarta.json.JsonObjectBuilder in = (jakarta.json.JsonObjectBuilder)source(); out = in.add((String)null, (BigDecimal)null); sink(out); // $hasValueFlow } { - // "jakarta.json;JsonObjectBuilder;false;add;;;Argument[1];Argument[-1];taint;manual" + // "jakarta.json;JsonObjectBuilder;false;add;;;Argument[1];Argument[this];taint;manual" jakarta.json.JsonObjectBuilder out = null; long in = (long)source(); out.add((String)null, in); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonObjectBuilder;false;add;;;Argument[1];Argument[-1];taint;manual" + // "jakarta.json;JsonObjectBuilder;false;add;;;Argument[1];Argument[this];taint;manual" jakarta.json.JsonObjectBuilder out = null; jakarta.json.JsonValue in = (jakarta.json.JsonValue)source(); out.add((String)null, in); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonObjectBuilder;false;add;;;Argument[1];Argument[-1];taint;manual" + // "jakarta.json;JsonObjectBuilder;false;add;;;Argument[1];Argument[this];taint;manual" jakarta.json.JsonObjectBuilder out = null; jakarta.json.JsonObjectBuilder in = (jakarta.json.JsonObjectBuilder)source(); out.add((String)null, in); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonObjectBuilder;false;add;;;Argument[1];Argument[-1];taint;manual" + // "jakarta.json;JsonObjectBuilder;false;add;;;Argument[1];Argument[this];taint;manual" jakarta.json.JsonObjectBuilder out = null; jakarta.json.JsonArrayBuilder in = (jakarta.json.JsonArrayBuilder)source(); out.add((String)null, in); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonObjectBuilder;false;add;;;Argument[1];Argument[-1];taint;manual" + // "jakarta.json;JsonObjectBuilder;false;add;;;Argument[1];Argument[this];taint;manual" jakarta.json.JsonObjectBuilder out = null; int in = (int)source(); out.add((String)null, in); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonObjectBuilder;false;add;;;Argument[1];Argument[-1];taint;manual" + // "jakarta.json;JsonObjectBuilder;false;add;;;Argument[1];Argument[this];taint;manual" jakarta.json.JsonObjectBuilder out = null; double in = (double)source(); out.add((String)null, in); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonObjectBuilder;false;add;;;Argument[1];Argument[-1];taint;manual" + // "jakarta.json;JsonObjectBuilder;false;add;;;Argument[1];Argument[this];taint;manual" jakarta.json.JsonObjectBuilder out = null; boolean in = (boolean)source(); out.add((String)null, in); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonObjectBuilder;false;add;;;Argument[1];Argument[-1];taint;manual" + // "jakarta.json;JsonObjectBuilder;false;add;;;Argument[1];Argument[this];taint;manual" jakarta.json.JsonObjectBuilder out = null; String in = (String)source(); out.add((String)null, in); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonObjectBuilder;false;add;;;Argument[1];Argument[-1];taint;manual" + // "jakarta.json;JsonObjectBuilder;false;add;;;Argument[1];Argument[this];taint;manual" jakarta.json.JsonObjectBuilder out = null; BigInteger in = (BigInteger)source(); out.add((String)null, in); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonObjectBuilder;false;add;;;Argument[1];Argument[-1];taint;manual" + // "jakarta.json;JsonObjectBuilder;false;add;;;Argument[1];Argument[this];taint;manual" jakarta.json.JsonObjectBuilder out = null; BigDecimal in = (BigDecimal)source(); out.add((String)null, in); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonObjectBuilder;false;addAll;;;Argument[-1];ReturnValue;value;manual" + // "jakarta.json;JsonObjectBuilder;false;addAll;;;Argument[this];ReturnValue;value;manual" jakarta.json.JsonObjectBuilder out = null; jakarta.json.JsonObjectBuilder in = (jakarta.json.JsonObjectBuilder)source(); out = in.addAll(null); @@ -1149,28 +1149,28 @@ public class Test { sink(out); // $hasValueFlow } { - // "jakarta.json;JsonObjectBuilder;false;addNull;;;Argument[-1];ReturnValue;value;manual" + // "jakarta.json;JsonObjectBuilder;false;addNull;;;Argument[this];ReturnValue;value;manual" jakarta.json.JsonObjectBuilder out = null; jakarta.json.JsonObjectBuilder in = (jakarta.json.JsonObjectBuilder)source(); out = in.addNull(null); sink(out); // $hasValueFlow } { - // "jakarta.json;JsonObjectBuilder;false;build;;;Argument[-1];ReturnValue;taint;manual" + // "jakarta.json;JsonObjectBuilder;false;build;;;Argument[this];ReturnValue;taint;manual" jakarta.json.JsonObject out = null; jakarta.json.JsonObjectBuilder in = (jakarta.json.JsonObjectBuilder)source(); out = in.build(); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonObjectBuilder;false;remove;;;Argument[-1];ReturnValue;value;manual" + // "jakarta.json;JsonObjectBuilder;false;remove;;;Argument[this];ReturnValue;value;manual" jakarta.json.JsonObjectBuilder out = null; jakarta.json.JsonObjectBuilder in = (jakarta.json.JsonObjectBuilder)source(); out = in.remove(null); sink(out); // $hasValueFlow } { - // "jakarta.json;JsonPatch;false;apply;;;Argument[-1];ReturnValue;taint;manual" + // "jakarta.json;JsonPatch;false;apply;;;Argument[this];ReturnValue;taint;manual" jakarta.json.JsonStructure out = null; jakarta.json.JsonPatch in = (jakarta.json.JsonPatch)source(); out = in.apply(null); @@ -1185,35 +1185,35 @@ public class Test { sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonPatch;false;toJsonArray;;;Argument[-1];ReturnValue;taint;manual" + // "jakarta.json;JsonPatch;false;toJsonArray;;;Argument[this];ReturnValue;taint;manual" jakarta.json.JsonArray out = null; jakarta.json.JsonPatch in = (jakarta.json.JsonPatch)source(); out = in.toJsonArray(); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonPatchBuilder;false;add;;;Argument[-1];ReturnValue;value;manual" + // "jakarta.json;JsonPatchBuilder;false;add;;;Argument[this];ReturnValue;value;manual" jakarta.json.JsonPatchBuilder out = null; jakarta.json.JsonPatchBuilder in = (jakarta.json.JsonPatchBuilder)source(); out = in.add((String)null, false); sink(out); // $hasValueFlow } { - // "jakarta.json;JsonPatchBuilder;false;add;;;Argument[-1];ReturnValue;value;manual" + // "jakarta.json;JsonPatchBuilder;false;add;;;Argument[this];ReturnValue;value;manual" jakarta.json.JsonPatchBuilder out = null; jakarta.json.JsonPatchBuilder in = (jakarta.json.JsonPatchBuilder)source(); out = in.add((String)null, 0); sink(out); // $hasValueFlow } { - // "jakarta.json;JsonPatchBuilder;false;add;;;Argument[-1];ReturnValue;value;manual" + // "jakarta.json;JsonPatchBuilder;false;add;;;Argument[this];ReturnValue;value;manual" jakarta.json.JsonPatchBuilder out = null; jakarta.json.JsonPatchBuilder in = (jakarta.json.JsonPatchBuilder)source(); out = in.add((String)null, (jakarta.json.JsonValue)null); sink(out); // $hasValueFlow } { - // "jakarta.json;JsonPatchBuilder;false;add;;;Argument[-1];ReturnValue;value;manual" + // "jakarta.json;JsonPatchBuilder;false;add;;;Argument[this];ReturnValue;value;manual" jakarta.json.JsonPatchBuilder out = null; jakarta.json.JsonPatchBuilder in = (jakarta.json.JsonPatchBuilder)source(); out = in.add((String)null, (String)null); @@ -1284,14 +1284,14 @@ public class Test { sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonPatchBuilder;false;build;;;Argument[-1];ReturnValue;taint;manual" + // "jakarta.json;JsonPatchBuilder;false;build;;;Argument[this];ReturnValue;taint;manual" jakarta.json.JsonPatch out = null; jakarta.json.JsonPatchBuilder in = (jakarta.json.JsonPatchBuilder)source(); out = in.build(); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonPatchBuilder;false;copy;;;Argument[-1];ReturnValue;value;manual" + // "jakarta.json;JsonPatchBuilder;false;copy;;;Argument[this];ReturnValue;value;manual" jakarta.json.JsonPatchBuilder out = null; jakarta.json.JsonPatchBuilder in = (jakarta.json.JsonPatchBuilder)source(); out = in.copy(null, null); @@ -1314,7 +1314,7 @@ public class Test { sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonPatchBuilder;false;move;;;Argument[-1];ReturnValue;value;manual" + // "jakarta.json;JsonPatchBuilder;false;move;;;Argument[this];ReturnValue;value;manual" jakarta.json.JsonPatchBuilder out = null; jakarta.json.JsonPatchBuilder in = (jakarta.json.JsonPatchBuilder)source(); out = in.move(null, null); @@ -1337,7 +1337,7 @@ public class Test { sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonPatchBuilder;false;remove;;;Argument[-1];ReturnValue;value;manual" + // "jakarta.json;JsonPatchBuilder;false;remove;;;Argument[this];ReturnValue;value;manual" jakarta.json.JsonPatchBuilder out = null; jakarta.json.JsonPatchBuilder in = (jakarta.json.JsonPatchBuilder)source(); out = in.remove(null); @@ -1352,28 +1352,28 @@ public class Test { sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonPatchBuilder;false;replace;;;Argument[-1];ReturnValue;value;manual" + // "jakarta.json;JsonPatchBuilder;false;replace;;;Argument[this];ReturnValue;value;manual" jakarta.json.JsonPatchBuilder out = null; jakarta.json.JsonPatchBuilder in = (jakarta.json.JsonPatchBuilder)source(); out = in.replace((String)null, false); sink(out); // $hasValueFlow } { - // "jakarta.json;JsonPatchBuilder;false;replace;;;Argument[-1];ReturnValue;value;manual" + // "jakarta.json;JsonPatchBuilder;false;replace;;;Argument[this];ReturnValue;value;manual" jakarta.json.JsonPatchBuilder out = null; jakarta.json.JsonPatchBuilder in = (jakarta.json.JsonPatchBuilder)source(); out = in.replace((String)null, 0); sink(out); // $hasValueFlow } { - // "jakarta.json;JsonPatchBuilder;false;replace;;;Argument[-1];ReturnValue;value;manual" + // "jakarta.json;JsonPatchBuilder;false;replace;;;Argument[this];ReturnValue;value;manual" jakarta.json.JsonPatchBuilder out = null; jakarta.json.JsonPatchBuilder in = (jakarta.json.JsonPatchBuilder)source(); out = in.replace((String)null, (jakarta.json.JsonValue)null); sink(out); // $hasValueFlow } { - // "jakarta.json;JsonPatchBuilder;false;replace;;;Argument[-1];ReturnValue;value;manual" + // "jakarta.json;JsonPatchBuilder;false;replace;;;Argument[this];ReturnValue;value;manual" jakarta.json.JsonPatchBuilder out = null; jakarta.json.JsonPatchBuilder in = (jakarta.json.JsonPatchBuilder)source(); out = in.replace((String)null, (String)null); @@ -1444,28 +1444,28 @@ public class Test { sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonPatchBuilder;false;test;;;Argument[-1];ReturnValue;value;manual" + // "jakarta.json;JsonPatchBuilder;false;test;;;Argument[this];ReturnValue;value;manual" jakarta.json.JsonPatchBuilder out = null; jakarta.json.JsonPatchBuilder in = (jakarta.json.JsonPatchBuilder)source(); out = in.test((String)null, false); sink(out); // $hasValueFlow } { - // "jakarta.json;JsonPatchBuilder;false;test;;;Argument[-1];ReturnValue;value;manual" + // "jakarta.json;JsonPatchBuilder;false;test;;;Argument[this];ReturnValue;value;manual" jakarta.json.JsonPatchBuilder out = null; jakarta.json.JsonPatchBuilder in = (jakarta.json.JsonPatchBuilder)source(); out = in.test((String)null, 0); sink(out); // $hasValueFlow } { - // "jakarta.json;JsonPatchBuilder;false;test;;;Argument[-1];ReturnValue;value;manual" + // "jakarta.json;JsonPatchBuilder;false;test;;;Argument[this];ReturnValue;value;manual" jakarta.json.JsonPatchBuilder out = null; jakarta.json.JsonPatchBuilder in = (jakarta.json.JsonPatchBuilder)source(); out = in.test((String)null, (jakarta.json.JsonValue)null); sink(out); // $hasValueFlow } { - // "jakarta.json;JsonPatchBuilder;false;test;;;Argument[-1];ReturnValue;value;manual" + // "jakarta.json;JsonPatchBuilder;false;test;;;Argument[this];ReturnValue;value;manual" jakarta.json.JsonPatchBuilder out = null; jakarta.json.JsonPatchBuilder in = (jakarta.json.JsonPatchBuilder)source(); out = in.test((String)null, (String)null); @@ -1536,7 +1536,7 @@ public class Test { sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonPointer;false;add;;;Argument[-1];ReturnValue;taint;manual" + // "jakarta.json;JsonPointer;false;add;;;Argument[this];ReturnValue;taint;manual" jakarta.json.JsonStructure out = null; jakarta.json.JsonPointer in = (jakarta.json.JsonPointer)source(); out = in.add(null, null); @@ -1591,35 +1591,35 @@ public class Test { sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonPointer;false;toString;;;Argument[-1];ReturnValue;taint;manual" + // "jakarta.json;JsonPointer;false;toString;;;Argument[this];ReturnValue;taint;manual" String out = null; jakarta.json.JsonPointer in = (jakarta.json.JsonPointer)source(); out = in.toString(); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonReader;false;read;;;Argument[-1];ReturnValue;taint;manual" + // "jakarta.json;JsonReader;false;read;;;Argument[this];ReturnValue;taint;manual" jakarta.json.JsonStructure out = null; jakarta.json.JsonReader in = (jakarta.json.JsonReader)source(); out = in.read(); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonReader;false;readArray;;;Argument[-1];ReturnValue;taint;manual" + // "jakarta.json;JsonReader;false;readArray;;;Argument[this];ReturnValue;taint;manual" jakarta.json.JsonArray out = null; jakarta.json.JsonReader in = (jakarta.json.JsonReader)source(); out = in.readArray(); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonReader;false;readObject;;;Argument[-1];ReturnValue;taint;manual" + // "jakarta.json;JsonReader;false;readObject;;;Argument[this];ReturnValue;taint;manual" jakarta.json.JsonObject out = null; jakarta.json.JsonReader in = (jakarta.json.JsonReader)source(); out = in.readObject(); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonReader;false;readValue;;;Argument[-1];ReturnValue;taint;manual" + // "jakarta.json;JsonReader;false;readValue;;;Argument[this];ReturnValue;taint;manual" jakarta.json.JsonValue out = null; jakarta.json.JsonReader in = (jakarta.json.JsonReader)source(); out = in.readValue(); @@ -1650,98 +1650,98 @@ public class Test { sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonString;false;getChars;;;Argument[-1];ReturnValue;taint;manual" + // "jakarta.json;JsonString;false;getChars;;;Argument[this];ReturnValue;taint;manual" CharSequence out = null; jakarta.json.JsonString in = (jakarta.json.JsonString)source(); out = in.getChars(); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonString;false;getString;;;Argument[-1];ReturnValue;taint;manual" + // "jakarta.json;JsonString;false;getString;;;Argument[this];ReturnValue;taint;manual" String out = null; jakarta.json.JsonString in = (jakarta.json.JsonString)source(); out = in.getString(); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonStructure;true;getValue;;;Argument[-1];ReturnValue;taint;manual" + // "jakarta.json;JsonStructure;true;getValue;;;Argument[this];ReturnValue;taint;manual" jakarta.json.JsonValue out = null; jakarta.json.JsonStructure in = (jakarta.json.JsonStructure)source(); out = in.getValue(null); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonValue;true;asJsonArray;;;Argument[-1];ReturnValue;taint;manual" + // "jakarta.json;JsonValue;true;asJsonArray;;;Argument[this];ReturnValue;taint;manual" jakarta.json.JsonArray out = null; jakarta.json.JsonValue in = (jakarta.json.JsonValue)source(); out = in.asJsonArray(); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonValue;true;asJsonObject;;;Argument[-1];ReturnValue;taint;manual" + // "jakarta.json;JsonValue;true;asJsonObject;;;Argument[this];ReturnValue;taint;manual" jakarta.json.JsonObject out = null; jakarta.json.JsonValue in = (jakarta.json.JsonValue)source(); out = in.asJsonObject(); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonValue;true;toString;;;Argument[-1];ReturnValue;taint;manual" + // "jakarta.json;JsonValue;true;toString;;;Argument[this];ReturnValue;taint;manual" String out = null; jakarta.json.JsonValue in = (jakarta.json.JsonValue)source(); out = in.toString(); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonValue;true;toString;;;Argument[-1];ReturnValue;taint;manual" + // "jakarta.json;JsonValue;true;toString;;;Argument[this];ReturnValue;taint;manual" String out = null; jakarta.json.JsonNumber in = (jakarta.json.JsonNumber)source(); out = in.toString(); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonWriter;false;write;;;Argument[0];Argument[-1];taint;manual" + // "jakarta.json;JsonWriter;false;write;;;Argument[0];Argument[this];taint;manual" jakarta.json.JsonWriter out = null; jakarta.json.JsonValue in = (jakarta.json.JsonValue)source(); out.write(in); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonWriter;false;write;;;Argument[0];Argument[-1];taint;manual" + // "jakarta.json;JsonWriter;false;write;;;Argument[0];Argument[this];taint;manual" jakarta.json.JsonWriter out = null; jakarta.json.JsonStructure in = (jakarta.json.JsonStructure)source(); out.write(in); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonWriter;false;writeArray;;;Argument[0];Argument[-1];taint;manual" + // "jakarta.json;JsonWriter;false;writeArray;;;Argument[0];Argument[this];taint;manual" jakarta.json.JsonWriter out = null; jakarta.json.JsonArray in = (jakarta.json.JsonArray)source(); out.writeArray(in); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonWriter;false;writeObject;;;Argument[0];Argument[-1];taint;manual" + // "jakarta.json;JsonWriter;false;writeObject;;;Argument[0];Argument[this];taint;manual" jakarta.json.JsonWriter out = null; jakarta.json.JsonObject in = (jakarta.json.JsonObject)source(); out.writeObject(in); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonWriterFactory;false;createWriter;;;Argument[-1];Argument[0];taint;manual" + // "jakarta.json;JsonWriterFactory;false;createWriter;;;Argument[this];Argument[0];taint;manual" Writer out = null; jakarta.json.JsonWriterFactory in = (jakarta.json.JsonWriterFactory)source(); in.createWriter(out); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonWriterFactory;false;createWriter;;;Argument[-1];Argument[0];taint;manual" + // "jakarta.json;JsonWriterFactory;false;createWriter;;;Argument[this];Argument[0];taint;manual" OutputStream out = null; jakarta.json.JsonWriterFactory in = (jakarta.json.JsonWriterFactory)source(); in.createWriter(out, null); sink(out); // $hasTaintFlow } { - // "jakarta.json;JsonWriterFactory;false;createWriter;;;Argument[-1];Argument[0];taint;manual" + // "jakarta.json;JsonWriterFactory;false;createWriter;;;Argument[this];Argument[0];taint;manual" OutputStream out = null; jakarta.json.JsonWriterFactory in = (jakarta.json.JsonWriterFactory)source(); in.createWriter(out); @@ -1963,14 +1963,14 @@ public class Test { sink(out); // $hasTaintFlow } { - // "javax.json;JsonArray;false;getBoolean;;;Argument[-1];ReturnValue;taint;manual" + // "javax.json;JsonArray;false;getBoolean;;;Argument[this];ReturnValue;taint;manual" boolean out = false; javax.json.JsonArray in = (javax.json.JsonArray)source(); out = in.getBoolean(0, false); sink(out); // $hasTaintFlow } { - // "javax.json;JsonArray;false;getBoolean;;;Argument[-1];ReturnValue;taint;manual" + // "javax.json;JsonArray;false;getBoolean;;;Argument[this];ReturnValue;taint;manual" boolean out = false; javax.json.JsonArray in = (javax.json.JsonArray)source(); out = in.getBoolean(0); @@ -1985,14 +1985,14 @@ public class Test { sink(out); // $hasValueFlow } { - // "javax.json;JsonArray;false;getInt;;;Argument[-1];ReturnValue;taint;manual" + // "javax.json;JsonArray;false;getInt;;;Argument[this];ReturnValue;taint;manual" int out = 0; javax.json.JsonArray in = (javax.json.JsonArray)source(); out = in.getInt(0, 0); sink(out); // $hasTaintFlow } { - // "javax.json;JsonArray;false;getInt;;;Argument[-1];ReturnValue;taint;manual" + // "javax.json;JsonArray;false;getInt;;;Argument[this];ReturnValue;taint;manual" int out = 0; javax.json.JsonArray in = (javax.json.JsonArray)source(); out = in.getInt(0); @@ -2007,42 +2007,42 @@ public class Test { sink(out); // $hasValueFlow } { - // "javax.json;JsonArray;false;getJsonArray;;;Argument[-1];ReturnValue;taint;manual" + // "javax.json;JsonArray;false;getJsonArray;;;Argument[this];ReturnValue;taint;manual" javax.json.JsonArray out = null; javax.json.JsonArray in = (javax.json.JsonArray)source(); out = in.getJsonArray(0); sink(out); // $hasTaintFlow } { - // "javax.json;JsonArray;false;getJsonNumber;;;Argument[-1];ReturnValue;taint;manual" + // "javax.json;JsonArray;false;getJsonNumber;;;Argument[this];ReturnValue;taint;manual" javax.json.JsonNumber out = null; javax.json.JsonArray in = (javax.json.JsonArray)source(); out = in.getJsonNumber(0); sink(out); // $hasTaintFlow } { - // "javax.json;JsonArray;false;getJsonObject;;;Argument[-1];ReturnValue;taint;manual" + // "javax.json;JsonArray;false;getJsonObject;;;Argument[this];ReturnValue;taint;manual" javax.json.JsonObject out = null; javax.json.JsonArray in = (javax.json.JsonArray)source(); out = in.getJsonObject(0); sink(out); // $hasTaintFlow } { - // "javax.json;JsonArray;false;getJsonString;;;Argument[-1];ReturnValue;taint;manual" + // "javax.json;JsonArray;false;getJsonString;;;Argument[this];ReturnValue;taint;manual" javax.json.JsonString out = null; javax.json.JsonArray in = (javax.json.JsonArray)source(); out = in.getJsonString(0); sink(out); // $hasTaintFlow } { - // "javax.json;JsonArray;false;getString;;;Argument[-1];ReturnValue;taint;manual" + // "javax.json;JsonArray;false;getString;;;Argument[this];ReturnValue;taint;manual" String out = null; javax.json.JsonArray in = (javax.json.JsonArray)source(); out = in.getString(0, null); sink(out); // $hasTaintFlow } { - // "javax.json;JsonArray;false;getString;;;Argument[-1];ReturnValue;taint;manual" + // "javax.json;JsonArray;false;getString;;;Argument[this];ReturnValue;taint;manual" String out = null; javax.json.JsonArray in = (javax.json.JsonArray)source(); out = in.getString(0); @@ -2057,490 +2057,490 @@ public class Test { sink(out); // $hasValueFlow } { - // "javax.json;JsonArray;false;getValuesAs;;;Argument[-1];ReturnValue;taint;manual" + // "javax.json;JsonArray;false;getValuesAs;;;Argument[this];ReturnValue;taint;manual" List out = null; javax.json.JsonArray in = (javax.json.JsonArray)source(); out = in.getValuesAs((Function)null); sink(out); // $hasTaintFlow } { - // "javax.json;JsonArray;false;getValuesAs;;;Argument[-1];ReturnValue;taint;manual" + // "javax.json;JsonArray;false;getValuesAs;;;Argument[this];ReturnValue;taint;manual" List out = null; javax.json.JsonArray in = (javax.json.JsonArray)source(); out = in.getValuesAs((Class)null); sink(out); // $hasTaintFlow } { - // "javax.json;JsonArrayBuilder;false;add;(BigDecimal);;Argument[0];Argument[-1];taint;manual" + // "javax.json;JsonArrayBuilder;false;add;(BigDecimal);;Argument[0];Argument[this];taint;manual" javax.json.JsonArrayBuilder out = null; BigDecimal in = (BigDecimal)source(); out.add(in); sink(out); // $hasTaintFlow } { - // "javax.json;JsonArrayBuilder;false;add;(BigInteger);;Argument[0];Argument[-1];taint;manual" + // "javax.json;JsonArrayBuilder;false;add;(BigInteger);;Argument[0];Argument[this];taint;manual" javax.json.JsonArrayBuilder out = null; BigInteger in = (BigInteger)source(); out.add(in); sink(out); // $hasTaintFlow } { - // "javax.json;JsonArrayBuilder;false;add;(JsonArrayBuilder);;Argument[0];Argument[-1];taint;manual" + // "javax.json;JsonArrayBuilder;false;add;(JsonArrayBuilder);;Argument[0];Argument[this];taint;manual" javax.json.JsonArrayBuilder out = null; javax.json.JsonArrayBuilder in = (javax.json.JsonArrayBuilder)source(); out.add(in); sink(out); // $hasTaintFlow } { - // "javax.json;JsonArrayBuilder;false;add;(JsonObjectBuilder);;Argument[0];Argument[-1];taint;manual" + // "javax.json;JsonArrayBuilder;false;add;(JsonObjectBuilder);;Argument[0];Argument[this];taint;manual" javax.json.JsonArrayBuilder out = null; javax.json.JsonObjectBuilder in = (javax.json.JsonObjectBuilder)source(); out.add(in); sink(out); // $hasTaintFlow } { - // "javax.json;JsonArrayBuilder;false;add;(JsonValue);;Argument[0];Argument[-1];taint;manual" + // "javax.json;JsonArrayBuilder;false;add;(JsonValue);;Argument[0];Argument[this];taint;manual" javax.json.JsonArrayBuilder out = null; javax.json.JsonValue in = (javax.json.JsonValue)source(); out.add(in); sink(out); // $hasTaintFlow } { - // "javax.json;JsonArrayBuilder;false;add;(String);;Argument[0];Argument[-1];taint;manual" + // "javax.json;JsonArrayBuilder;false;add;(String);;Argument[0];Argument[this];taint;manual" javax.json.JsonArrayBuilder out = null; String in = (String)source(); out.add(in); sink(out); // $hasTaintFlow } { - // "javax.json;JsonArrayBuilder;false;add;(boolean);;Argument[0];Argument[-1];taint;manual" + // "javax.json;JsonArrayBuilder;false;add;(boolean);;Argument[0];Argument[this];taint;manual" javax.json.JsonArrayBuilder out = null; boolean in = (boolean)source(); out.add(in); sink(out); // $hasTaintFlow } { - // "javax.json;JsonArrayBuilder;false;add;(double);;Argument[0];Argument[-1];taint;manual" + // "javax.json;JsonArrayBuilder;false;add;(double);;Argument[0];Argument[this];taint;manual" javax.json.JsonArrayBuilder out = null; double in = (double)source(); out.add(in); sink(out); // $hasTaintFlow } { - // "javax.json;JsonArrayBuilder;false;add;(int);;Argument[0];Argument[-1];taint;manual" + // "javax.json;JsonArrayBuilder;false;add;(int);;Argument[0];Argument[this];taint;manual" javax.json.JsonArrayBuilder out = null; int in = (int)source(); out.add(in); sink(out); // $hasTaintFlow } { - // "javax.json;JsonArrayBuilder;false;add;(int,BigDecimal);;Argument[1];Argument[-1];taint;manual" + // "javax.json;JsonArrayBuilder;false;add;(int,BigDecimal);;Argument[1];Argument[this];taint;manual" javax.json.JsonArrayBuilder out = null; BigDecimal in = (BigDecimal)source(); out.add(0, in); sink(out); // $hasTaintFlow } { - // "javax.json;JsonArrayBuilder;false;add;(int,BigInteger);;Argument[1];Argument[-1];taint;manual" + // "javax.json;JsonArrayBuilder;false;add;(int,BigInteger);;Argument[1];Argument[this];taint;manual" javax.json.JsonArrayBuilder out = null; BigInteger in = (BigInteger)source(); out.add(0, in); sink(out); // $hasTaintFlow } { - // "javax.json;JsonArrayBuilder;false;add;(int,JsonArrayBuilder);;Argument[1];Argument[-1];taint;manual" + // "javax.json;JsonArrayBuilder;false;add;(int,JsonArrayBuilder);;Argument[1];Argument[this];taint;manual" javax.json.JsonArrayBuilder out = null; javax.json.JsonArrayBuilder in = (javax.json.JsonArrayBuilder)source(); out.add(0, in); sink(out); // $hasTaintFlow } { - // "javax.json;JsonArrayBuilder;false;add;(int,JsonObjectBuilder);;Argument[1];Argument[-1];taint;manual" + // "javax.json;JsonArrayBuilder;false;add;(int,JsonObjectBuilder);;Argument[1];Argument[this];taint;manual" javax.json.JsonArrayBuilder out = null; javax.json.JsonObjectBuilder in = (javax.json.JsonObjectBuilder)source(); out.add(0, in); sink(out); // $hasTaintFlow } { - // "javax.json;JsonArrayBuilder;false;add;(int,JsonValue);;Argument[1];Argument[-1];taint;manual" + // "javax.json;JsonArrayBuilder;false;add;(int,JsonValue);;Argument[1];Argument[this];taint;manual" javax.json.JsonArrayBuilder out = null; javax.json.JsonValue in = (javax.json.JsonValue)source(); out.add(0, in); sink(out); // $hasTaintFlow } { - // "javax.json;JsonArrayBuilder;false;add;(int,String);;Argument[1];Argument[-1];taint;manual" + // "javax.json;JsonArrayBuilder;false;add;(int,String);;Argument[1];Argument[this];taint;manual" javax.json.JsonArrayBuilder out = null; String in = (String)source(); out.add(0, in); sink(out); // $hasTaintFlow } { - // "javax.json;JsonArrayBuilder;false;add;(int,boolean);;Argument[1];Argument[-1];taint;manual" + // "javax.json;JsonArrayBuilder;false;add;(int,boolean);;Argument[1];Argument[this];taint;manual" javax.json.JsonArrayBuilder out = null; boolean in = (boolean)source(); out.add(0, in); sink(out); // $hasTaintFlow } { - // "javax.json;JsonArrayBuilder;false;add;(int,double);;Argument[1];Argument[-1];taint;manual" + // "javax.json;JsonArrayBuilder;false;add;(int,double);;Argument[1];Argument[this];taint;manual" javax.json.JsonArrayBuilder out = null; double in = (double)source(); out.add(0, in); sink(out); // $hasTaintFlow } { - // "javax.json;JsonArrayBuilder;false;add;(int,int);;Argument[1];Argument[-1];taint;manual" + // "javax.json;JsonArrayBuilder;false;add;(int,int);;Argument[1];Argument[this];taint;manual" javax.json.JsonArrayBuilder out = null; int in = (int)source(); out.add(0, in); sink(out); // $hasTaintFlow } { - // "javax.json;JsonArrayBuilder;false;add;(int,long);;Argument[1];Argument[-1];taint;manual" + // "javax.json;JsonArrayBuilder;false;add;(int,long);;Argument[1];Argument[this];taint;manual" javax.json.JsonArrayBuilder out = null; long in = (long)source(); out.add(0, in); sink(out); // $hasTaintFlow } { - // "javax.json;JsonArrayBuilder;false;add;(long);;Argument[0];Argument[-1];taint;manual" + // "javax.json;JsonArrayBuilder;false;add;(long);;Argument[0];Argument[this];taint;manual" javax.json.JsonArrayBuilder out = null; long in = (long)source(); out.add(in); sink(out); // $hasTaintFlow } { - // "javax.json;JsonArrayBuilder;false;add;;;Argument[-1];ReturnValue;value;manual" + // "javax.json;JsonArrayBuilder;false;add;;;Argument[this];ReturnValue;value;manual" javax.json.JsonArrayBuilder out = null; javax.json.JsonArrayBuilder in = (javax.json.JsonArrayBuilder)source(); out = in.add(false); sink(out); // $hasValueFlow } { - // "javax.json;JsonArrayBuilder;false;add;;;Argument[-1];ReturnValue;value;manual" + // "javax.json;JsonArrayBuilder;false;add;;;Argument[this];ReturnValue;value;manual" javax.json.JsonArrayBuilder out = null; javax.json.JsonArrayBuilder in = (javax.json.JsonArrayBuilder)source(); out = in.add(0L); sink(out); // $hasValueFlow } { - // "javax.json;JsonArrayBuilder;false;add;;;Argument[-1];ReturnValue;value;manual" + // "javax.json;JsonArrayBuilder;false;add;;;Argument[this];ReturnValue;value;manual" javax.json.JsonArrayBuilder out = null; javax.json.JsonArrayBuilder in = (javax.json.JsonArrayBuilder)source(); out = in.add(0.0); sink(out); // $hasValueFlow } { - // "javax.json;JsonArrayBuilder;false;add;;;Argument[-1];ReturnValue;value;manual" + // "javax.json;JsonArrayBuilder;false;add;;;Argument[this];ReturnValue;value;manual" javax.json.JsonArrayBuilder out = null; javax.json.JsonArrayBuilder in = (javax.json.JsonArrayBuilder)source(); out = in.add(0, false); sink(out); // $hasValueFlow } { - // "javax.json;JsonArrayBuilder;false;add;;;Argument[-1];ReturnValue;value;manual" + // "javax.json;JsonArrayBuilder;false;add;;;Argument[this];ReturnValue;value;manual" javax.json.JsonArrayBuilder out = null; javax.json.JsonArrayBuilder in = (javax.json.JsonArrayBuilder)source(); out = in.add(0, 0L); sink(out); // $hasValueFlow } { - // "javax.json;JsonArrayBuilder;false;add;;;Argument[-1];ReturnValue;value;manual" + // "javax.json;JsonArrayBuilder;false;add;;;Argument[this];ReturnValue;value;manual" javax.json.JsonArrayBuilder out = null; javax.json.JsonArrayBuilder in = (javax.json.JsonArrayBuilder)source(); out = in.add(0, 0.0); sink(out); // $hasValueFlow } { - // "javax.json;JsonArrayBuilder;false;add;;;Argument[-1];ReturnValue;value;manual" + // "javax.json;JsonArrayBuilder;false;add;;;Argument[this];ReturnValue;value;manual" javax.json.JsonArrayBuilder out = null; javax.json.JsonArrayBuilder in = (javax.json.JsonArrayBuilder)source(); out = in.add(0, 0); sink(out); // $hasValueFlow } { - // "javax.json;JsonArrayBuilder;false;add;;;Argument[-1];ReturnValue;value;manual" + // "javax.json;JsonArrayBuilder;false;add;;;Argument[this];ReturnValue;value;manual" javax.json.JsonArrayBuilder out = null; javax.json.JsonArrayBuilder in = (javax.json.JsonArrayBuilder)source(); out = in.add(0, (javax.json.JsonValue)null); sink(out); // $hasValueFlow } { - // "javax.json;JsonArrayBuilder;false;add;;;Argument[-1];ReturnValue;value;manual" + // "javax.json;JsonArrayBuilder;false;add;;;Argument[this];ReturnValue;value;manual" javax.json.JsonArrayBuilder out = null; javax.json.JsonArrayBuilder in = (javax.json.JsonArrayBuilder)source(); out = in.add(0, (javax.json.JsonObjectBuilder)null); sink(out); // $hasValueFlow } { - // "javax.json;JsonArrayBuilder;false;add;;;Argument[-1];ReturnValue;value;manual" + // "javax.json;JsonArrayBuilder;false;add;;;Argument[this];ReturnValue;value;manual" javax.json.JsonArrayBuilder out = null; javax.json.JsonArrayBuilder in = (javax.json.JsonArrayBuilder)source(); out = in.add(0, (javax.json.JsonArrayBuilder)null); sink(out); // $hasValueFlow } { - // "javax.json;JsonArrayBuilder;false;add;;;Argument[-1];ReturnValue;value;manual" + // "javax.json;JsonArrayBuilder;false;add;;;Argument[this];ReturnValue;value;manual" javax.json.JsonArrayBuilder out = null; javax.json.JsonArrayBuilder in = (javax.json.JsonArrayBuilder)source(); out = in.add(0, (String)null); sink(out); // $hasValueFlow } { - // "javax.json;JsonArrayBuilder;false;add;;;Argument[-1];ReturnValue;value;manual" + // "javax.json;JsonArrayBuilder;false;add;;;Argument[this];ReturnValue;value;manual" javax.json.JsonArrayBuilder out = null; javax.json.JsonArrayBuilder in = (javax.json.JsonArrayBuilder)source(); out = in.add(0, (BigInteger)null); sink(out); // $hasValueFlow } { - // "javax.json;JsonArrayBuilder;false;add;;;Argument[-1];ReturnValue;value;manual" + // "javax.json;JsonArrayBuilder;false;add;;;Argument[this];ReturnValue;value;manual" javax.json.JsonArrayBuilder out = null; javax.json.JsonArrayBuilder in = (javax.json.JsonArrayBuilder)source(); out = in.add(0, (BigDecimal)null); sink(out); // $hasValueFlow } { - // "javax.json;JsonArrayBuilder;false;add;;;Argument[-1];ReturnValue;value;manual" + // "javax.json;JsonArrayBuilder;false;add;;;Argument[this];ReturnValue;value;manual" javax.json.JsonArrayBuilder out = null; javax.json.JsonArrayBuilder in = (javax.json.JsonArrayBuilder)source(); out = in.add(0); sink(out); // $hasValueFlow } { - // "javax.json;JsonArrayBuilder;false;add;;;Argument[-1];ReturnValue;value;manual" + // "javax.json;JsonArrayBuilder;false;add;;;Argument[this];ReturnValue;value;manual" javax.json.JsonArrayBuilder out = null; javax.json.JsonArrayBuilder in = (javax.json.JsonArrayBuilder)source(); out = in.add((javax.json.JsonValue)null); sink(out); // $hasValueFlow } { - // "javax.json;JsonArrayBuilder;false;add;;;Argument[-1];ReturnValue;value;manual" + // "javax.json;JsonArrayBuilder;false;add;;;Argument[this];ReturnValue;value;manual" javax.json.JsonArrayBuilder out = null; javax.json.JsonArrayBuilder in = (javax.json.JsonArrayBuilder)source(); out = in.add((javax.json.JsonObjectBuilder)null); sink(out); // $hasValueFlow } { - // "javax.json;JsonArrayBuilder;false;add;;;Argument[-1];ReturnValue;value;manual" + // "javax.json;JsonArrayBuilder;false;add;;;Argument[this];ReturnValue;value;manual" javax.json.JsonArrayBuilder out = null; javax.json.JsonArrayBuilder in = (javax.json.JsonArrayBuilder)source(); out = in.add((javax.json.JsonArrayBuilder)null); sink(out); // $hasValueFlow } { - // "javax.json;JsonArrayBuilder;false;add;;;Argument[-1];ReturnValue;value;manual" + // "javax.json;JsonArrayBuilder;false;add;;;Argument[this];ReturnValue;value;manual" javax.json.JsonArrayBuilder out = null; javax.json.JsonArrayBuilder in = (javax.json.JsonArrayBuilder)source(); out = in.add((String)null); sink(out); // $hasValueFlow } { - // "javax.json;JsonArrayBuilder;false;add;;;Argument[-1];ReturnValue;value;manual" + // "javax.json;JsonArrayBuilder;false;add;;;Argument[this];ReturnValue;value;manual" javax.json.JsonArrayBuilder out = null; javax.json.JsonArrayBuilder in = (javax.json.JsonArrayBuilder)source(); out = in.add((BigInteger)null); sink(out); // $hasValueFlow } { - // "javax.json;JsonArrayBuilder;false;add;;;Argument[-1];ReturnValue;value;manual" + // "javax.json;JsonArrayBuilder;false;add;;;Argument[this];ReturnValue;value;manual" javax.json.JsonArrayBuilder out = null; javax.json.JsonArrayBuilder in = (javax.json.JsonArrayBuilder)source(); out = in.add((BigDecimal)null); sink(out); // $hasValueFlow } { - // "javax.json;JsonArrayBuilder;false;addAll;;;Argument[-1];ReturnValue;value;manual" + // "javax.json;JsonArrayBuilder;false;addAll;;;Argument[this];ReturnValue;value;manual" javax.json.JsonArrayBuilder out = null; javax.json.JsonArrayBuilder in = (javax.json.JsonArrayBuilder)source(); out = in.addAll(null); sink(out); // $hasValueFlow } { - // "javax.json;JsonArrayBuilder;false;addAll;;;Argument[0];Argument[-1];taint;manual" + // "javax.json;JsonArrayBuilder;false;addAll;;;Argument[0];Argument[this];taint;manual" javax.json.JsonArrayBuilder out = null; javax.json.JsonArrayBuilder in = (javax.json.JsonArrayBuilder)source(); out.addAll(in); sink(out); // $hasTaintFlow } { - // "javax.json;JsonArrayBuilder;false;addNull;;;Argument[-1];ReturnValue;value;manual" + // "javax.json;JsonArrayBuilder;false;addNull;;;Argument[this];ReturnValue;value;manual" javax.json.JsonArrayBuilder out = null; javax.json.JsonArrayBuilder in = (javax.json.JsonArrayBuilder)source(); out = in.addNull(0); sink(out); // $hasValueFlow } { - // "javax.json;JsonArrayBuilder;false;addNull;;;Argument[-1];ReturnValue;value;manual" + // "javax.json;JsonArrayBuilder;false;addNull;;;Argument[this];ReturnValue;value;manual" javax.json.JsonArrayBuilder out = null; javax.json.JsonArrayBuilder in = (javax.json.JsonArrayBuilder)source(); out = in.addNull(); sink(out); // $hasValueFlow } { - // "javax.json;JsonArrayBuilder;false;build;;;Argument[-1];ReturnValue;taint;manual" + // "javax.json;JsonArrayBuilder;false;build;;;Argument[this];ReturnValue;taint;manual" javax.json.JsonArray out = null; javax.json.JsonArrayBuilder in = (javax.json.JsonArrayBuilder)source(); out = in.build(); sink(out); // $hasTaintFlow } { - // "javax.json;JsonArrayBuilder;false;remove;;;Argument[-1];ReturnValue;value;manual" + // "javax.json;JsonArrayBuilder;false;remove;;;Argument[this];ReturnValue;value;manual" javax.json.JsonArrayBuilder out = null; javax.json.JsonArrayBuilder in = (javax.json.JsonArrayBuilder)source(); out = in.remove(0); sink(out); // $hasValueFlow } { - // "javax.json;JsonArrayBuilder;false;set;;;Argument[-1];ReturnValue;value;manual" + // "javax.json;JsonArrayBuilder;false;set;;;Argument[this];ReturnValue;value;manual" javax.json.JsonArrayBuilder out = null; javax.json.JsonArrayBuilder in = (javax.json.JsonArrayBuilder)source(); out = in.set(0, false); sink(out); // $hasValueFlow } { - // "javax.json;JsonArrayBuilder;false;set;;;Argument[-1];ReturnValue;value;manual" + // "javax.json;JsonArrayBuilder;false;set;;;Argument[this];ReturnValue;value;manual" javax.json.JsonArrayBuilder out = null; javax.json.JsonArrayBuilder in = (javax.json.JsonArrayBuilder)source(); out = in.set(0, 0L); sink(out); // $hasValueFlow } { - // "javax.json;JsonArrayBuilder;false;set;;;Argument[-1];ReturnValue;value;manual" + // "javax.json;JsonArrayBuilder;false;set;;;Argument[this];ReturnValue;value;manual" javax.json.JsonArrayBuilder out = null; javax.json.JsonArrayBuilder in = (javax.json.JsonArrayBuilder)source(); out = in.set(0, 0.0); sink(out); // $hasValueFlow } { - // "javax.json;JsonArrayBuilder;false;set;;;Argument[-1];ReturnValue;value;manual" + // "javax.json;JsonArrayBuilder;false;set;;;Argument[this];ReturnValue;value;manual" javax.json.JsonArrayBuilder out = null; javax.json.JsonArrayBuilder in = (javax.json.JsonArrayBuilder)source(); out = in.set(0, 0); sink(out); // $hasValueFlow } { - // "javax.json;JsonArrayBuilder;false;set;;;Argument[-1];ReturnValue;value;manual" + // "javax.json;JsonArrayBuilder;false;set;;;Argument[this];ReturnValue;value;manual" javax.json.JsonArrayBuilder out = null; javax.json.JsonArrayBuilder in = (javax.json.JsonArrayBuilder)source(); out = in.set(0, (javax.json.JsonValue)null); sink(out); // $hasValueFlow } { - // "javax.json;JsonArrayBuilder;false;set;;;Argument[-1];ReturnValue;value;manual" + // "javax.json;JsonArrayBuilder;false;set;;;Argument[this];ReturnValue;value;manual" javax.json.JsonArrayBuilder out = null; javax.json.JsonArrayBuilder in = (javax.json.JsonArrayBuilder)source(); out = in.set(0, (javax.json.JsonObjectBuilder)null); sink(out); // $hasValueFlow } { - // "javax.json;JsonArrayBuilder;false;set;;;Argument[-1];ReturnValue;value;manual" + // "javax.json;JsonArrayBuilder;false;set;;;Argument[this];ReturnValue;value;manual" javax.json.JsonArrayBuilder out = null; javax.json.JsonArrayBuilder in = (javax.json.JsonArrayBuilder)source(); out = in.set(0, (javax.json.JsonArrayBuilder)null); sink(out); // $hasValueFlow } { - // "javax.json;JsonArrayBuilder;false;set;;;Argument[-1];ReturnValue;value;manual" + // "javax.json;JsonArrayBuilder;false;set;;;Argument[this];ReturnValue;value;manual" javax.json.JsonArrayBuilder out = null; javax.json.JsonArrayBuilder in = (javax.json.JsonArrayBuilder)source(); out = in.set(0, (String)null); sink(out); // $hasValueFlow } { - // "javax.json;JsonArrayBuilder;false;set;;;Argument[-1];ReturnValue;value;manual" + // "javax.json;JsonArrayBuilder;false;set;;;Argument[this];ReturnValue;value;manual" javax.json.JsonArrayBuilder out = null; javax.json.JsonArrayBuilder in = (javax.json.JsonArrayBuilder)source(); out = in.set(0, (BigInteger)null); sink(out); // $hasValueFlow } { - // "javax.json;JsonArrayBuilder;false;set;;;Argument[-1];ReturnValue;value;manual" + // "javax.json;JsonArrayBuilder;false;set;;;Argument[this];ReturnValue;value;manual" javax.json.JsonArrayBuilder out = null; javax.json.JsonArrayBuilder in = (javax.json.JsonArrayBuilder)source(); out = in.set(0, (BigDecimal)null); sink(out); // $hasValueFlow } { - // "javax.json;JsonArrayBuilder;false;set;;;Argument[1];Argument[-1];taint;manual" + // "javax.json;JsonArrayBuilder;false;set;;;Argument[1];Argument[this];taint;manual" javax.json.JsonArrayBuilder out = null; long in = (long)source(); out.set(0, in); sink(out); // $hasTaintFlow } { - // "javax.json;JsonArrayBuilder;false;set;;;Argument[1];Argument[-1];taint;manual" + // "javax.json;JsonArrayBuilder;false;set;;;Argument[1];Argument[this];taint;manual" javax.json.JsonArrayBuilder out = null; javax.json.JsonValue in = (javax.json.JsonValue)source(); out.set(0, in); sink(out); // $hasTaintFlow } { - // "javax.json;JsonArrayBuilder;false;set;;;Argument[1];Argument[-1];taint;manual" + // "javax.json;JsonArrayBuilder;false;set;;;Argument[1];Argument[this];taint;manual" javax.json.JsonArrayBuilder out = null; javax.json.JsonObjectBuilder in = (javax.json.JsonObjectBuilder)source(); out.set(0, in); sink(out); // $hasTaintFlow } { - // "javax.json;JsonArrayBuilder;false;set;;;Argument[1];Argument[-1];taint;manual" + // "javax.json;JsonArrayBuilder;false;set;;;Argument[1];Argument[this];taint;manual" javax.json.JsonArrayBuilder out = null; javax.json.JsonArrayBuilder in = (javax.json.JsonArrayBuilder)source(); out.set(0, in); sink(out); // $hasTaintFlow } { - // "javax.json;JsonArrayBuilder;false;set;;;Argument[1];Argument[-1];taint;manual" + // "javax.json;JsonArrayBuilder;false;set;;;Argument[1];Argument[this];taint;manual" javax.json.JsonArrayBuilder out = null; int in = (int)source(); out.set(0, in); sink(out); // $hasTaintFlow } { - // "javax.json;JsonArrayBuilder;false;set;;;Argument[1];Argument[-1];taint;manual" + // "javax.json;JsonArrayBuilder;false;set;;;Argument[1];Argument[this];taint;manual" javax.json.JsonArrayBuilder out = null; double in = (double)source(); out.set(0, in); sink(out); // $hasTaintFlow } { - // "javax.json;JsonArrayBuilder;false;set;;;Argument[1];Argument[-1];taint;manual" + // "javax.json;JsonArrayBuilder;false;set;;;Argument[1];Argument[this];taint;manual" javax.json.JsonArrayBuilder out = null; boolean in = (boolean)source(); out.set(0, in); sink(out); // $hasTaintFlow } { - // "javax.json;JsonArrayBuilder;false;set;;;Argument[1];Argument[-1];taint;manual" + // "javax.json;JsonArrayBuilder;false;set;;;Argument[1];Argument[this];taint;manual" javax.json.JsonArrayBuilder out = null; String in = (String)source(); out.set(0, in); sink(out); // $hasTaintFlow } { - // "javax.json;JsonArrayBuilder;false;set;;;Argument[1];Argument[-1];taint;manual" + // "javax.json;JsonArrayBuilder;false;set;;;Argument[1];Argument[this];taint;manual" javax.json.JsonArrayBuilder out = null; BigInteger in = (BigInteger)source(); out.set(0, in); sink(out); // $hasTaintFlow } { - // "javax.json;JsonArrayBuilder;false;set;;;Argument[1];Argument[-1];taint;manual" + // "javax.json;JsonArrayBuilder;false;set;;;Argument[1];Argument[this];taint;manual" javax.json.JsonArrayBuilder out = null; BigDecimal in = (BigDecimal)source(); out.set(0, in); sink(out); // $hasTaintFlow } { - // "javax.json;JsonArrayBuilder;false;setNull;;;Argument[-1];ReturnValue;value;manual" + // "javax.json;JsonArrayBuilder;false;setNull;;;Argument[this];ReturnValue;value;manual" javax.json.JsonArrayBuilder out = null; javax.json.JsonArrayBuilder in = (javax.json.JsonArrayBuilder)source(); out = in.setNull(0); sink(out); // $hasValueFlow } { - // "javax.json;JsonMergePatch;false;apply;;;Argument[-1];ReturnValue;taint;manual" + // "javax.json;JsonMergePatch;false;apply;;;Argument[this];ReturnValue;taint;manual" javax.json.JsonValue out = null; javax.json.JsonMergePatch in = (javax.json.JsonMergePatch)source(); out = in.apply(null); @@ -2555,84 +2555,84 @@ public class Test { sink(out); // $hasTaintFlow } { - // "javax.json;JsonMergePatch;false;toJsonValue;;;Argument[-1];ReturnValue;taint;manual" + // "javax.json;JsonMergePatch;false;toJsonValue;;;Argument[this];ReturnValue;taint;manual" javax.json.JsonValue out = null; javax.json.JsonMergePatch in = (javax.json.JsonMergePatch)source(); out = in.toJsonValue(); sink(out); // $hasTaintFlow } { - // "javax.json;JsonNumber;false;bigDecimalValue;;;Argument[-1];ReturnValue;taint;manual" + // "javax.json;JsonNumber;false;bigDecimalValue;;;Argument[this];ReturnValue;taint;manual" BigDecimal out = null; javax.json.JsonNumber in = (javax.json.JsonNumber)source(); out = in.bigDecimalValue(); sink(out); // $hasTaintFlow } { - // "javax.json;JsonNumber;false;bigIntegerValue;;;Argument[-1];ReturnValue;taint;manual" + // "javax.json;JsonNumber;false;bigIntegerValue;;;Argument[this];ReturnValue;taint;manual" BigInteger out = null; javax.json.JsonNumber in = (javax.json.JsonNumber)source(); out = in.bigIntegerValue(); sink(out); // $hasTaintFlow } { - // "javax.json;JsonNumber;false;bigIntegerValueExact;;;Argument[-1];ReturnValue;taint;manual" + // "javax.json;JsonNumber;false;bigIntegerValueExact;;;Argument[this];ReturnValue;taint;manual" BigInteger out = null; javax.json.JsonNumber in = (javax.json.JsonNumber)source(); out = in.bigIntegerValueExact(); sink(out); // $hasTaintFlow } { - // "javax.json;JsonNumber;false;doubleValue;;;Argument[-1];ReturnValue;taint;manual" + // "javax.json;JsonNumber;false;doubleValue;;;Argument[this];ReturnValue;taint;manual" double out = 0.0; javax.json.JsonNumber in = (javax.json.JsonNumber)source(); out = in.doubleValue(); sink(out); // $hasTaintFlow } { - // "javax.json;JsonNumber;false;intValue;;;Argument[-1];ReturnValue;taint;manual" + // "javax.json;JsonNumber;false;intValue;;;Argument[this];ReturnValue;taint;manual" int out = 0; javax.json.JsonNumber in = (javax.json.JsonNumber)source(); out = in.intValue(); sink(out); // $hasTaintFlow } { - // "javax.json;JsonNumber;false;intValueExact;;;Argument[-1];ReturnValue;taint;manual" + // "javax.json;JsonNumber;false;intValueExact;;;Argument[this];ReturnValue;taint;manual" int out = 0; javax.json.JsonNumber in = (javax.json.JsonNumber)source(); out = in.intValueExact(); sink(out); // $hasTaintFlow } { - // "javax.json;JsonNumber;false;longValue;;;Argument[-1];ReturnValue;taint;manual" + // "javax.json;JsonNumber;false;longValue;;;Argument[this];ReturnValue;taint;manual" long out = 0L; javax.json.JsonNumber in = (javax.json.JsonNumber)source(); out = in.longValue(); sink(out); // $hasTaintFlow } { - // "javax.json;JsonNumber;false;longValueExact;;;Argument[-1];ReturnValue;taint;manual" + // "javax.json;JsonNumber;false;longValueExact;;;Argument[this];ReturnValue;taint;manual" long out = 0L; javax.json.JsonNumber in = (javax.json.JsonNumber)source(); out = in.longValueExact(); sink(out); // $hasTaintFlow } { - // "javax.json;JsonNumber;false;numberValue;;;Argument[-1];ReturnValue;taint;manual" + // "javax.json;JsonNumber;false;numberValue;;;Argument[this];ReturnValue;taint;manual" Number out = null; javax.json.JsonNumber in = (javax.json.JsonNumber)source(); out = in.numberValue(); sink(out); // $hasTaintFlow } { - // "javax.json;JsonObject;false;getBoolean;;;Argument[-1];ReturnValue;taint;manual" + // "javax.json;JsonObject;false;getBoolean;;;Argument[this];ReturnValue;taint;manual" boolean out = false; javax.json.JsonObject in = (javax.json.JsonObject)source(); out = in.getBoolean(null, false); sink(out); // $hasTaintFlow } { - // "javax.json;JsonObject;false;getBoolean;;;Argument[-1];ReturnValue;taint;manual" + // "javax.json;JsonObject;false;getBoolean;;;Argument[this];ReturnValue;taint;manual" boolean out = false; javax.json.JsonObject in = (javax.json.JsonObject)source(); out = in.getBoolean(null); @@ -2647,14 +2647,14 @@ public class Test { sink(out); // $hasValueFlow } { - // "javax.json;JsonObject;false;getInt;;;Argument[-1];ReturnValue;taint;manual" + // "javax.json;JsonObject;false;getInt;;;Argument[this];ReturnValue;taint;manual" int out = 0; javax.json.JsonObject in = (javax.json.JsonObject)source(); out = in.getInt(null, 0); sink(out); // $hasTaintFlow } { - // "javax.json;JsonObject;false;getInt;;;Argument[-1];ReturnValue;taint;manual" + // "javax.json;JsonObject;false;getInt;;;Argument[this];ReturnValue;taint;manual" int out = 0; javax.json.JsonObject in = (javax.json.JsonObject)source(); out = in.getInt(null); @@ -2669,42 +2669,42 @@ public class Test { sink(out); // $hasValueFlow } { - // "javax.json;JsonObject;false;getJsonArray;;;Argument[-1];ReturnValue;taint;manual" + // "javax.json;JsonObject;false;getJsonArray;;;Argument[this];ReturnValue;taint;manual" javax.json.JsonArray out = null; javax.json.JsonObject in = (javax.json.JsonObject)source(); out = in.getJsonArray(null); sink(out); // $hasTaintFlow } { - // "javax.json;JsonObject;false;getJsonNumber;;;Argument[-1];ReturnValue;taint;manual" + // "javax.json;JsonObject;false;getJsonNumber;;;Argument[this];ReturnValue;taint;manual" javax.json.JsonNumber out = null; javax.json.JsonObject in = (javax.json.JsonObject)source(); out = in.getJsonNumber(null); sink(out); // $hasTaintFlow } { - // "javax.json;JsonObject;false;getJsonObject;;;Argument[-1];ReturnValue;taint;manual" + // "javax.json;JsonObject;false;getJsonObject;;;Argument[this];ReturnValue;taint;manual" javax.json.JsonObject out = null; javax.json.JsonObject in = (javax.json.JsonObject)source(); out = in.getJsonObject(null); sink(out); // $hasTaintFlow } { - // "javax.json;JsonObject;false;getJsonString;;;Argument[-1];ReturnValue;taint;manual" + // "javax.json;JsonObject;false;getJsonString;;;Argument[this];ReturnValue;taint;manual" javax.json.JsonString out = null; javax.json.JsonObject in = (javax.json.JsonObject)source(); out = in.getJsonString(null); sink(out); // $hasTaintFlow } { - // "javax.json;JsonObject;false;getString;;;Argument[-1];ReturnValue;taint;manual" + // "javax.json;JsonObject;false;getString;;;Argument[this];ReturnValue;taint;manual" String out = null; javax.json.JsonObject in = (javax.json.JsonObject)source(); out = in.getString(null, null); sink(out); // $hasTaintFlow } { - // "javax.json;JsonObject;false;getString;;;Argument[-1];ReturnValue;taint;manual" + // "javax.json;JsonObject;false;getString;;;Argument[this];ReturnValue;taint;manual" String out = null; javax.json.JsonObject in = (javax.json.JsonObject)source(); out = in.getString(null); @@ -2719,147 +2719,147 @@ public class Test { sink(out); // $hasValueFlow } { - // "javax.json;JsonObjectBuilder;false;add;;;Argument[-1];ReturnValue;value;manual" + // "javax.json;JsonObjectBuilder;false;add;;;Argument[this];ReturnValue;value;manual" javax.json.JsonObjectBuilder out = null; javax.json.JsonObjectBuilder in = (javax.json.JsonObjectBuilder)source(); out = in.add((String)null, false); sink(out); // $hasValueFlow } { - // "javax.json;JsonObjectBuilder;false;add;;;Argument[-1];ReturnValue;value;manual" + // "javax.json;JsonObjectBuilder;false;add;;;Argument[this];ReturnValue;value;manual" javax.json.JsonObjectBuilder out = null; javax.json.JsonObjectBuilder in = (javax.json.JsonObjectBuilder)source(); out = in.add((String)null, 0L); sink(out); // $hasValueFlow } { - // "javax.json;JsonObjectBuilder;false;add;;;Argument[-1];ReturnValue;value;manual" + // "javax.json;JsonObjectBuilder;false;add;;;Argument[this];ReturnValue;value;manual" javax.json.JsonObjectBuilder out = null; javax.json.JsonObjectBuilder in = (javax.json.JsonObjectBuilder)source(); out = in.add((String)null, 0.0); sink(out); // $hasValueFlow } { - // "javax.json;JsonObjectBuilder;false;add;;;Argument[-1];ReturnValue;value;manual" + // "javax.json;JsonObjectBuilder;false;add;;;Argument[this];ReturnValue;value;manual" javax.json.JsonObjectBuilder out = null; javax.json.JsonObjectBuilder in = (javax.json.JsonObjectBuilder)source(); out = in.add((String)null, 0); sink(out); // $hasValueFlow } { - // "javax.json;JsonObjectBuilder;false;add;;;Argument[-1];ReturnValue;value;manual" + // "javax.json;JsonObjectBuilder;false;add;;;Argument[this];ReturnValue;value;manual" javax.json.JsonObjectBuilder out = null; javax.json.JsonObjectBuilder in = (javax.json.JsonObjectBuilder)source(); out = in.add((String)null, (javax.json.JsonValue)null); sink(out); // $hasValueFlow } { - // "javax.json;JsonObjectBuilder;false;add;;;Argument[-1];ReturnValue;value;manual" + // "javax.json;JsonObjectBuilder;false;add;;;Argument[this];ReturnValue;value;manual" javax.json.JsonObjectBuilder out = null; javax.json.JsonObjectBuilder in = (javax.json.JsonObjectBuilder)source(); out = in.add((String)null, (javax.json.JsonObjectBuilder)null); sink(out); // $hasValueFlow } { - // "javax.json;JsonObjectBuilder;false;add;;;Argument[-1];ReturnValue;value;manual" + // "javax.json;JsonObjectBuilder;false;add;;;Argument[this];ReturnValue;value;manual" javax.json.JsonObjectBuilder out = null; javax.json.JsonObjectBuilder in = (javax.json.JsonObjectBuilder)source(); out = in.add((String)null, (javax.json.JsonArrayBuilder)null); sink(out); // $hasValueFlow } { - // "javax.json;JsonObjectBuilder;false;add;;;Argument[-1];ReturnValue;value;manual" + // "javax.json;JsonObjectBuilder;false;add;;;Argument[this];ReturnValue;value;manual" javax.json.JsonObjectBuilder out = null; javax.json.JsonObjectBuilder in = (javax.json.JsonObjectBuilder)source(); out = in.add((String)null, (String)null); sink(out); // $hasValueFlow } { - // "javax.json;JsonObjectBuilder;false;add;;;Argument[-1];ReturnValue;value;manual" + // "javax.json;JsonObjectBuilder;false;add;;;Argument[this];ReturnValue;value;manual" javax.json.JsonObjectBuilder out = null; javax.json.JsonObjectBuilder in = (javax.json.JsonObjectBuilder)source(); out = in.add((String)null, (BigInteger)null); sink(out); // $hasValueFlow } { - // "javax.json;JsonObjectBuilder;false;add;;;Argument[-1];ReturnValue;value;manual" + // "javax.json;JsonObjectBuilder;false;add;;;Argument[this];ReturnValue;value;manual" javax.json.JsonObjectBuilder out = null; javax.json.JsonObjectBuilder in = (javax.json.JsonObjectBuilder)source(); out = in.add((String)null, (BigDecimal)null); sink(out); // $hasValueFlow } { - // "javax.json;JsonObjectBuilder;false;add;;;Argument[1];Argument[-1];taint;manual" + // "javax.json;JsonObjectBuilder;false;add;;;Argument[1];Argument[this];taint;manual" javax.json.JsonObjectBuilder out = null; long in = (long)source(); out.add((String)null, in); sink(out); // $hasTaintFlow } { - // "javax.json;JsonObjectBuilder;false;add;;;Argument[1];Argument[-1];taint;manual" + // "javax.json;JsonObjectBuilder;false;add;;;Argument[1];Argument[this];taint;manual" javax.json.JsonObjectBuilder out = null; javax.json.JsonValue in = (javax.json.JsonValue)source(); out.add((String)null, in); sink(out); // $hasTaintFlow } { - // "javax.json;JsonObjectBuilder;false;add;;;Argument[1];Argument[-1];taint;manual" + // "javax.json;JsonObjectBuilder;false;add;;;Argument[1];Argument[this];taint;manual" javax.json.JsonObjectBuilder out = null; javax.json.JsonObjectBuilder in = (javax.json.JsonObjectBuilder)source(); out.add((String)null, in); sink(out); // $hasTaintFlow } { - // "javax.json;JsonObjectBuilder;false;add;;;Argument[1];Argument[-1];taint;manual" + // "javax.json;JsonObjectBuilder;false;add;;;Argument[1];Argument[this];taint;manual" javax.json.JsonObjectBuilder out = null; javax.json.JsonArrayBuilder in = (javax.json.JsonArrayBuilder)source(); out.add((String)null, in); sink(out); // $hasTaintFlow } { - // "javax.json;JsonObjectBuilder;false;add;;;Argument[1];Argument[-1];taint;manual" + // "javax.json;JsonObjectBuilder;false;add;;;Argument[1];Argument[this];taint;manual" javax.json.JsonObjectBuilder out = null; int in = (int)source(); out.add((String)null, in); sink(out); // $hasTaintFlow } { - // "javax.json;JsonObjectBuilder;false;add;;;Argument[1];Argument[-1];taint;manual" + // "javax.json;JsonObjectBuilder;false;add;;;Argument[1];Argument[this];taint;manual" javax.json.JsonObjectBuilder out = null; double in = (double)source(); out.add((String)null, in); sink(out); // $hasTaintFlow } { - // "javax.json;JsonObjectBuilder;false;add;;;Argument[1];Argument[-1];taint;manual" + // "javax.json;JsonObjectBuilder;false;add;;;Argument[1];Argument[this];taint;manual" javax.json.JsonObjectBuilder out = null; boolean in = (boolean)source(); out.add((String)null, in); sink(out); // $hasTaintFlow } { - // "javax.json;JsonObjectBuilder;false;add;;;Argument[1];Argument[-1];taint;manual" + // "javax.json;JsonObjectBuilder;false;add;;;Argument[1];Argument[this];taint;manual" javax.json.JsonObjectBuilder out = null; String in = (String)source(); out.add((String)null, in); sink(out); // $hasTaintFlow } { - // "javax.json;JsonObjectBuilder;false;add;;;Argument[1];Argument[-1];taint;manual" + // "javax.json;JsonObjectBuilder;false;add;;;Argument[1];Argument[this];taint;manual" javax.json.JsonObjectBuilder out = null; BigInteger in = (BigInteger)source(); out.add((String)null, in); sink(out); // $hasTaintFlow } { - // "javax.json;JsonObjectBuilder;false;add;;;Argument[1];Argument[-1];taint;manual" + // "javax.json;JsonObjectBuilder;false;add;;;Argument[1];Argument[this];taint;manual" javax.json.JsonObjectBuilder out = null; BigDecimal in = (BigDecimal)source(); out.add((String)null, in); sink(out); // $hasTaintFlow } { - // "javax.json;JsonObjectBuilder;false;addAll;;;Argument[-1];ReturnValue;value;manual" + // "javax.json;JsonObjectBuilder;false;addAll;;;Argument[this];ReturnValue;value;manual" javax.json.JsonObjectBuilder out = null; javax.json.JsonObjectBuilder in = (javax.json.JsonObjectBuilder)source(); out = in.addAll(null); @@ -2874,28 +2874,28 @@ public class Test { sink(out); // $hasValueFlow } { - // "javax.json;JsonObjectBuilder;false;addNull;;;Argument[-1];ReturnValue;value;manual" + // "javax.json;JsonObjectBuilder;false;addNull;;;Argument[this];ReturnValue;value;manual" javax.json.JsonObjectBuilder out = null; javax.json.JsonObjectBuilder in = (javax.json.JsonObjectBuilder)source(); out = in.addNull(null); sink(out); // $hasValueFlow } { - // "javax.json;JsonObjectBuilder;false;build;;;Argument[-1];ReturnValue;taint;manual" + // "javax.json;JsonObjectBuilder;false;build;;;Argument[this];ReturnValue;taint;manual" javax.json.JsonObject out = null; javax.json.JsonObjectBuilder in = (javax.json.JsonObjectBuilder)source(); out = in.build(); sink(out); // $hasTaintFlow } { - // "javax.json;JsonObjectBuilder;false;remove;;;Argument[-1];ReturnValue;value;manual" + // "javax.json;JsonObjectBuilder;false;remove;;;Argument[this];ReturnValue;value;manual" javax.json.JsonObjectBuilder out = null; javax.json.JsonObjectBuilder in = (javax.json.JsonObjectBuilder)source(); out = in.remove(null); sink(out); // $hasValueFlow } { - // "javax.json;JsonPatch;false;apply;;;Argument[-1];ReturnValue;taint;manual" + // "javax.json;JsonPatch;false;apply;;;Argument[this];ReturnValue;taint;manual" javax.json.JsonStructure out = null; javax.json.JsonPatch in = (javax.json.JsonPatch)source(); out = in.apply(null); @@ -2910,35 +2910,35 @@ public class Test { sink(out); // $hasTaintFlow } { - // "javax.json;JsonPatch;false;toJsonArray;;;Argument[-1];ReturnValue;taint;manual" + // "javax.json;JsonPatch;false;toJsonArray;;;Argument[this];ReturnValue;taint;manual" javax.json.JsonArray out = null; javax.json.JsonPatch in = (javax.json.JsonPatch)source(); out = in.toJsonArray(); sink(out); // $hasTaintFlow } { - // "javax.json;JsonPatchBuilder;false;add;;;Argument[-1];ReturnValue;value;manual" + // "javax.json;JsonPatchBuilder;false;add;;;Argument[this];ReturnValue;value;manual" javax.json.JsonPatchBuilder out = null; javax.json.JsonPatchBuilder in = (javax.json.JsonPatchBuilder)source(); out = in.add((String)null, false); sink(out); // $hasValueFlow } { - // "javax.json;JsonPatchBuilder;false;add;;;Argument[-1];ReturnValue;value;manual" + // "javax.json;JsonPatchBuilder;false;add;;;Argument[this];ReturnValue;value;manual" javax.json.JsonPatchBuilder out = null; javax.json.JsonPatchBuilder in = (javax.json.JsonPatchBuilder)source(); out = in.add((String)null, 0); sink(out); // $hasValueFlow } { - // "javax.json;JsonPatchBuilder;false;add;;;Argument[-1];ReturnValue;value;manual" + // "javax.json;JsonPatchBuilder;false;add;;;Argument[this];ReturnValue;value;manual" javax.json.JsonPatchBuilder out = null; javax.json.JsonPatchBuilder in = (javax.json.JsonPatchBuilder)source(); out = in.add((String)null, (javax.json.JsonValue)null); sink(out); // $hasValueFlow } { - // "javax.json;JsonPatchBuilder;false;add;;;Argument[-1];ReturnValue;value;manual" + // "javax.json;JsonPatchBuilder;false;add;;;Argument[this];ReturnValue;value;manual" javax.json.JsonPatchBuilder out = null; javax.json.JsonPatchBuilder in = (javax.json.JsonPatchBuilder)source(); out = in.add((String)null, (String)null); @@ -3009,14 +3009,14 @@ public class Test { sink(out); // $hasTaintFlow } { - // "javax.json;JsonPatchBuilder;false;build;;;Argument[-1];ReturnValue;taint;manual" + // "javax.json;JsonPatchBuilder;false;build;;;Argument[this];ReturnValue;taint;manual" javax.json.JsonPatch out = null; javax.json.JsonPatchBuilder in = (javax.json.JsonPatchBuilder)source(); out = in.build(); sink(out); // $hasTaintFlow } { - // "javax.json;JsonPatchBuilder;false;copy;;;Argument[-1];ReturnValue;value;manual" + // "javax.json;JsonPatchBuilder;false;copy;;;Argument[this];ReturnValue;value;manual" javax.json.JsonPatchBuilder out = null; javax.json.JsonPatchBuilder in = (javax.json.JsonPatchBuilder)source(); out = in.copy(null, null); @@ -3039,7 +3039,7 @@ public class Test { sink(out); // $hasTaintFlow } { - // "javax.json;JsonPatchBuilder;false;move;;;Argument[-1];ReturnValue;value;manual" + // "javax.json;JsonPatchBuilder;false;move;;;Argument[this];ReturnValue;value;manual" javax.json.JsonPatchBuilder out = null; javax.json.JsonPatchBuilder in = (javax.json.JsonPatchBuilder)source(); out = in.move(null, null); @@ -3062,7 +3062,7 @@ public class Test { sink(out); // $hasTaintFlow } { - // "javax.json;JsonPatchBuilder;false;remove;;;Argument[-1];ReturnValue;value;manual" + // "javax.json;JsonPatchBuilder;false;remove;;;Argument[this];ReturnValue;value;manual" javax.json.JsonPatchBuilder out = null; javax.json.JsonPatchBuilder in = (javax.json.JsonPatchBuilder)source(); out = in.remove(null); @@ -3077,28 +3077,28 @@ public class Test { sink(out); // $hasTaintFlow } { - // "javax.json;JsonPatchBuilder;false;replace;;;Argument[-1];ReturnValue;value;manual" + // "javax.json;JsonPatchBuilder;false;replace;;;Argument[this];ReturnValue;value;manual" javax.json.JsonPatchBuilder out = null; javax.json.JsonPatchBuilder in = (javax.json.JsonPatchBuilder)source(); out = in.replace((String)null, false); sink(out); // $hasValueFlow } { - // "javax.json;JsonPatchBuilder;false;replace;;;Argument[-1];ReturnValue;value;manual" + // "javax.json;JsonPatchBuilder;false;replace;;;Argument[this];ReturnValue;value;manual" javax.json.JsonPatchBuilder out = null; javax.json.JsonPatchBuilder in = (javax.json.JsonPatchBuilder)source(); out = in.replace((String)null, 0); sink(out); // $hasValueFlow } { - // "javax.json;JsonPatchBuilder;false;replace;;;Argument[-1];ReturnValue;value;manual" + // "javax.json;JsonPatchBuilder;false;replace;;;Argument[this];ReturnValue;value;manual" javax.json.JsonPatchBuilder out = null; javax.json.JsonPatchBuilder in = (javax.json.JsonPatchBuilder)source(); out = in.replace((String)null, (javax.json.JsonValue)null); sink(out); // $hasValueFlow } { - // "javax.json;JsonPatchBuilder;false;replace;;;Argument[-1];ReturnValue;value;manual" + // "javax.json;JsonPatchBuilder;false;replace;;;Argument[this];ReturnValue;value;manual" javax.json.JsonPatchBuilder out = null; javax.json.JsonPatchBuilder in = (javax.json.JsonPatchBuilder)source(); out = in.replace((String)null, (String)null); @@ -3169,28 +3169,28 @@ public class Test { sink(out); // $hasTaintFlow } { - // "javax.json;JsonPatchBuilder;false;test;;;Argument[-1];ReturnValue;value;manual" + // "javax.json;JsonPatchBuilder;false;test;;;Argument[this];ReturnValue;value;manual" javax.json.JsonPatchBuilder out = null; javax.json.JsonPatchBuilder in = (javax.json.JsonPatchBuilder)source(); out = in.test((String)null, false); sink(out); // $hasValueFlow } { - // "javax.json;JsonPatchBuilder;false;test;;;Argument[-1];ReturnValue;value;manual" + // "javax.json;JsonPatchBuilder;false;test;;;Argument[this];ReturnValue;value;manual" javax.json.JsonPatchBuilder out = null; javax.json.JsonPatchBuilder in = (javax.json.JsonPatchBuilder)source(); out = in.test((String)null, 0); sink(out); // $hasValueFlow } { - // "javax.json;JsonPatchBuilder;false;test;;;Argument[-1];ReturnValue;value;manual" + // "javax.json;JsonPatchBuilder;false;test;;;Argument[this];ReturnValue;value;manual" javax.json.JsonPatchBuilder out = null; javax.json.JsonPatchBuilder in = (javax.json.JsonPatchBuilder)source(); out = in.test((String)null, (javax.json.JsonValue)null); sink(out); // $hasValueFlow } { - // "javax.json;JsonPatchBuilder;false;test;;;Argument[-1];ReturnValue;value;manual" + // "javax.json;JsonPatchBuilder;false;test;;;Argument[this];ReturnValue;value;manual" javax.json.JsonPatchBuilder out = null; javax.json.JsonPatchBuilder in = (javax.json.JsonPatchBuilder)source(); out = in.test((String)null, (String)null); @@ -3261,7 +3261,7 @@ public class Test { sink(out); // $hasTaintFlow } { - // "javax.json;JsonPointer;false;add;;;Argument[-1];ReturnValue;taint;manual" + // "javax.json;JsonPointer;false;add;;;Argument[this];ReturnValue;taint;manual" javax.json.JsonStructure out = null; javax.json.JsonPointer in = (javax.json.JsonPointer)source(); out = in.add(null, null); @@ -3316,28 +3316,28 @@ public class Test { sink(out); // $hasTaintFlow } { - // "javax.json;JsonReader;false;read;;;Argument[-1];ReturnValue;taint;manual" + // "javax.json;JsonReader;false;read;;;Argument[this];ReturnValue;taint;manual" javax.json.JsonStructure out = null; javax.json.JsonReader in = (javax.json.JsonReader)source(); out = in.read(); sink(out); // $hasTaintFlow } { - // "javax.json;JsonReader;false;readArray;;;Argument[-1];ReturnValue;taint;manual" + // "javax.json;JsonReader;false;readArray;;;Argument[this];ReturnValue;taint;manual" javax.json.JsonArray out = null; javax.json.JsonReader in = (javax.json.JsonReader)source(); out = in.readArray(); sink(out); // $hasTaintFlow } { - // "javax.json;JsonReader;false;readObject;;;Argument[-1];ReturnValue;taint;manual" + // "javax.json;JsonReader;false;readObject;;;Argument[this];ReturnValue;taint;manual" javax.json.JsonObject out = null; javax.json.JsonReader in = (javax.json.JsonReader)source(); out = in.readObject(); sink(out); // $hasTaintFlow } { - // "javax.json;JsonReader;false;readValue;;;Argument[-1];ReturnValue;taint;manual" + // "javax.json;JsonReader;false;readValue;;;Argument[this];ReturnValue;taint;manual" javax.json.JsonValue out = null; javax.json.JsonReader in = (javax.json.JsonReader)source(); out = in.readValue(); @@ -3368,98 +3368,98 @@ public class Test { sink(out); // $hasTaintFlow } { - // "javax.json;JsonString;false;getChars;;;Argument[-1];ReturnValue;taint;manual" + // "javax.json;JsonString;false;getChars;;;Argument[this];ReturnValue;taint;manual" CharSequence out = null; javax.json.JsonString in = (javax.json.JsonString)source(); out = in.getChars(); sink(out); // $hasTaintFlow } { - // "javax.json;JsonString;false;getString;;;Argument[-1];ReturnValue;taint;manual" + // "javax.json;JsonString;false;getString;;;Argument[this];ReturnValue;taint;manual" String out = null; javax.json.JsonString in = (javax.json.JsonString)source(); out = in.getString(); sink(out); // $hasTaintFlow } { - // "javax.json;JsonStructure;true;getValue;;;Argument[-1];ReturnValue;taint;manual" + // "javax.json;JsonStructure;true;getValue;;;Argument[this];ReturnValue;taint;manual" javax.json.JsonValue out = null; javax.json.JsonStructure in = (javax.json.JsonStructure)source(); out = in.getValue(null); sink(out); // $hasTaintFlow } { - // "javax.json;JsonValue;true;asJsonArray;;;Argument[-1];ReturnValue;taint;manual" + // "javax.json;JsonValue;true;asJsonArray;;;Argument[this];ReturnValue;taint;manual" javax.json.JsonArray out = null; javax.json.JsonValue in = (javax.json.JsonValue)source(); out = in.asJsonArray(); sink(out); // $hasTaintFlow } { - // "javax.json;JsonValue;true;asJsonObject;;;Argument[-1];ReturnValue;taint;manual" + // "javax.json;JsonValue;true;asJsonObject;;;Argument[this];ReturnValue;taint;manual" javax.json.JsonObject out = null; javax.json.JsonValue in = (javax.json.JsonValue)source(); out = in.asJsonObject(); sink(out); // $hasTaintFlow } { - // "javax.json;JsonValue;true;toString;;;Argument[-1];ReturnValue;taint;manual" + // "javax.json;JsonValue;true;toString;;;Argument[this];ReturnValue;taint;manual" String out = null; javax.json.JsonValue in = (javax.json.JsonValue)source(); out = in.toString(); sink(out); // $hasTaintFlow } { - // "javax.json;JsonValue;true;toString;;;Argument[-1];ReturnValue;taint;manual" + // "javax.json;JsonValue;true;toString;;;Argument[this];ReturnValue;taint;manual" String out = null; javax.json.JsonNumber in = (javax.json.JsonNumber)source(); out = in.toString(); sink(out); // $hasTaintFlow } { - // "javax.json;JsonWriter;false;write;;;Argument[0];Argument[-1];taint;manual" + // "javax.json;JsonWriter;false;write;;;Argument[0];Argument[this];taint;manual" javax.json.JsonWriter out = null; javax.json.JsonValue in = (javax.json.JsonValue)source(); out.write(in); sink(out); // $hasTaintFlow } { - // "javax.json;JsonWriter;false;write;;;Argument[0];Argument[-1];taint;manual" + // "javax.json;JsonWriter;false;write;;;Argument[0];Argument[this];taint;manual" javax.json.JsonWriter out = null; javax.json.JsonStructure in = (javax.json.JsonStructure)source(); out.write(in); sink(out); // $hasTaintFlow } { - // "javax.json;JsonWriter;false;writeArray;;;Argument[0];Argument[-1];taint;manual" + // "javax.json;JsonWriter;false;writeArray;;;Argument[0];Argument[this];taint;manual" javax.json.JsonWriter out = null; javax.json.JsonArray in = (javax.json.JsonArray)source(); out.writeArray(in); sink(out); // $hasTaintFlow } { - // "javax.json;JsonWriter;false;writeObject;;;Argument[0];Argument[-1];taint;manual" + // "javax.json;JsonWriter;false;writeObject;;;Argument[0];Argument[this];taint;manual" javax.json.JsonWriter out = null; javax.json.JsonObject in = (javax.json.JsonObject)source(); out.writeObject(in); sink(out); // $hasTaintFlow } { - // "javax.json;JsonWriterFactory;false;createWriter;;;Argument[-1];Argument[0];taint;manual" + // "javax.json;JsonWriterFactory;false;createWriter;;;Argument[this];Argument[0];taint;manual" Writer out = null; javax.json.JsonWriterFactory in = (javax.json.JsonWriterFactory)source(); in.createWriter(out); sink(out); // $hasTaintFlow } { - // "javax.json;JsonWriterFactory;false;createWriter;;;Argument[-1];Argument[0];taint;manual" + // "javax.json;JsonWriterFactory;false;createWriter;;;Argument[this];Argument[0];taint;manual" OutputStream out = null; javax.json.JsonWriterFactory in = (javax.json.JsonWriterFactory)source(); in.createWriter(out, null); sink(out); // $hasTaintFlow } { - // "javax.json;JsonWriterFactory;false;createWriter;;;Argument[-1];Argument[0];taint;manual" + // "javax.json;JsonWriterFactory;false;createWriter;;;Argument[this];Argument[0];taint;manual" OutputStream out = null; javax.json.JsonWriterFactory in = (javax.json.JsonWriterFactory)source(); in.createWriter(out); diff --git a/java/ql/test/library-tests/frameworks/jdk/java.io/Test.java b/java/ql/test/library-tests/frameworks/jdk/java.io/Test.java index 19c85b0e09d..49fad11ae89 100644 --- a/java/ql/test/library-tests/frameworks/jdk/java.io/Test.java +++ b/java/ql/test/library-tests/frameworks/jdk/java.io/Test.java @@ -45,742 +45,742 @@ public class Test { public void test() throws Exception { { - // "java.io;BufferedInputStream;false;BufferedInputStream;;;Argument[0];Argument[-1];taint;manual" + // "java.io;BufferedInputStream;false;BufferedInputStream;;;Argument[0];Argument[this];taint;manual" BufferedInputStream out = null; InputStream in = (InputStream) source(); out = new BufferedInputStream(in); sink(out); // $ hasTaintFlow } { - // "java.io;BufferedInputStream;false;BufferedInputStream;;;Argument[0];Argument[-1];taint;manual" + // "java.io;BufferedInputStream;false;BufferedInputStream;;;Argument[0];Argument[this];taint;manual" BufferedInputStream out = null; InputStream in = (InputStream) source(); out = new BufferedInputStream(in, 0); sink(out); // $ hasTaintFlow } { - // "java.io;BufferedReader;false;BufferedReader;;;Argument[0];Argument[-1];taint;manual" + // "java.io;BufferedReader;false;BufferedReader;;;Argument[0];Argument[this];taint;manual" BufferedReader out = null; Reader in = (Reader) source(); out = new BufferedReader(in); sink(out); // $ hasTaintFlow } { - // "java.io;BufferedReader;false;BufferedReader;;;Argument[0];Argument[-1];taint;manual" + // "java.io;BufferedReader;false;BufferedReader;;;Argument[0];Argument[this];taint;manual" BufferedReader out = null; Reader in = (Reader) source(); out = new BufferedReader(in, 0); sink(out); // $ hasTaintFlow } { - // "java.io;BufferedReader;true;readLine;;;Argument[-1];ReturnValue;taint;manual" + // "java.io;BufferedReader;true;readLine;;;Argument[this];ReturnValue;taint;manual" String out = null; BufferedReader in = (BufferedReader) source(); out = in.readLine(); sink(out); // $ hasTaintFlow } { - // "java.io;ByteArrayInputStream;false;ByteArrayInputStream;;;Argument[0];Argument[-1];taint;manual" + // "java.io;ByteArrayInputStream;false;ByteArrayInputStream;;;Argument[0];Argument[this];taint;manual" ByteArrayInputStream out = null; byte[] in = (byte[]) source(); out = new ByteArrayInputStream(in); sink(out); // $ hasTaintFlow } { - // "java.io;ByteArrayInputStream;false;ByteArrayInputStream;;;Argument[0];Argument[-1];taint;manual" + // "java.io;ByteArrayInputStream;false;ByteArrayInputStream;;;Argument[0];Argument[this];taint;manual" ByteArrayInputStream out = null; byte[] in = (byte[]) source(); out = new ByteArrayInputStream(in, 0, 0); sink(out); // $ hasTaintFlow } { - // "java.io;ByteArrayOutputStream;false;toByteArray;;;Argument[-1];ReturnValue;taint;manual" + // "java.io;ByteArrayOutputStream;false;toByteArray;;;Argument[this];ReturnValue;taint;manual" byte[] out = null; ByteArrayOutputStream in = (ByteArrayOutputStream) source(); out = in.toByteArray(); sink(out); // $ hasTaintFlow } { - // "java.io;ByteArrayOutputStream;false;toString;;;Argument[-1];ReturnValue;taint;manual" + // "java.io;ByteArrayOutputStream;false;toString;;;Argument[this];ReturnValue;taint;manual" String out = null; ByteArrayOutputStream in = (ByteArrayOutputStream) source(); out = in.toString((Charset) null); sink(out); // $ hasTaintFlow } { - // "java.io;ByteArrayOutputStream;false;toString;;;Argument[-1];ReturnValue;taint;manual" + // "java.io;ByteArrayOutputStream;false;toString;;;Argument[this];ReturnValue;taint;manual" String out = null; ByteArrayOutputStream in = (ByteArrayOutputStream) source(); out = in.toString((String) null); sink(out); // $ hasTaintFlow } { - // "java.io;ByteArrayOutputStream;false;toString;;;Argument[-1];ReturnValue;taint;manual" + // "java.io;ByteArrayOutputStream;false;toString;;;Argument[this];ReturnValue;taint;manual" String out = null; ByteArrayOutputStream in = (ByteArrayOutputStream) source(); out = in.toString(); sink(out); // $ hasTaintFlow } { - // "java.io;ByteArrayOutputStream;false;toString;;;Argument[-1];ReturnValue;taint;manual" + // "java.io;ByteArrayOutputStream;false;toString;;;Argument[this];ReturnValue;taint;manual" String out = null; ByteArrayOutputStream in = (ByteArrayOutputStream) source(); out = in.toString(0); sink(out); // $ hasTaintFlow } { - // "java.io;ByteArrayOutputStream;false;writeTo;;;Argument[-1];Argument[0];taint;manual" + // "java.io;ByteArrayOutputStream;false;writeTo;;;Argument[this];Argument[0];taint;manual" OutputStream out = null; ByteArrayOutputStream in = (ByteArrayOutputStream) source(); in.writeTo(out); sink(out); // $ hasTaintFlow } { - // "java.io;CharArrayReader;false;CharArrayReader;;;Argument[0];Argument[-1];taint;manual" + // "java.io;CharArrayReader;false;CharArrayReader;;;Argument[0];Argument[this];taint;manual" CharArrayReader out = null; char[] in = (char[]) source(); out = new CharArrayReader(in); sink(out); // $ hasTaintFlow } { - // "java.io;CharArrayReader;false;CharArrayReader;;;Argument[0];Argument[-1];taint;manual" + // "java.io;CharArrayReader;false;CharArrayReader;;;Argument[0];Argument[this];taint;manual" CharArrayReader out = null; char[] in = (char[]) source(); out = new CharArrayReader(in, 0, 0); sink(out); // $ hasTaintFlow } { - // "java.io;CharArrayWriter;true;toCharArray;;;Argument[-1];ReturnValue;taint;manual" + // "java.io;CharArrayWriter;true;toCharArray;;;Argument[this];ReturnValue;taint;manual" char[] out = null; CharArrayWriter in = (CharArrayWriter) source(); out = in.toCharArray(); sink(out); // $ hasTaintFlow } { - // "java.io;DataInput;true;readFully;;;Argument[-1];Argument[0];taint;manual" + // "java.io;DataInput;true;readFully;;;Argument[this];Argument[0];taint;manual" byte[] out = null; DataInput in = (DataInput) source(); in.readFully(out); sink(out); // $ hasTaintFlow } { - // "java.io;DataInput;true;readFully;;;Argument[-1];Argument[0];taint;manual" + // "java.io;DataInput;true;readFully;;;Argument[this];Argument[0];taint;manual" byte[] out = null; DataInput in = (DataInput) source(); in.readFully(out, 0, 0); sink(out); // $ hasTaintFlow } { - // "java.io;DataInput;true;readFully;;;Argument[-1];Argument[0];taint;manual" + // "java.io;DataInput;true;readFully;;;Argument[this];Argument[0];taint;manual" byte[] out = null; DataInputStream in = (DataInputStream) source(); in.readFully(out); sink(out); // $ hasTaintFlow } { - // "java.io;DataInput;true;readFully;;;Argument[-1];Argument[0];taint;manual" + // "java.io;DataInput;true;readFully;;;Argument[this];Argument[0];taint;manual" byte[] out = null; DataInputStream in = (DataInputStream) source(); in.readFully(out, 0, 0); sink(out); // $ hasTaintFlow } { - // "java.io;DataInput;true;readFully;;;Argument[-1];Argument[0];taint;manual" + // "java.io;DataInput;true;readFully;;;Argument[this];Argument[0];taint;manual" byte[] out = null; ObjectInputStream in = (ObjectInputStream) source(); in.readFully(out); sink(out); // $ hasTaintFlow } { - // "java.io;DataInput;true;readFully;;;Argument[-1];Argument[0];taint;manual" + // "java.io;DataInput;true;readFully;;;Argument[this];Argument[0];taint;manual" byte[] out = null; ObjectInputStream in = (ObjectInputStream) source(); in.readFully(out, 0, 0); sink(out); // $ hasTaintFlow } { - // "java.io;DataInput;true;readLine;();;Argument[-1];ReturnValue;taint;manual" + // "java.io;DataInput;true;readLine;();;Argument[this];ReturnValue;taint;manual" String out = null; DataInput in = (DataInput) source(); out = in.readLine(); sink(out); // $ hasTaintFlow } { - // "java.io;DataInput;true;readLine;();;Argument[-1];ReturnValue;taint;manual" + // "java.io;DataInput;true;readLine;();;Argument[this];ReturnValue;taint;manual" String out = null; DataInputStream in = (DataInputStream) source(); out = in.readLine(); sink(out); // $ hasTaintFlow } { - // "java.io;DataInput;true;readLine;();;Argument[-1];ReturnValue;taint;manual" + // "java.io;DataInput;true;readLine;();;Argument[this];ReturnValue;taint;manual" String out = null; ObjectInputStream in = (ObjectInputStream) source(); out = in.readLine(); sink(out); // $ hasTaintFlow } { - // "java.io;DataInput;true;readUTF;();;Argument[-1];ReturnValue;taint;manual" + // "java.io;DataInput;true;readUTF;();;Argument[this];ReturnValue;taint;manual" String out = null; DataInput in = (DataInput) source(); out = in.readUTF(); sink(out); // $ hasTaintFlow } { - // "java.io;DataInput;true;readUTF;();;Argument[-1];ReturnValue;taint;manual" + // "java.io;DataInput;true;readUTF;();;Argument[this];ReturnValue;taint;manual" String out = null; DataInputStream in = (DataInputStream) source(); out = in.readUTF(); sink(out); // $ hasTaintFlow } { - // "java.io;DataInput;true;readUTF;();;Argument[-1];ReturnValue;taint;manual" + // "java.io;DataInput;true;readUTF;();;Argument[this];ReturnValue;taint;manual" String out = null; ObjectInputStream in = (ObjectInputStream) source(); out = in.readUTF(); sink(out); // $ hasTaintFlow } { - // "java.io;DataInputStream;false;DataInputStream;;;Argument[0];Argument[-1];taint;manual" + // "java.io;DataInputStream;false;DataInputStream;;;Argument[0];Argument[this];taint;manual" DataInputStream out = null; InputStream in = (InputStream) source(); out = new DataInputStream(in); sink(out); // $ hasTaintFlow } { - // "java.io;File;false;File;;;Argument[0];Argument[-1];taint;manual" + // "java.io;File;false;File;;;Argument[0];Argument[this];taint;manual" File out = null; File in = (File) source(); out = new File(in, (String) null); sink(out); // $ hasTaintFlow } { - // "java.io;File;false;File;;;Argument[0];Argument[-1];taint;manual" + // "java.io;File;false;File;;;Argument[0];Argument[this];taint;manual" File out = null; String in = (String) source(); out = new File(in); sink(out); // $ hasTaintFlow } { - // "java.io;File;false;File;;;Argument[0];Argument[-1];taint;manual" + // "java.io;File;false;File;;;Argument[0];Argument[this];taint;manual" File out = null; String in = (String) source(); out = new File(in, (String) null); sink(out); // $ hasTaintFlow } { - // "java.io;File;false;File;;;Argument[0];Argument[-1];taint;manual" + // "java.io;File;false;File;;;Argument[0];Argument[this];taint;manual" File out = null; URI in = (URI) source(); out = new File(in); sink(out); // $ hasTaintFlow } { - // "java.io;File;false;File;;;Argument[1];Argument[-1];taint;manual" + // "java.io;File;false;File;;;Argument[1];Argument[this];taint;manual" File out = null; String in = (String) source(); out = new File((File) null, in); sink(out); // $ hasTaintFlow } { - // "java.io;File;false;File;;;Argument[1];Argument[-1];taint;manual" + // "java.io;File;false;File;;;Argument[1];Argument[this];taint;manual" File out = null; String in = (String) source(); out = new File((String) null, in); sink(out); // $ hasTaintFlow } { - // "java.io;File;true;getAbsoluteFile;;;Argument[-1];ReturnValue;taint;manual" + // "java.io;File;true;getAbsoluteFile;;;Argument[this];ReturnValue;taint;manual" File out = null; File in = (File) source(); out = in.getAbsoluteFile(); sink(out); // $ hasTaintFlow } { - // "java.io;File;true;getAbsolutePath;;;Argument[-1];ReturnValue;taint;manual" + // "java.io;File;true;getAbsolutePath;;;Argument[this];ReturnValue;taint;manual" String out = null; File in = (File) source(); out = in.getAbsolutePath(); sink(out); // $ hasTaintFlow } { - // "java.io;File;true;getCanonicalFile;;;Argument[-1];ReturnValue;taint;manual" + // "java.io;File;true;getCanonicalFile;;;Argument[this];ReturnValue;taint;manual" File out = null; File in = (File) source(); out = in.getCanonicalFile(); sink(out); // $ hasTaintFlow } { - // "java.io;File;true;getCanonicalPath;;;Argument[-1];ReturnValue;taint;manual" + // "java.io;File;true;getCanonicalPath;;;Argument[this];ReturnValue;taint;manual" String out = null; File in = (File) source(); out = in.getCanonicalPath(); sink(out); // $ hasTaintFlow } { - // "java.io;File;true;getName;();;Argument[-1];ReturnValue;taint;manual" + // "java.io;File;true;getName;();;Argument[this];ReturnValue;taint;manual" String out = null; File in = (File) source(); out = in.getName(); sink(out); // $ hasTaintFlow } { - // "java.io;File;true;toPath;;;Argument[-1];ReturnValue;taint;manual" + // "java.io;File;true;toPath;;;Argument[this];ReturnValue;taint;manual" Path out = null; File in = (File) source(); out = in.toPath(); sink(out); // $ hasTaintFlow } { - // "java.io;File;true;toString;;;Argument[-1];ReturnValue;taint;manual" + // "java.io;File;true;toString;;;Argument[this];ReturnValue;taint;manual" String out = null; File in = (File) source(); out = in.toString(); sink(out); // $ hasTaintFlow } { - // "java.io;File;true;toURI;;;Argument[-1];ReturnValue;taint;manual" + // "java.io;File;true;toURI;;;Argument[this];ReturnValue;taint;manual" URI out = null; File in = (File) source(); out = in.toURI(); sink(out); // $ hasTaintFlow } { - // "java.io;FilterOutputStream;true;FilterOutputStream;(OutputStream);;Argument[0];Argument[-1];taint;manual" + // "java.io;FilterOutputStream;true;FilterOutputStream;(OutputStream);;Argument[0];Argument[this];taint;manual" FilterOutputStream out = null; OutputStream in = (OutputStream) source(); out = new FilterOutputStream(in); sink(out); // $ hasTaintFlow } { - // "java.io;IOException;false;IOException;(String);;Argument[0];Argument[-1].SyntheticField[java.lang.Throwable.message];value;manual" + // "java.io;IOException;false;IOException;(String);;Argument[0];Argument[this].SyntheticField[java.lang.Throwable.message];value;manual" IOException out = null; String in = (String) source(); out = new IOException(in); sink(getThrowable_messageDefault(out)); // $ hasValueFlow } { - // "java.io;InputStream;true;read;(byte[]);;Argument[-1];Argument[0];taint;manual" + // "java.io;InputStream;true;read;(byte[]);;Argument[this];Argument[0];taint;manual" byte[] out = null; DataInputStream in = (DataInputStream) source(); in.read(out); sink(out); // $ hasTaintFlow } { - // "java.io;InputStream;true;read;(byte[]);;Argument[-1];Argument[0];taint;manual" + // "java.io;InputStream;true;read;(byte[]);;Argument[this];Argument[0];taint;manual" byte[] out = null; FilterInputStream in = (FilterInputStream) source(); in.read(out); sink(out); // $ hasTaintFlow } { - // "java.io;InputStream;true;read;(byte[]);;Argument[-1];Argument[0];taint;manual" + // "java.io;InputStream;true;read;(byte[]);;Argument[this];Argument[0];taint;manual" byte[] out = null; InputStream in = (InputStream) source(); in.read(out); sink(out); // $ hasTaintFlow } { - // "java.io;InputStream;true;read;(byte[],int,int);;Argument[-1];Argument[0];taint;manual" + // "java.io;InputStream;true;read;(byte[],int,int);;Argument[this];Argument[0];taint;manual" byte[] out = null; BufferedInputStream in = (BufferedInputStream) source(); in.read(out, 0, 0); sink(out); // $ hasTaintFlow } { - // "java.io;InputStream;true;read;(byte[],int,int);;Argument[-1];Argument[0];taint;manual" + // "java.io;InputStream;true;read;(byte[],int,int);;Argument[this];Argument[0];taint;manual" byte[] out = null; ByteArrayInputStream in = (ByteArrayInputStream) source(); in.read(out, 0, 0); sink(out); // $ hasTaintFlow } { - // "java.io;InputStream;true;read;(byte[],int,int);;Argument[-1];Argument[0];taint;manual" + // "java.io;InputStream;true;read;(byte[],int,int);;Argument[this];Argument[0];taint;manual" byte[] out = null; DataInputStream in = (DataInputStream) source(); in.read(out, 0, 0); sink(out); // $ hasTaintFlow } { - // "java.io;InputStream;true;read;(byte[],int,int);;Argument[-1];Argument[0];taint;manual" + // "java.io;InputStream;true;read;(byte[],int,int);;Argument[this];Argument[0];taint;manual" byte[] out = null; FilterInputStream in = (FilterInputStream) source(); in.read(out, 0, 0); sink(out); // $ hasTaintFlow } { - // "java.io;InputStream;true;read;(byte[],int,int);;Argument[-1];Argument[0];taint;manual" + // "java.io;InputStream;true;read;(byte[],int,int);;Argument[this];Argument[0];taint;manual" byte[] out = null; InputStream in = (InputStream) source(); in.read(out, 0, 0); sink(out); // $ hasTaintFlow } { - // "java.io;InputStream;true;read;(byte[],int,int);;Argument[-1];Argument[0];taint;manual" + // "java.io;InputStream;true;read;(byte[],int,int);;Argument[this];Argument[0];taint;manual" byte[] out = null; ObjectInputStream in = (ObjectInputStream) source(); in.read(out, 0, 0); sink(out); // $ hasTaintFlow } { - // "java.io;InputStream;true;readAllBytes;;;Argument[-1];ReturnValue;taint;manual" + // "java.io;InputStream;true;readAllBytes;;;Argument[this];ReturnValue;taint;manual" byte[] out = null; ByteArrayInputStream in = (ByteArrayInputStream) source(); out = in.readAllBytes(); sink(out); // $ hasTaintFlow } { - // "java.io;InputStream;true;readAllBytes;;;Argument[-1];ReturnValue;taint;manual" + // "java.io;InputStream;true;readAllBytes;;;Argument[this];ReturnValue;taint;manual" byte[] out = null; InputStream in = (InputStream) source(); out = in.readAllBytes(); sink(out); // $ hasTaintFlow } { - // "java.io;InputStream;true;readNBytes;(byte[],int,int);;Argument[-1];Argument[0];taint;manual" + // "java.io;InputStream;true;readNBytes;(byte[],int,int);;Argument[this];Argument[0];taint;manual" byte[] out = null; ByteArrayInputStream in = (ByteArrayInputStream) source(); in.readNBytes(out, 0, 0); sink(out); // $ hasTaintFlow } { - // "java.io;InputStream;true;readNBytes;(byte[],int,int);;Argument[-1];Argument[0];taint;manual" + // "java.io;InputStream;true;readNBytes;(byte[],int,int);;Argument[this];Argument[0];taint;manual" byte[] out = null; InputStream in = (InputStream) source(); in.readNBytes(out, 0, 0); sink(out); // $ hasTaintFlow } { - // "java.io;InputStream;true;readNBytes;(int);;Argument[-1];ReturnValue;taint;manual" + // "java.io;InputStream;true;readNBytes;(int);;Argument[this];ReturnValue;taint;manual" byte[] out = null; InputStream in = (InputStream) source(); out = in.readNBytes(0); sink(out); // $ hasTaintFlow } { - // "java.io;InputStream;true;transferTo;(OutputStream);;Argument[-1];Argument[0];taint;manual" + // "java.io;InputStream;true;transferTo;(OutputStream);;Argument[this];Argument[0];taint;manual" OutputStream out = null; ByteArrayInputStream in = (ByteArrayInputStream) source(); in.transferTo(out); sink(out); // $ hasTaintFlow } { - // "java.io;InputStream;true;transferTo;(OutputStream);;Argument[-1];Argument[0];taint;manual" + // "java.io;InputStream;true;transferTo;(OutputStream);;Argument[this];Argument[0];taint;manual" OutputStream out = null; InputStream in = (InputStream) source(); in.transferTo(out); sink(out); // $ hasTaintFlow } { - // "java.io;InputStreamReader;false;InputStreamReader;;;Argument[0];Argument[-1];taint;manual" + // "java.io;InputStreamReader;false;InputStreamReader;;;Argument[0];Argument[this];taint;manual" InputStreamReader out = null; InputStream in = (InputStream) source(); out = new InputStreamReader(in); sink(out); // $ hasTaintFlow } { - // "java.io;InputStreamReader;false;InputStreamReader;;;Argument[0];Argument[-1];taint;manual" + // "java.io;InputStreamReader;false;InputStreamReader;;;Argument[0];Argument[this];taint;manual" InputStreamReader out = null; InputStream in = (InputStream) source(); out = new InputStreamReader(in, (Charset) null); sink(out); // $ hasTaintFlow } { - // "java.io;InputStreamReader;false;InputStreamReader;;;Argument[0];Argument[-1];taint;manual" + // "java.io;InputStreamReader;false;InputStreamReader;;;Argument[0];Argument[this];taint;manual" InputStreamReader out = null; InputStream in = (InputStream) source(); out = new InputStreamReader(in, (CharsetDecoder) null); sink(out); // $ hasTaintFlow } { - // "java.io;InputStreamReader;false;InputStreamReader;;;Argument[0];Argument[-1];taint;manual" + // "java.io;InputStreamReader;false;InputStreamReader;;;Argument[0];Argument[this];taint;manual" InputStreamReader out = null; InputStream in = (InputStream) source(); out = new InputStreamReader(in, (String) null); sink(out); // $ hasTaintFlow } { - // "java.io;ObjectInput;true;read;;;Argument[-1];Argument[0];taint;manual" + // "java.io;ObjectInput;true;read;;;Argument[this];Argument[0];taint;manual" byte[] out = null; ObjectInput in = (ObjectInput) source(); in.read(out); sink(out); // $ hasTaintFlow } { - // "java.io;ObjectInput;true;read;;;Argument[-1];Argument[0];taint;manual" + // "java.io;ObjectInput;true;read;;;Argument[this];Argument[0];taint;manual" byte[] out = null; ObjectInput in = (ObjectInput) source(); in.read(out, 0, 0); sink(out); // $ hasTaintFlow } { - // "java.io;ObjectInput;true;read;;;Argument[-1];Argument[0];taint;manual" + // "java.io;ObjectInput;true;read;;;Argument[this];Argument[0];taint;manual" byte[] out = null; ObjectInputStream in = (ObjectInputStream) source(); in.read(out, 0, 0); sink(out); // $ hasTaintFlow } { - // "java.io;ObjectInputStream;false;ObjectInputStream;;;Argument[0];Argument[-1];taint;manual" + // "java.io;ObjectInputStream;false;ObjectInputStream;;;Argument[0];Argument[this];taint;manual" ObjectInputStream out = null; InputStream in = (InputStream) source(); out = new ObjectInputStream(in); sink(out); // $ hasTaintFlow } { - // "java.io;OutputStream;true;write;(byte[]);;Argument[0];Argument[-1];taint;manual" + // "java.io;OutputStream;true;write;(byte[]);;Argument[0];Argument[this];taint;manual" FilterOutputStream out = null; byte[] in = (byte[]) source(); out.write(in); sink(out); // $ hasTaintFlow } { - // "java.io;OutputStream;true;write;(byte[]);;Argument[0];Argument[-1];taint;manual" + // "java.io;OutputStream;true;write;(byte[]);;Argument[0];Argument[this];taint;manual" ObjectOutputStream out = null; byte[] in = (byte[]) source(); out.write(in); sink(out); // $ hasTaintFlow } { - // "java.io;OutputStream;true;write;(byte[]);;Argument[0];Argument[-1];taint;manual" + // "java.io;OutputStream;true;write;(byte[]);;Argument[0];Argument[this];taint;manual" OutputStream out = null; byte[] in = (byte[]) source(); out.write(in); sink(out); // $ hasTaintFlow } { - // "java.io;OutputStream;true;write;(byte[]);;Argument[0];Argument[-1];taint;manual" + // "java.io;OutputStream;true;write;(byte[]);;Argument[0];Argument[this];taint;manual" PrintStream out = null; byte[] in = (byte[]) source(); out.write(in); sink(out); // $ hasTaintFlow } { - // "java.io;OutputStream;true;write;(byte[],int,int);;Argument[0];Argument[-1];taint;manual" + // "java.io;OutputStream;true;write;(byte[],int,int);;Argument[0];Argument[this];taint;manual" ByteArrayOutputStream out = null; byte[] in = (byte[]) source(); out.write(in, 0, 0); sink(out); // $ hasTaintFlow } { - // "java.io;OutputStream;true;write;(byte[],int,int);;Argument[0];Argument[-1];taint;manual" + // "java.io;OutputStream;true;write;(byte[],int,int);;Argument[0];Argument[this];taint;manual" FilterOutputStream out = null; byte[] in = (byte[]) source(); out.write(in, 0, 0); sink(out); // $ hasTaintFlow } { - // "java.io;OutputStream;true;write;(byte[],int,int);;Argument[0];Argument[-1];taint;manual" + // "java.io;OutputStream;true;write;(byte[],int,int);;Argument[0];Argument[this];taint;manual" ObjectOutputStream out = null; byte[] in = (byte[]) source(); out.write(in, 0, 0); sink(out); // $ hasTaintFlow } { - // "java.io;OutputStream;true;write;(byte[],int,int);;Argument[0];Argument[-1];taint;manual" + // "java.io;OutputStream;true;write;(byte[],int,int);;Argument[0];Argument[this];taint;manual" OutputStream out = null; byte[] in = (byte[]) source(); out.write(in, 0, 0); sink(out); // $ hasTaintFlow } { - // "java.io;OutputStream;true;write;(byte[],int,int);;Argument[0];Argument[-1];taint;manual" + // "java.io;OutputStream;true;write;(byte[],int,int);;Argument[0];Argument[this];taint;manual" PrintStream out = null; byte[] in = (byte[]) source(); out.write(in, 0, 0); sink(out); // $ hasTaintFlow } { - // "java.io;OutputStream;true;write;(int);;Argument[0];Argument[-1];taint;manual" + // "java.io;OutputStream;true;write;(int);;Argument[0];Argument[this];taint;manual" ByteArrayOutputStream out = null; int in = (int) source(); out.write(in); sink(out); // $ hasTaintFlow } { - // "java.io;OutputStream;true;write;(int);;Argument[0];Argument[-1];taint;manual" + // "java.io;OutputStream;true;write;(int);;Argument[0];Argument[this];taint;manual" FilterOutputStream out = null; int in = (int) source(); out.write(in); sink(out); // $ hasTaintFlow } { - // "java.io;OutputStream;true;write;(int);;Argument[0];Argument[-1];taint;manual" + // "java.io;OutputStream;true;write;(int);;Argument[0];Argument[this];taint;manual" ObjectOutputStream out = null; int in = (int) source(); out.write(in); sink(out); // $ hasTaintFlow } { - // "java.io;OutputStream;true;write;(int);;Argument[0];Argument[-1];taint;manual" + // "java.io;OutputStream;true;write;(int);;Argument[0];Argument[this];taint;manual" OutputStream out = null; int in = (int) source(); out.write(in); sink(out); // $ hasTaintFlow } { - // "java.io;OutputStream;true;write;(int);;Argument[0];Argument[-1];taint;manual" + // "java.io;OutputStream;true;write;(int);;Argument[0];Argument[this];taint;manual" PrintStream out = null; int in = (int) source(); out.write(in); sink(out); // $ hasTaintFlow } { - // "java.io;Reader;true;read;;;Argument[-1];Argument[0];taint;manual" + // "java.io;Reader;true;read;;;Argument[this];Argument[0];taint;manual" CharBuffer out = null; CharArrayReader in = (CharArrayReader) source(); in.read(out); sink(out); // $ hasTaintFlow } { - // "java.io;Reader;true;read;;;Argument[-1];Argument[0];taint;manual" + // "java.io;Reader;true;read;;;Argument[this];Argument[0];taint;manual" CharBuffer out = null; InputStreamReader in = (InputStreamReader) source(); in.read(out); sink(out); // $ hasTaintFlow } { - // "java.io;Reader;true;read;;;Argument[-1];Argument[0];taint;manual" + // "java.io;Reader;true;read;;;Argument[this];Argument[0];taint;manual" CharBuffer out = null; Reader in = (Reader) source(); in.read(out); sink(out); // $ hasTaintFlow } { - // "java.io;Reader;true;read;;;Argument[-1];Argument[0];taint;manual" + // "java.io;Reader;true;read;;;Argument[this];Argument[0];taint;manual" char[] out = null; BufferedReader in = (BufferedReader) source(); in.read(out, 0, 0); sink(out); // $ hasTaintFlow } { - // "java.io;Reader;true;read;;;Argument[-1];Argument[0];taint;manual" + // "java.io;Reader;true;read;;;Argument[this];Argument[0];taint;manual" char[] out = null; CharArrayReader in = (CharArrayReader) source(); in.read(out, 0, 0); sink(out); // $ hasTaintFlow } { - // "java.io;Reader;true;read;;;Argument[-1];Argument[0];taint;manual" + // "java.io;Reader;true;read;;;Argument[this];Argument[0];taint;manual" char[] out = null; InputStreamReader in = (InputStreamReader) source(); in.read(out, 0, 0); sink(out); // $ hasTaintFlow } { - // "java.io;Reader;true;read;;;Argument[-1];Argument[0];taint;manual" + // "java.io;Reader;true;read;;;Argument[this];Argument[0];taint;manual" char[] out = null; Reader in = (Reader) source(); in.read(out); sink(out); // $ hasTaintFlow } { - // "java.io;Reader;true;read;;;Argument[-1];Argument[0];taint;manual" + // "java.io;Reader;true;read;;;Argument[this];Argument[0];taint;manual" char[] out = null; Reader in = (Reader) source(); in.read(out, 0, 0); sink(out); // $ hasTaintFlow } { - // "java.io;Reader;true;read;;;Argument[-1];Argument[0];taint;manual" + // "java.io;Reader;true;read;;;Argument[this];Argument[0];taint;manual" char[] out = null; StringReader in = (StringReader) source(); in.read(out, 0, 0); sink(out); // $ hasTaintFlow } { - // "java.io;StringReader;false;StringReader;;;Argument[0];Argument[-1];taint;manual" + // "java.io;StringReader;false;StringReader;;;Argument[0];Argument[this];taint;manual" StringReader out = null; String in = (String) source(); out = new StringReader(in); sink(out); // $ hasTaintFlow } { - // "java.io;Writer;true;write;;;Argument[0];Argument[-1];taint;manual" + // "java.io;Writer;true;write;;;Argument[0];Argument[this];taint;manual" CharArrayWriter out = null; String in = (String) source(); out.write(in, 0, 0); sink(out); // $ hasTaintFlow } { - // "java.io;Writer;true;write;;;Argument[0];Argument[-1];taint;manual" + // "java.io;Writer;true;write;;;Argument[0];Argument[this];taint;manual" CharArrayWriter out = null; char[] in = (char[]) source(); out.write(in, 0, 0); sink(out); // $ hasTaintFlow } { - // "java.io;Writer;true;write;;;Argument[0];Argument[-1];taint;manual" + // "java.io;Writer;true;write;;;Argument[0];Argument[this];taint;manual" CharArrayWriter out = null; int in = (int) source(); out.write(in); sink(out); // $ hasTaintFlow } { - // "java.io;Writer;true;write;;;Argument[0];Argument[-1];taint;manual" + // "java.io;Writer;true;write;;;Argument[0];Argument[this];taint;manual" PrintWriter out = null; String in = (String) source(); out.write(in); sink(out); // $ hasTaintFlow } { - // "java.io;Writer;true;write;;;Argument[0];Argument[-1];taint;manual" + // "java.io;Writer;true;write;;;Argument[0];Argument[this];taint;manual" PrintWriter out = null; String in = (String) source(); out.write(in, 0, 0); sink(out); // $ hasTaintFlow } { - // "java.io;Writer;true;write;;;Argument[0];Argument[-1];taint;manual" + // "java.io;Writer;true;write;;;Argument[0];Argument[this];taint;manual" PrintWriter out = null; char[] in = (char[]) source(); out.write(in); sink(out); // $ hasTaintFlow } { - // "java.io;Writer;true;write;;;Argument[0];Argument[-1];taint;manual" + // "java.io;Writer;true;write;;;Argument[0];Argument[this];taint;manual" PrintWriter out = null; char[] in = (char[]) source(); out.write(in, 0, 0); sink(out); // $ hasTaintFlow } { - // "java.io;Writer;true;write;;;Argument[0];Argument[-1];taint;manual" + // "java.io;Writer;true;write;;;Argument[0];Argument[this];taint;manual" PrintWriter out = null; int in = (int) source(); out.write(in); sink(out); // $ hasTaintFlow } { - // "java.io;Writer;true;write;;;Argument[0];Argument[-1];taint;manual" + // "java.io;Writer;true;write;;;Argument[0];Argument[this];taint;manual" Writer out = null; String in = (String) source(); out.write(in); sink(out); // $ hasTaintFlow } { - // "java.io;Writer;true;write;;;Argument[0];Argument[-1];taint;manual" + // "java.io;Writer;true;write;;;Argument[0];Argument[this];taint;manual" Writer out = null; String in = (String) source(); out.write(in, 0, 0); sink(out); // $ hasTaintFlow } { - // "java.io;Writer;true;write;;;Argument[0];Argument[-1];taint;manual" + // "java.io;Writer;true;write;;;Argument[0];Argument[this];taint;manual" Writer out = null; char[] in = (char[]) source(); out.write(in); sink(out); // $ hasTaintFlow } { - // "java.io;Writer;true;write;;;Argument[0];Argument[-1];taint;manual" + // "java.io;Writer;true;write;;;Argument[0];Argument[this];taint;manual" Writer out = null; char[] in = (char[]) source(); out.write(in, 0, 0); sink(out); // $ hasTaintFlow } { - // "java.io;Writer;true;write;;;Argument[0];Argument[-1];taint;manual" + // "java.io;Writer;true;write;;;Argument[0];Argument[this];taint;manual" Writer out = null; int in = (int) source(); out.write(in); diff --git a/java/ql/test/library-tests/frameworks/jdk/java.net/Test.java b/java/ql/test/library-tests/frameworks/jdk/java.net/Test.java index 021549fba60..7f36d66d136 100644 --- a/java/ql/test/library-tests/frameworks/jdk/java.net/Test.java +++ b/java/ql/test/library-tests/frameworks/jdk/java.net/Test.java @@ -26,7 +26,7 @@ public class Test { sink(out); // $ hasTaintFlow } { - // "java.net;InetSocketAddress;true;InetSocketAddress;(String,int);;Argument[0];Argument[-1];taint;ai-generated" + // "java.net;InetSocketAddress;true;InetSocketAddress;(String,int);;Argument[0];Argument[this];taint;ai-generated" InetSocketAddress out = null; String in = (String) source(); out = new InetSocketAddress(in, 0); @@ -40,7 +40,7 @@ public class Test { sink(out); // $ hasTaintFlow } { - // "java.net;URI;false;URI;(String);;Argument[0];Argument[-1];taint;manual" + // "java.net;URI;false;URI;(String);;Argument[0];Argument[this];taint;manual" URI out = null; String in = (String) source(); out = new URI(in); @@ -70,56 +70,56 @@ public class Test { sink(out); // $ hasTaintFlow } { - // "java.net;URI;false;toASCIIString;;;Argument[-1];ReturnValue;taint;manual" + // "java.net;URI;false;toASCIIString;;;Argument[this];ReturnValue;taint;manual" String out = null; URI in = (URI) source(); out = in.toASCIIString(); sink(out); // $ hasTaintFlow } { - // "java.net;URI;false;toString;;;Argument[-1];ReturnValue;taint;manual" + // "java.net;URI;false;toString;;;Argument[this];ReturnValue;taint;manual" String out = null; URI in = (URI) source(); out = in.toString(); sink(out); // $ hasTaintFlow } { - // "java.net;URI;false;toURL;;;Argument[-1];ReturnValue;taint;manual" + // "java.net;URI;false;toURL;;;Argument[this];ReturnValue;taint;manual" URL out = null; URI in = (URI) source(); out = in.toURL(); sink(out); // $ hasTaintFlow } { - // "java.net;URL;false;URL;(String);;Argument[0];Argument[-1];taint;manual" + // "java.net;URL;false;URL;(String);;Argument[0];Argument[this];taint;manual" URL out = null; String in = (String) source(); out = new URL(in); sink(out); // $ hasTaintFlow } { - // "java.net;URL;false;URL;(URL,String);;Argument[0];Argument[-1];taint;ai-generated" + // "java.net;URL;false;URL;(URL,String);;Argument[0];Argument[this];taint;ai-generated" URL out = null; URL in = (URL) source(); out = new URL(in, null); sink(out); // $ hasTaintFlow } { - // "java.net;URL;false;URL;(URL,String);;Argument[1];Argument[-1];taint;ai-generated" + // "java.net;URL;false;URL;(URL,String);;Argument[1];Argument[this];taint;ai-generated" URL out = null; String in = (String) source(); out = new URL(null, in); sink(out); // $ hasTaintFlow } { - // "java.net;URL;false;toExternalForm;;;Argument[-1];ReturnValue;taint;manual" + // "java.net;URL;false;toExternalForm;;;Argument[this];ReturnValue;taint;manual" String out = null; URL in = (URL) source(); out = in.toExternalForm(); sink(out); // $ hasTaintFlow } { - // "java.net;URL;false;toURI;;;Argument[-1];ReturnValue;taint;manual" + // "java.net;URL;false;toURI;;;Argument[this];ReturnValue;taint;manual" URI out = null; URL in = (URL) source(); out = in.toURI(); diff --git a/java/ql/test/library-tests/frameworks/jdk/java.nio.file/Test.java b/java/ql/test/library-tests/frameworks/jdk/java.nio.file/Test.java index c474d68ed70..19a602c7be0 100644 --- a/java/ql/test/library-tests/frameworks/jdk/java.nio.file/Test.java +++ b/java/ql/test/library-tests/frameworks/jdk/java.nio.file/Test.java @@ -26,21 +26,21 @@ public class Test { sink(out); // $ hasTaintFlow } { - // "java.nio.file;Path;false;toFile;;;Argument[-1];ReturnValue;taint;manual" + // "java.nio.file;Path;false;toFile;;;Argument[this];ReturnValue;taint;manual" File out = null; Path in = (Path) source(); out = in.toFile(); sink(out); // $ hasTaintFlow } { - // "java.nio.file;Path;true;getParent;;;Argument[-1];ReturnValue;taint;manual" + // "java.nio.file;Path;true;getParent;;;Argument[this];ReturnValue;taint;manual" Path out = null; Path in = (Path) source(); out = in.getParent(); sink(out); // $ hasTaintFlow } { - // "java.nio.file;Path;true;normalize;;;Argument[-1];ReturnValue;taint;manual" + // "java.nio.file;Path;true;normalize;;;Argument[this];ReturnValue;taint;manual" Path out = null; Path in = (Path) source(); out = in.normalize(); @@ -77,21 +77,21 @@ public class Test { sink(out); // $ hasTaintFlow } { - // "java.nio.file;Path;true;toAbsolutePath;;;Argument[-1];ReturnValue;taint;manual" + // "java.nio.file;Path;true;toAbsolutePath;;;Argument[this];ReturnValue;taint;manual" Path out = null; Path in = (Path) source(); out = in.toAbsolutePath(); sink(out); // $ hasTaintFlow } { - // "java.nio.file;Path;true;toString;;;Argument[-1];ReturnValue;taint;manual" + // "java.nio.file;Path;true;toString;;;Argument[this];ReturnValue;taint;manual" String out = null; Path in = (Path) source(); out = in.toString(); sink(out); // $ hasTaintFlow } { - // "java.nio.file;Path;true;toUri;;;Argument[-1];ReturnValue;taint;manual" + // "java.nio.file;Path;true;toUri;;;Argument[this];ReturnValue;taint;manual" URI out = null; Path in = (Path) source(); out = in.toUri(); diff --git a/java/ql/test/library-tests/frameworks/json-java/Test.java b/java/ql/test/library-tests/frameworks/json-java/Test.java index f5ddfeca5f9..6958e86861e 100644 --- a/java/ql/test/library-tests/frameworks/json-java/Test.java +++ b/java/ql/test/library-tests/frameworks/json-java/Test.java @@ -197,161 +197,161 @@ public class Test { sink(out); // $ hasTaintFlow } { - // "org.json;HTTPTokener;false;HTTPTokener;;;Argument[0];Argument[-1];taint;manual" + // "org.json;HTTPTokener;false;HTTPTokener;;;Argument[0];Argument[this];taint;manual" HTTPTokener out = null; String in = (String)source(); out = new HTTPTokener(in); sink(out); // $ hasTaintFlow } { - // "org.json;HTTPTokener;false;nextToken;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;HTTPTokener;false;nextToken;;;Argument[this];ReturnValue;taint;manual" String out = null; HTTPTokener in = (HTTPTokener)source(); out = in.nextToken(); sink(out); // $ hasTaintFlow } { - // "org.json;JSONArray;false;JSONArray;(Collection);;Element of Argument[0];Argument[-1];taint;manual" + // "org.json;JSONArray;false;JSONArray;(Collection);;Element of Argument[0];Argument[this];taint;manual" JSONArray out = null; Collection in = (Collection)newWithElement(source()); out = new JSONArray(in); sink(out); // $ hasTaintFlow } { - // "org.json;JSONArray;false;JSONArray;(Iterable);;Element of Argument[0];Argument[-1];taint;manual" + // "org.json;JSONArray;false;JSONArray;(Iterable);;Element of Argument[0];Argument[this];taint;manual" JSONArray out = null; Iterable in = (Iterable)newWithElement(source()); out = new JSONArray(in); sink(out); // $ hasTaintFlow } { - // "org.json;JSONArray;false;JSONArray;(JSONArray);;Argument[0];Argument[-1];taint;manual" + // "org.json;JSONArray;false;JSONArray;(JSONArray);;Argument[0];Argument[this];taint;manual" JSONArray out = null; JSONArray in = (JSONArray)source(); out = new JSONArray(in); sink(out); // $ hasTaintFlow } { - // "org.json;JSONArray;false;JSONArray;(JSONTokener);;Argument[0];Argument[-1];taint;manual" + // "org.json;JSONArray;false;JSONArray;(JSONTokener);;Argument[0];Argument[this];taint;manual" JSONArray out = null; JSONTokener in = (JSONTokener)source(); out = new JSONArray(in); sink(out); // $ hasTaintFlow } { - // "org.json;JSONArray;false;JSONArray;(Object);;ArrayElement of Argument[0];Argument[-1];taint;manual" + // "org.json;JSONArray;false;JSONArray;(Object);;ArrayElement of Argument[0];Argument[this];taint;manual" JSONArray out = null; Object in = (Object)newWithArrayElement(source()); out = new JSONArray(in); sink(out); // $ hasTaintFlow } { - // "org.json;JSONArray;false;JSONArray;(String);;Argument[0];Argument[-1];taint;manual" + // "org.json;JSONArray;false;JSONArray;(String);;Argument[0];Argument[this];taint;manual" JSONArray out = null; String in = (String)source(); out = new JSONArray(in); sink(out); // $ hasTaintFlow } { - // "org.json;JSONArray;false;get;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONArray;false;get;;;Argument[this];ReturnValue;taint;manual" Object out = null; JSONArray in = (JSONArray)source(); out = in.get(0); sink(out); // $ hasTaintFlow } { - // "org.json;JSONArray;false;getBigDecimal;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONArray;false;getBigDecimal;;;Argument[this];ReturnValue;taint;manual" BigDecimal out = null; JSONArray in = (JSONArray)source(); out = in.getBigDecimal(0); sink(out); // $ hasTaintFlow } { - // "org.json;JSONArray;false;getBigInteger;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONArray;false;getBigInteger;;;Argument[this];ReturnValue;taint;manual" BigInteger out = null; JSONArray in = (JSONArray)source(); out = in.getBigInteger(0); sink(out); // $ hasTaintFlow } { - // "org.json;JSONArray;false;getBoolean;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONArray;false;getBoolean;;;Argument[this];ReturnValue;taint;manual" boolean out = false; JSONArray in = (JSONArray)source(); out = in.getBoolean(0); sink(out); // $ hasTaintFlow } { - // "org.json;JSONArray;false;getDouble;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONArray;false;getDouble;;;Argument[this];ReturnValue;taint;manual" double out = 0.0; JSONArray in = (JSONArray)source(); out = in.getDouble(0); sink(out); // $ hasTaintFlow } { - // "org.json;JSONArray;false;getEnum;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONArray;false;getEnum;;;Argument[this];ReturnValue;taint;manual" Enum out = null; JSONArray in = (JSONArray)source(); out = in.getEnum(null, 0); sink(out); // $ hasTaintFlow } { - // "org.json;JSONArray;false;getFloat;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONArray;false;getFloat;;;Argument[this];ReturnValue;taint;manual" float out = 0.0f; JSONArray in = (JSONArray)source(); out = in.getFloat(0); sink(out); // $ hasTaintFlow } { - // "org.json;JSONArray;false;getInt;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONArray;false;getInt;;;Argument[this];ReturnValue;taint;manual" int out = 0; JSONArray in = (JSONArray)source(); out = in.getInt(0); sink(out); // $ hasTaintFlow } { - // "org.json;JSONArray;false;getJSONArray;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONArray;false;getJSONArray;;;Argument[this];ReturnValue;taint;manual" JSONArray out = null; JSONArray in = (JSONArray)source(); out = in.getJSONArray(0); sink(out); // $ hasTaintFlow } { - // "org.json;JSONArray;false;getJSONObject;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONArray;false;getJSONObject;;;Argument[this];ReturnValue;taint;manual" JSONObject out = null; JSONArray in = (JSONArray)source(); out = in.getJSONObject(0); sink(out); // $ hasTaintFlow } { - // "org.json;JSONArray;false;getLong;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONArray;false;getLong;;;Argument[this];ReturnValue;taint;manual" long out = 0L; JSONArray in = (JSONArray)source(); out = in.getLong(0); sink(out); // $ hasTaintFlow } { - // "org.json;JSONArray;false;getNumber;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONArray;false;getNumber;;;Argument[this];ReturnValue;taint;manual" Number out = null; JSONArray in = (JSONArray)source(); out = in.getNumber(0); sink(out); // $ hasTaintFlow } { - // "org.json;JSONArray;false;getString;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONArray;false;getString;;;Argument[this];ReturnValue;taint;manual" String out = null; JSONArray in = (JSONArray)source(); out = in.getString(0); sink(out); // $ hasTaintFlow } { - // "org.json;JSONArray;false;iterator;;;Argument[-1];Element of ReturnValue;taint;manual" + // "org.json;JSONArray;false;iterator;;;Argument[this];Element of ReturnValue;taint;manual" Iterator out = null; JSONArray in = (JSONArray)source(); out = in.iterator(); sink(getElement(out)); // $ hasTaintFlow } { - // "org.json;JSONArray;false;join;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONArray;false;join;;;Argument[this];ReturnValue;taint;manual" String out = null; JSONArray in = (JSONArray)source(); out = in.join(null); @@ -366,14 +366,14 @@ public class Test { sink(out); // $ hasTaintFlow } { - // "org.json;JSONArray;false;opt;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONArray;false;opt;;;Argument[this];ReturnValue;taint;manual" Object out = null; JSONArray in = (JSONArray)source(); out = in.opt(0); sink(out); // $ hasTaintFlow } { - // "org.json;JSONArray;false;optBigDecimal;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONArray;false;optBigDecimal;;;Argument[this];ReturnValue;taint;manual" BigDecimal out = null; JSONArray in = (JSONArray)source(); out = in.optBigDecimal(0, null); @@ -388,7 +388,7 @@ public class Test { sink(out); // $ hasValueFlow } { - // "org.json;JSONArray;false;optBigInteger;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONArray;false;optBigInteger;;;Argument[this];ReturnValue;taint;manual" BigInteger out = null; JSONArray in = (JSONArray)source(); out = in.optBigInteger(0, null); @@ -403,14 +403,14 @@ public class Test { sink(out); // $ hasValueFlow } { - // "org.json;JSONArray;false;optBoolean;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONArray;false;optBoolean;;;Argument[this];ReturnValue;taint;manual" boolean out = false; JSONArray in = (JSONArray)source(); out = in.optBoolean(0, false); sink(out); // $ hasTaintFlow } { - // "org.json;JSONArray;false;optBoolean;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONArray;false;optBoolean;;;Argument[this];ReturnValue;taint;manual" boolean out = false; JSONArray in = (JSONArray)source(); out = in.optBoolean(0); @@ -425,14 +425,14 @@ public class Test { sink(out); // $ hasValueFlow } { - // "org.json;JSONArray;false;optDouble;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONArray;false;optDouble;;;Argument[this];ReturnValue;taint;manual" double out = 0.0; JSONArray in = (JSONArray)source(); out = in.optDouble(0, 0.0); sink(out); // $ hasTaintFlow } { - // "org.json;JSONArray;false;optDouble;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONArray;false;optDouble;;;Argument[this];ReturnValue;taint;manual" double out = 0.0; JSONArray in = (JSONArray)source(); out = in.optDouble(0); @@ -447,14 +447,14 @@ public class Test { sink(out); // $ hasValueFlow } { - // "org.json;JSONArray;false;optEnum;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONArray;false;optEnum;;;Argument[this];ReturnValue;taint;manual" Enum out = null; JSONArray in = (JSONArray)source(); out = in.optEnum(null, 0, null); sink(out); // $ hasTaintFlow } { - // "org.json;JSONArray;false;optEnum;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONArray;false;optEnum;;;Argument[this];ReturnValue;taint;manual" Enum out = null; JSONArray in = (JSONArray)source(); out = in.optEnum(null, 0); @@ -469,14 +469,14 @@ public class Test { sink(out); // $ hasValueFlow } { - // "org.json;JSONArray;false;optFloat;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONArray;false;optFloat;;;Argument[this];ReturnValue;taint;manual" float out = 0.0f; JSONArray in = (JSONArray)source(); out = in.optFloat(0, 0.0f); sink(out); // $ hasTaintFlow } { - // "org.json;JSONArray;false;optFloat;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONArray;false;optFloat;;;Argument[this];ReturnValue;taint;manual" float out = 0.0f; JSONArray in = (JSONArray)source(); out = in.optFloat(0); @@ -491,14 +491,14 @@ public class Test { sink(out); // $ hasValueFlow } { - // "org.json;JSONArray;false;optInt;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONArray;false;optInt;;;Argument[this];ReturnValue;taint;manual" int out = 0; JSONArray in = (JSONArray)source(); out = in.optInt(0, 0); sink(out); // $ hasTaintFlow } { - // "org.json;JSONArray;false;optInt;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONArray;false;optInt;;;Argument[this];ReturnValue;taint;manual" int out = 0; JSONArray in = (JSONArray)source(); out = in.optInt(0); @@ -513,28 +513,28 @@ public class Test { sink(out); // $ hasValueFlow } { - // "org.json;JSONArray;false;optJSONArray;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONArray;false;optJSONArray;;;Argument[this];ReturnValue;taint;manual" JSONArray out = null; JSONArray in = (JSONArray)source(); out = in.optJSONArray(0); sink(out); // $ hasTaintFlow } { - // "org.json;JSONArray;false;optJSONObject;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONArray;false;optJSONObject;;;Argument[this];ReturnValue;taint;manual" JSONObject out = null; JSONArray in = (JSONArray)source(); out = in.optJSONObject(0); sink(out); // $ hasTaintFlow } { - // "org.json;JSONArray;false;optLong;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONArray;false;optLong;;;Argument[this];ReturnValue;taint;manual" long out = 0L; JSONArray in = (JSONArray)source(); out = in.optLong(0, 0L); sink(out); // $ hasTaintFlow } { - // "org.json;JSONArray;false;optLong;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONArray;false;optLong;;;Argument[this];ReturnValue;taint;manual" long out = 0L; JSONArray in = (JSONArray)source(); out = in.optLong(0); @@ -549,14 +549,14 @@ public class Test { sink(out); // $ hasValueFlow } { - // "org.json;JSONArray;false;optNumber;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONArray;false;optNumber;;;Argument[this];ReturnValue;taint;manual" Number out = null; JSONArray in = (JSONArray)source(); out = in.optNumber(0, null); sink(out); // $ hasTaintFlow } { - // "org.json;JSONArray;false;optNumber;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONArray;false;optNumber;;;Argument[this];ReturnValue;taint;manual" Number out = null; JSONArray in = (JSONArray)source(); out = in.optNumber(0); @@ -571,28 +571,28 @@ public class Test { sink(out); // $ hasValueFlow } { - // "org.json;JSONArray;false;optQuery;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONArray;false;optQuery;;;Argument[this];ReturnValue;taint;manual" Object out = null; JSONArray in = (JSONArray)source(); out = in.optQuery((String)null); sink(out); // $ hasTaintFlow } { - // "org.json;JSONArray;false;optQuery;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONArray;false;optQuery;;;Argument[this];ReturnValue;taint;manual" Object out = null; JSONArray in = (JSONArray)source(); out = in.optQuery((JSONPointer)null); sink(out); // $ hasTaintFlow } { - // "org.json;JSONArray;false;optString;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONArray;false;optString;;;Argument[this];ReturnValue;taint;manual" String out = null; JSONArray in = (JSONArray)source(); out = in.optString(0, null); sink(out); // $ hasTaintFlow } { - // "org.json;JSONArray;false;optString;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONArray;false;optString;;;Argument[this];ReturnValue;taint;manual" String out = null; JSONArray in = (JSONArray)source(); out = in.optString(0); @@ -607,322 +607,322 @@ public class Test { sink(out); // $ hasValueFlow } { - // "org.json;JSONArray;false;put;(Collection);;Element of Argument[0];Argument[-1];taint;manual" + // "org.json;JSONArray;false;put;(Collection);;Element of Argument[0];Argument[this];taint;manual" JSONArray out = null; Collection in = (Collection)newWithElement(source()); out.put(in); sink(out); // $ hasTaintFlow } { - // "org.json;JSONArray;false;put;(Map);;MapKey of Argument[0];Argument[-1];taint;manual" + // "org.json;JSONArray;false;put;(Map);;MapKey of Argument[0];Argument[this];taint;manual" JSONArray out = null; Map in = (Map)newWithMapKey(source()); out.put(in); sink(out); // $ hasTaintFlow } { - // "org.json;JSONArray;false;put;(Map);;MapValue of Argument[0];Argument[-1];taint;manual" + // "org.json;JSONArray;false;put;(Map);;MapValue of Argument[0];Argument[this];taint;manual" JSONArray out = null; Map in = (Map)newWithMapValue(source()); out.put(in); sink(out); // $ hasTaintFlow } { - // "org.json;JSONArray;false;put;(Object);;Argument[0];Argument[-1];taint;manual" + // "org.json;JSONArray;false;put;(Object);;Argument[0];Argument[this];taint;manual" JSONArray out = null; Object in = (Object)source(); out.put(in); sink(out); // $ hasTaintFlow } { - // "org.json;JSONArray;false;put;(boolean);;Argument[0];Argument[-1];taint;manual" + // "org.json;JSONArray;false;put;(boolean);;Argument[0];Argument[this];taint;manual" JSONArray out = null; boolean in = (boolean)source(); out.put(in); sink(out); // $ hasTaintFlow } { - // "org.json;JSONArray;false;put;(double);;Argument[0];Argument[-1];taint;manual" + // "org.json;JSONArray;false;put;(double);;Argument[0];Argument[this];taint;manual" JSONArray out = null; double in = (double)source(); out.put(in); sink(out); // $ hasTaintFlow } { - // "org.json;JSONArray;false;put;(float);;Argument[0];Argument[-1];taint;manual" + // "org.json;JSONArray;false;put;(float);;Argument[0];Argument[this];taint;manual" JSONArray out = null; float in = (float)source(); out.put(in); sink(out); // $ hasTaintFlow } { - // "org.json;JSONArray;false;put;(int);;Argument[0];Argument[-1];taint;manual" + // "org.json;JSONArray;false;put;(int);;Argument[0];Argument[this];taint;manual" JSONArray out = null; int in = (int)source(); out.put(in); sink(out); // $ hasTaintFlow } { - // "org.json;JSONArray;false;put;(int,Collection);;Element of Argument[1];Argument[-1];taint;manual" + // "org.json;JSONArray;false;put;(int,Collection);;Element of Argument[1];Argument[this];taint;manual" JSONArray out = null; Collection in = (Collection)newWithElement(source()); out.put(0, in); sink(out); // $ hasTaintFlow } { - // "org.json;JSONArray;false;put;(int,Map);;MapKey of Argument[1];Argument[-1];taint;manual" + // "org.json;JSONArray;false;put;(int,Map);;MapKey of Argument[1];Argument[this];taint;manual" JSONArray out = null; Map in = (Map)newWithMapKey(source()); out.put(0, in); sink(out); // $ hasTaintFlow } { - // "org.json;JSONArray;false;put;(int,Map);;MapValue of Argument[1];Argument[-1];taint;manual" + // "org.json;JSONArray;false;put;(int,Map);;MapValue of Argument[1];Argument[this];taint;manual" JSONArray out = null; Map in = (Map)newWithMapValue(source()); out.put(0, in); sink(out); // $ hasTaintFlow } { - // "org.json;JSONArray;false;put;(int,Object);;Argument[1];Argument[-1];taint;manual" + // "org.json;JSONArray;false;put;(int,Object);;Argument[1];Argument[this];taint;manual" JSONArray out = null; Object in = (Object)source(); out.put(0, in); sink(out); // $ hasTaintFlow } { - // "org.json;JSONArray;false;put;(int,boolean);;Argument[1];Argument[-1];taint;manual" + // "org.json;JSONArray;false;put;(int,boolean);;Argument[1];Argument[this];taint;manual" JSONArray out = null; boolean in = (boolean)source(); out.put(0, in); sink(out); // $ hasTaintFlow } { - // "org.json;JSONArray;false;put;(int,double);;Argument[1];Argument[-1];taint;manual" + // "org.json;JSONArray;false;put;(int,double);;Argument[1];Argument[this];taint;manual" JSONArray out = null; double in = (double)source(); out.put(0, in); sink(out); // $ hasTaintFlow } { - // "org.json;JSONArray;false;put;(int,float);;Argument[1];Argument[-1];taint;manual" + // "org.json;JSONArray;false;put;(int,float);;Argument[1];Argument[this];taint;manual" JSONArray out = null; float in = (float)source(); out.put(0, in); sink(out); // $ hasTaintFlow } { - // "org.json;JSONArray;false;put;(int,int);;Argument[1];Argument[-1];taint;manual" + // "org.json;JSONArray;false;put;(int,int);;Argument[1];Argument[this];taint;manual" JSONArray out = null; int in = (int)source(); out.put(0, in); sink(out); // $ hasTaintFlow } { - // "org.json;JSONArray;false;put;(int,long);;Argument[1];Argument[-1];taint;manual" + // "org.json;JSONArray;false;put;(int,long);;Argument[1];Argument[this];taint;manual" JSONArray out = null; long in = (long)source(); out.put(0, in); sink(out); // $ hasTaintFlow } { - // "org.json;JSONArray;false;put;(long);;Argument[0];Argument[-1];taint;manual" + // "org.json;JSONArray;false;put;(long);;Argument[0];Argument[this];taint;manual" JSONArray out = null; long in = (long)source(); out.put(in); sink(out); // $ hasTaintFlow } { - // "org.json;JSONArray;false;put;;;Argument[-1];ReturnValue;value;manual" + // "org.json;JSONArray;false;put;;;Argument[this];ReturnValue;value;manual" JSONArray out = null; JSONArray in = (JSONArray)source(); out = in.put(false); sink(out); // $ hasValueFlow } { - // "org.json;JSONArray;false;put;;;Argument[-1];ReturnValue;value;manual" + // "org.json;JSONArray;false;put;;;Argument[this];ReturnValue;value;manual" JSONArray out = null; JSONArray in = (JSONArray)source(); out = in.put(0L); sink(out); // $ hasValueFlow } { - // "org.json;JSONArray;false;put;;;Argument[-1];ReturnValue;value;manual" + // "org.json;JSONArray;false;put;;;Argument[this];ReturnValue;value;manual" JSONArray out = null; JSONArray in = (JSONArray)source(); out = in.put(0.0f); sink(out); // $ hasValueFlow } { - // "org.json;JSONArray;false;put;;;Argument[-1];ReturnValue;value;manual" + // "org.json;JSONArray;false;put;;;Argument[this];ReturnValue;value;manual" JSONArray out = null; JSONArray in = (JSONArray)source(); out = in.put(0.0); sink(out); // $ hasValueFlow } { - // "org.json;JSONArray;false;put;;;Argument[-1];ReturnValue;value;manual" + // "org.json;JSONArray;false;put;;;Argument[this];ReturnValue;value;manual" JSONArray out = null; JSONArray in = (JSONArray)source(); out = in.put(0, false); sink(out); // $ hasValueFlow } { - // "org.json;JSONArray;false;put;;;Argument[-1];ReturnValue;value;manual" + // "org.json;JSONArray;false;put;;;Argument[this];ReturnValue;value;manual" JSONArray out = null; JSONArray in = (JSONArray)source(); out = in.put(0, 0L); sink(out); // $ hasValueFlow } { - // "org.json;JSONArray;false;put;;;Argument[-1];ReturnValue;value;manual" + // "org.json;JSONArray;false;put;;;Argument[this];ReturnValue;value;manual" JSONArray out = null; JSONArray in = (JSONArray)source(); out = in.put(0, 0.0f); sink(out); // $ hasValueFlow } { - // "org.json;JSONArray;false;put;;;Argument[-1];ReturnValue;value;manual" + // "org.json;JSONArray;false;put;;;Argument[this];ReturnValue;value;manual" JSONArray out = null; JSONArray in = (JSONArray)source(); out = in.put(0, 0.0); sink(out); // $ hasValueFlow } { - // "org.json;JSONArray;false;put;;;Argument[-1];ReturnValue;value;manual" + // "org.json;JSONArray;false;put;;;Argument[this];ReturnValue;value;manual" JSONArray out = null; JSONArray in = (JSONArray)source(); out = in.put(0, 0); sink(out); // $ hasValueFlow } { - // "org.json;JSONArray;false;put;;;Argument[-1];ReturnValue;value;manual" + // "org.json;JSONArray;false;put;;;Argument[this];ReturnValue;value;manual" JSONArray out = null; JSONArray in = (JSONArray)source(); out = in.put(0, (Object)null); sink(out); // $ hasValueFlow } { - // "org.json;JSONArray;false;put;;;Argument[-1];ReturnValue;value;manual" + // "org.json;JSONArray;false;put;;;Argument[this];ReturnValue;value;manual" JSONArray out = null; JSONArray in = (JSONArray)source(); out = in.put(0, (Map)null); sink(out); // $ hasValueFlow } { - // "org.json;JSONArray;false;put;;;Argument[-1];ReturnValue;value;manual" + // "org.json;JSONArray;false;put;;;Argument[this];ReturnValue;value;manual" JSONArray out = null; JSONArray in = (JSONArray)source(); out = in.put(0, (Collection)null); sink(out); // $ hasValueFlow } { - // "org.json;JSONArray;false;put;;;Argument[-1];ReturnValue;value;manual" + // "org.json;JSONArray;false;put;;;Argument[this];ReturnValue;value;manual" JSONArray out = null; JSONArray in = (JSONArray)source(); out = in.put(0); sink(out); // $ hasValueFlow } { - // "org.json;JSONArray;false;put;;;Argument[-1];ReturnValue;value;manual" + // "org.json;JSONArray;false;put;;;Argument[this];ReturnValue;value;manual" JSONArray out = null; JSONArray in = (JSONArray)source(); out = in.put((Object)null); sink(out); // $ hasValueFlow } { - // "org.json;JSONArray;false;put;;;Argument[-1];ReturnValue;value;manual" + // "org.json;JSONArray;false;put;;;Argument[this];ReturnValue;value;manual" JSONArray out = null; JSONArray in = (JSONArray)source(); out = in.put((Map)null); sink(out); // $ hasValueFlow } { - // "org.json;JSONArray;false;put;;;Argument[-1];ReturnValue;value;manual" + // "org.json;JSONArray;false;put;;;Argument[this];ReturnValue;value;manual" JSONArray out = null; JSONArray in = (JSONArray)source(); out = in.put((Collection)null); sink(out); // $ hasValueFlow } { - // "org.json;JSONArray;false;putAll;(Collection);;Element of Argument[0];Argument[-1];taint;manual" + // "org.json;JSONArray;false;putAll;(Collection);;Element of Argument[0];Argument[this];taint;manual" JSONArray out = null; Collection in = (Collection)newWithElement(source()); out.putAll(in); sink(out); // $ hasTaintFlow } { - // "org.json;JSONArray;false;putAll;(Iterable);;Element of Argument[0];Argument[-1];taint;manual" + // "org.json;JSONArray;false;putAll;(Iterable);;Element of Argument[0];Argument[this];taint;manual" JSONArray out = null; Iterable in = (Iterable)newWithElement(source()); out.putAll(in); sink(out); // $ hasTaintFlow } { - // "org.json;JSONArray;false;putAll;(JSONArray);;Argument[0];Argument[-1];taint;manual" + // "org.json;JSONArray;false;putAll;(JSONArray);;Argument[0];Argument[this];taint;manual" JSONArray out = null; JSONArray in = (JSONArray)source(); out.putAll(in); sink(out); // $ hasTaintFlow } { - // "org.json;JSONArray;false;putAll;(Object);;Argument[0];Argument[-1];taint;manual" + // "org.json;JSONArray;false;putAll;(Object);;Argument[0];Argument[this];taint;manual" JSONArray out = null; Object in = (Object)source(); out.putAll(in); sink(out); // $ hasTaintFlow } { - // "org.json;JSONArray;false;putAll;;;Argument[-1];ReturnValue;value;manual" + // "org.json;JSONArray;false;putAll;;;Argument[this];ReturnValue;value;manual" JSONArray out = null; JSONArray in = (JSONArray)source(); out = in.putAll((Object)null); sink(out); // $ hasValueFlow } { - // "org.json;JSONArray;false;putAll;;;Argument[-1];ReturnValue;value;manual" + // "org.json;JSONArray;false;putAll;;;Argument[this];ReturnValue;value;manual" JSONArray out = null; JSONArray in = (JSONArray)source(); out = in.putAll((JSONArray)null); sink(out); // $ hasValueFlow } { - // "org.json;JSONArray;false;putAll;;;Argument[-1];ReturnValue;value;manual" + // "org.json;JSONArray;false;putAll;;;Argument[this];ReturnValue;value;manual" JSONArray out = null; JSONArray in = (JSONArray)source(); out = in.putAll((Iterable)null); sink(out); // $ hasValueFlow } { - // "org.json;JSONArray;false;putAll;;;Argument[-1];ReturnValue;value;manual" + // "org.json;JSONArray;false;putAll;;;Argument[this];ReturnValue;value;manual" JSONArray out = null; JSONArray in = (JSONArray)source(); out = in.putAll((Collection)null); sink(out); // $ hasValueFlow } { - // "org.json;JSONArray;false;query;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONArray;false;query;;;Argument[this];ReturnValue;taint;manual" Object out = null; JSONArray in = (JSONArray)source(); out = in.query((String)null); sink(out); // $ hasTaintFlow } { - // "org.json;JSONArray;false;query;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONArray;false;query;;;Argument[this];ReturnValue;taint;manual" Object out = null; JSONArray in = (JSONArray)source(); out = in.query((JSONPointer)null); sink(out); // $ hasTaintFlow } { - // "org.json;JSONArray;false;remove;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONArray;false;remove;;;Argument[this];ReturnValue;taint;manual" Object out = null; JSONArray in = (JSONArray)source(); out = in.remove(0); sink(out); // $ hasTaintFlow } { - // "org.json;JSONArray;false;toJSONObject;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONArray;false;toJSONObject;;;Argument[this];ReturnValue;taint;manual" JSONObject out = null; JSONArray in = (JSONArray)source(); out = in.toJSONObject(null); @@ -945,14 +945,14 @@ public class Test { sink(out); // $ hasTaintFlow } { - // "org.json;JSONArray;false;write;;;Argument[-1];Argument[0];taint;manual" + // "org.json;JSONArray;false;write;;;Argument[this];Argument[0];taint;manual" Writer out = null; JSONArray in = (JSONArray)source(); in.write(out, 0, 0); sink(out); // $ hasTaintFlow } { - // "org.json;JSONArray;false;write;;;Argument[-1];Argument[0];taint;manual" + // "org.json;JSONArray;false;write;;;Argument[this];Argument[0];taint;manual" Writer out = null; JSONArray in = (JSONArray)source(); in.write(out); @@ -1045,112 +1045,112 @@ public class Test { sink(out); // $ hasTaintFlow } { - // "org.json;JSONObject;false;JSONObject;(JSONObject,String[]);;Argument[0];Argument[-1];taint;manual" + // "org.json;JSONObject;false;JSONObject;(JSONObject,String[]);;Argument[0];Argument[this];taint;manual" JSONObject out = null; JSONObject in = (JSONObject)source(); out = new JSONObject(in, (String[])null); sink(out); // $ hasTaintFlow } { - // "org.json;JSONObject;false;JSONObject;(JSONObject,String[]);;ArrayElement of Argument[1];Argument[-1];taint;manual" + // "org.json;JSONObject;false;JSONObject;(JSONObject,String[]);;ArrayElement of Argument[1];Argument[this];taint;manual" JSONObject out = null; String[] in = (String[])newWithArrayElement(source()); out = new JSONObject((JSONObject)null, in); sink(out); // $ hasTaintFlow } { - // "org.json;JSONObject;false;JSONObject;(JSONTokener);;Argument[0];Argument[-1];taint;manual" + // "org.json;JSONObject;false;JSONObject;(JSONTokener);;Argument[0];Argument[this];taint;manual" JSONObject out = null; JSONTokener in = (JSONTokener)source(); out = new JSONObject(in); sink(out); // $ hasTaintFlow } { - // "org.json;JSONObject;false;JSONObject;(Map);;MapKey of Argument[0];Argument[-1];taint;manual" + // "org.json;JSONObject;false;JSONObject;(Map);;MapKey of Argument[0];Argument[this];taint;manual" JSONObject out = null; Map in = (Map)newWithMapKey(source()); out = new JSONObject(in); sink(out); // $ hasTaintFlow } { - // "org.json;JSONObject;false;JSONObject;(Map);;MapValue of Argument[0];Argument[-1];taint;manual" + // "org.json;JSONObject;false;JSONObject;(Map);;MapValue of Argument[0];Argument[this];taint;manual" JSONObject out = null; Map in = (Map)newWithMapValue(source()); out = new JSONObject(in); sink(out); // $ hasTaintFlow } { - // "org.json;JSONObject;false;JSONObject;(Object);;Argument[0];Argument[-1];taint;manual" + // "org.json;JSONObject;false;JSONObject;(Object);;Argument[0];Argument[this];taint;manual" JSONObject out = null; Object in = (Object)source(); out = new JSONObject(in); sink(out); // $ hasTaintFlow } { - // "org.json;JSONObject;false;JSONObject;(Object,String[]);;Argument[0];Argument[-1];taint;manual" + // "org.json;JSONObject;false;JSONObject;(Object,String[]);;Argument[0];Argument[this];taint;manual" JSONObject out = null; Object in = (Object)source(); out = new JSONObject(in, (String[])null); sink(out); // $ hasTaintFlow } { - // "org.json;JSONObject;false;JSONObject;(Object,String[]);;ArrayElement of Argument[1];Argument[-1];taint;manual" + // "org.json;JSONObject;false;JSONObject;(Object,String[]);;ArrayElement of Argument[1];Argument[this];taint;manual" JSONObject out = null; String[] in = (String[])newWithArrayElement(source()); out = new JSONObject((Object)null, in); sink(out); // $ hasTaintFlow } { - // "org.json;JSONObject;false;JSONObject;(String);;Argument[0];Argument[-1];taint;manual" + // "org.json;JSONObject;false;JSONObject;(String);;Argument[0];Argument[this];taint;manual" JSONObject out = null; String in = (String)source(); out = new JSONObject(in); sink(out); // $ hasTaintFlow } { - // "org.json;JSONObject;false;JSONObject;(String,Locale);;Argument[0];Argument[-1];taint;manual" + // "org.json;JSONObject;false;JSONObject;(String,Locale);;Argument[0];Argument[this];taint;manual" JSONObject out = null; String in = (String)source(); out = new JSONObject(in, (Locale)null); sink(out); // $ hasTaintFlow } { - // "org.json;JSONObject;false;accumulate;;;Argument[-1];ReturnValue;value;manual" + // "org.json;JSONObject;false;accumulate;;;Argument[this];ReturnValue;value;manual" JSONObject out = null; JSONObject in = (JSONObject)source(); out = in.accumulate(null, null); sink(out); // $ hasValueFlow } { - // "org.json;JSONObject;false;accumulate;;;Argument[0..1];Argument[-1];taint;manual" + // "org.json;JSONObject;false;accumulate;;;Argument[0..1];Argument[this];taint;manual" JSONObject out = null; String in = (String)source(); out.accumulate(in, null); sink(out); // $ hasTaintFlow } { - // "org.json;JSONObject;false;accumulate;;;Argument[0..1];Argument[-1];taint;manual" + // "org.json;JSONObject;false;accumulate;;;Argument[0..1];Argument[this];taint;manual" JSONObject out = null; Object in = (Object)source(); out.accumulate(null, in); sink(out); // $ hasTaintFlow } { - // "org.json;JSONObject;false;append;;;Argument[-1];ReturnValue;value;manual" + // "org.json;JSONObject;false;append;;;Argument[this];ReturnValue;value;manual" JSONObject out = null; JSONObject in = (JSONObject)source(); out = in.append(null, null); sink(out); // $ hasValueFlow } { - // "org.json;JSONObject;false;append;;;Argument[0..1];Argument[-1];taint;manual" + // "org.json;JSONObject;false;append;;;Argument[0..1];Argument[this];taint;manual" JSONObject out = null; String in = (String)source(); out.append(in, null); sink(out); // $ hasTaintFlow } { - // "org.json;JSONObject;false;append;;;Argument[0..1];Argument[-1];taint;manual" + // "org.json;JSONObject;false;append;;;Argument[0..1];Argument[this];taint;manual" JSONObject out = null; Object in = (Object)source(); out.append(null, in); @@ -1164,77 +1164,77 @@ public class Test { sink(out); // $ hasTaintFlow } { - // "org.json;JSONObject;false;get;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONObject;false;get;;;Argument[this];ReturnValue;taint;manual" Object out = null; JSONObject in = (JSONObject)source(); out = in.get(null); sink(out); // $ hasTaintFlow } { - // "org.json;JSONObject;false;getBigDecimal;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONObject;false;getBigDecimal;;;Argument[this];ReturnValue;taint;manual" BigDecimal out = null; JSONObject in = (JSONObject)source(); out = in.getBigDecimal(null); sink(out); // $ hasTaintFlow } { - // "org.json;JSONObject;false;getBigInteger;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONObject;false;getBigInteger;;;Argument[this];ReturnValue;taint;manual" BigInteger out = null; JSONObject in = (JSONObject)source(); out = in.getBigInteger(null); sink(out); // $ hasTaintFlow } { - // "org.json;JSONObject;false;getBoolean;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONObject;false;getBoolean;;;Argument[this];ReturnValue;taint;manual" boolean out = false; JSONObject in = (JSONObject)source(); out = in.getBoolean(null); sink(out); // $ hasTaintFlow } { - // "org.json;JSONObject;false;getDouble;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONObject;false;getDouble;;;Argument[this];ReturnValue;taint;manual" double out = 0.0; JSONObject in = (JSONObject)source(); out = in.getDouble(null); sink(out); // $ hasTaintFlow } { - // "org.json;JSONObject;false;getEnum;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONObject;false;getEnum;;;Argument[this];ReturnValue;taint;manual" Enum out = null; JSONObject in = (JSONObject)source(); out = in.getEnum(null, null); sink(out); // $ hasTaintFlow } { - // "org.json;JSONObject;false;getFloat;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONObject;false;getFloat;;;Argument[this];ReturnValue;taint;manual" float out = 0.0f; JSONObject in = (JSONObject)source(); out = in.getFloat(null); sink(out); // $ hasTaintFlow } { - // "org.json;JSONObject;false;getInt;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONObject;false;getInt;;;Argument[this];ReturnValue;taint;manual" int out = 0; JSONObject in = (JSONObject)source(); out = in.getInt(null); sink(out); // $ hasTaintFlow } { - // "org.json;JSONObject;false;getJSONArray;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONObject;false;getJSONArray;;;Argument[this];ReturnValue;taint;manual" JSONArray out = null; JSONObject in = (JSONObject)source(); out = in.getJSONArray(null); sink(out); // $ hasTaintFlow } { - // "org.json;JSONObject;false;getJSONObject;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONObject;false;getJSONObject;;;Argument[this];ReturnValue;taint;manual" JSONObject out = null; JSONObject in = (JSONObject)source(); out = in.getJSONObject(null); sink(out); // $ hasTaintFlow } { - // "org.json;JSONObject;false;getLong;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONObject;false;getLong;;;Argument[this];ReturnValue;taint;manual" long out = 0L; JSONObject in = (JSONObject)source(); out = in.getLong(null); @@ -1255,49 +1255,49 @@ public class Test { sink(getArrayElement(out)); // $ hasTaintFlow } { - // "org.json;JSONObject;false;getNumber;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONObject;false;getNumber;;;Argument[this];ReturnValue;taint;manual" Number out = null; JSONObject in = (JSONObject)source(); out = in.getNumber(null); sink(out); // $ hasTaintFlow } { - // "org.json;JSONObject;false;getString;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONObject;false;getString;;;Argument[this];ReturnValue;taint;manual" String out = null; JSONObject in = (JSONObject)source(); out = in.getString(null); sink(out); // $ hasTaintFlow } { - // "org.json;JSONObject;false;increment;;;Argument[-1];ReturnValue;value;manual" + // "org.json;JSONObject;false;increment;;;Argument[this];ReturnValue;value;manual" JSONObject out = null; JSONObject in = (JSONObject)source(); out = in.increment(null); sink(out); // $ hasValueFlow } { - // "org.json;JSONObject;false;increment;;;Argument[0];Argument[-1];taint;manual" + // "org.json;JSONObject;false;increment;;;Argument[0];Argument[this];taint;manual" JSONObject out = null; String in = (String)source(); out.increment(in); sink(out); // $ hasTaintFlow } { - // "org.json;JSONObject;false;keySet;;;Argument[-1];Element of ReturnValue;taint;manual" + // "org.json;JSONObject;false;keySet;;;Argument[this];Element of ReturnValue;taint;manual" Set out = null; JSONObject in = (JSONObject)source(); out = in.keySet(); sink(getElement(out)); // $ hasTaintFlow } { - // "org.json;JSONObject;false;keys;;;Argument[-1];Element of ReturnValue;taint;manual" + // "org.json;JSONObject;false;keys;;;Argument[this];Element of ReturnValue;taint;manual" Iterator out = null; JSONObject in = (JSONObject)source(); out = in.keys(); sink(getElement(out)); // $ hasTaintFlow } { - // "org.json;JSONObject;false;names;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONObject;false;names;;;Argument[this];ReturnValue;taint;manual" JSONArray out = null; JSONObject in = (JSONObject)source(); out = in.names(); @@ -1311,14 +1311,14 @@ public class Test { sink(out); // $ hasTaintFlow } { - // "org.json;JSONObject;false;opt;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONObject;false;opt;;;Argument[this];ReturnValue;taint;manual" Object out = null; JSONObject in = (JSONObject)source(); out = in.opt(null); sink(out); // $ hasTaintFlow } { - // "org.json;JSONObject;false;optBigDecimal;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONObject;false;optBigDecimal;;;Argument[this];ReturnValue;taint;manual" BigDecimal out = null; JSONObject in = (JSONObject)source(); out = in.optBigDecimal(null, null); @@ -1333,7 +1333,7 @@ public class Test { sink(out); // $ hasValueFlow } { - // "org.json;JSONObject;false;optBigInteger;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONObject;false;optBigInteger;;;Argument[this];ReturnValue;taint;manual" BigInteger out = null; JSONObject in = (JSONObject)source(); out = in.optBigInteger(null, null); @@ -1348,14 +1348,14 @@ public class Test { sink(out); // $ hasValueFlow } { - // "org.json;JSONObject;false;optBoolean;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONObject;false;optBoolean;;;Argument[this];ReturnValue;taint;manual" boolean out = false; JSONObject in = (JSONObject)source(); out = in.optBoolean(null, false); sink(out); // $ hasTaintFlow } { - // "org.json;JSONObject;false;optBoolean;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONObject;false;optBoolean;;;Argument[this];ReturnValue;taint;manual" boolean out = false; JSONObject in = (JSONObject)source(); out = in.optBoolean(null); @@ -1370,14 +1370,14 @@ public class Test { sink(out); // $ hasValueFlow } { - // "org.json;JSONObject;false;optDouble;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONObject;false;optDouble;;;Argument[this];ReturnValue;taint;manual" double out = 0.0; JSONObject in = (JSONObject)source(); out = in.optDouble(null, 0.0); sink(out); // $ hasTaintFlow } { - // "org.json;JSONObject;false;optDouble;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONObject;false;optDouble;;;Argument[this];ReturnValue;taint;manual" double out = 0.0; JSONObject in = (JSONObject)source(); out = in.optDouble(null); @@ -1392,14 +1392,14 @@ public class Test { sink(out); // $ hasValueFlow } { - // "org.json;JSONObject;false;optEnum;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONObject;false;optEnum;;;Argument[this];ReturnValue;taint;manual" Enum out = null; JSONObject in = (JSONObject)source(); out = in.optEnum(null, null, null); sink(out); // $ hasTaintFlow } { - // "org.json;JSONObject;false;optEnum;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONObject;false;optEnum;;;Argument[this];ReturnValue;taint;manual" Enum out = null; JSONObject in = (JSONObject)source(); out = in.optEnum(null, null); @@ -1414,14 +1414,14 @@ public class Test { sink(out); // $ hasValueFlow } { - // "org.json;JSONObject;false;optFloat;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONObject;false;optFloat;;;Argument[this];ReturnValue;taint;manual" float out = 0.0f; JSONObject in = (JSONObject)source(); out = in.optFloat(null, 0.0f); sink(out); // $ hasTaintFlow } { - // "org.json;JSONObject;false;optFloat;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONObject;false;optFloat;;;Argument[this];ReturnValue;taint;manual" float out = 0.0f; JSONObject in = (JSONObject)source(); out = in.optFloat(null); @@ -1436,14 +1436,14 @@ public class Test { sink(out); // $ hasValueFlow } { - // "org.json;JSONObject;false;optInt;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONObject;false;optInt;;;Argument[this];ReturnValue;taint;manual" int out = 0; JSONObject in = (JSONObject)source(); out = in.optInt(null, 0); sink(out); // $ hasTaintFlow } { - // "org.json;JSONObject;false;optInt;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONObject;false;optInt;;;Argument[this];ReturnValue;taint;manual" int out = 0; JSONObject in = (JSONObject)source(); out = in.optInt(null); @@ -1458,28 +1458,28 @@ public class Test { sink(out); // $ hasValueFlow } { - // "org.json;JSONObject;false;optJSONArray;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONObject;false;optJSONArray;;;Argument[this];ReturnValue;taint;manual" JSONArray out = null; JSONObject in = (JSONObject)source(); out = in.optJSONArray(null); sink(out); // $ hasTaintFlow } { - // "org.json;JSONObject;false;optJSONObject;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONObject;false;optJSONObject;;;Argument[this];ReturnValue;taint;manual" JSONObject out = null; JSONObject in = (JSONObject)source(); out = in.optJSONObject(null); sink(out); // $ hasTaintFlow } { - // "org.json;JSONObject;false;optLong;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONObject;false;optLong;;;Argument[this];ReturnValue;taint;manual" long out = 0L; JSONObject in = (JSONObject)source(); out = in.optLong(null, 0L); sink(out); // $ hasTaintFlow } { - // "org.json;JSONObject;false;optLong;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONObject;false;optLong;;;Argument[this];ReturnValue;taint;manual" long out = 0L; JSONObject in = (JSONObject)source(); out = in.optLong(null); @@ -1494,14 +1494,14 @@ public class Test { sink(out); // $ hasValueFlow } { - // "org.json;JSONObject;false;optNumber;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONObject;false;optNumber;;;Argument[this];ReturnValue;taint;manual" Number out = null; JSONObject in = (JSONObject)source(); out = in.optNumber(null, null); sink(out); // $ hasTaintFlow } { - // "org.json;JSONObject;false;optNumber;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONObject;false;optNumber;;;Argument[this];ReturnValue;taint;manual" Number out = null; JSONObject in = (JSONObject)source(); out = in.optNumber(null); @@ -1516,28 +1516,28 @@ public class Test { sink(out); // $ hasValueFlow } { - // "org.json;JSONObject;false;optQuery;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONObject;false;optQuery;;;Argument[this];ReturnValue;taint;manual" Object out = null; JSONObject in = (JSONObject)source(); out = in.optQuery((String)null); sink(out); // $ hasTaintFlow } { - // "org.json;JSONObject;false;optQuery;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONObject;false;optQuery;;;Argument[this];ReturnValue;taint;manual" Object out = null; JSONObject in = (JSONObject)source(); out = in.optQuery((JSONPointer)null); sink(out); // $ hasTaintFlow } { - // "org.json;JSONObject;false;optString;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONObject;false;optString;;;Argument[this];ReturnValue;taint;manual" String out = null; JSONObject in = (JSONObject)source(); out = in.optString(null, null); sink(out); // $ hasTaintFlow } { - // "org.json;JSONObject;false;optString;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONObject;false;optString;;;Argument[this];ReturnValue;taint;manual" String out = null; JSONObject in = (JSONObject)source(); out = in.optString(null); @@ -1552,231 +1552,231 @@ public class Test { sink(out); // $ hasValueFlow } { - // "org.json;JSONObject;false;put;(String,Collection);;Argument[0];Argument[-1];taint;manual" + // "org.json;JSONObject;false;put;(String,Collection);;Argument[0];Argument[this];taint;manual" JSONObject out = null; String in = (String)source(); out.put(in, (Collection)null); sink(out); // $ hasTaintFlow } { - // "org.json;JSONObject;false;put;(String,Collection);;Element of Argument[1];Argument[-1];taint;manual" + // "org.json;JSONObject;false;put;(String,Collection);;Element of Argument[1];Argument[this];taint;manual" JSONObject out = null; Collection in = (Collection)newWithElement(source()); out.put((String)null, in); sink(out); // $ hasTaintFlow } { - // "org.json;JSONObject;false;put;(String,Map);;Argument[0];Argument[-1];taint;manual" + // "org.json;JSONObject;false;put;(String,Map);;Argument[0];Argument[this];taint;manual" JSONObject out = null; String in = (String)source(); out.put(in, (Map)null); sink(out); // $ hasTaintFlow } { - // "org.json;JSONObject;false;put;(String,Map);;MapKey of Argument[1];Argument[-1];taint;manual" + // "org.json;JSONObject;false;put;(String,Map);;MapKey of Argument[1];Argument[this];taint;manual" JSONObject out = null; Map in = (Map)newWithMapKey(source()); out.put((String)null, in); sink(out); // $ hasTaintFlow } { - // "org.json;JSONObject;false;put;(String,Map);;MapValue of Argument[1];Argument[-1];taint;manual" + // "org.json;JSONObject;false;put;(String,Map);;MapValue of Argument[1];Argument[this];taint;manual" JSONObject out = null; Map in = (Map)newWithMapValue(source()); out.put((String)null, in); sink(out); // $ hasTaintFlow } { - // "org.json;JSONObject;false;put;(String,Object);;Argument[0];Argument[-1];taint;manual" + // "org.json;JSONObject;false;put;(String,Object);;Argument[0];Argument[this];taint;manual" JSONObject out = null; String in = (String)source(); out.put(in, (Object)null); sink(out); // $ hasTaintFlow } { - // "org.json;JSONObject;false;put;(String,Object);;Argument[1];Argument[-1];taint;manual" + // "org.json;JSONObject;false;put;(String,Object);;Argument[1];Argument[this];taint;manual" JSONObject out = null; Object in = (Object)source(); out.put((String)null, in); sink(out); // $ hasTaintFlow } { - // "org.json;JSONObject;false;put;(String,boolean);;Argument[0];Argument[-1];taint;manual" + // "org.json;JSONObject;false;put;(String,boolean);;Argument[0];Argument[this];taint;manual" JSONObject out = null; String in = (String)source(); out.put(in, false); sink(out); // $ hasTaintFlow } { - // "org.json;JSONObject;false;put;(String,boolean);;Argument[1];Argument[-1];taint;manual" + // "org.json;JSONObject;false;put;(String,boolean);;Argument[1];Argument[this];taint;manual" JSONObject out = null; boolean in = (boolean)source(); out.put((String)null, in); sink(out); // $ hasTaintFlow } { - // "org.json;JSONObject;false;put;(String,double);;Argument[0];Argument[-1];taint;manual" + // "org.json;JSONObject;false;put;(String,double);;Argument[0];Argument[this];taint;manual" JSONObject out = null; String in = (String)source(); out.put(in, 0.0); sink(out); // $ hasTaintFlow } { - // "org.json;JSONObject;false;put;(String,double);;Argument[1];Argument[-1];taint;manual" + // "org.json;JSONObject;false;put;(String,double);;Argument[1];Argument[this];taint;manual" JSONObject out = null; double in = (double)source(); out.put((String)null, in); sink(out); // $ hasTaintFlow } { - // "org.json;JSONObject;false;put;(String,float);;Argument[0];Argument[-1];taint;manual" + // "org.json;JSONObject;false;put;(String,float);;Argument[0];Argument[this];taint;manual" JSONObject out = null; String in = (String)source(); out.put(in, 0.0f); sink(out); // $ hasTaintFlow } { - // "org.json;JSONObject;false;put;(String,float);;Argument[1];Argument[-1];taint;manual" + // "org.json;JSONObject;false;put;(String,float);;Argument[1];Argument[this];taint;manual" JSONObject out = null; float in = (float)source(); out.put((String)null, in); sink(out); // $ hasTaintFlow } { - // "org.json;JSONObject;false;put;(String,int);;Argument[0];Argument[-1];taint;manual" + // "org.json;JSONObject;false;put;(String,int);;Argument[0];Argument[this];taint;manual" JSONObject out = null; String in = (String)source(); out.put(in, 0); sink(out); // $ hasTaintFlow } { - // "org.json;JSONObject;false;put;(String,int);;Argument[1];Argument[-1];taint;manual" + // "org.json;JSONObject;false;put;(String,int);;Argument[1];Argument[this];taint;manual" JSONObject out = null; int in = (int)source(); out.put((String)null, in); sink(out); // $ hasTaintFlow } { - // "org.json;JSONObject;false;put;(String,long);;Argument[0];Argument[-1];taint;manual" + // "org.json;JSONObject;false;put;(String,long);;Argument[0];Argument[this];taint;manual" JSONObject out = null; String in = (String)source(); out.put(in, 0L); sink(out); // $ hasTaintFlow } { - // "org.json;JSONObject;false;put;(String,long);;Argument[1];Argument[-1];taint;manual" + // "org.json;JSONObject;false;put;(String,long);;Argument[1];Argument[this];taint;manual" JSONObject out = null; long in = (long)source(); out.put((String)null, in); sink(out); // $ hasTaintFlow } { - // "org.json;JSONObject;false;put;;;Argument[-1];ReturnValue;value;manual" + // "org.json;JSONObject;false;put;;;Argument[this];ReturnValue;value;manual" JSONObject out = null; JSONObject in = (JSONObject)source(); out = in.put((String)null, false); sink(out); // $ hasValueFlow } { - // "org.json;JSONObject;false;put;;;Argument[-1];ReturnValue;value;manual" + // "org.json;JSONObject;false;put;;;Argument[this];ReturnValue;value;manual" JSONObject out = null; JSONObject in = (JSONObject)source(); out = in.put((String)null, 0L); sink(out); // $ hasValueFlow } { - // "org.json;JSONObject;false;put;;;Argument[-1];ReturnValue;value;manual" + // "org.json;JSONObject;false;put;;;Argument[this];ReturnValue;value;manual" JSONObject out = null; JSONObject in = (JSONObject)source(); out = in.put((String)null, 0.0f); sink(out); // $ hasValueFlow } { - // "org.json;JSONObject;false;put;;;Argument[-1];ReturnValue;value;manual" + // "org.json;JSONObject;false;put;;;Argument[this];ReturnValue;value;manual" JSONObject out = null; JSONObject in = (JSONObject)source(); out = in.put((String)null, 0.0); sink(out); // $ hasValueFlow } { - // "org.json;JSONObject;false;put;;;Argument[-1];ReturnValue;value;manual" + // "org.json;JSONObject;false;put;;;Argument[this];ReturnValue;value;manual" JSONObject out = null; JSONObject in = (JSONObject)source(); out = in.put((String)null, 0); sink(out); // $ hasValueFlow } { - // "org.json;JSONObject;false;put;;;Argument[-1];ReturnValue;value;manual" + // "org.json;JSONObject;false;put;;;Argument[this];ReturnValue;value;manual" JSONObject out = null; JSONObject in = (JSONObject)source(); out = in.put((String)null, (Object)null); sink(out); // $ hasValueFlow } { - // "org.json;JSONObject;false;put;;;Argument[-1];ReturnValue;value;manual" + // "org.json;JSONObject;false;put;;;Argument[this];ReturnValue;value;manual" JSONObject out = null; JSONObject in = (JSONObject)source(); out = in.put((String)null, (Map)null); sink(out); // $ hasValueFlow } { - // "org.json;JSONObject;false;put;;;Argument[-1];ReturnValue;value;manual" + // "org.json;JSONObject;false;put;;;Argument[this];ReturnValue;value;manual" JSONObject out = null; JSONObject in = (JSONObject)source(); out = in.put((String)null, (Collection)null); sink(out); // $ hasValueFlow } { - // "org.json;JSONObject;false;putOnce;;;Argument[-1];ReturnValue;value;manual" + // "org.json;JSONObject;false;putOnce;;;Argument[this];ReturnValue;value;manual" JSONObject out = null; JSONObject in = (JSONObject)source(); out = in.putOnce(null, null); sink(out); // $ hasValueFlow } { - // "org.json;JSONObject;false;putOnce;;;Argument[0..1];Argument[-1];taint;manual" + // "org.json;JSONObject;false;putOnce;;;Argument[0..1];Argument[this];taint;manual" JSONObject out = null; String in = (String)source(); out.putOnce(in, null); sink(out); // $ hasTaintFlow } { - // "org.json;JSONObject;false;putOnce;;;Argument[0..1];Argument[-1];taint;manual" + // "org.json;JSONObject;false;putOnce;;;Argument[0..1];Argument[this];taint;manual" JSONObject out = null; Object in = (Object)source(); out.putOnce(null, in); sink(out); // $ hasTaintFlow } { - // "org.json;JSONObject;false;putOpt;;;Argument[-1];ReturnValue;value;manual" + // "org.json;JSONObject;false;putOpt;;;Argument[this];ReturnValue;value;manual" JSONObject out = null; JSONObject in = (JSONObject)source(); out = in.putOpt(null, null); sink(out); // $ hasValueFlow } { - // "org.json;JSONObject;false;putOpt;;;Argument[0..1];Argument[-1];taint;manual" + // "org.json;JSONObject;false;putOpt;;;Argument[0..1];Argument[this];taint;manual" JSONObject out = null; String in = (String)source(); out.putOpt(in, null); sink(out); // $ hasTaintFlow } { - // "org.json;JSONObject;false;putOpt;;;Argument[0..1];Argument[-1];taint;manual" + // "org.json;JSONObject;false;putOpt;;;Argument[0..1];Argument[this];taint;manual" JSONObject out = null; Object in = (Object)source(); out.putOpt(null, in); sink(out); // $ hasTaintFlow } { - // "org.json;JSONObject;false;query;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONObject;false;query;;;Argument[this];ReturnValue;taint;manual" Object out = null; JSONObject in = (JSONObject)source(); out = in.query((String)null); sink(out); // $ hasTaintFlow } { - // "org.json;JSONObject;false;query;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONObject;false;query;;;Argument[this];ReturnValue;taint;manual" Object out = null; JSONObject in = (JSONObject)source(); out = in.query((JSONPointer)null); @@ -1804,7 +1804,7 @@ public class Test { sink(out); // $ hasValueFlow } { - // "org.json;JSONObject;false;remove;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONObject;false;remove;;;Argument[this];ReturnValue;taint;manual" Object out = null; JSONObject in = (JSONObject)source(); out = in.remove(null); @@ -1818,35 +1818,35 @@ public class Test { sink(out); // $ hasTaintFlow } { - // "org.json;JSONObject;false;toJSONArray;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONObject;false;toJSONArray;;;Argument[this];ReturnValue;taint;manual" JSONArray out = null; JSONObject in = (JSONObject)source(); out = in.toJSONArray(null); sink(out); // $ hasTaintFlow } { - // "org.json;JSONObject;false;toMap;;;Argument[-1];MapKey of ReturnValue;taint;manual" + // "org.json;JSONObject;false;toMap;;;Argument[this];MapKey of ReturnValue;taint;manual" Map out = null; JSONObject in = (JSONObject)source(); out = in.toMap(); sink(getMapKey(out)); // $ hasTaintFlow } { - // "org.json;JSONObject;false;toMap;;;Argument[-1];MapValue of ReturnValue;taint;manual" + // "org.json;JSONObject;false;toMap;;;Argument[this];MapValue of ReturnValue;taint;manual" Map out = null; JSONObject in = (JSONObject)source(); out = in.toMap(); sink(getMapValue(out)); // $ hasTaintFlow } { - // "org.json;JSONObject;false;toString;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONObject;false;toString;;;Argument[this];ReturnValue;taint;manual" String out = null; JSONObject in = (JSONObject)source(); out = in.toString(0); sink(out); // $ hasTaintFlow } { - // "org.json;JSONObject;false;toString;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONObject;false;toString;;;Argument[this];ReturnValue;taint;manual" String out = null; JSONObject in = (JSONObject)source(); out = in.toString(); @@ -1867,14 +1867,14 @@ public class Test { sink(out); // $ hasTaintFlow } { - // "org.json;JSONObject;false;write;;;Argument[-1];Argument[0];taint;manual" + // "org.json;JSONObject;false;write;;;Argument[this];Argument[0];taint;manual" Writer out = null; JSONObject in = (JSONObject)source(); in.write(out, 0, 0); sink(out); // $ hasTaintFlow } { - // "org.json;JSONObject;false;write;;;Argument[-1];Argument[0];taint;manual" + // "org.json;JSONObject;false;write;;;Argument[this];Argument[0];taint;manual" Writer out = null; JSONObject in = (JSONObject)source(); in.write(out); @@ -1897,49 +1897,49 @@ public class Test { sink(out); // $ hasValueFlow } { - // "org.json;JSONPointer$Builder;false;append;;;Argument[-1];ReturnValue;value;manual" + // "org.json;JSONPointer$Builder;false;append;;;Argument[this];ReturnValue;value;manual" JSONPointer.Builder out = null; JSONPointer.Builder in = (JSONPointer.Builder)source(); out = in.append(0); sink(out); // $ hasValueFlow } { - // "org.json;JSONPointer$Builder;false;append;;;Argument[-1];ReturnValue;value;manual" + // "org.json;JSONPointer$Builder;false;append;;;Argument[this];ReturnValue;value;manual" JSONPointer.Builder out = null; JSONPointer.Builder in = (JSONPointer.Builder)source(); out = in.append((String)null); sink(out); // $ hasValueFlow } { - // "org.json;JSONPointer$Builder;false;append;;;Argument[0];Argument[-1];taint;manual" + // "org.json;JSONPointer$Builder;false;append;;;Argument[0];Argument[this];taint;manual" JSONPointer.Builder out = null; int in = (int)source(); out.append(in); sink(out); // $ hasTaintFlow } { - // "org.json;JSONPointer$Builder;false;append;;;Argument[0];Argument[-1];taint;manual" + // "org.json;JSONPointer$Builder;false;append;;;Argument[0];Argument[this];taint;manual" JSONPointer.Builder out = null; String in = (String)source(); out.append(in); sink(out); // $ hasTaintFlow } { - // "org.json;JSONPointer$Builder;false;build;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONPointer$Builder;false;build;;;Argument[this];ReturnValue;taint;manual" JSONPointer out = null; JSONPointer.Builder in = (JSONPointer.Builder)source(); out = in.build(); sink(out); // $ hasTaintFlow } { - // "org.json;JSONPointer;false;JSONPointer;(List);;Element of Argument[0];Argument[-1];taint;manual" + // "org.json;JSONPointer;false;JSONPointer;(List);;Element of Argument[0];Argument[this];taint;manual" JSONPointer out = null; List in = (List)newWithElement(source()); out = new JSONPointer(in); sink(out); // $ hasTaintFlow } { - // "org.json;JSONPointer;false;JSONPointer;(String);;Argument[0];Argument[-1];taint;manual" + // "org.json;JSONPointer;false;JSONPointer;(String);;Argument[0];Argument[this];taint;manual" JSONPointer out = null; String in = (String)source(); out = new JSONPointer(in); @@ -1954,105 +1954,105 @@ public class Test { sink(out); // $ hasTaintFlow } { - // "org.json;JSONPointer;false;toString;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONPointer;false;toString;;;Argument[this];ReturnValue;taint;manual" String out = null; JSONPointer in = (JSONPointer)source(); out = in.toString(); sink(out); // $ hasTaintFlow } { - // "org.json;JSONPointer;false;toURIFragment;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONPointer;false;toURIFragment;;;Argument[this];ReturnValue;taint;manual" String out = null; JSONPointer in = (JSONPointer)source(); out = in.toURIFragment(); sink(out); // $ hasTaintFlow } { - // "org.json;JSONString;true;toJSONString;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONString;true;toJSONString;;;Argument[this];ReturnValue;taint;manual" String out = null; JSONString in = (JSONString)source(); out = in.toJSONString(); sink(out); // $ hasTaintFlow } { - // "org.json;JSONStringer;false;toString;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONStringer;false;toString;;;Argument[this];ReturnValue;taint;manual" String out = null; JSONStringer in = (JSONStringer)source(); out = in.toString(); sink(out); // $ hasTaintFlow } { - // "org.json;JSONTokener;true;JSONTokener;;;Argument[0];Argument[-1];taint;manual" + // "org.json;JSONTokener;true;JSONTokener;;;Argument[0];Argument[this];taint;manual" JSONTokener out = null; String in = (String)source(); out = new JSONTokener(in); sink(out); // $ hasTaintFlow } { - // "org.json;JSONTokener;true;JSONTokener;;;Argument[0];Argument[-1];taint;manual" + // "org.json;JSONTokener;true;JSONTokener;;;Argument[0];Argument[this];taint;manual" JSONTokener out = null; Reader in = (Reader)source(); out = new JSONTokener(in); sink(out); // $ hasTaintFlow } { - // "org.json;JSONTokener;true;JSONTokener;;;Argument[0];Argument[-1];taint;manual" + // "org.json;JSONTokener;true;JSONTokener;;;Argument[0];Argument[this];taint;manual" JSONTokener out = null; InputStream in = (InputStream)source(); out = new JSONTokener(in); sink(out); // $ hasTaintFlow } { - // "org.json;JSONTokener;true;next;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONTokener;true;next;;;Argument[this];ReturnValue;taint;manual" char out = 'a'; JSONTokener in = (JSONTokener)source(); out = in.next(); sink(out); // $ hasTaintFlow } { - // "org.json;JSONTokener;true;next;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONTokener;true;next;;;Argument[this];ReturnValue;taint;manual" char out = 'a'; JSONTokener in = (JSONTokener)source(); out = in.next('a'); sink(out); // $ hasTaintFlow } { - // "org.json;JSONTokener;true;next;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONTokener;true;next;;;Argument[this];ReturnValue;taint;manual" String out = null; JSONTokener in = (JSONTokener)source(); out = in.next(0); sink(out); // $ hasTaintFlow } { - // "org.json;JSONTokener;true;nextClean;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONTokener;true;nextClean;;;Argument[this];ReturnValue;taint;manual" char out = 'a'; JSONTokener in = (JSONTokener)source(); out = in.nextClean(); sink(out); // $ hasTaintFlow } { - // "org.json;JSONTokener;true;nextString;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONTokener;true;nextString;;;Argument[this];ReturnValue;taint;manual" String out = null; JSONTokener in = (JSONTokener)source(); out = in.nextString('a'); sink(out); // $ hasTaintFlow } { - // "org.json;JSONTokener;true;nextTo;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONTokener;true;nextTo;;;Argument[this];ReturnValue;taint;manual" String out = null; JSONTokener in = (JSONTokener)source(); out = in.nextTo((String)null); sink(out); // $ hasTaintFlow } { - // "org.json;JSONTokener;true;nextTo;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONTokener;true;nextTo;;;Argument[this];ReturnValue;taint;manual" String out = null; JSONTokener in = (JSONTokener)source(); out = in.nextTo('a'); sink(out); // $ hasTaintFlow } { - // "org.json;JSONTokener;true;nextValue;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONTokener;true;nextValue;;;Argument[this];ReturnValue;taint;manual" Object out = null; JSONTokener in = (JSONTokener)source(); out = in.nextValue(); @@ -2083,105 +2083,105 @@ public class Test { sink(out); // $ hasTaintFlow } { - // "org.json;JSONTokener;true;toString;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;JSONTokener;true;toString;;;Argument[this];ReturnValue;taint;manual" String out = null; JSONTokener in = (JSONTokener)source(); out = in.toString(); sink(out); // $ hasTaintFlow } { - // "org.json;JSONWriter;true;array;;;Argument[-1];ReturnValue;value;manual" + // "org.json;JSONWriter;true;array;;;Argument[this];ReturnValue;value;manual" JSONWriter out = null; JSONWriter in = (JSONWriter)source(); out = in.array(); sink(out); // $ hasValueFlow } { - // "org.json;JSONWriter;true;endArray;;;Argument[-1];ReturnValue;value;manual" + // "org.json;JSONWriter;true;endArray;;;Argument[this];ReturnValue;value;manual" JSONWriter out = null; JSONWriter in = (JSONWriter)source(); out = in.endArray(); sink(out); // $ hasValueFlow } { - // "org.json;JSONWriter;true;endObject;;;Argument[-1];ReturnValue;value;manual" + // "org.json;JSONWriter;true;endObject;;;Argument[this];ReturnValue;value;manual" JSONWriter out = null; JSONWriter in = (JSONWriter)source(); out = in.endObject(); sink(out); // $ hasValueFlow } { - // "org.json;JSONWriter;true;key;;;Argument[-1];ReturnValue;value;manual" + // "org.json;JSONWriter;true;key;;;Argument[this];ReturnValue;value;manual" JSONWriter out = null; JSONWriter in = (JSONWriter)source(); out = in.key(null); sink(out); // $ hasValueFlow } { - // "org.json;JSONWriter;true;key;;;Argument[0];Argument[-1];taint;manual" + // "org.json;JSONWriter;true;key;;;Argument[0];Argument[this];taint;manual" JSONWriter out = null; String in = (String)source(); out.key(in); sink(out); // $ hasTaintFlow } { - // "org.json;JSONWriter;true;object;;;Argument[-1];ReturnValue;value;manual" + // "org.json;JSONWriter;true;object;;;Argument[this];ReturnValue;value;manual" JSONWriter out = null; JSONWriter in = (JSONWriter)source(); out = in.object(); sink(out); // $ hasValueFlow } { - // "org.json;JSONWriter;true;value;;;Argument[-1];ReturnValue;value;manual" + // "org.json;JSONWriter;true;value;;;Argument[this];ReturnValue;value;manual" JSONWriter out = null; JSONWriter in = (JSONWriter)source(); out = in.value(false); sink(out); // $ hasValueFlow } { - // "org.json;JSONWriter;true;value;;;Argument[-1];ReturnValue;value;manual" + // "org.json;JSONWriter;true;value;;;Argument[this];ReturnValue;value;manual" JSONWriter out = null; JSONWriter in = (JSONWriter)source(); out = in.value(0L); sink(out); // $ hasValueFlow } { - // "org.json;JSONWriter;true;value;;;Argument[-1];ReturnValue;value;manual" + // "org.json;JSONWriter;true;value;;;Argument[this];ReturnValue;value;manual" JSONWriter out = null; JSONWriter in = (JSONWriter)source(); out = in.value(0.0); sink(out); // $ hasValueFlow } { - // "org.json;JSONWriter;true;value;;;Argument[-1];ReturnValue;value;manual" + // "org.json;JSONWriter;true;value;;;Argument[this];ReturnValue;value;manual" JSONWriter out = null; JSONWriter in = (JSONWriter)source(); out = in.value((Object)null); sink(out); // $ hasValueFlow } { - // "org.json;JSONWriter;true;value;;;Argument[0];Argument[-1];taint;manual" + // "org.json;JSONWriter;true;value;;;Argument[0];Argument[this];taint;manual" JSONWriter out = null; long in = (long)source(); out.value(in); sink(out); // $ hasTaintFlow } { - // "org.json;JSONWriter;true;value;;;Argument[0];Argument[-1];taint;manual" + // "org.json;JSONWriter;true;value;;;Argument[0];Argument[this];taint;manual" JSONWriter out = null; double in = (double)source(); out.value(in); sink(out); // $ hasTaintFlow } { - // "org.json;JSONWriter;true;value;;;Argument[0];Argument[-1];taint;manual" + // "org.json;JSONWriter;true;value;;;Argument[0];Argument[this];taint;manual" JSONWriter out = null; boolean in = (boolean)source(); out.value(in); sink(out); // $ hasTaintFlow } { - // "org.json;JSONWriter;true;value;;;Argument[0];Argument[-1];taint;manual" + // "org.json;JSONWriter;true;value;;;Argument[0];Argument[this];taint;manual" JSONWriter out = null; Object in = (Object)source(); out.value(in); @@ -2328,49 +2328,49 @@ public class Test { sink(out); // $ hasTaintFlow } { - // "org.json;XMLTokener;false;XMLTokener;;;Argument[0];Argument[-1];taint;manual" + // "org.json;XMLTokener;false;XMLTokener;;;Argument[0];Argument[this];taint;manual" XMLTokener out = null; String in = (String)source(); out = new XMLTokener(in); sink(out); // $ hasTaintFlow } { - // "org.json;XMLTokener;false;XMLTokener;;;Argument[0];Argument[-1];taint;manual" + // "org.json;XMLTokener;false;XMLTokener;;;Argument[0];Argument[this];taint;manual" XMLTokener out = null; Reader in = (Reader)source(); out = new XMLTokener(in); sink(out); // $ hasTaintFlow } { - // "org.json;XMLTokener;false;nextCDATA;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;XMLTokener;false;nextCDATA;;;Argument[this];ReturnValue;taint;manual" String out = null; XMLTokener in = (XMLTokener)source(); out = in.nextCDATA(); sink(out); // $ hasTaintFlow } { - // "org.json;XMLTokener;false;nextContent;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;XMLTokener;false;nextContent;;;Argument[this];ReturnValue;taint;manual" Object out = null; XMLTokener in = (XMLTokener)source(); out = in.nextContent(); sink(out); // $ hasTaintFlow } { - // "org.json;XMLTokener;false;nextEntity;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;XMLTokener;false;nextEntity;;;Argument[this];ReturnValue;taint;manual" Object out = null; XMLTokener in = (XMLTokener)source(); out = in.nextEntity('a'); sink(out); // $ hasTaintFlow } { - // "org.json;XMLTokener;false;nextMeta;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;XMLTokener;false;nextMeta;;;Argument[this];ReturnValue;taint;manual" Object out = null; XMLTokener in = (XMLTokener)source(); out = in.nextMeta(); sink(out); // $ hasTaintFlow } { - // "org.json;XMLTokener;false;nextToken;;;Argument[-1];ReturnValue;taint;manual" + // "org.json;XMLTokener;false;nextToken;;;Argument[this];ReturnValue;taint;manual" Object out = null; XMLTokener in = (XMLTokener)source(); out = in.nextToken(); diff --git a/java/ql/test/library-tests/frameworks/okhttp/Test.java b/java/ql/test/library-tests/frameworks/okhttp/Test.java index 0ecb3311797..41c6b2bd3a0 100644 --- a/java/ql/test/library-tests/frameworks/okhttp/Test.java +++ b/java/ql/test/library-tests/frameworks/okhttp/Test.java @@ -22,315 +22,315 @@ public class Test { public void test() throws Exception { { - // "okhttp3;HttpUrl$Builder;false;addEncodedPathSegment;;;Argument[-1];ReturnValue;value;manual" + // "okhttp3;HttpUrl$Builder;false;addEncodedPathSegment;;;Argument[this];ReturnValue;value;manual" HttpUrl.Builder out = null; HttpUrl.Builder in = (HttpUrl.Builder) source(); out = in.addEncodedPathSegment(null); sink(out); // $ hasValueFlow } { - // "okhttp3;HttpUrl$Builder;false;addEncodedPathSegment;;;Argument[0];Argument[-1];taint;manual" + // "okhttp3;HttpUrl$Builder;false;addEncodedPathSegment;;;Argument[0];Argument[this];taint;manual" HttpUrl.Builder out = null; String in = (String) source(); out.addEncodedPathSegment(in); sink(out); // $ hasTaintFlow } { - // "okhttp3;HttpUrl$Builder;false;addEncodedPathSegments;;;Argument[-1];ReturnValue;value;manual" + // "okhttp3;HttpUrl$Builder;false;addEncodedPathSegments;;;Argument[this];ReturnValue;value;manual" HttpUrl.Builder out = null; HttpUrl.Builder in = (HttpUrl.Builder) source(); out = in.addEncodedPathSegments(null); sink(out); // $ hasValueFlow } { - // "okhttp3;HttpUrl$Builder;false;addEncodedPathSegments;;;Argument[0];Argument[-1];taint;manual" + // "okhttp3;HttpUrl$Builder;false;addEncodedPathSegments;;;Argument[0];Argument[this];taint;manual" HttpUrl.Builder out = null; String in = (String) source(); out.addEncodedPathSegments(in); sink(out); // $ hasTaintFlow } { - // "okhttp3;HttpUrl$Builder;false;addEncodedQueryParameter;;;Argument[-1];ReturnValue;value;manual" + // "okhttp3;HttpUrl$Builder;false;addEncodedQueryParameter;;;Argument[this];ReturnValue;value;manual" HttpUrl.Builder out = null; HttpUrl.Builder in = (HttpUrl.Builder) source(); out = in.addEncodedQueryParameter(null, null); sink(out); // $ hasValueFlow } { - // "okhttp3;HttpUrl$Builder;false;addEncodedQueryParameter;;;Argument[0];Argument[-1];taint;manual" + // "okhttp3;HttpUrl$Builder;false;addEncodedQueryParameter;;;Argument[0];Argument[this];taint;manual" HttpUrl.Builder out = null; String in = (String) source(); out.addEncodedQueryParameter(in, null); sink(out); // $ hasTaintFlow } { - // "okhttp3;HttpUrl$Builder;false;addPathSegment;;;Argument[-1];ReturnValue;value;manual" + // "okhttp3;HttpUrl$Builder;false;addPathSegment;;;Argument[this];ReturnValue;value;manual" HttpUrl.Builder out = null; HttpUrl.Builder in = (HttpUrl.Builder) source(); out = in.addPathSegment(null); sink(out); // $ hasValueFlow } { - // "okhttp3;HttpUrl$Builder;false;addPathSegment;;;Argument[0];Argument[-1];taint;manual" + // "okhttp3;HttpUrl$Builder;false;addPathSegment;;;Argument[0];Argument[this];taint;manual" HttpUrl.Builder out = null; String in = (String) source(); out.addPathSegment(in); sink(out); // $ hasTaintFlow } { - // "okhttp3;HttpUrl$Builder;false;addPathSegments;;;Argument[-1];ReturnValue;value;manual" + // "okhttp3;HttpUrl$Builder;false;addPathSegments;;;Argument[this];ReturnValue;value;manual" HttpUrl.Builder out = null; HttpUrl.Builder in = (HttpUrl.Builder) source(); out = in.addPathSegments(null); sink(out); // $ hasValueFlow } { - // "okhttp3;HttpUrl$Builder;false;addPathSegments;;;Argument[0];Argument[-1];taint;manual" + // "okhttp3;HttpUrl$Builder;false;addPathSegments;;;Argument[0];Argument[this];taint;manual" HttpUrl.Builder out = null; String in = (String) source(); out.addPathSegments(in); sink(out); // $ hasTaintFlow } { - // "okhttp3;HttpUrl$Builder;false;addQueryParameter;;;Argument[-1];ReturnValue;value;manual" + // "okhttp3;HttpUrl$Builder;false;addQueryParameter;;;Argument[this];ReturnValue;value;manual" HttpUrl.Builder out = null; HttpUrl.Builder in = (HttpUrl.Builder) source(); out = in.addQueryParameter(null, null); sink(out); // $ hasValueFlow } { - // "okhttp3;HttpUrl$Builder;false;addQueryParameter;;;Argument[0..1];Argument[-1];taint;manual" + // "okhttp3;HttpUrl$Builder;false;addQueryParameter;;;Argument[0..1];Argument[this];taint;manual" HttpUrl.Builder out = null; String in = (String) source(); out.addQueryParameter(in, null); sink(out); // $ hasTaintFlow } { - // "okhttp3;HttpUrl$Builder;false;addQueryParameter;;;Argument[0..1];Argument[-1];taint;manual" + // "okhttp3;HttpUrl$Builder;false;addQueryParameter;;;Argument[0..1];Argument[this];taint;manual" HttpUrl.Builder out = null; String in = (String) source(); out.addQueryParameter(null, in); sink(out); // $ hasTaintFlow } { - // "okhttp3;HttpUrl$Builder;false;build;;;Argument[-1];ReturnValue;taint;manual" + // "okhttp3;HttpUrl$Builder;false;build;;;Argument[this];ReturnValue;taint;manual" HttpUrl out = null; HttpUrl.Builder in = (HttpUrl.Builder) source(); out = in.build(); sink(out); // $ hasTaintFlow } { - // "okhttp3;HttpUrl$Builder;false;encodedFragment;;;Argument[-1];ReturnValue;value;manual" + // "okhttp3;HttpUrl$Builder;false;encodedFragment;;;Argument[this];ReturnValue;value;manual" HttpUrl.Builder out = null; HttpUrl.Builder in = (HttpUrl.Builder) source(); out = in.encodedFragment(null); sink(out); // $ hasValueFlow } { - // "okhttp3;HttpUrl$Builder;false;encodedFragment;;;Argument[0];Argument[-1];taint;manual" + // "okhttp3;HttpUrl$Builder;false;encodedFragment;;;Argument[0];Argument[this];taint;manual" HttpUrl.Builder out = null; String in = (String) source(); out.encodedFragment(in); sink(out); // $ hasTaintFlow } { - // "okhttp3;HttpUrl$Builder;false;encodedPassword;;;Argument[-1];ReturnValue;value;manual" + // "okhttp3;HttpUrl$Builder;false;encodedPassword;;;Argument[this];ReturnValue;value;manual" HttpUrl.Builder out = null; HttpUrl.Builder in = (HttpUrl.Builder) source(); out = in.encodedPassword(null); sink(out); // $ hasValueFlow } { - // "okhttp3;HttpUrl$Builder;false;encodedPath;;;Argument[-1];ReturnValue;value;manual" + // "okhttp3;HttpUrl$Builder;false;encodedPath;;;Argument[this];ReturnValue;value;manual" HttpUrl.Builder out = null; HttpUrl.Builder in = (HttpUrl.Builder) source(); out = in.encodedPath(null); sink(out); // $ hasValueFlow } { - // "okhttp3;HttpUrl$Builder;false;encodedPath;;;Argument[0];Argument[-1];taint;manual" + // "okhttp3;HttpUrl$Builder;false;encodedPath;;;Argument[0];Argument[this];taint;manual" HttpUrl.Builder out = null; String in = (String) source(); out.encodedPath(in); sink(out); // $ hasTaintFlow } { - // "okhttp3;HttpUrl$Builder;false;encodedQuery;;;Argument[-1];ReturnValue;value;manual" + // "okhttp3;HttpUrl$Builder;false;encodedQuery;;;Argument[this];ReturnValue;value;manual" HttpUrl.Builder out = null; HttpUrl.Builder in = (HttpUrl.Builder) source(); out = in.encodedQuery(null); sink(out); // $ hasValueFlow } { - // "okhttp3;HttpUrl$Builder;false;encodedQuery;;;Argument[0];Argument[-1];taint;manual" + // "okhttp3;HttpUrl$Builder;false;encodedQuery;;;Argument[0];Argument[this];taint;manual" HttpUrl.Builder out = null; String in = (String) source(); out.encodedQuery(in); sink(out); // $ hasTaintFlow } { - // "okhttp3;HttpUrl$Builder;false;encodedUsername;;;Argument[-1];ReturnValue;value;manual" + // "okhttp3;HttpUrl$Builder;false;encodedUsername;;;Argument[this];ReturnValue;value;manual" HttpUrl.Builder out = null; HttpUrl.Builder in = (HttpUrl.Builder) source(); out = in.encodedUsername(null); sink(out); // $ hasValueFlow } { - // "okhttp3;HttpUrl$Builder;false;fragment;;;Argument[-1];ReturnValue;value;manual" + // "okhttp3;HttpUrl$Builder;false;fragment;;;Argument[this];ReturnValue;value;manual" HttpUrl.Builder out = null; HttpUrl.Builder in = (HttpUrl.Builder) source(); out = in.fragment(null); sink(out); // $ hasValueFlow } { - // "okhttp3;HttpUrl$Builder;false;fragment;;;Argument[0];Argument[-1];taint;manual" + // "okhttp3;HttpUrl$Builder;false;fragment;;;Argument[0];Argument[this];taint;manual" HttpUrl.Builder out = null; String in = (String) source(); out.fragment(in); sink(out); // $ hasTaintFlow } { - // "okhttp3;HttpUrl$Builder;false;host;;;Argument[-1];ReturnValue;value;manual" + // "okhttp3;HttpUrl$Builder;false;host;;;Argument[this];ReturnValue;value;manual" HttpUrl.Builder out = null; HttpUrl.Builder in = (HttpUrl.Builder) source(); out = in.host(null); sink(out); // $ hasValueFlow } { - // "okhttp3;HttpUrl$Builder;false;host;;;Argument[0];Argument[-1];taint;manual" + // "okhttp3;HttpUrl$Builder;false;host;;;Argument[0];Argument[this];taint;manual" HttpUrl.Builder out = null; String in = (String) source(); out.host(in); sink(out); // $ hasTaintFlow } { - // "okhttp3;HttpUrl$Builder;false;password;;;Argument[-1];ReturnValue;value;manual" + // "okhttp3;HttpUrl$Builder;false;password;;;Argument[this];ReturnValue;value;manual" HttpUrl.Builder out = null; HttpUrl.Builder in = (HttpUrl.Builder) source(); out = in.password(null); sink(out); // $ hasValueFlow } { - // "okhttp3;HttpUrl$Builder;false;port;;;Argument[-1];ReturnValue;value;manual" + // "okhttp3;HttpUrl$Builder;false;port;;;Argument[this];ReturnValue;value;manual" HttpUrl.Builder out = null; HttpUrl.Builder in = (HttpUrl.Builder) source(); out = in.port(0); sink(out); // $ hasValueFlow } { - // "okhttp3;HttpUrl$Builder;false;port;;;Argument[0];Argument[-1];taint;manual" + // "okhttp3;HttpUrl$Builder;false;port;;;Argument[0];Argument[this];taint;manual" HttpUrl.Builder out = null; int in = (int) source(); out.port(in); sink(out); // $ hasTaintFlow } { - // "okhttp3;HttpUrl$Builder;false;query;;;Argument[-1];ReturnValue;value;manual" + // "okhttp3;HttpUrl$Builder;false;query;;;Argument[this];ReturnValue;value;manual" HttpUrl.Builder out = null; HttpUrl.Builder in = (HttpUrl.Builder) source(); out = in.query(null); sink(out); // $ hasValueFlow } { - // "okhttp3;HttpUrl$Builder;false;query;;;Argument[0];Argument[-1];taint;manual" + // "okhttp3;HttpUrl$Builder;false;query;;;Argument[0];Argument[this];taint;manual" HttpUrl.Builder out = null; String in = (String) source(); out.query(in); sink(out); // $ hasTaintFlow } { - // "okhttp3;HttpUrl$Builder;false;removeAllEncodedQueryParameters;;;Argument[-1];ReturnValue;value;manual" + // "okhttp3;HttpUrl$Builder;false;removeAllEncodedQueryParameters;;;Argument[this];ReturnValue;value;manual" HttpUrl.Builder out = null; HttpUrl.Builder in = (HttpUrl.Builder) source(); out = in.removeAllEncodedQueryParameters(null); sink(out); // $ hasValueFlow } { - // "okhttp3;HttpUrl$Builder;false;removeAllQueryParameters;;;Argument[-1];ReturnValue;value;manual" + // "okhttp3;HttpUrl$Builder;false;removeAllQueryParameters;;;Argument[this];ReturnValue;value;manual" HttpUrl.Builder out = null; HttpUrl.Builder in = (HttpUrl.Builder) source(); out = in.removeAllQueryParameters(null); sink(out); // $ hasValueFlow } { - // "okhttp3;HttpUrl$Builder;false;removePathSegment;;;Argument[-1];ReturnValue;value;manual" + // "okhttp3;HttpUrl$Builder;false;removePathSegment;;;Argument[this];ReturnValue;value;manual" HttpUrl.Builder out = null; HttpUrl.Builder in = (HttpUrl.Builder) source(); out = in.removePathSegment(0); sink(out); // $ hasValueFlow } { - // "okhttp3;HttpUrl$Builder;false;scheme;;;Argument[-1];ReturnValue;value;manual" + // "okhttp3;HttpUrl$Builder;false;scheme;;;Argument[this];ReturnValue;value;manual" HttpUrl.Builder out = null; HttpUrl.Builder in = (HttpUrl.Builder) source(); out = in.scheme(null); sink(out); // $ hasValueFlow } { - // "okhttp3;HttpUrl$Builder;false;scheme;;;Argument[0];Argument[-1];taint;manual" + // "okhttp3;HttpUrl$Builder;false;scheme;;;Argument[0];Argument[this];taint;manual" HttpUrl.Builder out = null; String in = (String) source(); out.scheme(in); sink(out); // $ hasTaintFlow } { - // "okhttp3;HttpUrl$Builder;false;setEncodedPathSegment;;;Argument[-1];ReturnValue;value;manual" + // "okhttp3;HttpUrl$Builder;false;setEncodedPathSegment;;;Argument[this];ReturnValue;value;manual" HttpUrl.Builder out = null; HttpUrl.Builder in = (HttpUrl.Builder) source(); out = in.setEncodedPathSegment(0, null); sink(out); // $ hasValueFlow } { - // "okhttp3;HttpUrl$Builder;false;setEncodedPathSegment;;;Argument[0];Argument[-1];taint;manual" + // "okhttp3;HttpUrl$Builder;false;setEncodedPathSegment;;;Argument[0];Argument[this];taint;manual" HttpUrl.Builder out = null; int in = (int) source(); out.setEncodedPathSegment(in, null); sink(out); // $ hasTaintFlow } { - // "okhttp3;HttpUrl$Builder;false;setEncodedQueryParameter;;;Argument[-1];ReturnValue;value;manual" + // "okhttp3;HttpUrl$Builder;false;setEncodedQueryParameter;;;Argument[this];ReturnValue;value;manual" HttpUrl.Builder out = null; HttpUrl.Builder in = (HttpUrl.Builder) source(); out = in.setEncodedQueryParameter(null, null); sink(out); // $ hasValueFlow } { - // "okhttp3;HttpUrl$Builder;false;setEncodedQueryParameter;;;Argument[0];Argument[-1];taint;manual" + // "okhttp3;HttpUrl$Builder;false;setEncodedQueryParameter;;;Argument[0];Argument[this];taint;manual" HttpUrl.Builder out = null; String in = (String) source(); out.setEncodedQueryParameter(in, null); sink(out); // $ hasTaintFlow } { - // "okhttp3;HttpUrl$Builder;false;setPathSegment;;;Argument[-1];ReturnValue;value;manual" + // "okhttp3;HttpUrl$Builder;false;setPathSegment;;;Argument[this];ReturnValue;value;manual" HttpUrl.Builder out = null; HttpUrl.Builder in = (HttpUrl.Builder) source(); out = in.setPathSegment(0, null); sink(out); // $ hasValueFlow } { - // "okhttp3;HttpUrl$Builder;false;setPathSegment;;;Argument[0];Argument[-1];taint;manual" + // "okhttp3;HttpUrl$Builder;false;setPathSegment;;;Argument[0];Argument[this];taint;manual" HttpUrl.Builder out = null; int in = (int) source(); out.setPathSegment(in, null); sink(out); // $ hasTaintFlow } { - // "okhttp3;HttpUrl$Builder;false;setQueryParameter;;;Argument[-1];ReturnValue;value;manual" + // "okhttp3;HttpUrl$Builder;false;setQueryParameter;;;Argument[this];ReturnValue;value;manual" HttpUrl.Builder out = null; HttpUrl.Builder in = (HttpUrl.Builder) source(); out = in.setQueryParameter(null, null); sink(out); // $ hasValueFlow } { - // "okhttp3;HttpUrl$Builder;false;setQueryParameter;;;Argument[0];Argument[-1];taint;manual" + // "okhttp3;HttpUrl$Builder;false;setQueryParameter;;;Argument[0];Argument[this];taint;manual" HttpUrl.Builder out = null; String in = (String) source(); out.setQueryParameter(in, null); sink(out); // $ hasTaintFlow } { - // "okhttp3;HttpUrl$Builder;false;username;;;Argument[-1];ReturnValue;value;manual" + // "okhttp3;HttpUrl$Builder;false;username;;;Argument[this];ReturnValue;value;manual" HttpUrl.Builder out = null; HttpUrl.Builder in = (HttpUrl.Builder) source(); out = in.username(null); @@ -344,14 +344,14 @@ public class Test { sink(out); // $ hasTaintFlow } { - // "okhttp3;HttpUrl;false;uri;;;Argument[-1];ReturnValue;taint;manual" + // "okhttp3;HttpUrl;false;uri;;;Argument[this];ReturnValue;taint;manual" URI out = null; HttpUrl in = (HttpUrl) source(); out = in.uri(); sink(out); // $ hasTaintFlow } { - // "okhttp3;HttpUrl;false;url;;;Argument[-1];ReturnValue;taint;manual" + // "okhttp3;HttpUrl;false;url;;;Argument[this];ReturnValue;taint;manual" URL out = null; HttpUrl in = (HttpUrl) source(); out = in.url(); diff --git a/java/ql/test/library-tests/frameworks/spring/beans/Test.java b/java/ql/test/library-tests/frameworks/spring/beans/Test.java index 95efb592a5b..99c572c00ce 100644 --- a/java/ql/test/library-tests/frameworks/spring/beans/Test.java +++ b/java/ql/test/library-tests/frameworks/spring/beans/Test.java @@ -50,126 +50,126 @@ public class Test { public void test() throws Exception { { - // "org.springframework.beans;MutablePropertyValues;true;MutablePropertyValues;(List);;Argument[0].Element;Argument[-1].Element;value;manual" + // "org.springframework.beans;MutablePropertyValues;true;MutablePropertyValues;(List);;Argument[0].Element;Argument[this].Element;value;manual" MutablePropertyValues out = null; List in = List.of(source()); out = new MutablePropertyValues(in); sink(getElementDefault(out)); // $ hasValueFlow } { - // "org.springframework.beans;MutablePropertyValues;true;MutablePropertyValues;(Map);;Argument[0].MapKey;Argument[-1].Element.MapKey;value;manual" + // "org.springframework.beans;MutablePropertyValues;true;MutablePropertyValues;(Map);;Argument[0].MapKey;Argument[this].Element.MapKey;value;manual" MutablePropertyValues out = null; Map in = Map.of(source(), null); out = new MutablePropertyValues(in); sink(getMapKeyDefault(getElementDefault(out))); // $ hasValueFlow } { - // "org.springframework.beans;MutablePropertyValues;true;MutablePropertyValues;(Map);;Argument[0].MapValue;Argument[-1].Element.MapValue;value;manual" + // "org.springframework.beans;MutablePropertyValues;true;MutablePropertyValues;(Map);;Argument[0].MapValue;Argument[this].Element.MapValue;value;manual" MutablePropertyValues out = null; Map in = Map.of(null, source()); out = new MutablePropertyValues(in); sink(getMapValueDefault(getElementDefault(out))); // $ hasValueFlow } { - // "org.springframework.beans;MutablePropertyValues;true;MutablePropertyValues;(PropertyValues);;Argument[0].Element;Argument[-1].Element;value;manual" + // "org.springframework.beans;MutablePropertyValues;true;MutablePropertyValues;(PropertyValues);;Argument[0].Element;Argument[this].Element;value;manual" MutablePropertyValues out = null; PropertyValues in = newMutablePropertyValuesWithElement((PropertyValue) source()); out = new MutablePropertyValues(in); sink(getElementDefault(out)); // $ hasValueFlow } { - // "org.springframework.beans;MutablePropertyValues;true;add;(String,Object);;Argument[-1];ReturnValue;value;manual" + // "org.springframework.beans;MutablePropertyValues;true;add;(String,Object);;Argument[this];ReturnValue;value;manual" MutablePropertyValues out = null; MutablePropertyValues in = (MutablePropertyValues) source(); out = in.add(null, null); sink(out); // $ hasValueFlow } { - // "org.springframework.beans;MutablePropertyValues;true;add;(String,Object);;Argument[0];Argument[-1].Element.MapKey;value;manual" + // "org.springframework.beans;MutablePropertyValues;true;add;(String,Object);;Argument[0];Argument[this].Element.MapKey;value;manual" MutablePropertyValues out = null; String in = (String) source(); out.add(in, null); sink(getMapKeyDefault(getElementDefault(out))); // $ hasValueFlow } { - // "org.springframework.beans;MutablePropertyValues;true;add;(String,Object);;Argument[1];Argument[-1].Element.MapValue;value;manual" + // "org.springframework.beans;MutablePropertyValues;true;add;(String,Object);;Argument[1];Argument[this].Element.MapValue;value;manual" MutablePropertyValues out = null; Object in = (Object) source(); out.add(null, in); sink(getMapValueDefault(getElementDefault(out))); // $ hasValueFlow } { - // "org.springframework.beans;MutablePropertyValues;true;addPropertyValue;(PropertyValue);;Argument[-1];ReturnValue;value;manual" + // "org.springframework.beans;MutablePropertyValues;true;addPropertyValue;(PropertyValue);;Argument[this];ReturnValue;value;manual" MutablePropertyValues out = null; MutablePropertyValues in = (MutablePropertyValues) source(); out = in.addPropertyValue(null); sink(out); // $ hasValueFlow } { - // "org.springframework.beans;MutablePropertyValues;true;addPropertyValue;(PropertyValue);;Argument[0];Argument[-1].Element;value;manual" + // "org.springframework.beans;MutablePropertyValues;true;addPropertyValue;(PropertyValue);;Argument[0];Argument[this].Element;value;manual" MutablePropertyValues out = null; PropertyValue in = (PropertyValue) source(); out.addPropertyValue(in); sink(getElementDefault(out)); // $ hasValueFlow } { - // "org.springframework.beans;MutablePropertyValues;true;addPropertyValue;(String,Object);;Argument[0];Argument[-1].Element.MapKey;value;manual" + // "org.springframework.beans;MutablePropertyValues;true;addPropertyValue;(String,Object);;Argument[0];Argument[this].Element.MapKey;value;manual" MutablePropertyValues out = null; String in = (String) source(); out.addPropertyValue(in, null); sink(getMapKeyDefault(getElementDefault(out))); // $ hasValueFlow } { - // "org.springframework.beans;MutablePropertyValues;true;addPropertyValue;(String,Object);;Argument[1];Argument[-1].Element.MapValue;value;manual" + // "org.springframework.beans;MutablePropertyValues;true;addPropertyValue;(String,Object);;Argument[1];Argument[this].Element.MapValue;value;manual" MutablePropertyValues out = null; Object in = (Object) source(); out.addPropertyValue(null, in); sink(getMapValueDefault(getElementDefault(out))); // $ hasValueFlow } { - // "org.springframework.beans;MutablePropertyValues;true;addPropertyValues;(Map);;Argument[-1];ReturnValue;value;manual" + // "org.springframework.beans;MutablePropertyValues;true;addPropertyValues;(Map);;Argument[this];ReturnValue;value;manual" MutablePropertyValues out = null; MutablePropertyValues in = (MutablePropertyValues) source(); out = in.addPropertyValues((Map) null); sink(out); // $ hasValueFlow } { - // "org.springframework.beans;MutablePropertyValues;true;addPropertyValues;(Map);;Argument[0].MapKey;Argument[-1].Element.MapKey;value;manual" + // "org.springframework.beans;MutablePropertyValues;true;addPropertyValues;(Map);;Argument[0].MapKey;Argument[this].Element.MapKey;value;manual" MutablePropertyValues out = null; Map in = Map.of(source(), null); out.addPropertyValues(in); sink(getMapKeyDefault(getElementDefault(out))); // $ hasValueFlow } { - // "org.springframework.beans;MutablePropertyValues;true;addPropertyValues;(Map);;Argument[0].MapValue;Argument[-1].Element.MapValue;value;manual" + // "org.springframework.beans;MutablePropertyValues;true;addPropertyValues;(Map);;Argument[0].MapValue;Argument[this].Element.MapValue;value;manual" MutablePropertyValues out = null; Map in = Map.of(null, source()); out.addPropertyValues(in); sink(getMapValueDefault(getElementDefault(out))); // $ hasValueFlow } { - // "org.springframework.beans;MutablePropertyValues;true;addPropertyValues;(PropertyValues);;Argument[-1];ReturnValue;value;manual" + // "org.springframework.beans;MutablePropertyValues;true;addPropertyValues;(PropertyValues);;Argument[this];ReturnValue;value;manual" MutablePropertyValues out = null; MutablePropertyValues in = (MutablePropertyValues) source(); out = in.addPropertyValues((PropertyValues) null); sink(out); // $ hasValueFlow } { - // "org.springframework.beans;MutablePropertyValues;true;addPropertyValues;(PropertyValues);;Argument[0].Element;Argument[-1].Element;value;manual" + // "org.springframework.beans;MutablePropertyValues;true;addPropertyValues;(PropertyValues);;Argument[0].Element;Argument[this].Element;value;manual" MutablePropertyValues out = null; PropertyValues in = newMutablePropertyValuesWithElement((PropertyValue) source()); out.addPropertyValues(in); sink(getElementDefault(out)); // $ hasValueFlow } { - // "org.springframework.beans;MutablePropertyValues;true;get;;;Argument[-1].Element.MapValue;ReturnValue;value;manual" + // "org.springframework.beans;MutablePropertyValues;true;get;;;Argument[this].Element.MapValue;ReturnValue;value;manual" Object out = null; MutablePropertyValues in = newMutablePropertyValuesWithMapValue(source()); out = in.get(null); sink(out); // $ hasValueFlow } { - // "org.springframework.beans;MutablePropertyValues;true;getPropertyValue;;;Argument[-1].Element;ReturnValue;value;manual" + // "org.springframework.beans;MutablePropertyValues;true;getPropertyValue;;;Argument[this].Element;ReturnValue;value;manual" PropertyValue out = null; MutablePropertyValues in = newMutablePropertyValuesWithElement((PropertyValue) source()); @@ -177,7 +177,7 @@ public class Test { sink(out); // $ hasValueFlow } { - // "org.springframework.beans;MutablePropertyValues;true;getPropertyValueList;;;Argument[-1].Element;ReturnValue.Element;value;manual" + // "org.springframework.beans;MutablePropertyValues;true;getPropertyValueList;;;Argument[this].Element;ReturnValue.Element;value;manual" List out = null; MutablePropertyValues in = newMutablePropertyValuesWithElement((PropertyValue) source()); @@ -185,7 +185,7 @@ public class Test { sink(getElement(out)); // $ hasValueFlow } { - // "org.springframework.beans;MutablePropertyValues;true;getPropertyValues;;;Argument[-1].Element;ReturnValue.ArrayElement;value;manual" + // "org.springframework.beans;MutablePropertyValues;true;getPropertyValues;;;Argument[this].Element;ReturnValue.ArrayElement;value;manual" PropertyValue[] out = null; MutablePropertyValues in = newMutablePropertyValuesWithElement((PropertyValue) source()); @@ -193,63 +193,63 @@ public class Test { sink(getArrayElement(out)); // $ hasValueFlow } { - // "org.springframework.beans;MutablePropertyValues;true;setPropertyValueAt;;;Argument[0];Argument[-1].Element;value;manual" + // "org.springframework.beans;MutablePropertyValues;true;setPropertyValueAt;;;Argument[0];Argument[this].Element;value;manual" MutablePropertyValues out = null; PropertyValue in = (PropertyValue) source(); out.setPropertyValueAt(in, 0); sink(getElementDefault(out)); // $ hasValueFlow } { - // "org.springframework.beans;PropertyValue;false;PropertyValue;(PropertyValue);;Argument[0];Argument[-1];value;manual" + // "org.springframework.beans;PropertyValue;false;PropertyValue;(PropertyValue);;Argument[0];Argument[this];value;manual" PropertyValue out = null; PropertyValue in = (PropertyValue) source(); out = new PropertyValue(in); sink(out); // $ hasValueFlow } { - // "org.springframework.beans;PropertyValue;false;PropertyValue;(PropertyValue,Object);;Argument[0].MapKey;Argument[-1].MapKey;value;manual" + // "org.springframework.beans;PropertyValue;false;PropertyValue;(PropertyValue,Object);;Argument[0].MapKey;Argument[this].MapKey;value;manual" PropertyValue out = null; PropertyValue in = new PropertyValue(new PropertyValue((String) source(), null), null); out = new PropertyValue(in, (Object) null); sink(getMapKeyDefault(out)); // $ hasValueFlow } { - // "org.springframework.beans;PropertyValue;false;PropertyValue;(PropertyValue,Object);;Argument[1];Argument[-1].MapValue;value;manual" + // "org.springframework.beans;PropertyValue;false;PropertyValue;(PropertyValue,Object);;Argument[1];Argument[this].MapValue;value;manual" PropertyValue out = null; Object in = (Object) source(); out = new PropertyValue((PropertyValue) null, in); sink(getMapValueDefault(out)); // $ hasValueFlow } { - // "org.springframework.beans;PropertyValue;false;PropertyValue;(String,Object);;Argument[0];Argument[-1].MapKey;value;manual" + // "org.springframework.beans;PropertyValue;false;PropertyValue;(String,Object);;Argument[0];Argument[this].MapKey;value;manual" PropertyValue out = null; String in = (String) source(); out = new PropertyValue(in, (Object) null); sink(getMapKeyDefault(out)); // $ hasValueFlow } { - // "org.springframework.beans;PropertyValue;false;PropertyValue;(String,Object);;Argument[1];Argument[-1].MapValue;value;manual" + // "org.springframework.beans;PropertyValue;false;PropertyValue;(String,Object);;Argument[1];Argument[this].MapValue;value;manual" PropertyValue out = null; Object in = (Object) source(); out = new PropertyValue((String) null, in); sink(getMapValueDefault(out)); // $ hasValueFlow } { - // "org.springframework.beans;PropertyValue;false;getName;;;Argument[-1].MapKey;ReturnValue;value;manual" + // "org.springframework.beans;PropertyValue;false;getName;;;Argument[this].MapKey;ReturnValue;value;manual" String out = null; PropertyValue in = new PropertyValue((String) source(), null); out = in.getName(); sink(out); // $ hasValueFlow } { - // "org.springframework.beans;PropertyValue;false;getValue;;;Argument[-1].MapValue;ReturnValue;value;manual" + // "org.springframework.beans;PropertyValue;false;getValue;;;Argument[this].MapValue;ReturnValue;value;manual" Object out = null; PropertyValue in = new PropertyValue("", source()); out = in.getValue(); sink(out); // $ hasValueFlow } { - // "org.springframework.beans;PropertyValues;true;getPropertyValue;;;Argument[-1].Element;ReturnValue;value;manual" + // "org.springframework.beans;PropertyValues;true;getPropertyValue;;;Argument[this].Element;ReturnValue;value;manual" PropertyValue out = null; MutablePropertyValues in = newMutablePropertyValuesWithElement((PropertyValue) source()); @@ -257,14 +257,14 @@ public class Test { sink(out); // $ hasValueFlow } { - // "org.springframework.beans;PropertyValues;true;getPropertyValue;;;Argument[-1].Element;ReturnValue;value;manual" + // "org.springframework.beans;PropertyValues;true;getPropertyValue;;;Argument[this].Element;ReturnValue;value;manual" PropertyValue out = null; PropertyValues in = newMutablePropertyValuesWithElement((PropertyValue) source()); out = in.getPropertyValue(null); sink(out); // $ hasValueFlow } { - // "org.springframework.beans;PropertyValues;true;getPropertyValues;;;Argument[-1].Element;ReturnValue.ArrayElement;value;manual" + // "org.springframework.beans;PropertyValues;true;getPropertyValues;;;Argument[this].Element;ReturnValue.ArrayElement;value;manual" PropertyValue[] out = null; MutablePropertyValues in = newMutablePropertyValuesWithElement((PropertyValue) source()); @@ -272,7 +272,7 @@ public class Test { sink(getArrayElement(out)); // $ hasValueFlow } { - // "org.springframework.beans;PropertyValues;true;getPropertyValues;;;Argument[-1].Element;ReturnValue.ArrayElement;value;manual" + // "org.springframework.beans;PropertyValues;true;getPropertyValues;;;Argument[this].Element;ReturnValue.ArrayElement;value;manual" PropertyValue[] out = null; PropertyValues in = newMutablePropertyValuesWithElement((PropertyValue) source()); out = in.getPropertyValues(); diff --git a/java/ql/test/library-tests/frameworks/spring/cache/Test.java b/java/ql/test/library-tests/frameworks/spring/cache/Test.java index 2fa7415a3cc..1f2473d0004 100644 --- a/java/ql/test/library-tests/frameworks/spring/cache/Test.java +++ b/java/ql/test/library-tests/frameworks/spring/cache/Test.java @@ -46,91 +46,91 @@ public class Test { public void test() { { - // "org.springframework.cache;Cache$ValueRetrievalException;false;ValueRetrievalException;;;Argument[0];MapKey of Argument[-1];value;manual" + // "org.springframework.cache;Cache$ValueRetrievalException;false;ValueRetrievalException;;;Argument[0];MapKey of Argument[this];value;manual" Cache.ValueRetrievalException out = null; Object in = source(); out = new Cache.ValueRetrievalException(in, null, null); sink(getMapKey(out)); // $hasValueFlow } { - // "org.springframework.cache;Cache$ValueRetrievalException;false;getKey;;;MapKey of Argument[-1];ReturnValue;value;manual" + // "org.springframework.cache;Cache$ValueRetrievalException;false;getKey;;;MapKey of Argument[this];ReturnValue;value;manual" Object out = null; Cache.ValueRetrievalException in = new Cache.ValueRetrievalException(source(), null, null); out = in.getKey(); sink(out); // $hasValueFlow } { - // "org.springframework.cache;Cache$ValueWrapper;true;get;;;MapValue of Argument[-1];ReturnValue;value;manual" + // "org.springframework.cache;Cache$ValueWrapper;true;get;;;MapValue of Argument[this];ReturnValue;value;manual" Object out = null; Cache.ValueWrapper in = new ValueWrapper(source()); out = in.get(); sink(out); // $hasValueFlow } { - // "org.springframework.cache;Cache;true;get;(Object);;MapValue of Argument[-1];MapValue of ReturnValue;value;manual" + // "org.springframework.cache;Cache;true;get;(Object);;MapValue of Argument[this];MapValue of ReturnValue;value;manual" Cache.ValueWrapper out = null; Cache in = new DummyCache(null, source()); out = in.get(null); sink(getMapValue(out)); // $hasValueFlow } { - // "org.springframework.cache;Cache;true;get;(Object,Callable);;MapValue of Argument[-1];ReturnValue;value;manual" + // "org.springframework.cache;Cache;true;get;(Object,Callable);;MapValue of Argument[this];ReturnValue;value;manual" Object out = null; Cache in = new DummyCache(null, source()); out = in.get(null, (Callable)null); sink(out); // $hasValueFlow } { - // "org.springframework.cache;Cache;true;get;(Object,Class);;MapValue of Argument[-1];ReturnValue;value;manual" + // "org.springframework.cache;Cache;true;get;(Object,Class);;MapValue of Argument[this];ReturnValue;value;manual" Object out = null; Cache in = new DummyCache(null, source()); out = in.get(null, (Class)null); sink(out); // $hasValueFlow } { - // "org.springframework.cache;Cache;true;getNativeCache;;;MapKey of Argument[-1];MapKey of ReturnValue;value;manual" + // "org.springframework.cache;Cache;true;getNativeCache;;;MapKey of Argument[this];MapKey of ReturnValue;value;manual" Object out = null; Cache in = new DummyCache(source(), null); out = in.getNativeCache(); sink(getMapKey((Cache)out)); // $hasValueFlow } { - // "org.springframework.cache;Cache;true;getNativeCache;;;MapValue of Argument[-1];MapValue of ReturnValue;value;manual" + // "org.springframework.cache;Cache;true;getNativeCache;;;MapValue of Argument[this];MapValue of ReturnValue;value;manual" Object out = null; Cache in = new DummyCache(null, source()); out = in.getNativeCache(); sink(getMapValue((Cache)out)); // $hasValueFlow } { - // "org.springframework.cache;Cache;true;put;;;Argument[0];MapKey of Argument[-1];value;manual" + // "org.springframework.cache;Cache;true;put;;;Argument[0];MapKey of Argument[this];value;manual" Cache out = null; Object in = source(); out.put(in, null); sink(getMapKey(out)); // $hasValueFlow } { - // "org.springframework.cache;Cache;true;put;;;Argument[1];MapValue of Argument[-1];value;manual" + // "org.springframework.cache;Cache;true;put;;;Argument[1];MapValue of Argument[this];value;manual" Cache out = null; Object in = source(); out.put(null, in); sink(getMapValue(out)); // $hasValueFlow } { - // "org.springframework.cache;Cache;true;putIfAbsent;;;Argument[0];MapKey of Argument[-1];value;manual" + // "org.springframework.cache;Cache;true;putIfAbsent;;;Argument[0];MapKey of Argument[this];value;manual" Cache out = null; Object in = source(); out.putIfAbsent(in, null); sink(getMapKey(out)); // $hasValueFlow } { - // "org.springframework.cache;Cache;true;putIfAbsent;;;Argument[1];MapValue of Argument[-1];value;manual" + // "org.springframework.cache;Cache;true;putIfAbsent;;;Argument[1];MapValue of Argument[this];value;manual" Cache out = null; Object in = source(); out.putIfAbsent(null, in); sink(getMapValue(out)); // $hasValueFlow } { - // "org.springframework.cache;Cache;true;putIfAbsent;;;MapValue of Argument[-1];MapValue of ReturnValue;value;manual" + // "org.springframework.cache;Cache;true;putIfAbsent;;;MapValue of Argument[this];MapValue of ReturnValue;value;manual" Cache.ValueWrapper out = null; Cache in = new DummyCache(null, source()); out = in.putIfAbsent(null, null); diff --git a/java/ql/test/library-tests/frameworks/spring/ui/Test.java b/java/ql/test/library-tests/frameworks/spring/ui/Test.java index 13789d0dd09..9512cf391aa 100644 --- a/java/ql/test/library-tests/frameworks/spring/ui/Test.java +++ b/java/ql/test/library-tests/frameworks/spring/ui/Test.java @@ -24,35 +24,35 @@ public class Test { public void test() { { - // "org.springframework.ui;ConcurrentModel;false;ConcurrentModel;(Object);;Argument[0];MapValue of Argument[-1];value;manual" + // "org.springframework.ui;ConcurrentModel;false;ConcurrentModel;(Object);;Argument[0];MapValue of Argument[this];value;manual" ConcurrentModel out = null; Object in = source(); out = new ConcurrentModel(in); sink(getMapValue(out)); // $hasValueFlow } { - // "org.springframework.ui;ConcurrentModel;false;ConcurrentModel;(String,Object);;Argument[0];MapKey of Argument[-1];value;manual" + // "org.springframework.ui;ConcurrentModel;false;ConcurrentModel;(String,Object);;Argument[0];MapKey of Argument[this];value;manual" ConcurrentModel out = null; String in = (String)source(); out = new ConcurrentModel(in, null); sink(getMapKey(out)); // $hasValueFlow } { - // "org.springframework.ui;ConcurrentModel;false;ConcurrentModel;(String,Object);;Argument[1];MapValue of Argument[-1];value;manual" + // "org.springframework.ui;ConcurrentModel;false;ConcurrentModel;(String,Object);;Argument[1];MapValue of Argument[this];value;manual" ConcurrentModel out = null; Object in = source(); out = new ConcurrentModel(null, in); sink(getMapValue(out)); // $hasValueFlow } { - // "org.springframework.ui;Model;true;addAllAttributes;(Collection);;Element of Argument[0];MapValue of Argument[-1];value;manual" + // "org.springframework.ui;Model;true;addAllAttributes;(Collection);;Element of Argument[0];MapValue of Argument[this];value;manual" Model out = null; Collection in = List.of(source()); out.addAllAttributes(in); sink(getMapValue(out)); // $hasValueFlow } { - // "org.springframework.ui;Model;true;addAllAttributes;(Collection);;Element of Argument[0];MapValue of Argument[-1];value;manual" + // "org.springframework.ui;Model;true;addAllAttributes;(Collection);;Element of Argument[0];MapValue of Argument[this];value;manual" ConcurrentModel out = null; Collection in = List.of(source()); out.addAllAttributes(in); @@ -75,14 +75,14 @@ public class Test { sink(getMapValue(out)); // $hasValueFlow } { - // "org.springframework.ui;Model;true;addAllAttributes;(Map);;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "org.springframework.ui;Model;true;addAllAttributes;(Map);;MapKey of Argument[0];MapKey of Argument[this];value;manual" Model out = null; Map in = Map.of(source(), null); out.addAllAttributes(in); sink(getMapKey(out)); // $hasValueFlow } { - // "org.springframework.ui;Model;true;addAllAttributes;(Map);;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "org.springframework.ui;Model;true;addAllAttributes;(Map);;MapKey of Argument[0];MapKey of Argument[this];value;manual" ConcurrentModel out = null; Map in = Map.of(source(), null); out.addAllAttributes(in); @@ -105,14 +105,14 @@ public class Test { sink(getMapKey(out)); // $hasValueFlow } { - // "org.springframework.ui;Model;true;addAllAttributes;(Map);;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "org.springframework.ui;Model;true;addAllAttributes;(Map);;MapValue of Argument[0];MapValue of Argument[this];value;manual" Model out = null; Map in = Map.of(null, source()); out.addAllAttributes(in); sink(getMapValue(out)); // $hasValueFlow } { - // "org.springframework.ui;Model;true;addAllAttributes;(Map);;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "org.springframework.ui;Model;true;addAllAttributes;(Map);;MapValue of Argument[0];MapValue of Argument[this];value;manual" ConcurrentModel out = null; Map in = Map.of(null, source()); out.addAllAttributes(in); @@ -135,42 +135,42 @@ public class Test { sink(getMapValue(out)); // $hasValueFlow } { - // "org.springframework.ui;Model;true;addAllAttributes;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.ui;Model;true;addAllAttributes;;;Argument[this];ReturnValue;value;manual" Model out = null; Model in = (Model)source(); out = in.addAllAttributes((Map)null); sink(out); // $hasValueFlow } { - // "org.springframework.ui;Model;true;addAllAttributes;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.ui;Model;true;addAllAttributes;;;Argument[this];ReturnValue;value;manual" Model out = null; Model in = (Model)source(); out = in.addAllAttributes((Collection)null); sink(out); // $hasValueFlow } { - // "org.springframework.ui;Model;true;addAllAttributes;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.ui;Model;true;addAllAttributes;;;Argument[this];ReturnValue;value;manual" ConcurrentModel out = null; ConcurrentModel in = (ConcurrentModel)source(); out = in.addAllAttributes((Map)null); sink(out); // $hasValueFlow } { - // "org.springframework.ui;Model;true;addAllAttributes;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.ui;Model;true;addAllAttributes;;;Argument[this];ReturnValue;value;manual" ConcurrentModel out = null; ConcurrentModel in = (ConcurrentModel)source(); out = in.addAllAttributes((Collection)null); sink(out); // $hasValueFlow } { - // "org.springframework.ui;Model;true;addAttribute;(Object);;Argument[0];MapValue of Argument[-1];value;manual" + // "org.springframework.ui;Model;true;addAttribute;(Object);;Argument[0];MapValue of Argument[this];value;manual" Model out = null; Object in = source(); out.addAttribute(in); sink(getMapValue(out)); // $hasValueFlow } { - // "org.springframework.ui;Model;true;addAttribute;(Object);;Argument[0];MapValue of Argument[-1];value;manual" + // "org.springframework.ui;Model;true;addAttribute;(Object);;Argument[0];MapValue of Argument[this];value;manual" ConcurrentModel out = null; Object in = source(); out.addAttribute(in); @@ -193,14 +193,14 @@ public class Test { sink(getMapValue(out)); // $hasValueFlow } { - // "org.springframework.ui;Model;true;addAttribute;(String,Object);;Argument[0];MapKey of Argument[-1];value;manual" + // "org.springframework.ui;Model;true;addAttribute;(String,Object);;Argument[0];MapKey of Argument[this];value;manual" Model out = null; String in = (String)source(); out.addAttribute(in, null); sink(getMapKey(out)); // $hasValueFlow } { - // "org.springframework.ui;Model;true;addAttribute;(String,Object);;Argument[0];MapKey of Argument[-1];value;manual" + // "org.springframework.ui;Model;true;addAttribute;(String,Object);;Argument[0];MapKey of Argument[this];value;manual" ConcurrentModel out = null; String in = (String)source(); out.addAttribute(in, null); @@ -223,14 +223,14 @@ public class Test { sink(getMapKey(out)); // $hasValueFlow } { - // "org.springframework.ui;Model;true;addAttribute;(String,Object);;Argument[1];MapValue of Argument[-1];value;manual" + // "org.springframework.ui;Model;true;addAttribute;(String,Object);;Argument[1];MapValue of Argument[this];value;manual" Model out = null; Object in = source(); out.addAttribute(null, in); sink(getMapValue(out)); // $hasValueFlow } { - // "org.springframework.ui;Model;true;addAttribute;(String,Object);;Argument[1];MapValue of Argument[-1];value;manual" + // "org.springframework.ui;Model;true;addAttribute;(String,Object);;Argument[1];MapValue of Argument[this];value;manual" ConcurrentModel out = null; Object in = source(); out.addAttribute(null, in); @@ -253,168 +253,168 @@ public class Test { sink(getMapValue(out)); // $hasValueFlow } { - // "org.springframework.ui;Model;true;addAttribute;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.ui;Model;true;addAttribute;;;Argument[this];ReturnValue;value;manual" Model out = null; Model in = (Model)source(); out = in.addAttribute(null, null); sink(out); // $hasValueFlow } { - // "org.springframework.ui;Model;true;addAttribute;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.ui;Model;true;addAttribute;;;Argument[this];ReturnValue;value;manual" Model out = null; Model in = (Model)source(); out = in.addAttribute(null); sink(out); // $hasValueFlow } { - // "org.springframework.ui;Model;true;addAttribute;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.ui;Model;true;addAttribute;;;Argument[this];ReturnValue;value;manual" ConcurrentModel out = null; ConcurrentModel in = (ConcurrentModel)source(); out = in.addAttribute(null, null); sink(out); // $hasValueFlow } { - // "org.springframework.ui;Model;true;addAttribute;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.ui;Model;true;addAttribute;;;Argument[this];ReturnValue;value;manual" ConcurrentModel out = null; ConcurrentModel in = (ConcurrentModel)source(); out = in.addAttribute(null); sink(out); // $hasValueFlow } { - // "org.springframework.ui;Model;true;asMap;;;MapKey of Argument[-1];MapKey of ReturnValue;value;manual" + // "org.springframework.ui;Model;true;asMap;;;MapKey of Argument[this];MapKey of ReturnValue;value;manual" Map out = null; Model in = new ConcurrentModel((String)source(), null); out = in.asMap(); sink(getMapKey(out)); // $hasValueFlow } { - // "org.springframework.ui;Model;true;asMap;;;MapKey of Argument[-1];MapKey of ReturnValue;value;manual" + // "org.springframework.ui;Model;true;asMap;;;MapKey of Argument[this];MapKey of ReturnValue;value;manual" Map out = null; ConcurrentModel in = new ConcurrentModel((String)source(), null); out = in.asMap(); sink(getMapKey(out)); // $hasValueFlow } { - // "org.springframework.ui;Model;true;asMap;;;MapValue of Argument[-1];MapValue of ReturnValue;value;manual" + // "org.springframework.ui;Model;true;asMap;;;MapValue of Argument[this];MapValue of ReturnValue;value;manual" Map out = null; Model in = (Model)Map.of(null, source()); out = in.asMap(); sink(getMapValue(out)); // $hasValueFlow } { - // "org.springframework.ui;Model;true;asMap;;;MapValue of Argument[-1];MapValue of ReturnValue;value;manual" + // "org.springframework.ui;Model;true;asMap;;;MapValue of Argument[this];MapValue of ReturnValue;value;manual" Map out = null; ConcurrentModel in = new ConcurrentModel(null, source()); out = in.asMap(); sink(getMapValue(out)); // $hasValueFlow } { - // "org.springframework.ui;Model;true;getAttribute;;;MapValue of Argument[-1];ReturnValue;value;manual" + // "org.springframework.ui;Model;true;getAttribute;;;MapValue of Argument[this];ReturnValue;value;manual" Object out = null; Model in = (Model)Map.of(null, source()); out = in.getAttribute(null); sink(out); // $hasValueFlow } { - // "org.springframework.ui;Model;true;getAttribute;;;MapValue of Argument[-1];ReturnValue;value;manual" + // "org.springframework.ui;Model;true;getAttribute;;;MapValue of Argument[this];ReturnValue;value;manual" Object out = null; ConcurrentModel in = new ConcurrentModel(null, source()); out = in.getAttribute(null); sink(out); // $hasValueFlow } { - // "org.springframework.ui;Model;true;mergeAttributes;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.ui;Model;true;mergeAttributes;;;Argument[this];ReturnValue;value;manual" Model out = null; Model in = (Model)source(); out = in.mergeAttributes(null); sink(out); // $hasValueFlow } { - // "org.springframework.ui;Model;true;mergeAttributes;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.ui;Model;true;mergeAttributes;;;Argument[this];ReturnValue;value;manual" ConcurrentModel out = null; ConcurrentModel in = (ConcurrentModel)source(); out = in.mergeAttributes(null); sink(out); // $hasValueFlow } { - // "org.springframework.ui;Model;true;mergeAttributes;;;MapKey of Argument[-1];MapKey of ReturnValue;value;manual" + // "org.springframework.ui;Model;true;mergeAttributes;;;MapKey of Argument[this];MapKey of ReturnValue;value;manual" Model out = null; Model in = new ConcurrentModel((String)source(), null); out = in.mergeAttributes(null); sink(getMapKey(out)); // $hasValueFlow } { - // "org.springframework.ui;Model;true;mergeAttributes;;;MapKey of Argument[-1];MapKey of ReturnValue;value;manual" + // "org.springframework.ui;Model;true;mergeAttributes;;;MapKey of Argument[this];MapKey of ReturnValue;value;manual" ConcurrentModel out = null; ConcurrentModel in = new ConcurrentModel((String)source(), null); out = in.mergeAttributes(null); sink(getMapKey(out)); // $hasValueFlow } { - // "org.springframework.ui;Model;true;mergeAttributes;;;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "org.springframework.ui;Model;true;mergeAttributes;;;MapKey of Argument[0];MapKey of Argument[this];value;manual" Model out = null; Map in = Map.of(source(), null); out.mergeAttributes(in); sink(getMapKey(out)); // $hasValueFlow } { - // "org.springframework.ui;Model;true;mergeAttributes;;;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "org.springframework.ui;Model;true;mergeAttributes;;;MapKey of Argument[0];MapKey of Argument[this];value;manual" ConcurrentModel out = null; Map in = Map.of(source(), null); out.mergeAttributes(in); sink(getMapKey(out)); // $hasValueFlow } { - // "org.springframework.ui;Model;true;mergeAttributes;;;MapValue of Argument[-1];MapValue of ReturnValue;value;manual" + // "org.springframework.ui;Model;true;mergeAttributes;;;MapValue of Argument[this];MapValue of ReturnValue;value;manual" Model out = null; Model in = (Model)Map.of(null, source()); out = in.mergeAttributes(null); sink(getMapValue(out)); // $hasValueFlow } { - // "org.springframework.ui;Model;true;mergeAttributes;;;MapValue of Argument[-1];MapValue of ReturnValue;value;manual" + // "org.springframework.ui;Model;true;mergeAttributes;;;MapValue of Argument[this];MapValue of ReturnValue;value;manual" ConcurrentModel out = null; ConcurrentModel in = new ConcurrentModel(null, source()); out = in.mergeAttributes(null); sink(getMapValue(out)); // $hasValueFlow } { - // "org.springframework.ui;Model;true;mergeAttributes;;;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "org.springframework.ui;Model;true;mergeAttributes;;;MapValue of Argument[0];MapValue of Argument[this];value;manual" Model out = null; Map in = Map.of(null, source()); out.mergeAttributes(in); sink(getMapValue(out)); // $hasValueFlow } { - // "org.springframework.ui;Model;true;mergeAttributes;;;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "org.springframework.ui;Model;true;mergeAttributes;;;MapValue of Argument[0];MapValue of Argument[this];value;manual" ConcurrentModel out = null; Map in = Map.of(null, source()); out.mergeAttributes(in); sink(getMapValue(out)); // $hasValueFlow } { - // "org.springframework.ui;ModelMap;false;ModelMap;(Object);;Argument[0];MapValue of Argument[-1];value;manual" + // "org.springframework.ui;ModelMap;false;ModelMap;(Object);;Argument[0];MapValue of Argument[this];value;manual" ModelMap out = null; Object in = source(); out = new ModelMap(in); sink(getMapValue(out)); // $hasValueFlow } { - // "org.springframework.ui;ModelMap;false;ModelMap;(String,Object);;Argument[0];MapKey of Argument[-1];value;manual" + // "org.springframework.ui;ModelMap;false;ModelMap;(String,Object);;Argument[0];MapKey of Argument[this];value;manual" ModelMap out = null; String in = (String)source(); out = new ModelMap(in, null); sink(getMapKey(out)); // $hasValueFlow } { - // "org.springframework.ui;ModelMap;false;ModelMap;(String,Object);;Argument[1];MapValue of Argument[-1];value;manual" + // "org.springframework.ui;ModelMap;false;ModelMap;(String,Object);;Argument[1];MapValue of Argument[this];value;manual" ModelMap out = null; Object in = source(); out = new ModelMap(null, in); sink(getMapValue(out)); // $hasValueFlow } { - // "org.springframework.ui;ModelMap;false;addAllAttributes;(Collection);;Element of Argument[0];MapValue of Argument[-1];value;manual" + // "org.springframework.ui;ModelMap;false;addAllAttributes;(Collection);;Element of Argument[0];MapValue of Argument[this];value;manual" ModelMap out = null; Collection in = List.of(source()); out.addAllAttributes(in); @@ -429,7 +429,7 @@ public class Test { sink(getMapValue(out)); // $hasValueFlow } { - // "org.springframework.ui;ModelMap;false;addAllAttributes;(Map);;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "org.springframework.ui;ModelMap;false;addAllAttributes;(Map);;MapKey of Argument[0];MapKey of Argument[this];value;manual" ModelMap out = null; Map in = Map.of(source(), null); out.addAllAttributes(in); @@ -444,7 +444,7 @@ public class Test { sink(getMapKey(out)); // $hasValueFlow } { - // "org.springframework.ui;ModelMap;false;addAllAttributes;(Map);;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "org.springframework.ui;ModelMap;false;addAllAttributes;(Map);;MapValue of Argument[0];MapValue of Argument[this];value;manual" ModelMap out = null; Map in = Map.of(null, source()); out.addAllAttributes(in); @@ -459,21 +459,21 @@ public class Test { sink(getMapValue(out)); // $hasValueFlow } { - // "org.springframework.ui;ModelMap;false;addAllAttributes;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.ui;ModelMap;false;addAllAttributes;;;Argument[this];ReturnValue;value;manual" ModelMap out = null; ModelMap in = (ModelMap)source(); out = in.addAllAttributes((Map)null); sink(out); // $hasValueFlow } { - // "org.springframework.ui;ModelMap;false;addAllAttributes;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.ui;ModelMap;false;addAllAttributes;;;Argument[this];ReturnValue;value;manual" ModelMap out = null; ModelMap in = (ModelMap)source(); out = in.addAllAttributes((Collection)null); sink(out); // $hasValueFlow } { - // "org.springframework.ui;ModelMap;false;addAttribute;(Object);;Argument[0];MapValue of Argument[-1];value;manual" + // "org.springframework.ui;ModelMap;false;addAttribute;(Object);;Argument[0];MapValue of Argument[this];value;manual" ModelMap out = null; Object in = source(); out.addAttribute(in); @@ -488,7 +488,7 @@ public class Test { sink(getMapValue(out)); // $hasValueFlow } { - // "org.springframework.ui;ModelMap;false;addAttribute;(String,Object);;Argument[0];MapKey of Argument[-1];value;manual" + // "org.springframework.ui;ModelMap;false;addAttribute;(String,Object);;Argument[0];MapKey of Argument[this];value;manual" ModelMap out = null; String in = (String)source(); out.addAttribute(in, null); @@ -503,7 +503,7 @@ public class Test { sink(getMapKey(out)); // $hasValueFlow } { - // "org.springframework.ui;ModelMap;false;addAttribute;(String,Object);;Argument[1];MapValue of Argument[-1];value;manual" + // "org.springframework.ui;ModelMap;false;addAttribute;(String,Object);;Argument[1];MapValue of Argument[this];value;manual" ModelMap out = null; Object in = source(); out.addAttribute(null, in); @@ -518,56 +518,56 @@ public class Test { sink(getMapValue(out)); // $hasValueFlow } { - // "org.springframework.ui;ModelMap;false;addAttribute;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.ui;ModelMap;false;addAttribute;;;Argument[this];ReturnValue;value;manual" ModelMap out = null; ModelMap in = (ModelMap)source(); out = in.addAttribute(null, null); sink(out); // $hasValueFlow } { - // "org.springframework.ui;ModelMap;false;addAttribute;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.ui;ModelMap;false;addAttribute;;;Argument[this];ReturnValue;value;manual" ModelMap out = null; ModelMap in = (ModelMap)source(); out = in.addAttribute(null); sink(out); // $hasValueFlow } { - // "org.springframework.ui;ModelMap;false;getAttribute;;;MapValue of Argument[-1];ReturnValue;value;manual" + // "org.springframework.ui;ModelMap;false;getAttribute;;;MapValue of Argument[this];ReturnValue;value;manual" Object out = null; ModelMap in = new ModelMap(null, source()); out = in.getAttribute(null); sink(out); // $hasValueFlow } { - // "org.springframework.ui;ModelMap;false;mergeAttributes;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.ui;ModelMap;false;mergeAttributes;;;Argument[this];ReturnValue;value;manual" ModelMap out = null; ModelMap in = (ModelMap)source(); out = in.mergeAttributes(null); sink(out); // $hasValueFlow } { - // "org.springframework.ui;ModelMap;false;mergeAttributes;;;MapKey of Argument[-1];MapKey of ReturnValue;value;manual" + // "org.springframework.ui;ModelMap;false;mergeAttributes;;;MapKey of Argument[this];MapKey of ReturnValue;value;manual" ModelMap out = null; ModelMap in = new ModelMap((String)source(), null); out = in.mergeAttributes(null); sink(getMapKey(out)); // $hasValueFlow } { - // "org.springframework.ui;ModelMap;false;mergeAttributes;;;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "org.springframework.ui;ModelMap;false;mergeAttributes;;;MapKey of Argument[0];MapKey of Argument[this];value;manual" ModelMap out = null; Map in = Map.of(source(), null); out.mergeAttributes(in); sink(getMapKey(out)); // $hasValueFlow } { - // "org.springframework.ui;ModelMap;false;mergeAttributes;;;MapValue of Argument[-1];MapValue of ReturnValue;value;manual" + // "org.springframework.ui;ModelMap;false;mergeAttributes;;;MapValue of Argument[this];MapValue of ReturnValue;value;manual" ModelMap out = null; ModelMap in = new ModelMap(null, source()); out = in.mergeAttributes(null); sink(getMapValue(out)); // $hasValueFlow } { - // "org.springframework.ui;ModelMap;false;mergeAttributes;;;MapValue of Argument[0];MapValue of Argument[-1];value;manual" + // "org.springframework.ui;ModelMap;false;mergeAttributes;;;MapValue of Argument[0];MapValue of Argument[this];value;manual" ModelMap out = null; Map in = Map.of(null, source()); out.mergeAttributes(in); diff --git a/java/ql/test/library-tests/frameworks/spring/util/Test.java b/java/ql/test/library-tests/frameworks/spring/util/Test.java index d4716bcf522..913d96ebe3e 100644 --- a/java/ql/test/library-tests/frameworks/spring/util/Test.java +++ b/java/ql/test/library-tests/frameworks/spring/util/Test.java @@ -120,14 +120,14 @@ public class Test { sink(getMapValue(out)); // $hasTaintFlow } { - // "org.springframework.util;AutoPopulatingList;false;AutoPopulatingList;(java.util.List,java.lang.Class);;Element of Argument[0];Element of Argument[-1];value;manual" + // "org.springframework.util;AutoPopulatingList;false;AutoPopulatingList;(java.util.List,java.lang.Class);;Element of Argument[0];Element of Argument[this];value;manual" AutoPopulatingList out = null; List in = List.of(source()); out = new AutoPopulatingList(in, (Class)null); sink(getElement(out)); // $hasValueFlow } { - // "org.springframework.util;AutoPopulatingList;false;AutoPopulatingList;(java.util.List,org.springframework.util.AutoPopulatingList.ElementFactory);;Element of Argument[0];Element of Argument[-1];value;manual" + // "org.springframework.util;AutoPopulatingList;false;AutoPopulatingList;(java.util.List,org.springframework.util.AutoPopulatingList.ElementFactory);;Element of Argument[0];Element of Argument[this];value;manual" AutoPopulatingList out = null; List in = List.of(source()); out = new AutoPopulatingList(in, (AutoPopulatingList.ElementFactory)null); @@ -303,14 +303,14 @@ public class Test { sink(getMapValue(out)); // $hasValueFlow } { - // "org.springframework.util;CompositeIterator;false;add;;;Element of Argument[0];Element of Argument[-1];value;manual" + // "org.springframework.util;CompositeIterator;false;add;;;Element of Argument[0];Element of Argument[this];value;manual" CompositeIterator out = null; Iterator in = List.of(source()).iterator(); out.add(in); sink(getElement(out)); // $hasValueFlow } { - // "org.springframework.util;CompositeIterator;false;next;;;Element of Argument[-1];ReturnValue;value;manual" + // "org.springframework.util;CompositeIterator;false;next;;;Element of Argument[this];ReturnValue;value;manual" Object out = null; CompositeIterator in = new CompositeIterator(); in.add(List.of(source()).iterator()); @@ -318,35 +318,35 @@ public class Test { sink(out); // $hasValueFlow } { - // "org.springframework.util;FastByteArrayOutputStream;false;getInputStream;;;Argument[-1];ReturnValue;taint;manual" + // "org.springframework.util;FastByteArrayOutputStream;false;getInputStream;;;Argument[this];ReturnValue;taint;manual" InputStream out = null; FastByteArrayOutputStream in = (FastByteArrayOutputStream)source(); out = in.getInputStream(); sink(out); // $hasTaintFlow } { - // "org.springframework.util;FastByteArrayOutputStream;false;toByteArray;;;Argument[-1];ReturnValue;taint;manual" + // "org.springframework.util;FastByteArrayOutputStream;false;toByteArray;;;Argument[this];ReturnValue;taint;manual" byte[] out = null; FastByteArrayOutputStream in = (FastByteArrayOutputStream)source(); out = in.toByteArray(); sink(out); // $hasTaintFlow } { - // "org.springframework.util;FastByteArrayOutputStream;false;write;;;Argument[0];Argument[-1];taint;manual" + // "org.springframework.util;FastByteArrayOutputStream;false;write;;;Argument[0];Argument[this];taint;manual" FastByteArrayOutputStream out = null; int in = (int)source(); out.write(in); sink(out); // $hasTaintFlow } { - // "org.springframework.util;FastByteArrayOutputStream;false;write;;;Argument[0];Argument[-1];taint;manual" + // "org.springframework.util;FastByteArrayOutputStream;false;write;;;Argument[0];Argument[this];taint;manual" FastByteArrayOutputStream out = null; byte[] in = (byte[])source(); out.write(in, 0, 0); sink(out); // $hasTaintFlow } { - // "org.springframework.util;FastByteArrayOutputStream;false;writeTo;;;Argument[-1];Argument[0];taint;manual" + // "org.springframework.util;FastByteArrayOutputStream;false;writeTo;;;Argument[this];Argument[0];taint;manual" OutputStream out = null; FastByteArrayOutputStream in = (FastByteArrayOutputStream)source(); in.writeTo(out); @@ -423,21 +423,21 @@ public class Test { sink(out); // $hasTaintFlow } { - // "org.springframework.util;LinkedMultiValueMap;false;LinkedMultiValueMap;(java.util.Map);;Element of MapValue of Argument[0];Element of MapValue of Argument[-1];value;manual" + // "org.springframework.util;LinkedMultiValueMap;false;LinkedMultiValueMap;(java.util.Map);;Element of MapValue of Argument[0];Element of MapValue of Argument[this];value;manual" LinkedMultiValueMap<Object, Object> out = null; Map in = Map.of(null, List.of(source())); out = new LinkedMultiValueMap(in); sink(getElement(getMapValue(out))); // $hasValueFlow } { - // "org.springframework.util;LinkedMultiValueMap;false;LinkedMultiValueMap;(java.util.Map);;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "org.springframework.util;LinkedMultiValueMap;false;LinkedMultiValueMap;(java.util.Map);;MapKey of Argument[0];MapKey of Argument[this];value;manual" LinkedMultiValueMap<Object, Object> out = null; Map in = Map.of(source(), null); out = new LinkedMultiValueMap(in); sink(getMapKey(out)); // $hasValueFlow } { - // "org.springframework.util;LinkedMultiValueMap;false;deepCopy;;;MapKey of Argument[-1];MapValue of ReturnValue;value;manual" + // "org.springframework.util;LinkedMultiValueMap;false;deepCopy;;;MapKey of Argument[this];MapValue of ReturnValue;value;manual" LinkedMultiValueMap<Object, Object> out = null; LinkedMultiValueMap in = new LinkedMultiValueMap<Object, Object>(); in.set(source(), null); @@ -445,7 +445,7 @@ public class Test { sink(getMapKey(out)); // $hasValueFlow } { - // "org.springframework.util;LinkedMultiValueMap;false;deepCopy;;;MapValue of Argument[-1];MapValue of ReturnValue;value;manual" + // "org.springframework.util;LinkedMultiValueMap;false;deepCopy;;;MapValue of Argument[this];MapValue of ReturnValue;value;manual" LinkedMultiValueMap<Object, Object> out = null; LinkedMultiValueMap in = new LinkedMultiValueMap<Object, Object>(); in.set(null, source()); @@ -453,98 +453,98 @@ public class Test { sink(getElement(getMapValue(out))); // $hasValueFlow } { - // "org.springframework.util;MultiValueMap;true;add;;;Argument[0];MapKey of Argument[-1];value;manual" + // "org.springframework.util;MultiValueMap;true;add;;;Argument[0];MapKey of Argument[this];value;manual" MultiValueMapAdapter<Object, Object> out = null; Object in = source(); out.add(in, null); sink(getMapKey(out)); // $hasValueFlow } { - // "org.springframework.util;MultiValueMap;true;add;;;Argument[0];MapKey of Argument[-1];value;manual" + // "org.springframework.util;MultiValueMap;true;add;;;Argument[0];MapKey of Argument[this];value;manual" MultiValueMap<Object, Object> out = null; Object in = source(); out.add(in, null); sink(getMapKey(out)); // $hasValueFlow } { - // "org.springframework.util;MultiValueMap;true;add;;;Argument[0];MapKey of Argument[-1];value;manual" + // "org.springframework.util;MultiValueMap;true;add;;;Argument[0];MapKey of Argument[this];value;manual" MultiValueMap<Object, Object> out = null; Object in = source(); out.add(in, (Object)null); sink(getMapKey(out)); // $hasValueFlow } { - // "org.springframework.util;MultiValueMap;true;add;;;Argument[1];Element of MapValue of Argument[-1];value;manual" + // "org.springframework.util;MultiValueMap;true;add;;;Argument[1];Element of MapValue of Argument[this];value;manual" MultiValueMapAdapter<Object, Object> out = null; Object in = source(); out.add(null, in); sink(getElement(getMapValue(out))); // $hasValueFlow } { - // "org.springframework.util;MultiValueMap;true;add;;;Argument[1];Element of MapValue of Argument[-1];value;manual" + // "org.springframework.util;MultiValueMap;true;add;;;Argument[1];Element of MapValue of Argument[this];value;manual" MultiValueMap<Object, Object> out = null; Object in = source(); out.add(null, in); sink(getElement(getMapValue(out))); // $hasValueFlow } { - // "org.springframework.util;MultiValueMap;true;add;;;Argument[1];Element of MapValue of Argument[-1];value;manual" + // "org.springframework.util;MultiValueMap;true;add;;;Argument[1];Element of MapValue of Argument[this];value;manual" MultiValueMap<Object, Object> out = null; Object in = source(); out.add((Object)null, in); sink(getElement(getMapValue(out))); // $hasValueFlow } { - // "org.springframework.util;MultiValueMap;true;addAll;(java.lang.Object,java.util.List);;Element of Argument[1];Element of MapValue of Argument[-1];value;manual" + // "org.springframework.util;MultiValueMap;true;addAll;(java.lang.Object,java.util.List);;Element of Argument[1];Element of MapValue of Argument[this];value;manual" MultiValueMapAdapter<Object, Object> out = null; List in = List.of(source()); out.addAll(null, in); sink(getElement(getMapValue(out))); // $hasValueFlow } { - // "org.springframework.util;MultiValueMap;true;addAll;(java.lang.Object,java.util.List);;Element of Argument[1];Element of MapValue of Argument[-1];value;manual" + // "org.springframework.util;MultiValueMap;true;addAll;(java.lang.Object,java.util.List);;Element of Argument[1];Element of MapValue of Argument[this];value;manual" MultiValueMap<Object, Object> out = null; List in = List.of(source()); out.addAll(null, in); sink(getElement(getMapValue(out))); // $hasValueFlow } { - // "org.springframework.util;MultiValueMap;true;addAll;(java.lang.Object,java.util.List);;Element of Argument[1];Element of MapValue of Argument[-1];value;manual" + // "org.springframework.util;MultiValueMap;true;addAll;(java.lang.Object,java.util.List);;Element of Argument[1];Element of MapValue of Argument[this];value;manual" MultiValueMap<Object, Object> out = null; List in = List.of(source()); out.addAll((Object)null, in); sink(getElement(getMapValue(out))); // $hasValueFlow } { - // "org.springframework.util;MultiValueMap;true;addAll;(org.springframework.util.MultiValueMap);;Element of MapValue of Argument[0];Element of MapValue of Argument[-1];value;manual" + // "org.springframework.util;MultiValueMap;true;addAll;(org.springframework.util.MultiValueMap);;Element of MapValue of Argument[0];Element of MapValue of Argument[this];value;manual" MultiValueMapAdapter<Object, Object> out = null; MultiValueMap in = (MultiValueMap)Map.of(null, List.of(source())); out.addAll(in); sink(getElement(getMapValue(out))); // $hasValueFlow } { - // "org.springframework.util;MultiValueMap;true;addAll;(org.springframework.util.MultiValueMap);;Element of MapValue of Argument[0];Element of MapValue of Argument[-1];value;manual" + // "org.springframework.util;MultiValueMap;true;addAll;(org.springframework.util.MultiValueMap);;Element of MapValue of Argument[0];Element of MapValue of Argument[this];value;manual" MultiValueMap<Object, Object> out = null; MultiValueMap in = (MultiValueMap)Map.of(null, List.of(source())); out.addAll(in); sink(getElement(getMapValue(out))); // $hasValueFlow } { - // "org.springframework.util;MultiValueMap;true;addAll;;;Argument[0];MapKey of Argument[-1];value;manual" + // "org.springframework.util;MultiValueMap;true;addAll;;;Argument[0];MapKey of Argument[this];value;manual" MultiValueMapAdapter<Object, Object> out = null; Object in = source(); out.addAll(in, null); sink(getMapKey(out)); // $hasValueFlow } { - // "org.springframework.util;MultiValueMap;true;addAll;;;Argument[0];MapKey of Argument[-1];value;manual" + // "org.springframework.util;MultiValueMap;true;addAll;;;Argument[0];MapKey of Argument[this];value;manual" MultiValueMap<Object, Object> out = null; Object in = source(); out.addAll(in, (List)null); sink(getMapKey(out)); // $hasValueFlow } { - // "org.springframework.util;MultiValueMap;true;addAll;;;Argument[0];MapKey of Argument[-1];value;manual" + // "org.springframework.util;MultiValueMap;true;addAll;;;Argument[0];MapKey of Argument[this];value;manual" MultiValueMapAdapter<Object, Object> out = null; MultiValueMap<Object, Object> mvm = null; mvm.set(source(), "someValue"); @@ -552,7 +552,7 @@ public class Test { sink(getMapKey(out)); // $hasValueFlow } { - // "org.springframework.util;MultiValueMap;true;addAll;;;Argument[0];MapKey of Argument[-1];value;manual" + // "org.springframework.util;MultiValueMap;true;addAll;;;Argument[0];MapKey of Argument[this];value;manual" MultiValueMap<Object, Object> out = null; MultiValueMap<Object, Object> mvm = null; mvm.set(source(), "someValue"); @@ -560,154 +560,154 @@ public class Test { sink(getMapKey(out)); // $hasValueFlow } { - // "org.springframework.util;MultiValueMap;true;addIfAbsent;;;Argument[0];MapKey of Argument[-1];value;manual" + // "org.springframework.util;MultiValueMap;true;addIfAbsent;;;Argument[0];MapKey of Argument[this];value;manual" MultiValueMap<Object, Object> out = null; Object in = source(); out.addIfAbsent(in, null); sink(getMapKey(out)); // $hasValueFlow } { - // "org.springframework.util;MultiValueMap;true;addIfAbsent;;;Argument[0];MapKey of Argument[-1];value;manual" + // "org.springframework.util;MultiValueMap;true;addIfAbsent;;;Argument[0];MapKey of Argument[this];value;manual" MultiValueMap<Object, Object> out = null; Object in = source(); out.addIfAbsent(in, (Object)null); sink(getMapKey(out)); // $hasValueFlow } { - // "org.springframework.util;MultiValueMap;true;addIfAbsent;;;Argument[1];Element of MapValue of Argument[-1];value;manual" + // "org.springframework.util;MultiValueMap;true;addIfAbsent;;;Argument[1];Element of MapValue of Argument[this];value;manual" MultiValueMap<Object, Object> out = null; Object in = source(); out.addIfAbsent(null, in); sink(getElement(getMapValue(out))); // $hasValueFlow } { - // "org.springframework.util;MultiValueMap;true;addIfAbsent;;;Argument[1];Element of MapValue of Argument[-1];value;manual" + // "org.springframework.util;MultiValueMap;true;addIfAbsent;;;Argument[1];Element of MapValue of Argument[this];value;manual" MultiValueMap<Object, Object> out = null; Object in = source(); out.addIfAbsent((Object)null, in); sink(getElement(getMapValue(out))); // $hasValueFlow } { - // "org.springframework.util;MultiValueMap;true;getFirst;;;Element of MapValue of Argument[-1];ReturnValue;value;manual" + // "org.springframework.util;MultiValueMap;true;getFirst;;;Element of MapValue of Argument[this];ReturnValue;value;manual" Object out = null; MultiValueMapAdapter in = new MultiValueMapAdapter(Map.of(null, List.of(source()))); out = in.getFirst(null); sink(out); // $hasValueFlow } { - // "org.springframework.util;MultiValueMap;true;getFirst;;;Element of MapValue of Argument[-1];ReturnValue;value;manual" + // "org.springframework.util;MultiValueMap;true;getFirst;;;Element of MapValue of Argument[this];ReturnValue;value;manual" Object out = null; MultiValueMap in = (MultiValueMap)Map.of(null, List.of(source())); out = in.getFirst(null); sink(out); // $hasValueFlow } { - // "org.springframework.util;MultiValueMap;true;getFirst;;;Element of MapValue of Argument[-1];ReturnValue;value;manual" + // "org.springframework.util;MultiValueMap;true;getFirst;;;Element of MapValue of Argument[this];ReturnValue;value;manual" Object out = null; MultiValueMap in = (MultiValueMap)Map.of(null, List.of(source())); out = in.getFirst((Object)null); sink(out); // $hasValueFlow } { - // "org.springframework.util;MultiValueMap;true;set;;;Argument[0];MapKey of Argument[-1];value;manual" + // "org.springframework.util;MultiValueMap;true;set;;;Argument[0];MapKey of Argument[this];value;manual" MultiValueMapAdapter<Object, Object> out = null; Object in = source(); out.set(in, null); sink(getMapKey(out)); // $hasValueFlow } { - // "org.springframework.util;MultiValueMap;true;set;;;Argument[0];MapKey of Argument[-1];value;manual" + // "org.springframework.util;MultiValueMap;true;set;;;Argument[0];MapKey of Argument[this];value;manual" MultiValueMap<Object, Object> out = null; Object in = source(); out.set(in, null); sink(getMapKey(out)); // $hasValueFlow } { - // "org.springframework.util;MultiValueMap;true;set;;;Argument[1];Element of MapValue of Argument[-1];value;manual" + // "org.springframework.util;MultiValueMap;true;set;;;Argument[1];Element of MapValue of Argument[this];value;manual" MultiValueMapAdapter<Object, Object> out = null; Object in = source(); out.set(null, in); sink(getElement(getMapValue(out))); // $hasValueFlow } { - // "org.springframework.util;MultiValueMap;true;set;;;Argument[1];Element of MapValue of Argument[-1];value;manual" + // "org.springframework.util;MultiValueMap;true;set;;;Argument[1];Element of MapValue of Argument[this];value;manual" MultiValueMap<Object, Object> out = null; Object in = source(); out.set(null, in); sink(getElement(getMapValue(out))); // $hasValueFlow } { - // "org.springframework.util;MultiValueMap;true;set;;;Argument[1];Element of MapValue of Argument[-1];value;manual" + // "org.springframework.util;MultiValueMap;true;set;;;Argument[1];Element of MapValue of Argument[this];value;manual" MultiValueMap<Object, Object> out = null; Object in = source(); out.set((Object)null, in); sink(getElement(getMapValue(out))); // $hasValueFlow } { - // "org.springframework.util;MultiValueMap;true;setAll;;;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "org.springframework.util;MultiValueMap;true;setAll;;;MapKey of Argument[0];MapKey of Argument[this];value;manual" MultiValueMapAdapter<Object, Object> out = null; Map in = Map.of(source(), null); out.setAll(in); sink(getMapKey(out)); // $hasValueFlow } { - // "org.springframework.util;MultiValueMap;true;setAll;;;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "org.springframework.util;MultiValueMap;true;setAll;;;MapKey of Argument[0];MapKey of Argument[this];value;manual" MultiValueMap<Object, Object> out = null; Map in = Map.of(source(), null); out.setAll(in); sink(getMapKey(out)); // $hasValueFlow } { - // "org.springframework.util;MultiValueMap;true;setAll;;;MapValue of Argument[0];Element of MapValue of Argument[-1];value;manual" + // "org.springframework.util;MultiValueMap;true;setAll;;;MapValue of Argument[0];Element of MapValue of Argument[this];value;manual" MultiValueMapAdapter<Object, Object> out = null; Map in = Map.of(null, source()); out.setAll(in); sink(getElement(getMapValue(out))); // $hasValueFlow } { - // "org.springframework.util;MultiValueMap;true;setAll;;;MapValue of Argument[0];Element of MapValue of Argument[-1];value;manual" + // "org.springframework.util;MultiValueMap;true;setAll;;;MapValue of Argument[0];Element of MapValue of Argument[this];value;manual" MultiValueMap<Object, Object> out = null; Map in = Map.of(null, source()); out.setAll(in); sink(getElement(getMapValue(out))); // $hasValueFlow } { - // "org.springframework.util;MultiValueMap;true;toSingleValueMap;;;Element of MapValue of Argument[-1];MapValue of ReturnValue;value;manual" + // "org.springframework.util;MultiValueMap;true;toSingleValueMap;;;Element of MapValue of Argument[this];MapValue of ReturnValue;value;manual" Map out = null; MultiValueMapAdapter in = new MultiValueMapAdapter(Map.of(null, List.of(source()))); out = in.toSingleValueMap(); sink(getMapValue(out)); // $hasValueFlow } { - // "org.springframework.util;MultiValueMap;true;toSingleValueMap;;;Element of MapValue of Argument[-1];MapValue of ReturnValue;value;manual" + // "org.springframework.util;MultiValueMap;true;toSingleValueMap;;;Element of MapValue of Argument[this];MapValue of ReturnValue;value;manual" Map out = null; MultiValueMap in = (MultiValueMap)Map.of(null, List.of(source())); out = in.toSingleValueMap(); sink(getMapValue(out)); // $hasValueFlow } { - // "org.springframework.util;MultiValueMap;true;toSingleValueMap;;;MapKey of Argument[-1];MapKey of ReturnValue;value;manual" + // "org.springframework.util;MultiValueMap;true;toSingleValueMap;;;MapKey of Argument[this];MapKey of ReturnValue;value;manual" Map out = null; MultiValueMapAdapter in = new MultiValueMapAdapter(Map.of(source(), null)); out = in.toSingleValueMap(); sink(getMapKey(out)); // $hasValueFlow } { - // "org.springframework.util;MultiValueMap;true;toSingleValueMap;;;MapKey of Argument[-1];MapKey of ReturnValue;value;manual" + // "org.springframework.util;MultiValueMap;true;toSingleValueMap;;;MapKey of Argument[this];MapKey of ReturnValue;value;manual" Map out = null; MultiValueMap in = new MultiValueMapAdapter(Map.of(source(), null)); out = in.toSingleValueMap(); sink(getMapKey(out)); // $hasValueFlow } { - // "org.springframework.util;MultiValueMapAdapter;false;MultiValueMapAdapter;;;Element of MapValue of Argument[0];Element of MapValue of Argument[-1];value;manual" + // "org.springframework.util;MultiValueMapAdapter;false;MultiValueMapAdapter;;;Element of MapValue of Argument[0];Element of MapValue of Argument[this];value;manual" MultiValueMapAdapter<Object, Object> out = null; Map in = Map.of(null, List.of(source())); out = new MultiValueMapAdapter(in); sink(getElement(getMapValue(out))); // $hasValueFlow } { - // "org.springframework.util;MultiValueMapAdapter;false;MultiValueMapAdapter;;;MapKey of Argument[0];MapKey of Argument[-1];value;manual" + // "org.springframework.util;MultiValueMapAdapter;false;MultiValueMapAdapter;;;MapKey of Argument[0];MapKey of Argument[this];value;manual" MultiValueMapAdapter<Object, Object> out = null; Map in = Map.of(source(), null); out = new MultiValueMapAdapter(in); @@ -816,28 +816,28 @@ public class Test { sink(out); // $hasTaintFlow } { - // "org.springframework.util;PropertyPlaceholderHelper;false;PropertyPlaceholderHelper;;;Argument[0..1];Argument[-1];taint;manual" + // "org.springframework.util;PropertyPlaceholderHelper;false;PropertyPlaceholderHelper;;;Argument[0..1];Argument[this];taint;manual" PropertyPlaceholderHelper out = null; String in = (String)source(); out = new PropertyPlaceholderHelper(null, in, null, false); sink(out); // $hasTaintFlow } { - // "org.springframework.util;PropertyPlaceholderHelper;false;PropertyPlaceholderHelper;;;Argument[0..1];Argument[-1];taint;manual" + // "org.springframework.util;PropertyPlaceholderHelper;false;PropertyPlaceholderHelper;;;Argument[0..1];Argument[this];taint;manual" PropertyPlaceholderHelper out = null; String in = (String)source(); out = new PropertyPlaceholderHelper(null, in); sink(out); // $hasTaintFlow } { - // "org.springframework.util;PropertyPlaceholderHelper;false;PropertyPlaceholderHelper;;;Argument[0..1];Argument[-1];taint;manual" + // "org.springframework.util;PropertyPlaceholderHelper;false;PropertyPlaceholderHelper;;;Argument[0..1];Argument[this];taint;manual" PropertyPlaceholderHelper out = null; String in = (String)source(); out = new PropertyPlaceholderHelper(in, null, null, false); sink(out); // $hasTaintFlow } { - // "org.springframework.util;PropertyPlaceholderHelper;false;PropertyPlaceholderHelper;;;Argument[0..1];Argument[-1];taint;manual" + // "org.springframework.util;PropertyPlaceholderHelper;false;PropertyPlaceholderHelper;;;Argument[0..1];Argument[this];taint;manual" PropertyPlaceholderHelper out = null; String in = (String)source(); out = new PropertyPlaceholderHelper(in, null); diff --git a/java/ql/test/library-tests/frameworks/spring/webmultipart/Test.java b/java/ql/test/library-tests/frameworks/spring/webmultipart/Test.java index 077990f034c..5d7387c20e0 100644 --- a/java/ql/test/library-tests/frameworks/spring/webmultipart/Test.java +++ b/java/ql/test/library-tests/frameworks/spring/webmultipart/Test.java @@ -26,84 +26,84 @@ public class Test { public void test() throws Exception { { - // "org.springframework.web.multipart;MultipartFile;true;getBytes;;;Argument[-1];ReturnValue;taint;manual" + // "org.springframework.web.multipart;MultipartFile;true;getBytes;;;Argument[this];ReturnValue;taint;manual" byte[] out = null; MultipartFile in = (MultipartFile)source(); out = in.getBytes(); sink(out); // $hasTaintFlow } { - // "org.springframework.web.multipart;MultipartFile;true;getInputStream;;;Argument[-1];ReturnValue;taint;manual" + // "org.springframework.web.multipart;MultipartFile;true;getInputStream;;;Argument[this];ReturnValue;taint;manual" InputStream out = null; MultipartFile in = (MultipartFile)source(); out = in.getInputStream(); sink(out); // $hasTaintFlow } { - // "org.springframework.web.multipart;MultipartFile;true;getName;;;Argument[-1];ReturnValue;taint;manual" + // "org.springframework.web.multipart;MultipartFile;true;getName;;;Argument[this];ReturnValue;taint;manual" String out = null; MultipartFile in = (MultipartFile)source(); out = in.getName(); sink(out); // $hasTaintFlow } { - // "org.springframework.web.multipart;MultipartFile;true;getOriginalFilename;;;Argument[-1];ReturnValue;taint;manual" + // "org.springframework.web.multipart;MultipartFile;true;getOriginalFilename;;;Argument[this];ReturnValue;taint;manual" String out = null; MultipartFile in = (MultipartFile)source(); out = in.getOriginalFilename(); sink(out); // $hasTaintFlow } { - // "org.springframework.web.multipart;MultipartFile;true;getResource;;;Argument[-1];ReturnValue;taint;manual" + // "org.springframework.web.multipart;MultipartFile;true;getResource;;;Argument[this];ReturnValue;taint;manual" Resource out = null; MultipartFile in = (MultipartFile)source(); out = in.getResource(); sink(out); // $hasTaintFlow } { - // "org.springframework.web.multipart;MultipartHttpServletRequest;true;getMultipartHeaders;;;Argument[-1];ReturnValue;taint;manual" + // "org.springframework.web.multipart;MultipartHttpServletRequest;true;getMultipartHeaders;;;Argument[this];ReturnValue;taint;manual" HttpHeaders out = null; MultipartHttpServletRequest in = (MultipartHttpServletRequest)source(); out = in.getMultipartHeaders(null); sink(out); // $hasTaintFlow } { - // "org.springframework.web.multipart;MultipartHttpServletRequest;true;getRequestHeaders;;;Argument[-1];ReturnValue;taint;manual" + // "org.springframework.web.multipart;MultipartHttpServletRequest;true;getRequestHeaders;;;Argument[this];ReturnValue;taint;manual" HttpHeaders out = null; MultipartHttpServletRequest in = (MultipartHttpServletRequest)source(); out = in.getRequestHeaders(); sink(out); // $hasTaintFlow } { - // "org.springframework.web.multipart;MultipartRequest;true;getFile;;;Argument[-1];ReturnValue;taint;manual" + // "org.springframework.web.multipart;MultipartRequest;true;getFile;;;Argument[this];ReturnValue;taint;manual" MultipartFile out = null; MultipartRequest in = (MultipartRequest)source(); out = in.getFile(null); sink(out); // $hasTaintFlow } { - // "org.springframework.web.multipart;MultipartRequest;true;getFileMap;;;Argument[-1];MapValue of ReturnValue;taint;manual" + // "org.springframework.web.multipart;MultipartRequest;true;getFileMap;;;Argument[this];MapValue of ReturnValue;taint;manual" Map out = null; MultipartRequest in = (MultipartRequest)source(); out = in.getFileMap(); sink(getMapValue(out)); // $hasTaintFlow } { - // "org.springframework.web.multipart;MultipartRequest;true;getFileNames;;;Argument[-1];Element of ReturnValue;taint;manual" + // "org.springframework.web.multipart;MultipartRequest;true;getFileNames;;;Argument[this];Element of ReturnValue;taint;manual" Iterator out = null; MultipartRequest in = (MultipartRequest)source(); out = in.getFileNames(); sink(getElement(out)); // $hasTaintFlow } { - // "org.springframework.web.multipart;MultipartRequest;true;getFiles;;;Argument[-1];Element of ReturnValue;taint;manual" + // "org.springframework.web.multipart;MultipartRequest;true;getFiles;;;Argument[this];Element of ReturnValue;taint;manual" List out = null; MultipartRequest in = (MultipartRequest)source(); out = in.getFiles(null); sink(getElement(out)); // $hasTaintFlow } { - // "org.springframework.web.multipart;MultipartRequest;true;getMultiFileMap;;;Argument[-1];MapValue of ReturnValue;taint;manual" + // "org.springframework.web.multipart;MultipartRequest;true;getMultiFileMap;;;Argument[this];MapValue of ReturnValue;taint;manual" MultiValueMap out = null; MultipartRequest in = (MultipartRequest)source(); out = in.getMultiFileMap(); diff --git a/java/ql/test/library-tests/frameworks/spring/webutil/Test.java b/java/ql/test/library-tests/frameworks/spring/webutil/Test.java index 6ed2dd20e3e..f5ca8b9b5b6 100644 --- a/java/ql/test/library-tests/frameworks/spring/webutil/Test.java +++ b/java/ql/test/library-tests/frameworks/spring/webutil/Test.java @@ -59,84 +59,84 @@ public class Test { public void test() throws Exception { { - // "org.springframework.web.util;AbstractUriTemplateHandler;true;getBaseUrl;;;Argument[-1];ReturnValue;taint;manual" + // "org.springframework.web.util;AbstractUriTemplateHandler;true;getBaseUrl;;;Argument[this];ReturnValue;taint;manual" String out = null; AbstractUriTemplateHandler in = (AbstractUriTemplateHandler)source(); out = in.getBaseUrl(); sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;AbstractUriTemplateHandler;true;setBaseUrl;;;Argument[0];Argument[-1];taint;manual" + // "org.springframework.web.util;AbstractUriTemplateHandler;true;setBaseUrl;;;Argument[0];Argument[this];taint;manual" AbstractUriTemplateHandler out = null; String in = (String)source(); out.setBaseUrl(in); sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;AbstractUriTemplateHandler;true;setDefaultUriVariables;;;Argument[0];Argument[-1];taint;manual" + // "org.springframework.web.util;AbstractUriTemplateHandler;true;setDefaultUriVariables;;;Argument[0];Argument[this];taint;manual" AbstractUriTemplateHandler out = null; Map in = (Map)source(); out.setDefaultUriVariables(in); sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;ContentCachingRequestWrapper;false;ContentCachingRequestWrapper;;;Argument[0];Argument[-1];taint;manual" + // "org.springframework.web.util;ContentCachingRequestWrapper;false;ContentCachingRequestWrapper;;;Argument[0];Argument[this];taint;manual" ContentCachingRequestWrapper out = null; HttpServletRequest in = (HttpServletRequest)source(); out = new ContentCachingRequestWrapper(in, 0); sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;ContentCachingRequestWrapper;false;ContentCachingRequestWrapper;;;Argument[0];Argument[-1];taint;manual" + // "org.springframework.web.util;ContentCachingRequestWrapper;false;ContentCachingRequestWrapper;;;Argument[0];Argument[this];taint;manual" ContentCachingRequestWrapper out = null; HttpServletRequest in = (HttpServletRequest)source(); out = new ContentCachingRequestWrapper(in); sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;ContentCachingRequestWrapper;false;getContentAsByteArray;;;Argument[-1];ReturnValue;taint;manual" + // "org.springframework.web.util;ContentCachingRequestWrapper;false;getContentAsByteArray;;;Argument[this];ReturnValue;taint;manual" byte[] out = null; ContentCachingRequestWrapper in = (ContentCachingRequestWrapper)source(); out = in.getContentAsByteArray(); sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;ContentCachingResponseWrapper;false;ContentCachingResponseWrapper;;;Argument[0];Argument[-1];taint;manual" + // "org.springframework.web.util;ContentCachingResponseWrapper;false;ContentCachingResponseWrapper;;;Argument[0];Argument[this];taint;manual" ContentCachingResponseWrapper out = null; HttpServletResponse in = (HttpServletResponse)source(); out = new ContentCachingResponseWrapper(in); sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;ContentCachingResponseWrapper;false;getContentAsByteArray;;;Argument[-1];ReturnValue;taint;manual" + // "org.springframework.web.util;ContentCachingResponseWrapper;false;getContentAsByteArray;;;Argument[this];ReturnValue;taint;manual" byte[] out = null; ContentCachingResponseWrapper in = (ContentCachingResponseWrapper)source(); out = in.getContentAsByteArray(); sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;ContentCachingResponseWrapper;false;getContentInputStream;;;Argument[-1];ReturnValue;taint;manual" + // "org.springframework.web.util;ContentCachingResponseWrapper;false;getContentInputStream;;;Argument[this];ReturnValue;taint;manual" InputStream out = null; ContentCachingResponseWrapper in = (ContentCachingResponseWrapper)source(); out = in.getContentInputStream(); sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;DefaultUriBuilderFactory;false;DefaultUriBuilderFactory;;;Argument[0];Argument[-1];taint;manual" + // "org.springframework.web.util;DefaultUriBuilderFactory;false;DefaultUriBuilderFactory;;;Argument[0];Argument[this];taint;manual" DefaultUriBuilderFactory out = null; UriComponentsBuilder in = (UriComponentsBuilder)source(); out = new DefaultUriBuilderFactory(in); sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;DefaultUriBuilderFactory;false;DefaultUriBuilderFactory;;;Argument[0];Argument[-1];taint;manual" + // "org.springframework.web.util;DefaultUriBuilderFactory;false;DefaultUriBuilderFactory;;;Argument[0];Argument[this];taint;manual" DefaultUriBuilderFactory out = null; String in = (String)source(); out = new DefaultUriBuilderFactory(in); sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;DefaultUriBuilderFactory;false;builder;;;Argument[-1];ReturnValue;taint;manual" + // "org.springframework.web.util;DefaultUriBuilderFactory;false;builder;;;Argument[this];ReturnValue;taint;manual" UriBuilder out = null; DefaultUriBuilderFactory in = (DefaultUriBuilderFactory)source(); out = in.builder(); @@ -189,21 +189,21 @@ public class Test { sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;DefaultUriBuilderFactory;false;getDefaultUriVariables;;;Argument[-1];MapValue of ReturnValue;taint;manual" + // "org.springframework.web.util;DefaultUriBuilderFactory;false;getDefaultUriVariables;;;Argument[this];MapValue of ReturnValue;taint;manual" Map out = null; DefaultUriBuilderFactory in = (DefaultUriBuilderFactory)source(); out = in.getDefaultUriVariables(); sink(getMapValue(out)); // $hasTaintFlow } { - // "org.springframework.web.util;DefaultUriBuilderFactory;false;setDefaultUriVariables;;;MapValue of Argument[0];Argument[-1];taint;manual" + // "org.springframework.web.util;DefaultUriBuilderFactory;false;setDefaultUriVariables;;;MapValue of Argument[0];Argument[this];taint;manual" DefaultUriBuilderFactory out = null; Map in = Map.of(null, source()); out.setDefaultUriVariables(in); sink(out); // $ hasTaintFlow } { - // "org.springframework.web.util;DefaultUriBuilderFactory;false;uriString;;;Argument[-1];ReturnValue;taint;manual" + // "org.springframework.web.util;DefaultUriBuilderFactory;false;uriString;;;Argument[this];ReturnValue;taint;manual" UriBuilder out = null; DefaultUriBuilderFactory in = (DefaultUriBuilderFactory)source(); out = in.uriString(null); @@ -280,7 +280,7 @@ public class Test { sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriBuilder;true;build;(Map);;MapValue of Argument[0];Argument[-1];taint;manual" + // "org.springframework.web.util;UriBuilder;true;build;(Map);;MapValue of Argument[0];Argument[this];taint;manual" UriBuilder out = null; Map in = newMapWithValue(source()); out.build(in); @@ -295,56 +295,56 @@ public class Test { sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriBuilder;true;build;;;Argument[-1];ReturnValue;taint;manual" + // "org.springframework.web.util;UriBuilder;true;build;;;Argument[this];ReturnValue;taint;manual" URI out = null; UriBuilder in = (UriBuilder)source(); out = in.build(false); sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriBuilder;true;build;;;Argument[-1];ReturnValue;taint;manual" + // "org.springframework.web.util;UriBuilder;true;build;;;Argument[this];ReturnValue;taint;manual" URI out = null; UriBuilder in = (UriBuilder)source(); out = in.build(); sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriBuilder;true;build;;;Argument[-1];ReturnValue;taint;manual" + // "org.springframework.web.util;UriBuilder;true;build;;;Argument[this];ReturnValue;taint;manual" URI out = null; UriBuilder in = (UriBuilder)source(); out = in.build((Object[])null); sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriBuilder;true;build;;;Argument[-1];ReturnValue;taint;manual" + // "org.springframework.web.util;UriBuilder;true;build;;;Argument[this];ReturnValue;taint;manual" URI out = null; UriBuilder in = (UriBuilder)source(); out = in.build((Map)null); sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriBuilder;true;fragment;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.web.util;UriBuilder;true;fragment;;;Argument[this];ReturnValue;value;manual" UriBuilder out = null; UriBuilder in = (UriBuilder)source(); out = in.fragment(null); sink(out); // $hasValueFlow } { - // "org.springframework.web.util;UriBuilder;true;fragment;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.web.util;UriBuilder;true;fragment;;;Argument[this];ReturnValue;value;manual" UriBuilder out = null; UriBuilder in = (UriBuilder)source(); out = in.fragment(null); sink(out); // $hasValueFlow } { - // "org.springframework.web.util;UriBuilder;true;fragment;;;Argument[0];Argument[-1];taint;manual" + // "org.springframework.web.util;UriBuilder;true;fragment;;;Argument[0];Argument[this];taint;manual" UriBuilder out = null; String in = (String)source(); out.fragment(in); sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriBuilder;true;fragment;;;Argument[0];Argument[-1];taint;manual" + // "org.springframework.web.util;UriBuilder;true;fragment;;;Argument[0];Argument[this];taint;manual" UriBuilder out = null; String in = (String)source(); out.fragment(in); @@ -367,14 +367,14 @@ public class Test { sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriBuilder;true;host;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.web.util;UriBuilder;true;host;;;Argument[this];ReturnValue;value;manual" UriBuilder out = null; UriBuilder in = (UriBuilder)source(); out = in.host(null); sink(out); // $hasValueFlow } { - // "org.springframework.web.util;UriBuilder;true;host;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.web.util;UriBuilder;true;host;;;Argument[this];ReturnValue;value;manual" UriBuilder out = null; UriBuilder in = (UriBuilder)source(); out = in.host(null); @@ -397,28 +397,28 @@ public class Test { sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriBuilder;true;path;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.web.util;UriBuilder;true;path;;;Argument[this];ReturnValue;value;manual" UriBuilder out = null; UriBuilder in = (UriBuilder)source(); out = in.path(null); sink(out); // $hasValueFlow } { - // "org.springframework.web.util;UriBuilder;true;path;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.web.util;UriBuilder;true;path;;;Argument[this];ReturnValue;value;manual" UriBuilder out = null; UriBuilder in = (UriBuilder)source(); out = in.path(null); sink(out); // $hasValueFlow } { - // "org.springframework.web.util;UriBuilder;true;path;;;Argument[0];Argument[-1];taint;manual" + // "org.springframework.web.util;UriBuilder;true;path;;;Argument[0];Argument[this];taint;manual" UriBuilder out = null; String in = (String)source(); out.path(in); sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriBuilder;true;path;;;Argument[0];Argument[-1];taint;manual" + // "org.springframework.web.util;UriBuilder;true;path;;;Argument[0];Argument[this];taint;manual" UriBuilder out = null; String in = (String)source(); out.path(in); @@ -441,28 +441,28 @@ public class Test { sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriBuilder;true;pathSegment;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.web.util;UriBuilder;true;pathSegment;;;Argument[this];ReturnValue;value;manual" UriBuilder out = null; UriBuilder in = (UriBuilder)source(); out = in.pathSegment((String[])null); sink(out); // $hasValueFlow } { - // "org.springframework.web.util;UriBuilder;true;pathSegment;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.web.util;UriBuilder;true;pathSegment;;;Argument[this];ReturnValue;value;manual" UriBuilder out = null; UriBuilder in = (UriBuilder)source(); out = in.pathSegment((String[])null); sink(out); // $hasValueFlow } { - // "org.springframework.web.util;UriBuilder;true;pathSegment;;;ArrayElement of Argument[0];Argument[-1];taint;manual" + // "org.springframework.web.util;UriBuilder;true;pathSegment;;;ArrayElement of Argument[0];Argument[this];taint;manual" UriBuilder out = null; String[] in = new String[]{(String)source()}; out.pathSegment((String[])in); sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriBuilder;true;pathSegment;;;ArrayElement of Argument[0];Argument[-1];taint;manual" + // "org.springframework.web.util;UriBuilder;true;pathSegment;;;ArrayElement of Argument[0];Argument[this];taint;manual" UriBuilder out = null; String[] in = new String[]{(String)source()}; out.pathSegment((String[])in); @@ -485,14 +485,14 @@ public class Test { sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriBuilder;true;port;(java.lang.String);;Argument[0];Argument[-1];taint;manual" + // "org.springframework.web.util;UriBuilder;true;port;(java.lang.String);;Argument[0];Argument[this];taint;manual" UriBuilder out = null; String in = (String)source(); out.port(in); sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriBuilder;true;port;(java.lang.String);;Argument[0];Argument[-1];taint;manual" + // "org.springframework.web.util;UriBuilder;true;port;(java.lang.String);;Argument[0];Argument[this];taint;manual" UriBuilder out = null; String in = (String)source(); out.port(in); @@ -515,56 +515,56 @@ public class Test { sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriBuilder;true;port;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.web.util;UriBuilder;true;port;;;Argument[this];ReturnValue;value;manual" UriBuilder out = null; UriBuilder in = (UriBuilder)source(); out = in.port(0); sink(out); // $hasValueFlow } { - // "org.springframework.web.util;UriBuilder;true;port;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.web.util;UriBuilder;true;port;;;Argument[this];ReturnValue;value;manual" UriBuilder out = null; UriBuilder in = (UriBuilder)source(); out = in.port((String)null); sink(out); // $hasValueFlow } { - // "org.springframework.web.util;UriBuilder;true;port;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.web.util;UriBuilder;true;port;;;Argument[this];ReturnValue;value;manual" UriBuilder out = null; UriBuilder in = (UriBuilder)source(); out = in.port(0); sink(out); // $hasValueFlow } { - // "org.springframework.web.util;UriBuilder;true;port;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.web.util;UriBuilder;true;port;;;Argument[this];ReturnValue;value;manual" UriBuilder out = null; UriBuilder in = (UriBuilder)source(); out = in.port((String)null); sink(out); // $hasValueFlow } { - // "org.springframework.web.util;UriBuilder;true;query;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.web.util;UriBuilder;true;query;;;Argument[this];ReturnValue;value;manual" UriBuilder out = null; UriBuilder in = (UriBuilder)source(); out = in.query(null); sink(out); // $hasValueFlow } { - // "org.springframework.web.util;UriBuilder;true;query;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.web.util;UriBuilder;true;query;;;Argument[this];ReturnValue;value;manual" UriBuilder out = null; UriBuilder in = (UriBuilder)source(); out = in.query(null); sink(out); // $hasValueFlow } { - // "org.springframework.web.util;UriBuilder;true;query;;;Argument[0];Argument[-1];taint;manual" + // "org.springframework.web.util;UriBuilder;true;query;;;Argument[0];Argument[this];taint;manual" UriBuilder out = null; String in = (String)source(); out.query(in); sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriBuilder;true;query;;;Argument[0];Argument[-1];taint;manual" + // "org.springframework.web.util;UriBuilder;true;query;;;Argument[0];Argument[this];taint;manual" UriBuilder out = null; String in = (String)source(); out.query(in); @@ -587,14 +587,14 @@ public class Test { sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriBuilder;true;queryParam;(String,Collection);;Element of Argument[1];Argument[-1];taint;manual" + // "org.springframework.web.util;UriBuilder;true;queryParam;(String,Collection);;Element of Argument[1];Argument[this];taint;manual" UriBuilder out = null; Collection in = List.of(source()); out.queryParam((String)null, in); sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriBuilder;true;queryParam;(String,Collection);;Element of Argument[1];Argument[-1];taint;manual" + // "org.springframework.web.util;UriBuilder;true;queryParam;(String,Collection);;Element of Argument[1];Argument[this];taint;manual" UriBuilder out = null; Collection in = List.of(source()); out.queryParam((String)null, in); @@ -617,14 +617,14 @@ public class Test { sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriBuilder;true;queryParam;(String,Object[]);;ArrayElement of Argument[1];Argument[-1];taint;manual" + // "org.springframework.web.util;UriBuilder;true;queryParam;(String,Object[]);;ArrayElement of Argument[1];Argument[this];taint;manual" UriBuilder out = null; Object[] in = new Object[]{source()}; out.queryParam((String)null, in); sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriBuilder;true;queryParam;(String,Object[]);;ArrayElement of Argument[1];Argument[-1];taint;manual" + // "org.springframework.web.util;UriBuilder;true;queryParam;(String,Object[]);;ArrayElement of Argument[1];Argument[this];taint;manual" UriBuilder out = null; Object[] in = new Object[]{source()}; out.queryParam((String)null, in); @@ -647,56 +647,56 @@ public class Test { sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriBuilder;true;queryParam;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.web.util;UriBuilder;true;queryParam;;;Argument[this];ReturnValue;value;manual" UriBuilder out = null; UriBuilder in = (UriBuilder)source(); out = in.queryParam((String)null, (Object[])null); sink(out); // $hasValueFlow } { - // "org.springframework.web.util;UriBuilder;true;queryParam;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.web.util;UriBuilder;true;queryParam;;;Argument[this];ReturnValue;value;manual" UriBuilder out = null; UriBuilder in = (UriBuilder)source(); out = in.queryParam((String)null, (Collection)null); sink(out); // $hasValueFlow } { - // "org.springframework.web.util;UriBuilder;true;queryParam;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.web.util;UriBuilder;true;queryParam;;;Argument[this];ReturnValue;value;manual" UriBuilder out = null; UriBuilder in = (UriBuilder)source(); out = in.queryParam((String)null, (Object[])null); sink(out); // $hasValueFlow } { - // "org.springframework.web.util;UriBuilder;true;queryParam;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.web.util;UriBuilder;true;queryParam;;;Argument[this];ReturnValue;value;manual" UriBuilder out = null; UriBuilder in = (UriBuilder)source(); out = in.queryParam((String)null, (Collection)null); sink(out); // $hasValueFlow } { - // "org.springframework.web.util;UriBuilder;true;queryParam;;;Argument[0];Argument[-1];taint;manual" + // "org.springframework.web.util;UriBuilder;true;queryParam;;;Argument[0];Argument[this];taint;manual" UriBuilder out = null; String in = (String)source(); out.queryParam(in, (Object[])null); sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriBuilder;true;queryParam;;;Argument[0];Argument[-1];taint;manual" + // "org.springframework.web.util;UriBuilder;true;queryParam;;;Argument[0];Argument[this];taint;manual" UriBuilder out = null; String in = (String)source(); out.queryParam(in, (Collection)null); sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriBuilder;true;queryParam;;;Argument[0];Argument[-1];taint;manual" + // "org.springframework.web.util;UriBuilder;true;queryParam;;;Argument[0];Argument[this];taint;manual" UriBuilder out = null; String in = (String)source(); out.queryParam(in, (Object[])null); sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriBuilder;true;queryParam;;;Argument[0];Argument[-1];taint;manual" + // "org.springframework.web.util;UriBuilder;true;queryParam;;;Argument[0];Argument[this];taint;manual" UriBuilder out = null; String in = (String)source(); out.queryParam(in, (Collection)null); @@ -735,28 +735,28 @@ public class Test { sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriBuilder;true;queryParamIfPresent;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.web.util;UriBuilder;true;queryParamIfPresent;;;Argument[this];ReturnValue;value;manual" UriBuilder out = null; UriBuilder in = (UriBuilder)source(); out = in.queryParamIfPresent(null, null); sink(out); // $hasValueFlow } { - // "org.springframework.web.util;UriBuilder;true;queryParamIfPresent;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.web.util;UriBuilder;true;queryParamIfPresent;;;Argument[this];ReturnValue;value;manual" UriBuilder out = null; UriBuilder in = (UriBuilder)source(); out = in.queryParamIfPresent(null, null); sink(out); // $hasValueFlow } { - // "org.springframework.web.util;UriBuilder;true;queryParamIfPresent;;;Argument[0];Argument[-1];taint;manual" + // "org.springframework.web.util;UriBuilder;true;queryParamIfPresent;;;Argument[0];Argument[this];taint;manual" UriBuilder out = null; String in = (String)source(); out.queryParamIfPresent(in, null); sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriBuilder;true;queryParamIfPresent;;;Argument[0];Argument[-1];taint;manual" + // "org.springframework.web.util;UriBuilder;true;queryParamIfPresent;;;Argument[0];Argument[this];taint;manual" UriBuilder out = null; String in = (String)source(); out.queryParamIfPresent(in, null); @@ -779,14 +779,14 @@ public class Test { sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriBuilder;true;queryParamIfPresent;;;Element of Argument[1];Argument[-1];taint;manual" + // "org.springframework.web.util;UriBuilder;true;queryParamIfPresent;;;Element of Argument[1];Argument[this];taint;manual" UriBuilder out = null; Optional in = Optional.of(source()); out.queryParamIfPresent(null, in); sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriBuilder;true;queryParamIfPresent;;;Element of Argument[1];Argument[-1];taint;manual" + // "org.springframework.web.util;UriBuilder;true;queryParamIfPresent;;;Element of Argument[1];Argument[this];taint;manual" UriBuilder out = null; Optional in = Optional.of(source()); out.queryParamIfPresent(null, in); @@ -809,28 +809,28 @@ public class Test { sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriBuilder;true;queryParams;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.web.util;UriBuilder;true;queryParams;;;Argument[this];ReturnValue;value;manual" UriBuilder out = null; UriBuilder in = (UriBuilder)source(); out = in.queryParams(null); sink(out); // $hasValueFlow } { - // "org.springframework.web.util;UriBuilder;true;queryParams;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.web.util;UriBuilder;true;queryParams;;;Argument[this];ReturnValue;value;manual" UriBuilder out = null; UriBuilder in = (UriBuilder)source(); out = in.queryParams(null); sink(out); // $hasValueFlow } { - // "org.springframework.web.util;UriBuilder;true;queryParams;;;MapKey of Argument[0];Argument[-1];taint;manual" + // "org.springframework.web.util;UriBuilder;true;queryParams;;;MapKey of Argument[0];Argument[this];taint;manual" UriBuilder out = null; MultiValueMap in = newMultiValueMapWithKey(source()); out.queryParams(in); sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriBuilder;true;queryParams;;;MapKey of Argument[0];Argument[-1];taint;manual" + // "org.springframework.web.util;UriBuilder;true;queryParams;;;MapKey of Argument[0];Argument[this];taint;manual" UriBuilder out = null; MultiValueMap in = newMultiValueMapWithKey(source()); out.queryParams(in); @@ -853,14 +853,14 @@ public class Test { sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriBuilder;true;queryParams;;;Element of MapValue of Argument[0];Argument[-1];taint;manual" + // "org.springframework.web.util;UriBuilder;true;queryParams;;;Element of MapValue of Argument[0];Argument[this];taint;manual" UriBuilder out = null; MultiValueMap in = newMultiValueMapWithValue(source()); out.queryParams(in); sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriBuilder;true;queryParams;;;Element of MapValue of Argument[0];Argument[-1];taint;manual" + // "org.springframework.web.util;UriBuilder;true;queryParams;;;Element of MapValue of Argument[0];Argument[this];taint;manual" UriBuilder out = null; MultiValueMap in = newMultiValueMapWithValue(source()); out.queryParams(in); @@ -883,28 +883,28 @@ public class Test { sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriBuilder;true;replacePath;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.web.util;UriBuilder;true;replacePath;;;Argument[this];ReturnValue;value;manual" UriBuilder out = null; UriBuilder in = (UriBuilder)source(); out = in.replacePath(null); sink(out); // $hasValueFlow } { - // "org.springframework.web.util;UriBuilder;true;replacePath;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.web.util;UriBuilder;true;replacePath;;;Argument[this];ReturnValue;value;manual" UriBuilder out = null; UriBuilder in = (UriBuilder)source(); out = in.replacePath(null); sink(out); // $hasValueFlow } { - // "org.springframework.web.util;UriBuilder;true;replacePath;;;Argument[0];Argument[-1];taint;manual" + // "org.springframework.web.util;UriBuilder;true;replacePath;;;Argument[0];Argument[this];taint;manual" UriBuilder out = null; String in = (String)source(); out.replacePath(in); sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriBuilder;true;replacePath;;;Argument[0];Argument[-1];taint;manual" + // "org.springframework.web.util;UriBuilder;true;replacePath;;;Argument[0];Argument[this];taint;manual" UriBuilder out = null; String in = (String)source(); out.replacePath(in); @@ -927,28 +927,28 @@ public class Test { sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriBuilder;true;replaceQuery;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.web.util;UriBuilder;true;replaceQuery;;;Argument[this];ReturnValue;value;manual" UriBuilder out = null; UriBuilder in = (UriBuilder)source(); out = in.replaceQuery(null); sink(out); // $hasValueFlow } { - // "org.springframework.web.util;UriBuilder;true;replaceQuery;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.web.util;UriBuilder;true;replaceQuery;;;Argument[this];ReturnValue;value;manual" UriBuilder out = null; UriBuilder in = (UriBuilder)source(); out = in.replaceQuery(null); sink(out); // $hasValueFlow } { - // "org.springframework.web.util;UriBuilder;true;replaceQuery;;;Argument[0];Argument[-1];taint;manual" + // "org.springframework.web.util;UriBuilder;true;replaceQuery;;;Argument[0];Argument[this];taint;manual" UriBuilder out = null; String in = (String)source(); out.replaceQuery(in); sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriBuilder;true;replaceQuery;;;Argument[0];Argument[-1];taint;manual" + // "org.springframework.web.util;UriBuilder;true;replaceQuery;;;Argument[0];Argument[this];taint;manual" UriBuilder out = null; String in = (String)source(); out.replaceQuery(in); @@ -971,14 +971,14 @@ public class Test { sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriBuilder;true;replaceQueryParam;(String,Collection);;Element of Argument[1];Argument[-1];taint;manual" + // "org.springframework.web.util;UriBuilder;true;replaceQueryParam;(String,Collection);;Element of Argument[1];Argument[this];taint;manual" UriBuilder out = null; Collection in = List.of(source()); out.replaceQueryParam((String)null, in); sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriBuilder;true;replaceQueryParam;(String,Collection);;Element of Argument[1];Argument[-1];taint;manual" + // "org.springframework.web.util;UriBuilder;true;replaceQueryParam;(String,Collection);;Element of Argument[1];Argument[this];taint;manual" UriBuilder out = null; Collection in = List.of(source()); out.replaceQueryParam((String)null, in); @@ -1001,14 +1001,14 @@ public class Test { sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriBuilder;true;replaceQueryParam;(String,Object[]);;ArrayElement of Argument[1];Argument[-1];taint;manual" + // "org.springframework.web.util;UriBuilder;true;replaceQueryParam;(String,Object[]);;ArrayElement of Argument[1];Argument[this];taint;manual" UriBuilder out = null; Object[] in = new Object[]{source()}; out.replaceQueryParam((String)null, in); sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriBuilder;true;replaceQueryParam;(String,Object[]);;ArrayElement of Argument[1];Argument[-1];taint;manual" + // "org.springframework.web.util;UriBuilder;true;replaceQueryParam;(String,Object[]);;ArrayElement of Argument[1];Argument[this];taint;manual" UriBuilder out = null; Object[] in = new Object[]{source()}; out.replaceQueryParam((String)null, in); @@ -1031,56 +1031,56 @@ public class Test { sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriBuilder;true;replaceQueryParam;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.web.util;UriBuilder;true;replaceQueryParam;;;Argument[this];ReturnValue;value;manual" UriBuilder out = null; UriBuilder in = (UriBuilder)source(); out = in.replaceQueryParam((String)null, (Object[])null); sink(out); // $hasValueFlow } { - // "org.springframework.web.util;UriBuilder;true;replaceQueryParam;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.web.util;UriBuilder;true;replaceQueryParam;;;Argument[this];ReturnValue;value;manual" UriBuilder out = null; UriBuilder in = (UriBuilder)source(); out = in.replaceQueryParam((String)null, (Collection)null); sink(out); // $hasValueFlow } { - // "org.springframework.web.util;UriBuilder;true;replaceQueryParam;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.web.util;UriBuilder;true;replaceQueryParam;;;Argument[this];ReturnValue;value;manual" UriBuilder out = null; UriBuilder in = (UriBuilder)source(); out = in.replaceQueryParam((String)null, (Object[])null); sink(out); // $hasValueFlow } { - // "org.springframework.web.util;UriBuilder;true;replaceQueryParam;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.web.util;UriBuilder;true;replaceQueryParam;;;Argument[this];ReturnValue;value;manual" UriBuilder out = null; UriBuilder in = (UriBuilder)source(); out = in.replaceQueryParam((String)null, (Collection)null); sink(out); // $hasValueFlow } { - // "org.springframework.web.util;UriBuilder;true;replaceQueryParam;;;Argument[0];Argument[-1];taint;manual" + // "org.springframework.web.util;UriBuilder;true;replaceQueryParam;;;Argument[0];Argument[this];taint;manual" UriBuilder out = null; String in = (String)source(); out.replaceQueryParam(in, (Object[])null); sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriBuilder;true;replaceQueryParam;;;Argument[0];Argument[-1];taint;manual" + // "org.springframework.web.util;UriBuilder;true;replaceQueryParam;;;Argument[0];Argument[this];taint;manual" UriBuilder out = null; String in = (String)source(); out.replaceQueryParam(in, (Collection)null); sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriBuilder;true;replaceQueryParam;;;Argument[0];Argument[-1];taint;manual" + // "org.springframework.web.util;UriBuilder;true;replaceQueryParam;;;Argument[0];Argument[this];taint;manual" UriBuilder out = null; String in = (String)source(); out.replaceQueryParam(in, (Object[])null); sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriBuilder;true;replaceQueryParam;;;Argument[0];Argument[-1];taint;manual" + // "org.springframework.web.util;UriBuilder;true;replaceQueryParam;;;Argument[0];Argument[this];taint;manual" UriBuilder out = null; String in = (String)source(); out.replaceQueryParam(in, (Collection)null); @@ -1119,14 +1119,14 @@ public class Test { sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriBuilder;true;replaceQueryParams;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.web.util;UriBuilder;true;replaceQueryParams;;;Argument[this];ReturnValue;value;manual" UriBuilder out = null; UriBuilder in = (UriBuilder)source(); out = in.replaceQueryParams(null); sink(out); // $hasValueFlow } { - // "org.springframework.web.util;UriBuilder;true;replaceQueryParams;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.web.util;UriBuilder;true;replaceQueryParams;;;Argument[this];ReturnValue;value;manual" UriBuilder out = null; UriBuilder in = (UriBuilder)source(); out = in.replaceQueryParams(null); @@ -1165,28 +1165,28 @@ public class Test { sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriBuilder;true;scheme;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.web.util;UriBuilder;true;scheme;;;Argument[this];ReturnValue;value;manual" UriBuilder out = null; UriBuilder in = (UriBuilder)source(); out = in.scheme(null); sink(out); // $hasValueFlow } { - // "org.springframework.web.util;UriBuilder;true;scheme;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.web.util;UriBuilder;true;scheme;;;Argument[this];ReturnValue;value;manual" UriBuilder out = null; UriBuilder in = (UriBuilder)source(); out = in.scheme(null); sink(out); // $hasValueFlow } { - // "org.springframework.web.util;UriBuilder;true;scheme;;;Argument[0];Argument[-1];taint;manual" + // "org.springframework.web.util;UriBuilder;true;scheme;;;Argument[0];Argument[this];taint;manual" UriBuilder out = null; String in = (String)source(); out.scheme(in); sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriBuilder;true;scheme;;;Argument[0];Argument[-1];taint;manual" + // "org.springframework.web.util;UriBuilder;true;scheme;;;Argument[0];Argument[this];taint;manual" UriBuilder out = null; String in = (String)source(); out.scheme(in); @@ -1209,28 +1209,28 @@ public class Test { sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriBuilder;true;userInfo;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.web.util;UriBuilder;true;userInfo;;;Argument[this];ReturnValue;value;manual" UriBuilder out = null; UriBuilder in = (UriBuilder)source(); out = in.userInfo(null); sink(out); // $hasValueFlow } { - // "org.springframework.web.util;UriBuilder;true;userInfo;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.web.util;UriBuilder;true;userInfo;;;Argument[this];ReturnValue;value;manual" UriBuilder out = null; UriBuilder in = (UriBuilder)source(); out = in.userInfo(null); sink(out); // $hasValueFlow } { - // "org.springframework.web.util;UriBuilder;true;userInfo;;;Argument[0];Argument[-1];taint;manual" + // "org.springframework.web.util;UriBuilder;true;userInfo;;;Argument[0];Argument[this];taint;manual" UriBuilder out = null; String in = (String)source(); out.userInfo(in); sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriBuilder;true;userInfo;;;Argument[0];Argument[-1];taint;manual" + // "org.springframework.web.util;UriBuilder;true;userInfo;;;Argument[0];Argument[this];taint;manual" UriBuilder out = null; String in = (String)source(); out.userInfo(in); @@ -1253,14 +1253,14 @@ public class Test { sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriBuilderFactory;true;builder;;;Argument[-1];ReturnValue;taint;manual" + // "org.springframework.web.util;UriBuilderFactory;true;builder;;;Argument[this];ReturnValue;taint;manual" UriBuilder out = null; UriBuilderFactory in = (UriBuilderFactory)source(); out = in.builder(); sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriBuilderFactory;true;builder;;;Argument[-1];ReturnValue;taint;manual" + // "org.springframework.web.util;UriBuilderFactory;true;builder;;;Argument[this];ReturnValue;taint;manual" UriBuilder out = null; DefaultUriBuilderFactory in = (DefaultUriBuilderFactory)source(); out = in.builder(); @@ -1297,35 +1297,35 @@ public class Test { sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriComponents$UriTemplateVariables;true;getValue;;;MapValue of Argument[-1];ReturnValue;value;manual" + // "org.springframework.web.util;UriComponents$UriTemplateVariables;true;getValue;;;MapValue of Argument[this];ReturnValue;value;manual" Object out = null; UriComponents.UriTemplateVariables in = new StubUriTemplateVariables(Map.of(null, source())); out = in.getValue(null); sink(out); // $hasValueFlow } // { - // // "org.springframework.web.util;UriComponents;false;UriComponents;;;Argument[0..1];Argument[-1];taint;manual" + // // "org.springframework.web.util;UriComponents;false;UriComponents;;;Argument[0..1];Argument[this];taint;manual" // UriComponents out = null; // String in = (String)source(); // out = new UriComponents(null, in); // sink(out); // $hasTaintFlow // } // { - // // "org.springframework.web.util;UriComponents;false;UriComponents;;;Argument[0..1];Argument[-1];taint;manual" + // // "org.springframework.web.util;UriComponents;false;UriComponents;;;Argument[0..1];Argument[this];taint;manual" // UriComponents out = null; // String in = (String)source(); // out = new UriComponents(in, null); // sink(out); // $hasTaintFlow // } { - // "org.springframework.web.util;UriComponents;false;encode;;;Argument[-1];ReturnValue;taint;manual" + // "org.springframework.web.util;UriComponents;false;encode;;;Argument[this];ReturnValue;taint;manual" UriComponents out = null; UriComponents in = (UriComponents)source(); out = in.encode(null); sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriComponents;false;encode;;;Argument[-1];ReturnValue;taint;manual" + // "org.springframework.web.util;UriComponents;false;encode;;;Argument[this];ReturnValue;taint;manual" UriComponents out = null; UriComponents in = (UriComponents)source(); out = in.encode(); @@ -1356,84 +1356,84 @@ public class Test { sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriComponents;false;getFragment;;;Argument[-1];ReturnValue;taint;manual" + // "org.springframework.web.util;UriComponents;false;getFragment;;;Argument[this];ReturnValue;taint;manual" String out = null; UriComponents in = (UriComponents)source(); out = in.getFragment(); sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriComponents;false;getHost;;;Argument[-1];ReturnValue;taint;manual" + // "org.springframework.web.util;UriComponents;false;getHost;;;Argument[this];ReturnValue;taint;manual" String out = null; UriComponents in = (UriComponents)source(); out = in.getHost(); sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriComponents;false;getPath;;;Argument[-1];ReturnValue;taint;manual" + // "org.springframework.web.util;UriComponents;false;getPath;;;Argument[this];ReturnValue;taint;manual" String out = null; UriComponents in = (UriComponents)source(); out = in.getPath(); sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriComponents;false;getPathSegments;;;Argument[-1];ReturnValue;taint;manual" + // "org.springframework.web.util;UriComponents;false;getPathSegments;;;Argument[this];ReturnValue;taint;manual" List out = null; UriComponents in = (UriComponents)source(); out = in.getPathSegments(); sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriComponents;false;getQuery;;;Argument[-1];ReturnValue;taint;manual" + // "org.springframework.web.util;UriComponents;false;getQuery;;;Argument[this];ReturnValue;taint;manual" String out = null; UriComponents in = (UriComponents)source(); out = in.getQuery(); sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriComponents;false;getQueryParams;;;Argument[-1];Element of MapValue of ReturnValue;taint;manual" + // "org.springframework.web.util;UriComponents;false;getQueryParams;;;Argument[this];Element of MapValue of ReturnValue;taint;manual" MultiValueMap out = null; UriComponents in = (UriComponents)source(); out = in.getQueryParams(); sink(getElement((List)getMapValue(out))); // $hasTaintFlow } { - // "org.springframework.web.util;UriComponents;false;getQueryParams;;;Argument[-1];MapKey of ReturnValue;taint;manual" + // "org.springframework.web.util;UriComponents;false;getQueryParams;;;Argument[this];MapKey of ReturnValue;taint;manual" MultiValueMap out = null; UriComponents in = (UriComponents)source(); out = in.getQueryParams(); sink(getMapKey(out)); // $hasTaintFlow } { - // "org.springframework.web.util;UriComponents;false;getScheme;;;Argument[-1];ReturnValue;taint;manual" + // "org.springframework.web.util;UriComponents;false;getScheme;;;Argument[this];ReturnValue;taint;manual" String out = null; UriComponents in = (UriComponents)source(); out = in.getScheme(); sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriComponents;false;getSchemeSpecificPart;;;Argument[-1];ReturnValue;taint;manual" + // "org.springframework.web.util;UriComponents;false;getSchemeSpecificPart;;;Argument[this];ReturnValue;taint;manual" String out = null; UriComponents in = (UriComponents)source(); out = in.getSchemeSpecificPart(); sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriComponents;false;getUserInfo;;;Argument[-1];ReturnValue;taint;manual" + // "org.springframework.web.util;UriComponents;false;getUserInfo;;;Argument[this];ReturnValue;taint;manual" String out = null; UriComponents in = (UriComponents)source(); out = in.getUserInfo(); sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriComponents;false;toUri;;;Argument[-1];ReturnValue;taint;manual" + // "org.springframework.web.util;UriComponents;false;toUri;;;Argument[this];ReturnValue;taint;manual" URI out = null; UriComponents in = (UriComponents)source(); out = in.toUri(); sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriComponents;false;toUriString;;;Argument[-1];ReturnValue;taint;manual" + // "org.springframework.web.util;UriComponents;false;toUriString;;;Argument[this];ReturnValue;taint;manual" String out = null; UriComponents in = (UriComponents)source(); out = in.toUriString(); @@ -1456,28 +1456,28 @@ public class Test { sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriComponentsBuilder;false;build;;;Argument[-1];ReturnValue;taint;manual" + // "org.springframework.web.util;UriComponentsBuilder;false;build;;;Argument[this];ReturnValue;taint;manual" UriComponents out = null; UriComponentsBuilder in = (UriComponentsBuilder)source(); out = in.build(false); sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriComponentsBuilder;false;build;;;Argument[-1];ReturnValue;taint;manual" + // "org.springframework.web.util;UriComponentsBuilder;false;build;;;Argument[this];ReturnValue;taint;manual" UriComponents out = null; UriComponentsBuilder in = (UriComponentsBuilder)source(); out = in.build(); sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriComponentsBuilder;false;build;;;Argument[-1];ReturnValue;taint;manual" + // "org.springframework.web.util;UriComponentsBuilder;false;build;;;Argument[this];ReturnValue;taint;manual" URI out = null; UriComponentsBuilder in = (UriComponentsBuilder)source(); out = in.build((Object[])null); sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriComponentsBuilder;false;build;;;Argument[-1];ReturnValue;taint;manual" + // "org.springframework.web.util;UriComponentsBuilder;false;build;;;Argument[this];ReturnValue;taint;manual" URI out = null; UriComponentsBuilder in = (UriComponentsBuilder)source(); out = in.build((Map)null); @@ -1500,28 +1500,28 @@ public class Test { sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriComponentsBuilder;false;cloneBuilder;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.web.util;UriComponentsBuilder;false;cloneBuilder;;;Argument[this];ReturnValue;value;manual" UriComponentsBuilder out = null; UriComponentsBuilder in = (UriComponentsBuilder)source(); out = in.cloneBuilder(); sink(out); // $hasValueFlow } { - // "org.springframework.web.util;UriComponentsBuilder;false;encode;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.web.util;UriComponentsBuilder;false;encode;;;Argument[this];ReturnValue;value;manual" UriComponentsBuilder out = null; UriComponentsBuilder in = (UriComponentsBuilder)source(); out = in.encode(null); sink(out); // $hasValueFlow } { - // "org.springframework.web.util;UriComponentsBuilder;false;encode;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.web.util;UriComponentsBuilder;false;encode;;;Argument[this];ReturnValue;value;manual" UriComponentsBuilder out = null; UriComponentsBuilder in = (UriComponentsBuilder)source(); out = in.encode(); sink(out); // $hasValueFlow } { - // "org.springframework.web.util;UriComponentsBuilder;false;fragment;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.web.util;UriComponentsBuilder;false;fragment;;;Argument[this];ReturnValue;value;manual" UriComponentsBuilder out = null; UriComponentsBuilder in = (UriComponentsBuilder)source(); out = in.fragment(null); @@ -1578,7 +1578,7 @@ public class Test { sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriComponentsBuilder;false;host;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.web.util;UriComponentsBuilder;false;host;;;Argument[this];ReturnValue;value;manual" UriComponentsBuilder out = null; UriComponentsBuilder in = (UriComponentsBuilder)source(); out = in.host(null); @@ -1607,7 +1607,7 @@ public class Test { sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriComponentsBuilder;false;path;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.web.util;UriComponentsBuilder;false;path;;;Argument[this];ReturnValue;value;manual" UriComponentsBuilder out = null; UriComponentsBuilder in = (UriComponentsBuilder)source(); out = in.path(null); @@ -1622,7 +1622,7 @@ public class Test { sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriComponentsBuilder;false;pathSegment;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.web.util;UriComponentsBuilder;false;pathSegment;;;Argument[this];ReturnValue;value;manual" UriComponentsBuilder out = null; UriComponentsBuilder in = (UriComponentsBuilder)source(); out = in.pathSegment((String[])null); @@ -1645,21 +1645,21 @@ public class Test { sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriComponentsBuilder;false;port;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.web.util;UriComponentsBuilder;false;port;;;Argument[this];ReturnValue;value;manual" UriComponentsBuilder out = null; UriComponentsBuilder in = (UriComponentsBuilder)source(); out = in.port(0); sink(out); // $hasValueFlow } { - // "org.springframework.web.util;UriComponentsBuilder;false;port;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.web.util;UriComponentsBuilder;false;port;;;Argument[this];ReturnValue;value;manual" UriComponentsBuilder out = null; UriComponentsBuilder in = (UriComponentsBuilder)source(); out = in.port((String)null); sink(out); // $hasValueFlow } { - // "org.springframework.web.util;UriComponentsBuilder;false;query;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.web.util;UriComponentsBuilder;false;query;;;Argument[this];ReturnValue;value;manual" UriComponentsBuilder out = null; UriComponentsBuilder in = (UriComponentsBuilder)source(); out = in.query(null); @@ -1690,14 +1690,14 @@ public class Test { sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriComponentsBuilder;false;queryParam;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.web.util;UriComponentsBuilder;false;queryParam;;;Argument[this];ReturnValue;value;manual" UriComponentsBuilder out = null; UriComponentsBuilder in = (UriComponentsBuilder)source(); out = in.queryParam((String)null, (Object[])null); sink(out); // $hasValueFlow } { - // "org.springframework.web.util;UriComponentsBuilder;false;queryParam;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.web.util;UriComponentsBuilder;false;queryParam;;;Argument[this];ReturnValue;value;manual" UriComponentsBuilder out = null; UriComponentsBuilder in = (UriComponentsBuilder)source(); out = in.queryParam((String)null, (Collection)null); @@ -1720,7 +1720,7 @@ public class Test { sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriComponentsBuilder;false;queryParamIfPresent;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.web.util;UriComponentsBuilder;false;queryParamIfPresent;;;Argument[this];ReturnValue;value;manual" UriComponentsBuilder out = null; UriComponentsBuilder in = (UriComponentsBuilder)source(); out = in.queryParamIfPresent(null, null); @@ -1743,7 +1743,7 @@ public class Test { sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriComponentsBuilder;false;queryParams;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.web.util;UriComponentsBuilder;false;queryParams;;;Argument[this];ReturnValue;value;manual" UriComponentsBuilder out = null; UriComponentsBuilder in = (UriComponentsBuilder)source(); out = in.queryParams(null); @@ -1766,7 +1766,7 @@ public class Test { sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriComponentsBuilder;false;replacePath;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.web.util;UriComponentsBuilder;false;replacePath;;;Argument[this];ReturnValue;value;manual" UriComponentsBuilder out = null; UriComponentsBuilder in = (UriComponentsBuilder)source(); out = in.replacePath(null); @@ -1781,7 +1781,7 @@ public class Test { sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriComponentsBuilder;false;replaceQuery;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.web.util;UriComponentsBuilder;false;replaceQuery;;;Argument[this];ReturnValue;value;manual" UriComponentsBuilder out = null; UriComponentsBuilder in = (UriComponentsBuilder)source(); out = in.replaceQuery(null); @@ -1812,14 +1812,14 @@ public class Test { sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriComponentsBuilder;false;replaceQueryParam;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.web.util;UriComponentsBuilder;false;replaceQueryParam;;;Argument[this];ReturnValue;value;manual" UriComponentsBuilder out = null; UriComponentsBuilder in = (UriComponentsBuilder)source(); out = in.replaceQueryParam((String)null, (Object[])null); sink(out); // $hasValueFlow } { - // "org.springframework.web.util;UriComponentsBuilder;false;replaceQueryParam;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.web.util;UriComponentsBuilder;false;replaceQueryParam;;;Argument[this];ReturnValue;value;manual" UriComponentsBuilder out = null; UriComponentsBuilder in = (UriComponentsBuilder)source(); out = in.replaceQueryParam((String)null, (Collection)null); @@ -1842,7 +1842,7 @@ public class Test { sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriComponentsBuilder;false;replaceQueryParams;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.web.util;UriComponentsBuilder;false;replaceQueryParams;;;Argument[this];ReturnValue;value;manual" UriComponentsBuilder out = null; UriComponentsBuilder in = (UriComponentsBuilder)source(); out = in.replaceQueryParams(null); @@ -1865,7 +1865,7 @@ public class Test { sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriComponentsBuilder;false;scheme;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.web.util;UriComponentsBuilder;false;scheme;;;Argument[this];ReturnValue;value;manual" UriComponentsBuilder out = null; UriComponentsBuilder in = (UriComponentsBuilder)source(); out = in.scheme(null); @@ -1880,7 +1880,7 @@ public class Test { sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriComponentsBuilder;false;schemeSpecificPart;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.web.util;UriComponentsBuilder;false;schemeSpecificPart;;;Argument[this];ReturnValue;value;manual" UriComponentsBuilder out = null; UriComponentsBuilder in = (UriComponentsBuilder)source(); out = in.schemeSpecificPart(null); @@ -1895,14 +1895,14 @@ public class Test { sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriComponentsBuilder;false;toUriString;;;Argument[-1];ReturnValue;taint;manual" + // "org.springframework.web.util;UriComponentsBuilder;false;toUriString;;;Argument[this];ReturnValue;taint;manual" String out = null; UriComponentsBuilder in = (UriComponentsBuilder)source(); out = in.toUriString(); sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriComponentsBuilder;false;uri;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.web.util;UriComponentsBuilder;false;uri;;;Argument[this];ReturnValue;value;manual" UriComponentsBuilder out = null; UriComponentsBuilder in = (UriComponentsBuilder)source(); out = in.uri(null); @@ -1917,7 +1917,7 @@ public class Test { sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriComponentsBuilder;false;uriComponents;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.web.util;UriComponentsBuilder;false;uriComponents;;;Argument[this];ReturnValue;value;manual" UriComponentsBuilder out = null; UriComponentsBuilder in = (UriComponentsBuilder)source(); out = in.uriComponents(null); @@ -1932,7 +1932,7 @@ public class Test { sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriComponentsBuilder;false;uriVariables;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.web.util;UriComponentsBuilder;false;uriVariables;;;Argument[this];ReturnValue;value;manual" UriComponentsBuilder out = null; UriComponentsBuilder in = (UriComponentsBuilder)source(); out = in.uriVariables(null); @@ -1947,7 +1947,7 @@ public class Test { sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriComponentsBuilder;false;userInfo;;;Argument[-1];ReturnValue;value;manual" + // "org.springframework.web.util;UriComponentsBuilder;false;userInfo;;;Argument[this];ReturnValue;value;manual" UriComponentsBuilder out = null; UriComponentsBuilder in = (UriComponentsBuilder)source(); out = in.userInfo(null); @@ -1978,7 +1978,7 @@ public class Test { sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriTemplate;false;getVariableNames;;;Argument[-1];Element of ReturnValue;taint;manual" + // "org.springframework.web.util;UriTemplate;false;getVariableNames;;;Argument[this];Element of ReturnValue;taint;manual" List out = null; UriTemplate in = (UriTemplate)source(); out = in.getVariableNames(); @@ -2585,21 +2585,21 @@ public class Test { sink(out); // $ hasTaintFlow } { - // "org.springframework.web.util;UriComponents;false;normalize;;;Argument[-1];ReturnValue;taint;manual" + // "org.springframework.web.util;UriComponents;false;normalize;;;Argument[this];ReturnValue;taint;manual" UriComponents out = null; UriComponents in = (UriComponents)source(); out = in.normalize(); sink(out); // $ hasTaintFlow } { - // "org.springframework.web.util;UriComponents;false;toString;;;Argument[-1];ReturnValue;taint;manual" + // "org.springframework.web.util;UriComponents;false;toString;;;Argument[this];ReturnValue;taint;manual" String out = null; UriComponents in = (UriComponents)source(); out = in.toString(); sink(out); // $ hasTaintFlow } { - // "org.springframework.web.util;UriTemplate;false;toString;;;Argument[-1];ReturnValue;taint;manual" + // "org.springframework.web.util;UriTemplate;false;toString;;;Argument[this];ReturnValue;taint;manual" String out = null; UriTemplate in = (UriTemplate)source(); out = in.toString(); diff --git a/java/ql/test/library-tests/frameworks/stapler/Test.java b/java/ql/test/library-tests/frameworks/stapler/Test.java index b034ec7ff40..d95b308068f 100644 --- a/java/ql/test/library-tests/frameworks/stapler/Test.java +++ b/java/ql/test/library-tests/frameworks/stapler/Test.java @@ -14,7 +14,7 @@ public class Test { public void test() throws Exception { { - // "org.kohsuke.stapler.framework.adjunct;AdjunctManager;true;AdjunctManager;(ServletContext,ClassLoader,String,long);;Argument[2];Argument[-1].Field[org.kohsuke.stapler.framework.adjunct.AdjunctManager.rootURL];taint;ai-generated" + // "org.kohsuke.stapler.framework.adjunct;AdjunctManager;true;AdjunctManager;(ServletContext,ClassLoader,String,long);;Argument[2];Argument[this].Field[org.kohsuke.stapler.framework.adjunct.AdjunctManager.rootURL];taint;ai-generated" AdjunctManager out = null; String in = (String) source(); out = new AdjunctManager(null, null, in, 0L); diff --git a/java/ql/test/library-tests/frameworks/stream/Test.java b/java/ql/test/library-tests/frameworks/stream/Test.java index 2be0d1ceb28..0f3dd86f89c 100644 --- a/java/ql/test/library-tests/frameworks/stream/Test.java +++ b/java/ql/test/library-tests/frameworks/stream/Test.java @@ -26,42 +26,42 @@ public class Test { // *** Generated *** { - // "java.util.stream;BaseStream;true;iterator;();;Element of Argument[-1];Element of ReturnValue;value;manual" + // "java.util.stream;BaseStream;true;iterator;();;Element of Argument[this];Element of ReturnValue;value;manual" Iterator out = null; BaseStream in = (BaseStream)Stream.of(source("iterator_1")); out = in.iterator(); sink(getElement(out)); // $ hasValueFlow=iterator_1 } { - // "java.util.stream;BaseStream;true;onClose;(Runnable);;Element of Argument[-1];Element of ReturnValue;value;manual" + // "java.util.stream;BaseStream;true;onClose;(Runnable);;Element of Argument[this];Element of ReturnValue;value;manual" BaseStream out = null; BaseStream in = (BaseStream)Stream.of(source("onClose_1")); out = in.onClose(null); sink(getElement(out)); // $ hasValueFlow=onClose_1 } { - // "java.util.stream;BaseStream;true;parallel;();;Element of Argument[-1];Element of ReturnValue;value;manual" + // "java.util.stream;BaseStream;true;parallel;();;Element of Argument[this];Element of ReturnValue;value;manual" BaseStream out = null; BaseStream in = (BaseStream)Stream.of(source("parallel_1")); out = in.parallel(); sink(getElement(out)); // $ hasValueFlow=parallel_1 } { - // "java.util.stream;BaseStream;true;sequential;();;Element of Argument[-1];Element of ReturnValue;value;manual" + // "java.util.stream;BaseStream;true;sequential;();;Element of Argument[this];Element of ReturnValue;value;manual" BaseStream out = null; BaseStream in = (BaseStream)Stream.of(source("sequential_1")); out = in.sequential(); sink(getElement(out)); // $ hasValueFlow=sequential_1 } { - // "java.util.stream;BaseStream;true;spliterator;();;Element of Argument[-1];Element of ReturnValue;value;manual" + // "java.util.stream;BaseStream;true;spliterator;();;Element of Argument[this];Element of ReturnValue;value;manual" Spliterator out = null; BaseStream in = (BaseStream)Stream.of(source("spliterator_1")); out = in.spliterator(); sink(getElementSpliterator(out)); // $ hasValueFlow=spliterator_1 } { - // "java.util.stream;BaseStream;true;unordered;();;Element of Argument[-1];Element of ReturnValue;value;manual" + // "java.util.stream;BaseStream;true;unordered;();;Element of Argument[this];Element of ReturnValue;value;manual" BaseStream out = null; BaseStream in = (BaseStream)Stream.of(source("unordered_1")); out = in.unordered(); @@ -82,56 +82,56 @@ public class Test { sink(getElement(out)); // $ hasValueFlow=concat_2 } { - // "java.util.stream;Stream;true;distinct;();;Element of Argument[-1];Element of ReturnValue;value;manual" + // "java.util.stream;Stream;true;distinct;();;Element of Argument[this];Element of ReturnValue;value;manual" Stream out = null; Stream in = (Stream)Stream.of(source("distinct_1")); out = in.distinct(); sink(getElement(out)); // $ hasValueFlow=distinct_1 } { - // "java.util.stream;Stream;true;dropWhile;(Predicate);;Element of Argument[-1];Element of ReturnValue;value;manual" + // "java.util.stream;Stream;true;dropWhile;(Predicate);;Element of Argument[this];Element of ReturnValue;value;manual" Stream out = null; Stream in = (Stream)Stream.of(source("dropWhile_1")); out = in.dropWhile(null); sink(getElement(out)); // $ hasValueFlow=dropWhile_1 } { - // "java.util.stream;Stream;true;filter;(Predicate);;Element of Argument[-1];Element of ReturnValue;value;manual" + // "java.util.stream;Stream;true;filter;(Predicate);;Element of Argument[this];Element of ReturnValue;value;manual" Stream out = null; Stream in = (Stream)Stream.of(source("filter_1")); out = in.filter(null); sink(getElement(out)); // $ hasValueFlow=filter_1 } { - // "java.util.stream;Stream;true;findAny;();;Element of Argument[-1];Element of ReturnValue;value;manual" + // "java.util.stream;Stream;true;findAny;();;Element of Argument[this];Element of ReturnValue;value;manual" Optional out = null; Stream in = (Stream)Stream.of(source("findAny_1")); out = in.findAny(); sink(getElement(out)); // $ hasValueFlow=findAny_1 } { - // "java.util.stream;Stream;true;findFirst;();;Element of Argument[-1];Element of ReturnValue;value;manual" + // "java.util.stream;Stream;true;findFirst;();;Element of Argument[this];Element of ReturnValue;value;manual" Optional out = null; Stream in = (Stream)Stream.of(source("findFirst_1")); out = in.findFirst(); sink(getElement(out)); // $ hasValueFlow=findFirst_1 } { - // "java.util.stream;Stream;true;limit;(long);;Element of Argument[-1];Element of ReturnValue;value;manual" + // "java.util.stream;Stream;true;limit;(long);;Element of Argument[this];Element of ReturnValue;value;manual" Stream out = null; Stream in = (Stream)Stream.of(source("limit_1")); out = in.limit(0L); sink(getElement(out)); // $ hasValueFlow=limit_1 } { - // "java.util.stream;Stream;true;max;(Comparator);;Element of Argument[-1];Element of ReturnValue;value;manual" + // "java.util.stream;Stream;true;max;(Comparator);;Element of Argument[this];Element of ReturnValue;value;manual" Optional out = null; Stream in = (Stream)Stream.of(source("max_1")); out = in.max(null); sink(getElement(out)); // $ hasValueFlow=max_1 } { - // "java.util.stream;Stream;true;min;(Comparator);;Element of Argument[-1];Element of ReturnValue;value;manual" + // "java.util.stream;Stream;true;min;(Comparator);;Element of Argument[this];Element of ReturnValue;value;manual" Optional out = null; Stream in = (Stream)Stream.of(source("min_1")); out = in.min(null); @@ -159,56 +159,56 @@ public class Test { sink(getElement(out)); // $ hasValueFlow=ofNullable_1 } { - // "java.util.stream;Stream;true;peek;(Consumer);;Element of Argument[-1];Element of ReturnValue;value;manual" + // "java.util.stream;Stream;true;peek;(Consumer);;Element of Argument[this];Element of ReturnValue;value;manual" Stream out = null; Stream in = (Stream)Stream.of(source("peek_1")); out = in.peek(null); sink(getElement(out)); // $ hasValueFlow=peek_1 } { - // "java.util.stream;Stream;true;skip;(long);;Element of Argument[-1];Element of ReturnValue;value;manual" + // "java.util.stream;Stream;true;skip;(long);;Element of Argument[this];Element of ReturnValue;value;manual" Stream out = null; Stream in = (Stream)Stream.of(source("skip_1")); out = in.skip(0L); sink(getElement(out)); // $ hasValueFlow=skip_1 } { - // "java.util.stream;Stream;true;sorted;;;Element of Argument[-1];Element of ReturnValue;value;manual" + // "java.util.stream;Stream;true;sorted;;;Element of Argument[this];Element of ReturnValue;value;manual" Stream out = null; Stream in = (Stream)Stream.of(source("sorted_1")); out = in.sorted(); sink(getElement(out)); // $ hasValueFlow=sorted_1 } { - // "java.util.stream;Stream;true;sorted;;;Element of Argument[-1];Element of ReturnValue;value;manual" + // "java.util.stream;Stream;true;sorted;;;Element of Argument[this];Element of ReturnValue;value;manual" Stream out = null; Stream in = (Stream)Stream.of(source("sorted_2")); out = in.sorted(null); sink(getElement(out)); // $ hasValueFlow=sorted_2 } { - // "java.util.stream;Stream;true;takeWhile;(Predicate);;Element of Argument[-1];Element of ReturnValue;value;manual" + // "java.util.stream;Stream;true;takeWhile;(Predicate);;Element of Argument[this];Element of ReturnValue;value;manual" Stream out = null; Stream in = (Stream)Stream.of(source("takeWhile_1")); out = in.takeWhile(null); sink(getElement(out)); // $ hasValueFlow=takeWhile_1 } { - // "java.util.stream;Stream;true;toArray;;;Element of Argument[-1];ArrayElement of ReturnValue;value;manual" + // "java.util.stream;Stream;true;toArray;;;Element of Argument[this];ArrayElement of ReturnValue;value;manual" Object[] out = null; Stream in = (Stream)Stream.of(source("toArray_1")); out = in.toArray(); sink(getArrayElement(out)); // $ hasValueFlow=toArray_1 } { - // "java.util.stream;Stream;true;toArray;;;Element of Argument[-1];ArrayElement of ReturnValue;value;manual" + // "java.util.stream;Stream;true;toArray;;;Element of Argument[this];ArrayElement of ReturnValue;value;manual" Object[] out = null; Stream in = (Stream)Stream.of(source("toArray_2")); out = in.toArray(null); sink(getArrayElement(out)); // $ hasValueFlow=toArray_2 } { - // "java.util.stream;Stream;true;toList;();;Element of Argument[-1];Element of ReturnValue;value;manual" + // "java.util.stream;Stream;true;toList;();;Element of Argument[this];Element of ReturnValue;value;manual" List out = null; Stream in = (Stream)Stream.of(source("toList_1")); out = in.toList(); @@ -217,17 +217,17 @@ public class Test { // *** Handwritten *** { - //java.util.stream;Stream;true;allMatch;(Predicate);;Element of Argument[-1];Parameter[0] of Argument[0];value + //java.util.stream;Stream;true;allMatch;(Predicate);;Element of Argument[this];Parameter[0] of Argument[0];value Stream<Object> in = Stream.of(source("allMatch")); in.allMatch(x -> { sink(x); return true; }); // $ hasValueFlow=allMatch } { - //java.util.stream;Stream;true;anyMatch;(Predicate);;Element of Argument[-1];Parameter[0] of Argument[0];value + //java.util.stream;Stream;true;anyMatch;(Predicate);;Element of Argument[this];Parameter[0] of Argument[0];value Stream<Object> in = Stream.of(source("anyMatch")); in.anyMatch(x -> { sink(x); return true; }); // $ hasValueFlow=anyMatch } { - //java.util.stream;Stream;true;collect;(Supplier,BiConsumer,BiConsumer);;Element of Argument[-1];Parameter[1] of Argument[1];value + //java.util.stream;Stream;true;collect;(Supplier,BiConsumer,BiConsumer);;Element of Argument[this];Parameter[1] of Argument[1];value Stream<Object> in = Stream.of(source("collect")); in.collect(null, (c,x) -> sink(x), null); // $ hasValueFlow=collect } @@ -269,17 +269,17 @@ public class Test { sink(out[0]); // $ hasValueFlow=collect_6 } { - //java.util.stream;Stream;true;dropWhile;(Predicate);;Element of Argument[-1];Parameter[0] of Argument[0];value + //java.util.stream;Stream;true;dropWhile;(Predicate);;Element of Argument[this];Parameter[0] of Argument[0];value Stream<Object> in = Stream.of(source("dropWhile")); in.dropWhile(x -> { sink(x); return true; }); // $ hasValueFlow=dropWhile } { - //java.util.stream;Stream;true;filter;(Predicate);;Element of Argument[-1];Parameter[0] of Argument[0];value + //java.util.stream;Stream;true;filter;(Predicate);;Element of Argument[this];Parameter[0] of Argument[0];value Stream<Object> in = Stream.of(source("filter")); in.filter(x -> { sink(x); return true; }); // $ hasValueFlow=filter } { - //java.util.stream;Stream;true;flatMap;(Function);;Element of Argument[-1];Parameter[0] of Argument[0];value + //java.util.stream;Stream;true;flatMap;(Function);;Element of Argument[this];Parameter[0] of Argument[0];value Stream<Object> in = Stream.of(source("flatMap")); in.flatMap(x -> { sink(x); return Stream.empty(); }); // $ hasValueFlow=flatMap } @@ -289,27 +289,27 @@ public class Test { sink(getElement(out)); // $ hasValueFlow=flatMap_2 } { - //java.util.stream;Stream;true;flatMapToDouble;(Function);;Element of Argument[-1];Parameter[0] of Argument[0];value + //java.util.stream;Stream;true;flatMapToDouble;(Function);;Element of Argument[this];Parameter[0] of Argument[0];value Stream<Object> in = Stream.of(source("flatMapToDouble")); in.flatMapToDouble(x -> { sink(x); return null; }); // $ hasValueFlow=flatMapToDouble } { - //java.util.stream;Stream;true;flatMapToInt;(Function);;Element of Argument[-1];Parameter[0] of Argument[0];value + //java.util.stream;Stream;true;flatMapToInt;(Function);;Element of Argument[this];Parameter[0] of Argument[0];value Stream<Object> in = Stream.of(source("flatMapToInt")); in.flatMapToInt(x -> { sink(x); return null; }); // $ hasValueFlow=flatMapToInt } { - //java.util.stream;Stream;true;flatMapToLong;(Function);;Element of Argument[-1];Parameter[0] of Argument[0];value + //java.util.stream;Stream;true;flatMapToLong;(Function);;Element of Argument[this];Parameter[0] of Argument[0];value Stream<Object> in = Stream.of(source("flatMapToLong")); in.flatMapToLong(x -> { sink(x); return null; }); // $ hasValueFlow=flatMapToLong } { - //java.util.stream;Stream;true;forEach;(Consumer);;Element of Argument[-1];Parameter[0] of Argument[0];value + //java.util.stream;Stream;true;forEach;(Consumer);;Element of Argument[this];Parameter[0] of Argument[0];value Stream<Object> in = Stream.of(source("forEach")); in.forEach(x -> sink(x)); // $ hasValueFlow=forEach } { - //java.util.stream;Stream;true;forEachOrdered;(Consumer);;Element of Argument[-1];Parameter[0] of Argument[0];value + //java.util.stream;Stream;true;forEachOrdered;(Consumer);;Element of Argument[this];Parameter[0] of Argument[0];value Stream<Object> in = Stream.of(source("forEachOrdered")); in.forEachOrdered(x -> sink(x)); // $ hasValueFlow=forEachOrdered } @@ -348,72 +348,72 @@ public class Test { sink(getElement(out)); // $ hasValueFlow=iterate_3 hasValueFlow=iterate_4 } { - //java.util.stream;Stream;true;map;(Function);;Element of Argument[-1];Parameter[0] of Argument[0];value + //java.util.stream;Stream;true;map;(Function);;Element of Argument[this];Parameter[0] of Argument[0];value //java.util.stream;Stream;true;map;(Function);;ReturnValue of Argument[0];Element of ReturnValue;value Stream<Object> in = Stream.of(source("map_1")); Stream<Object> out = in.map(x -> { sink(x); return source("map_2"); }); // $ hasValueFlow=map_1 sink(getElement(out)); // $ hasValueFlow=map_2 } { - //java.util.stream;Stream;true;mapMulti;(BiConsumer);;Element of Argument[-1];Parameter[0] of Argument[0];value + //java.util.stream;Stream;true;mapMulti;(BiConsumer);;Element of Argument[this];Parameter[0] of Argument[0];value Stream<Object> in = Stream.of(source("mapMulti")); in.mapMulti((x, consumer) -> sink(x)); // $ hasValueFlow=mapMulti } { - //java.util.stream;Stream;true;mapMultiToDouble;(BiConsumer);;Element of Argument[-1];Parameter[0] of Argument[0];value + //java.util.stream;Stream;true;mapMultiToDouble;(BiConsumer);;Element of Argument[this];Parameter[0] of Argument[0];value Stream<Object> in = Stream.of(source("mapMultiToDouble")); in.mapMultiToDouble((x, consumer) -> sink(x)); // $ hasValueFlow=mapMultiToDouble } { - //java.util.stream;Stream;true;mapMultiToInt;(BiConsumer);;Element of Argument[-1];Parameter[0] of Argument[0];value + //java.util.stream;Stream;true;mapMultiToInt;(BiConsumer);;Element of Argument[this];Parameter[0] of Argument[0];value Stream<Object> in = Stream.of(source("mapMultiToInt")); in.mapMultiToInt((x, consumer) -> sink(x)); // $ hasValueFlow=mapMultiToInt } { - //java.util.stream;Stream;true;mapMultiToLong;(BiConsumer);;Element of Argument[-1];Parameter[0] of Argument[0];value + //java.util.stream;Stream;true;mapMultiToLong;(BiConsumer);;Element of Argument[this];Parameter[0] of Argument[0];value Stream<Object> in = Stream.of(source("mapMultiToLong")); in.mapMultiToLong((x, consumer) -> sink(x)); // $ hasValueFlow=mapMultiToLong } { - //java.util.stream;Stream;true;mapToDouble;(ToDoubleFunction);;Element of Argument[-1];Parameter[0] of Argument[0];value + //java.util.stream;Stream;true;mapToDouble;(ToDoubleFunction);;Element of Argument[this];Parameter[0] of Argument[0];value Stream<Object> in = Stream.of(source("mapToDouble")); in.mapToDouble(x -> { sink(x); return 0.0; }); // $ hasValueFlow=mapToDouble } { - //java.util.stream;Stream;true;mapToInt;(ToIntFunction);;Element of Argument[-1];Parameter[0] of Argument[0];value + //java.util.stream;Stream;true;mapToInt;(ToIntFunction);;Element of Argument[this];Parameter[0] of Argument[0];value Stream<Object> in = Stream.of(source("mapToInt")); in.mapToInt(x -> { sink(x); return 0; }); // $ hasValueFlow=mapToInt } { - //java.util.stream;Stream;true;mapToLong;(ToLongFunction);;Element of Argument[-1];Parameter[0] of Argument[0];value + //java.util.stream;Stream;true;mapToLong;(ToLongFunction);;Element of Argument[this];Parameter[0] of Argument[0];value Stream<Object> in = Stream.of(source("mapToLong")); in.mapToLong(x -> { sink(x); return 0; }); // $ hasValueFlow=mapToLong } { - //java.util.stream;Stream;true;max;(Comparator);;Element of Argument[-1];Parameter[0..1] of Argument[0];value + //java.util.stream;Stream;true;max;(Comparator);;Element of Argument[this];Parameter[0..1] of Argument[0];value Stream<Object> in = Stream.of(source("max")); in.max((x,y) -> { sink(x); return 0; }); // $ hasValueFlow=max in.max((x,y) -> { sink(y); return 0; }); // $ hasValueFlow=max } { - //java.util.stream;Stream;true;min;(Comparator);;Element of Argument[-1];Parameter[0..1] of Argument[0];value + //java.util.stream;Stream;true;min;(Comparator);;Element of Argument[this];Parameter[0..1] of Argument[0];value Stream<Object> in = Stream.of(source("min")); in.min((x,y) -> { sink(x); return 0; }); // $ hasValueFlow=min in.min((x,y) -> { sink(y); return 0; }); // $ hasValueFlow=min } { - //java.util.stream;Stream;true;noneMatch;(Predicate);;Element of Argument[-1];Parameter[0] of Argument[0];value + //java.util.stream;Stream;true;noneMatch;(Predicate);;Element of Argument[this];Parameter[0] of Argument[0];value Stream<Object> in = Stream.of(source("noneMatch")); in.noneMatch(x -> { sink(x); return true; }); // $ hasValueFlow=noneMatch } { - //java.util.stream;Stream;true;peek;(Consumer);;Element of Argument[-1];Parameter[0] of Argument[0];value + //java.util.stream;Stream;true;peek;(Consumer);;Element of Argument[this];Parameter[0] of Argument[0];value Stream<Object> in = Stream.of(source("peek")); in.peek(x -> sink(x)); // $ hasValueFlow=peek } { - // "java.util.stream;Stream;true;reduce;(BinaryOperator);;Element of Argument[-1];Element of ReturnValue;value;manual" - //java.util.stream;Stream;true;reduce;(BinaryOperator);;Element of Argument[-1];Parameter[0..1] of Argument[0];value + // "java.util.stream;Stream;true;reduce;(BinaryOperator);;Element of Argument[this];Element of ReturnValue;value;manual" + //java.util.stream;Stream;true;reduce;(BinaryOperator);;Element of Argument[this];Parameter[0..1] of Argument[0];value //java.util.stream;Stream;true;reduce;(BinaryOperator);;ReturnValue of Argument[0];Element of ReturnValue;value //java.util.stream;Stream;true;reduce;(BinaryOperator);;ReturnValue of Argument[0];Parameter[0..1] of Argument[0];value Stream<Object> in = Stream.of(source("reduce_1")); @@ -427,7 +427,7 @@ public class Test { { // "java.util.stream;Stream;true;reduce;(Object,BinaryOperator);;Argument[0];ReturnValue;value;manual" //java.util.stream;Stream;true;reduce;(Object,BinaryOperator);;Argument[0];Parameter[0..1] of Argument[1];value - //java.util.stream;Stream;true;reduce;(Object,BinaryOperator);;Element of Argument[-1];Parameter[0..1] of Argument[1];value + //java.util.stream;Stream;true;reduce;(Object,BinaryOperator);;Element of Argument[this];Parameter[0..1] of Argument[1];value //java.util.stream;Stream;true;reduce;(Object,BinaryOperator);;ReturnValue of Argument[1];Parameter[0..1] of Argument[1];value //java.util.stream;Stream;true;reduce;(Object,BinaryOperator);;ReturnValue of Argument[1];ReturnValue;value Stream<Object> in = Stream.of(source("reduce_3")); @@ -442,7 +442,7 @@ public class Test { // "java.util.stream;Stream;true;reduce;(Object,BiFunction,BinaryOperator);;Argument[0];ReturnValue;value;manual" //java.util.stream;Stream;true;reduce;(Object,BiFunction,BinaryOperator);;Argument[0];Parameter[0..1] of Argument[2];value //java.util.stream;Stream;true;reduce;(Object,BiFunction,BinaryOperator);;Argument[0];Parameter[0] of Argument[1];value - //java.util.stream;Stream;true;reduce;(Object,BiFunction,BinaryOperator);;Element of Argument[-1];Parameter[1] of Argument[1];value + //java.util.stream;Stream;true;reduce;(Object,BiFunction,BinaryOperator);;Element of Argument[this];Parameter[1] of Argument[1];value //java.util.stream;Stream;true;reduce;(Object,BiFunction,BinaryOperator);;ReturnValue of Argument[1..2];Parameter[0..1] of Argument[2];value //java.util.stream;Stream;true;reduce;(Object,BiFunction,BinaryOperator);;ReturnValue of Argument[1..2];Parameter[0] of Argument[1];value //java.util.stream;Stream;true;reduce;(Object,BiFunction,BinaryOperator);;ReturnValue of Argument[1..2];ReturnValue;value @@ -459,13 +459,13 @@ public class Test { sink(out); // $ hasValueFlow=reduce_7 hasValueFlow=reduce_8 hasValueFlow=reduce_9 } { - //java.util.stream;Stream;true;sorted;(Comparator);;Element of Argument[-1];Parameter[0..1] of Argument[0];value + //java.util.stream;Stream;true;sorted;(Comparator);;Element of Argument[this];Parameter[0..1] of Argument[0];value Stream<Object> in = Stream.of(source("sorted")); in.sorted((x,y) -> { sink(x); return 0; }); // $ hasValueFlow=sorted in.sorted((x,y) -> { sink(y); return 0; }); // $ hasValueFlow=sorted } { - //java.util.stream;Stream;true;takeWhile;(Predicate);;Element of Argument[-1];Parameter[0] of Argument[0];value + //java.util.stream;Stream;true;takeWhile;(Predicate);;Element of Argument[this];Parameter[0] of Argument[0];value Stream<Object> in = Stream.of(source("takeWhile")); in.takeWhile(x -> { sink(x); return true; }); // $ hasValueFlow=takeWhile } diff --git a/java/ql/test/library-tests/frameworks/thymeleaf/Test.java b/java/ql/test/library-tests/frameworks/thymeleaf/Test.java index 7d0d193715f..172d78c9169 100644 --- a/java/ql/test/library-tests/frameworks/thymeleaf/Test.java +++ b/java/ql/test/library-tests/frameworks/thymeleaf/Test.java @@ -14,42 +14,42 @@ public class Test { public void test() throws Exception { { - // "org.thymeleaf;TemplateSpec;false;TemplateSpec;;;Argument[0];Argument[-1];taint;manual" + // "org.thymeleaf;TemplateSpec;false;TemplateSpec;;;Argument[0];Argument[this];taint;manual" TemplateSpec out = null; String in = (String)source(); out = new TemplateSpec(in, (Map)null); sink(out); // $ hasTaintFlow } { - // "org.thymeleaf;TemplateSpec;false;TemplateSpec;;;Argument[0];Argument[-1];taint;manual" + // "org.thymeleaf;TemplateSpec;false;TemplateSpec;;;Argument[0];Argument[this];taint;manual" TemplateSpec out = null; String in = (String)source(); out = new TemplateSpec(in, (Set)null, (String)null, (Map)null); sink(out); // $ hasTaintFlow } { - // "org.thymeleaf;TemplateSpec;false;TemplateSpec;;;Argument[0];Argument[-1];taint;manual" + // "org.thymeleaf;TemplateSpec;false;TemplateSpec;;;Argument[0];Argument[this];taint;manual" TemplateSpec out = null; String in = (String)source(); out = new TemplateSpec(in, (Set)null, (TemplateMode)null, (Map)null); sink(out); // $ hasTaintFlow } { - // "org.thymeleaf;TemplateSpec;false;TemplateSpec;;;Argument[0];Argument[-1];taint;manual" + // "org.thymeleaf;TemplateSpec;false;TemplateSpec;;;Argument[0];Argument[this];taint;manual" TemplateSpec out = null; String in = (String)source(); out = new TemplateSpec(in, (String)null); sink(out); // $ hasTaintFlow } { - // "org.thymeleaf;TemplateSpec;false;TemplateSpec;;;Argument[0];Argument[-1];taint;manual" + // "org.thymeleaf;TemplateSpec;false;TemplateSpec;;;Argument[0];Argument[this];taint;manual" TemplateSpec out = null; String in = (String)source(); out = new TemplateSpec(in, (TemplateMode)null); sink(out); // $ hasTaintFlow } { - // "org.thymeleaf;TemplateSpec;false;getTemplate;;;Argument[-1];ReturnValue;taint;manual" + // "org.thymeleaf;TemplateSpec;false;getTemplate;;;Argument[this];ReturnValue;taint;manual" String out = null; TemplateSpec in = (TemplateSpec)source(); out = in.getTemplate(); diff --git a/java/ql/test/library-tests/logging/Test.java b/java/ql/test/library-tests/logging/Test.java index 3c55d438126..4dacd6ccf5c 100644 --- a/java/ql/test/library-tests/logging/Test.java +++ b/java/ql/test/library-tests/logging/Test.java @@ -18,7 +18,7 @@ public class Test { public void test() throws Exception { { - // "java.util.logging;LogRecord;false;LogRecord;;;Argument[1];Argument[-1];taint;manual" + // "java.util.logging;LogRecord;false;LogRecord;;;Argument[1];Argument[this];taint;manual" LogRecord out = null; String in = (String) source(); out = new LogRecord(null, in); @@ -107,56 +107,56 @@ public class Test { sink(out); // $ hasValueFlow } { - // "org.slf4j.spi;LoggingEventBuilder;true;addArgument;;;Argument[-1];ReturnValue;value;manual" + // "org.slf4j.spi;LoggingEventBuilder;true;addArgument;;;Argument[this];ReturnValue;value;manual" LoggingEventBuilder out = null; LoggingEventBuilder in = (LoggingEventBuilder) source(); out = in.addArgument((Object) null); sink(out); // $ hasValueFlow } { - // "org.slf4j.spi;LoggingEventBuilder;true;addArgument;;;Argument[-1];ReturnValue;value;manual" + // "org.slf4j.spi;LoggingEventBuilder;true;addArgument;;;Argument[this];ReturnValue;value;manual" LoggingEventBuilder out = null; LoggingEventBuilder in = (LoggingEventBuilder) source(); out = in.addArgument((java.util.function.Supplier) null); sink(out); // $ hasValueFlow } { - // "org.slf4j.spi;LoggingEventBuilder;true;addKeyValue;;;Argument[-1];ReturnValue;value;manual" + // "org.slf4j.spi;LoggingEventBuilder;true;addKeyValue;;;Argument[this];ReturnValue;value;manual" LoggingEventBuilder out = null; LoggingEventBuilder in = (LoggingEventBuilder) source(); out = in.addKeyValue((String) null, (Object) null); sink(out); // $ hasValueFlow } { - // "org.slf4j.spi;LoggingEventBuilder;true;addKeyValue;;;Argument[-1];ReturnValue;value;manual" + // "org.slf4j.spi;LoggingEventBuilder;true;addKeyValue;;;Argument[this];ReturnValue;value;manual" LoggingEventBuilder out = null; LoggingEventBuilder in = (LoggingEventBuilder) source(); out = in.addKeyValue((String) null, (java.util.function.Supplier) null); sink(out); // $ hasValueFlow } { - // "org.slf4j.spi;LoggingEventBuilder;true;addKeyValue;;;Argument[1];Argument[-1];taint;manual" + // "org.slf4j.spi;LoggingEventBuilder;true;addKeyValue;;;Argument[1];Argument[this];taint;manual" LoggingEventBuilder out = null; Object in = (Object) source(); out.addKeyValue((String) null, in); sink(out); // $ hasTaintFlow } { - // "org.slf4j.spi;LoggingEventBuilder;true;addKeyValue;;;Argument[1];Argument[-1];taint;manual" + // "org.slf4j.spi;LoggingEventBuilder;true;addKeyValue;;;Argument[1];Argument[this];taint;manual" LoggingEventBuilder out = null; java.util.function.Supplier in = (java.util.function.Supplier) source(); out.addKeyValue((String) null, in); sink(out); // $ hasTaintFlow } { - // "org.slf4j.spi;LoggingEventBuilder;true;addMarker;;;Argument[-1];ReturnValue;value;manual" + // "org.slf4j.spi;LoggingEventBuilder;true;addMarker;;;Argument[this];ReturnValue;value;manual" LoggingEventBuilder out = null; LoggingEventBuilder in = (LoggingEventBuilder) source(); out = in.addMarker(null); sink(out); // $ hasValueFlow } { - // "org.slf4j.spi;LoggingEventBuilder;true;setCause;;;Argument[-1];ReturnValue;value;manual" + // "org.slf4j.spi;LoggingEventBuilder;true;setCause;;;Argument[this];ReturnValue;value;manual" LoggingEventBuilder out = null; LoggingEventBuilder in = (LoggingEventBuilder) source(); out = in.setCause(null); diff --git a/java/ql/test/library-tests/optional/Test.java b/java/ql/test/library-tests/optional/Test.java index f58cf45b871..5d956c74d45 100644 --- a/java/ql/test/library-tests/optional/Test.java +++ b/java/ql/test/library-tests/optional/Test.java @@ -15,14 +15,14 @@ public class Test { public void test() { { - // "java.util;Optional;false;filter;;;Element of Argument[-1];Element of ReturnValue;value;manual" + // "java.util;Optional;false;filter;;;Element of Argument[this];Element of ReturnValue;value;manual" Optional<Object> out = null; Optional<Object> in = newWithElement(source()); out = in.filter(null); sink(getElement(out)); // $hasValueFlow } { - // "java.util;Optional;false;get;;;Element of Argument[-1];ReturnValue;value;manual" + // "java.util;Optional;false;get;;;Element of Argument[this];ReturnValue;value;manual" Object out = null; Optional<Object> in = newWithElement(source()); out = in.get(); @@ -43,7 +43,7 @@ public class Test { sink(getElement(out)); // $hasValueFlow } { - // "java.util;Optional;false;or;;;Element of Argument[-1];Element of ReturnValue;value;manual" + // "java.util;Optional;false;or;;;Element of Argument[this];Element of ReturnValue;value;manual" Optional<Object> out = null; Optional<Object> in = newWithElement(source()); out = in.or(null); @@ -58,35 +58,35 @@ public class Test { sink(out); // $hasValueFlow } { - // "java.util;Optional;false;orElse;;;Element of Argument[-1];ReturnValue;value;manual" + // "java.util;Optional;false;orElse;;;Element of Argument[this];ReturnValue;value;manual" Object out = null; Optional<Object> in = newWithElement(source()); out = in.orElse(null); sink(out); // $hasValueFlow } { - // "java.util;Optional;false;orElseGet;;;Element of Argument[-1];ReturnValue;value;manual" + // "java.util;Optional;false;orElseGet;;;Element of Argument[this];ReturnValue;value;manual" Object out = null; Optional<Object> in = newWithElement(source()); out = in.orElseGet(null); sink(out); // $hasValueFlow } { - // "java.util;Optional;false;orElseThrow;;;Element of Argument[-1];ReturnValue;value;manual" + // "java.util;Optional;false;orElseThrow;;;Element of Argument[this];ReturnValue;value;manual" Object out = null; Optional<Object> in = newWithElement(source()); out = in.orElseThrow(null); sink(out); // $hasValueFlow } { - // "java.util;Optional;false;orElseThrow;;;Element of Argument[-1];ReturnValue;value;manual" + // "java.util;Optional;false;orElseThrow;;;Element of Argument[this];ReturnValue;value;manual" Object out = null; Optional<Object> in = newWithElement(source()); out = in.orElseThrow(); sink(out); // $hasValueFlow } { - // "java.util;Optional;false;stream;;;Element of Argument[-1];Element of ReturnValue;value;manual" + // "java.util;Optional;false;stream;;;Element of Argument[this];Element of ReturnValue;value;manual" Stream<Object> out = null; Optional<Object> in = newWithElement(source()); out = in.stream(); diff --git a/java/ql/test/library-tests/paths/Test.java b/java/ql/test/library-tests/paths/Test.java index b00a667d823..ed38511b14b 100644 --- a/java/ql/test/library-tests/paths/Test.java +++ b/java/ql/test/library-tests/paths/Test.java @@ -15,91 +15,91 @@ public class Test { public void test() throws Exception { { - // "java.io;File;false;File;;;Argument[0];Argument[-1];taint;manual" + // "java.io;File;false;File;;;Argument[0];Argument[this];taint;manual" File out = null; File in = (File)source(); out = new File(in, (String)null); sink(out); // $ hasTaintFlow } { - // "java.io;File;false;File;;;Argument[0];Argument[-1];taint;manual" + // "java.io;File;false;File;;;Argument[0];Argument[this];taint;manual" File out = null; String in = (String)source(); out = new File(in); sink(out); // $ hasTaintFlow } { - // "java.io;File;false;File;;;Argument[0];Argument[-1];taint;manual" + // "java.io;File;false;File;;;Argument[0];Argument[this];taint;manual" File out = null; String in = (String)source(); out = new File(in, (String)null); sink(out); // $ hasTaintFlow } { - // "java.io;File;false;File;;;Argument[0];Argument[-1];taint;manual" + // "java.io;File;false;File;;;Argument[0];Argument[this];taint;manual" File out = null; URI in = (URI)source(); out = new File(in); sink(out); // $ hasTaintFlow } { - // "java.io;File;false;File;;;Argument[1];Argument[-1];taint;manual" + // "java.io;File;false;File;;;Argument[1];Argument[this];taint;manual" File out = null; String in = (String)source(); out = new File((File)null, in); sink(out); // $ hasTaintFlow } { - // "java.io;File;false;File;;;Argument[1];Argument[-1];taint;manual" + // "java.io;File;false;File;;;Argument[1];Argument[this];taint;manual" File out = null; String in = (String)source(); out = new File((String)null, in); sink(out); // $ hasTaintFlow } { - // "java.io;File;true;getAbsoluteFile;;;Argument[-1];ReturnValue;taint;manual" + // "java.io;File;true;getAbsoluteFile;;;Argument[this];ReturnValue;taint;manual" File out = null; File in = (File)source(); out = in.getAbsoluteFile(); sink(out); // $ hasTaintFlow } { - // "java.io;File;true;getAbsolutePath;;;Argument[-1];ReturnValue;taint;manual" + // "java.io;File;true;getAbsolutePath;;;Argument[this];ReturnValue;taint;manual" String out = null; File in = (File)source(); out = in.getAbsolutePath(); sink(out); // $ hasTaintFlow } { - // "java.io;File;true;getCanonicalFile;;;Argument[-1];ReturnValue;taint;manual" + // "java.io;File;true;getCanonicalFile;;;Argument[this];ReturnValue;taint;manual" File out = null; File in = (File)source(); out = in.getCanonicalFile(); sink(out); // $ hasTaintFlow } { - // "java.io;File;true;getCanonicalPath;;;Argument[-1];ReturnValue;taint;manual" + // "java.io;File;true;getCanonicalPath;;;Argument[this];ReturnValue;taint;manual" String out = null; File in = (File)source(); out = in.getCanonicalPath(); sink(out); // $ hasTaintFlow } { - // "java.io;File;true;toPath;;;Argument[-1];ReturnValue;taint;manual" + // "java.io;File;true;toPath;;;Argument[this];ReturnValue;taint;manual" Path out = null; File in = (File)source(); out = in.toPath(); sink(out); // $ hasTaintFlow } { - // "java.io;File;true;toString;;;Argument[-1];ReturnValue;taint;manual" + // "java.io;File;true;toString;;;Argument[this];ReturnValue;taint;manual" String out = null; File in = (File)source(); out = in.toString(); sink(out); // $ hasTaintFlow } { - // "java.io;File;true;toURI;;;Argument[-1];ReturnValue;taint;manual" + // "java.io;File;true;toURI;;;Argument[this];ReturnValue;taint;manual" URI out = null; File in = (File)source(); out = in.toURI(); @@ -114,21 +114,21 @@ public class Test { sink(out); // $ hasTaintFlow } { - // "java.nio.file;Path;false;toFile;;;Argument[-1];ReturnValue;taint;manual" + // "java.nio.file;Path;false;toFile;;;Argument[this];ReturnValue;taint;manual" File out = null; Path in = (Path)source(); out = in.toFile(); sink(out); // $ hasTaintFlow } { - // "java.nio.file;Path;true;getParent;;;Argument[-1];ReturnValue;taint;manual" + // "java.nio.file;Path;true;getParent;;;Argument[this];ReturnValue;taint;manual" Path out = null; Path in = (Path)source(); out = in.getParent(); sink(out); // $ hasTaintFlow } { - // "java.nio.file;Path;true;normalize;;;Argument[-1];ReturnValue;taint;manual" + // "java.nio.file;Path;true;normalize;;;Argument[this];ReturnValue;taint;manual" Path out = null; Path in = (Path)source(); out = in.normalize(); @@ -165,21 +165,21 @@ public class Test { sink(out); // $ hasTaintFlow } { - // "java.nio.file;Path;true;toAbsolutePath;;;Argument[-1];ReturnValue;taint;manual" + // "java.nio.file;Path;true;toAbsolutePath;;;Argument[this];ReturnValue;taint;manual" Path out = null; Path in = (Path)source(); out = in.toAbsolutePath(); sink(out); // $ hasTaintFlow } { - // "java.nio.file;Path;true;toString;;;Argument[-1];ReturnValue;taint;manual" + // "java.nio.file;Path;true;toString;;;Argument[this];ReturnValue;taint;manual" String out = null; Path in = (Path)source(); out = in.toString(); sink(out); // $ hasTaintFlow } { - // "java.nio.file;Path;true;toUri;;;Argument[-1];ReturnValue;taint;manual" + // "java.nio.file;Path;true;toUri;;;Argument[this];ReturnValue;taint;manual" URI out = null; Path in = (Path)source(); out = in.toUri(); diff --git a/java/ql/test/library-tests/regex/Test.java b/java/ql/test/library-tests/regex/Test.java index 89c8be5b6ad..98e58c4a6cb 100644 --- a/java/ql/test/library-tests/regex/Test.java +++ b/java/ql/test/library-tests/regex/Test.java @@ -15,7 +15,7 @@ public class Test { public void test() throws Exception { { - // "java.util.regex;Matcher;false;group;;;Argument[-1];ReturnValue;taint;manual" + // "java.util.regex;Matcher;false;group;;;Argument[this];ReturnValue;taint;manual" String out = null; String in = (String) source(); Matcher m = pattern.matcher(in); @@ -23,7 +23,7 @@ public class Test { sink(out); // $ hasTaintFlow } { - // "java.util.regex;Matcher;false;group;;;Argument[-1];ReturnValue;taint;manual" + // "java.util.regex;Matcher;false;group;;;Argument[this];ReturnValue;taint;manual" String out = null; String in = (String) source(); Matcher m = pattern.matcher(in); @@ -31,7 +31,7 @@ public class Test { sink(out); // $ hasTaintFlow } { - // "java.util.regex;Matcher;false;group;;;Argument[-1];ReturnValue;taint;manual" + // "java.util.regex;Matcher;false;group;;;Argument[this];ReturnValue;taint;manual" String out = null; String in = (String) source(); Matcher m = pattern.matcher(in); @@ -39,7 +39,7 @@ public class Test { sink(out); // $ hasTaintFlow } { - // "java.util.regex;Matcher;false;replaceAll;;;Argument[-1];ReturnValue;taint;manual" + // "java.util.regex;Matcher;false;replaceAll;;;Argument[this];ReturnValue;taint;manual" String out = null; String in = (String) source(); Matcher m = pattern.matcher(in); @@ -55,7 +55,7 @@ public class Test { sink(out); // $ hasTaintFlow } { - // "java.util.regex;Matcher;false;replaceFirst;;;Argument[-1];ReturnValue;taint;manual" + // "java.util.regex;Matcher;false;replaceFirst;;;Argument[this];ReturnValue;taint;manual" String out = null; String in = (String) source(); Matcher m = pattern.matcher(in); diff --git a/java/ql/test/library-tests/scanner/Test.java b/java/ql/test/library-tests/scanner/Test.java index 05f5b497215..fb8a4535e0a 100644 --- a/java/ql/test/library-tests/scanner/Test.java +++ b/java/ql/test/library-tests/scanner/Test.java @@ -22,301 +22,301 @@ public class Test { public void test() throws Exception { { - // "java.util;Scanner;true;Scanner;;;Argument[0];Argument[-1];taint;manual" + // "java.util;Scanner;true;Scanner;;;Argument[0];Argument[this];taint;manual" Scanner out = null; File in = (File) source(); out = new Scanner(in); sink(out); // $ hasTaintFlow } { - // "java.util;Scanner;true;Scanner;;;Argument[0];Argument[-1];taint;manual" + // "java.util;Scanner;true;Scanner;;;Argument[0];Argument[this];taint;manual" Scanner out = null; File in = (File) source(); out = new Scanner(in, (Charset) null); sink(out); // $ hasTaintFlow } { - // "java.util;Scanner;true;Scanner;;;Argument[0];Argument[-1];taint;manual" + // "java.util;Scanner;true;Scanner;;;Argument[0];Argument[this];taint;manual" Scanner out = null; File in = (File) source(); out = new Scanner(in, (String) null); sink(out); // $ hasTaintFlow } { - // "java.util;Scanner;true;Scanner;;;Argument[0];Argument[-1];taint;manual" + // "java.util;Scanner;true;Scanner;;;Argument[0];Argument[this];taint;manual" Scanner out = null; InputStream in = (InputStream) source(); out = new Scanner(in); sink(out); // $ hasTaintFlow } { - // "java.util;Scanner;true;Scanner;;;Argument[0];Argument[-1];taint;manual" + // "java.util;Scanner;true;Scanner;;;Argument[0];Argument[this];taint;manual" Scanner out = null; InputStream in = (InputStream) source(); out = new Scanner(in, (Charset) null); sink(out); // $ hasTaintFlow } { - // "java.util;Scanner;true;Scanner;;;Argument[0];Argument[-1];taint;manual" + // "java.util;Scanner;true;Scanner;;;Argument[0];Argument[this];taint;manual" Scanner out = null; InputStream in = (InputStream) source(); out = new Scanner(in, (String) null); sink(out); // $ hasTaintFlow } { - // "java.util;Scanner;true;Scanner;;;Argument[0];Argument[-1];taint;manual" + // "java.util;Scanner;true;Scanner;;;Argument[0];Argument[this];taint;manual" Scanner out = null; Path in = (Path) source(); out = new Scanner(in); sink(out); // $ hasTaintFlow } { - // "java.util;Scanner;true;Scanner;;;Argument[0];Argument[-1];taint;manual" + // "java.util;Scanner;true;Scanner;;;Argument[0];Argument[this];taint;manual" Scanner out = null; Path in = (Path) source(); out = new Scanner(in, (Charset) null); sink(out); // $ hasTaintFlow } { - // "java.util;Scanner;true;Scanner;;;Argument[0];Argument[-1];taint;manual" + // "java.util;Scanner;true;Scanner;;;Argument[0];Argument[this];taint;manual" Scanner out = null; Path in = (Path) source(); out = new Scanner(in, (String) null); sink(out); // $ hasTaintFlow } { - // "java.util;Scanner;true;Scanner;;;Argument[0];Argument[-1];taint;manual" + // "java.util;Scanner;true;Scanner;;;Argument[0];Argument[this];taint;manual" Scanner out = null; Readable in = (Readable) source(); out = new Scanner(in); sink(out); // $ hasTaintFlow } { - // "java.util;Scanner;true;Scanner;;;Argument[0];Argument[-1];taint;manual" + // "java.util;Scanner;true;Scanner;;;Argument[0];Argument[this];taint;manual" Scanner out = null; ReadableByteChannel in = (ReadableByteChannel) source(); out = new Scanner(in); sink(out); // $ hasTaintFlow } { - // "java.util;Scanner;true;Scanner;;;Argument[0];Argument[-1];taint;manual" + // "java.util;Scanner;true;Scanner;;;Argument[0];Argument[this];taint;manual" Scanner out = null; ReadableByteChannel in = (ReadableByteChannel) source(); out = new Scanner(in, (Charset) null); sink(out); // $ hasTaintFlow } { - // "java.util;Scanner;true;Scanner;;;Argument[0];Argument[-1];taint;manual" + // "java.util;Scanner;true;Scanner;;;Argument[0];Argument[this];taint;manual" Scanner out = null; ReadableByteChannel in = (ReadableByteChannel) source(); out = new Scanner(in, (String) null); sink(out); // $ hasTaintFlow } { - // "java.util;Scanner;true;Scanner;;;Argument[0];Argument[-1];taint;manual" + // "java.util;Scanner;true;Scanner;;;Argument[0];Argument[this];taint;manual" Scanner out = null; String in = (String) source(); out = new Scanner(in); sink(out); // $ hasTaintFlow } { - // "java.util;Scanner;true;findInLine;;;Argument[-1];ReturnValue;taint;manual" + // "java.util;Scanner;true;findInLine;;;Argument[this];ReturnValue;taint;manual" String out = null; Scanner in = (Scanner) source(); out = in.findInLine((Pattern) null); sink(out); // $ hasTaintFlow } { - // "java.util;Scanner;true;findInLine;;;Argument[-1];ReturnValue;taint;manual" + // "java.util;Scanner;true;findInLine;;;Argument[this];ReturnValue;taint;manual" String out = null; Scanner in = (Scanner) source(); out = in.findInLine((String) null); sink(out); // $ hasTaintFlow } { - // "java.util;Scanner;true;findWithinHorizon;;;Argument[-1];ReturnValue;taint;manual" + // "java.util;Scanner;true;findWithinHorizon;;;Argument[this];ReturnValue;taint;manual" String out = null; Scanner in = (Scanner) source(); out = in.findWithinHorizon((Pattern) null, 0); sink(out); // $ hasTaintFlow } { - // "java.util;Scanner;true;findWithinHorizon;;;Argument[-1];ReturnValue;taint;manual" + // "java.util;Scanner;true;findWithinHorizon;;;Argument[this];ReturnValue;taint;manual" String out = null; Scanner in = (Scanner) source(); out = in.findWithinHorizon((String) null, 0); sink(out); // $ hasTaintFlow } { - // "java.util;Scanner;true;next;;;Argument[-1];ReturnValue;taint;manual" + // "java.util;Scanner;true;next;;;Argument[this];ReturnValue;taint;manual" String out = null; Scanner in = (Scanner) source(); out = in.next((Pattern) null); sink(out); // $ hasTaintFlow } { - // "java.util;Scanner;true;next;;;Argument[-1];ReturnValue;taint;manual" + // "java.util;Scanner;true;next;;;Argument[this];ReturnValue;taint;manual" String out = null; Scanner in = (Scanner) source(); out = in.next((String) null); sink(out); // $ hasTaintFlow } { - // "java.util;Scanner;true;next;;;Argument[-1];ReturnValue;taint;manual" + // "java.util;Scanner;true;next;;;Argument[this];ReturnValue;taint;manual" String out = null; Scanner in = (Scanner) source(); out = in.next(); sink(out); // $ hasTaintFlow } { - // "java.util;Scanner;true;nextBigDecimal;;;Argument[-1];ReturnValue;taint;manual" + // "java.util;Scanner;true;nextBigDecimal;;;Argument[this];ReturnValue;taint;manual" BigDecimal out = null; Scanner in = (Scanner) source(); out = in.nextBigDecimal(); sink(out); // $ hasTaintFlow } { - // "java.util;Scanner;true;nextBigInteger;;;Argument[-1];ReturnValue;taint;manual" + // "java.util;Scanner;true;nextBigInteger;;;Argument[this];ReturnValue;taint;manual" BigInteger out = null; Scanner in = (Scanner) source(); out = in.nextBigInteger(); sink(out); // $ hasTaintFlow } { - // "java.util;Scanner;true;nextBigInteger;;;Argument[-1];ReturnValue;taint;manual" + // "java.util;Scanner;true;nextBigInteger;;;Argument[this];ReturnValue;taint;manual" BigInteger out = null; Scanner in = (Scanner) source(); out = in.nextBigInteger(0); sink(out); // $ hasTaintFlow } { - // "java.util;Scanner;true;nextBoolean;;;Argument[-1];ReturnValue;taint;manual" + // "java.util;Scanner;true;nextBoolean;;;Argument[this];ReturnValue;taint;manual" boolean out = false; Scanner in = (Scanner) source(); out = in.nextBoolean(); sink(out); // $ hasTaintFlow } { - // "java.util;Scanner;true;nextByte;;;Argument[-1];ReturnValue;taint;manual" + // "java.util;Scanner;true;nextByte;;;Argument[this];ReturnValue;taint;manual" byte out = 0; Scanner in = (Scanner) source(); out = in.nextByte(); sink(out); // $ hasTaintFlow } { - // "java.util;Scanner;true;nextByte;;;Argument[-1];ReturnValue;taint;manual" + // "java.util;Scanner;true;nextByte;;;Argument[this];ReturnValue;taint;manual" byte out = 0; Scanner in = (Scanner) source(); out = in.nextByte(0); sink(out); // $ hasTaintFlow } { - // "java.util;Scanner;true;nextDouble;;;Argument[-1];ReturnValue;taint;manual" + // "java.util;Scanner;true;nextDouble;;;Argument[this];ReturnValue;taint;manual" double out = 0; Scanner in = (Scanner) source(); out = in.nextDouble(); sink(out); // $ hasTaintFlow } { - // "java.util;Scanner;true;nextFloat;;;Argument[-1];ReturnValue;taint;manual" + // "java.util;Scanner;true;nextFloat;;;Argument[this];ReturnValue;taint;manual" float out = 0; Scanner in = (Scanner) source(); out = in.nextFloat(); sink(out); // $ hasTaintFlow } { - // "java.util;Scanner;true;nextInt;;;Argument[-1];ReturnValue;taint;manual" + // "java.util;Scanner;true;nextInt;;;Argument[this];ReturnValue;taint;manual" int out = 0; Scanner in = (Scanner) source(); out = in.nextInt(); sink(out); // $ hasTaintFlow } { - // "java.util;Scanner;true;nextInt;;;Argument[-1];ReturnValue;taint;manual" + // "java.util;Scanner;true;nextInt;;;Argument[this];ReturnValue;taint;manual" int out = 0; Scanner in = (Scanner) source(); out = in.nextInt(0); sink(out); // $ hasTaintFlow } { - // "java.util;Scanner;true;nextLine;;;Argument[-1];ReturnValue;taint;manual" + // "java.util;Scanner;true;nextLine;;;Argument[this];ReturnValue;taint;manual" String out = null; Scanner in = (Scanner) source(); out = in.nextLine(); sink(out); // $ hasTaintFlow } { - // "java.util;Scanner;true;nextLong;;;Argument[-1];ReturnValue;taint;manual" + // "java.util;Scanner;true;nextLong;;;Argument[this];ReturnValue;taint;manual" long out = 0; Scanner in = (Scanner) source(); out = in.nextLong(); sink(out); // $ hasTaintFlow } { - // "java.util;Scanner;true;nextLong;;;Argument[-1];ReturnValue;taint;manual" + // "java.util;Scanner;true;nextLong;;;Argument[this];ReturnValue;taint;manual" long out = 0; Scanner in = (Scanner) source(); out = in.nextLong(0); sink(out); // $ hasTaintFlow } { - // "java.util;Scanner;true;nextShort;;;Argument[-1];ReturnValue;taint;manual" + // "java.util;Scanner;true;nextShort;;;Argument[this];ReturnValue;taint;manual" short out = 0; Scanner in = (Scanner) source(); out = in.nextShort(); sink(out); // $ hasTaintFlow } { - // "java.util;Scanner;true;nextShort;;;Argument[-1];ReturnValue;taint;manual" + // "java.util;Scanner;true;nextShort;;;Argument[this];ReturnValue;taint;manual" short out = 0; Scanner in = (Scanner) source(); out = in.nextShort(0); sink(out); // $ hasTaintFlow } { - // "java.util;Scanner;true;reset;;;Argument[-1];ReturnValue;value;manual" + // "java.util;Scanner;true;reset;;;Argument[this];ReturnValue;value;manual" Scanner out = null; Scanner in = (Scanner) source(); out = in.reset(); sink(out); // $ hasValueFlow } { - // "java.util;Scanner;true;skip;;;Argument[-1];ReturnValue;value;manual" + // "java.util;Scanner;true;skip;;;Argument[this];ReturnValue;value;manual" Scanner out = null; Scanner in = (Scanner) source(); out = in.skip((Pattern) null); sink(out); // $ hasValueFlow } { - // "java.util;Scanner;true;skip;;;Argument[-1];ReturnValue;value;manual" + // "java.util;Scanner;true;skip;;;Argument[this];ReturnValue;value;manual" Scanner out = null; Scanner in = (Scanner) source(); out = in.skip((String) null); sink(out); // $ hasValueFlow } { - // "java.util;Scanner;true;useDelimiter;;;Argument[-1];ReturnValue;value;manual" + // "java.util;Scanner;true;useDelimiter;;;Argument[this];ReturnValue;value;manual" Scanner out = null; Scanner in = (Scanner) source(); out = in.useDelimiter((Pattern) null); sink(out); // $ hasValueFlow } { - // "java.util;Scanner;true;useDelimiter;;;Argument[-1];ReturnValue;value;manual" + // "java.util;Scanner;true;useDelimiter;;;Argument[this];ReturnValue;value;manual" Scanner out = null; Scanner in = (Scanner) source(); out = in.useDelimiter((String) null); sink(out); // $ hasValueFlow } { - // "java.util;Scanner;true;useLocale;;;Argument[-1];ReturnValue;value;manual" + // "java.util;Scanner;true;useLocale;;;Argument[this];ReturnValue;value;manual" Scanner out = null; Scanner in = (Scanner) source(); out = in.useLocale(null); sink(out); // $ hasValueFlow } { - // "java.util;Scanner;true;useRadix;;;Argument[-1];ReturnValue;value;manual" + // "java.util;Scanner;true;useRadix;;;Argument[this];ReturnValue;value;manual" Scanner out = null; Scanner in = (Scanner) source(); out = in.useRadix(0); diff --git a/java/ql/test/query-tests/security/CWE-094/GroovyCompilationUnitTest.java b/java/ql/test/query-tests/security/CWE-094/GroovyCompilationUnitTest.java index 02b5eae37e8..f25e27e6893 100644 --- a/java/ql/test/query-tests/security/CWE-094/GroovyCompilationUnitTest.java +++ b/java/ql/test/query-tests/security/CWE-094/GroovyCompilationUnitTest.java @@ -15,7 +15,7 @@ import org.codehaus.groovy.tools.javac.JavaStubCompilationUnit; public class GroovyCompilationUnitTest extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - // "org.codehaus.groovy.control;CompilationUnit;false;compile;;;Argument[-1];groovy;manual" + // "org.codehaus.groovy.control;CompilationUnit;false;compile;;;Argument[this];groovy;manual" { CompilationUnit cu = new CompilationUnit(); cu.addSource("test", request.getParameter("source")); diff --git a/java/ql/test/query-tests/security/CWE-918/mad/Test.java b/java/ql/test/query-tests/security/CWE-918/mad/Test.java index 64e81430c9c..8666e821fd0 100644 --- a/java/ql/test/query-tests/security/CWE-918/mad/Test.java +++ b/java/ql/test/query-tests/security/CWE-918/mad/Test.java @@ -24,11 +24,11 @@ public class Test { } public void test(URL url) throws Exception { - // "java.net;URL;false;openConnection;(Proxy);:Argument[-1]:open-url;manual" + // "java.net;URL;false;openConnection;(Proxy);:Argument[this]:open-url;manual" ((URL) source()).openConnection(); // $ SSRF // "java.net;URL;false;openConnection;(Proxy);:Argument[0]:open-url;ai-generated" url.openConnection((Proxy) source()); // $ SSRF - // "java.net;URL;false;openStream;;:Argument[-1]:open-url;manual" + // "java.net;URL;false;openStream;;:Argument[this]:open-url;manual" ((URL) source()).openStream(); // $ SSRF } diff --git a/java/ql/test/utils/modelgenerator/dataflow/CaptureSinkModels.expected b/java/ql/test/utils/modelgenerator/dataflow/CaptureSinkModels.expected index 8f6c51aee54..a603ea98023 100644 --- a/java/ql/test/utils/modelgenerator/dataflow/CaptureSinkModels.expected +++ b/java/ql/test/utils/modelgenerator/dataflow/CaptureSinkModels.expected @@ -1,4 +1,4 @@ -| p;PrivateFlowViaPublicInterface$SPI;true;openStream;();;Argument[-1];create-file;generated | +| p;PrivateFlowViaPublicInterface$SPI;true;openStream;();;Argument[this];create-file;generated | | p;Sinks;true;copyFileToDirectory;(Path,Path,CopyOption[]);;Argument[0];read-file;generated | | p;Sinks;true;copyFileToDirectory;(Path,Path,CopyOption[]);;Argument[1];create-file;generated | | p;Sinks;true;readUrl;(URL,Charset);;Argument[0];open-url;generated | diff --git a/java/ql/test/utils/modelgenerator/dataflow/CaptureSummaryModels.expected b/java/ql/test/utils/modelgenerator/dataflow/CaptureSummaryModels.expected index 46290dc0637..1df185e58be 100644 --- a/java/ql/test/utils/modelgenerator/dataflow/CaptureSummaryModels.expected +++ b/java/ql/test/utils/modelgenerator/dataflow/CaptureSummaryModels.expected @@ -1,29 +1,29 @@ | p;Factory;false;create;(String);;Argument[0];ReturnValue;taint;generated | | p;Factory;false;create;(String,int);;Argument[0];ReturnValue;taint;generated | -| p;Factory;false;getValue;();;Argument[-1];ReturnValue;taint;generated | +| p;Factory;false;getValue;();;Argument[this];ReturnValue;taint;generated | | p;FinalClass;false;returnsInput;(String);;Argument[0];ReturnValue;taint;generated | -| p;FluentAPI;false;returnsThis;(String);;Argument[-1];ReturnValue;value;generated | -| p;ImmutablePojo;false;ImmutablePojo;(String,int);;Argument[0];Argument[-1];taint;generated | -| p;ImmutablePojo;false;getValue;();;Argument[-1];ReturnValue;taint;generated | -| p;ImmutablePojo;false;or;(String);;Argument[-1];ReturnValue;taint;generated | +| p;FluentAPI;false;returnsThis;(String);;Argument[this];ReturnValue;value;generated | +| p;ImmutablePojo;false;ImmutablePojo;(String,int);;Argument[0];Argument[this];taint;generated | +| p;ImmutablePojo;false;getValue;();;Argument[this];ReturnValue;taint;generated | +| p;ImmutablePojo;false;or;(String);;Argument[this];ReturnValue;taint;generated | | p;ImmutablePojo;false;or;(String);;Argument[0];ReturnValue;taint;generated | | p;InnerClasses$CaptureMe;true;yesCm;(String);;Argument[0];ReturnValue;taint;generated | | p;InnerClasses;true;yes;(String);;Argument[0];ReturnValue;taint;generated | -| p;InnerHolder;false;append;(String);;Argument[0];Argument[-1];taint;generated | -| p;InnerHolder;false;explicitSetContext;(String);;Argument[0];Argument[-1];taint;generated | -| p;InnerHolder;false;getValue;();;Argument[-1];ReturnValue;taint;generated | -| p;InnerHolder;false;setContext;(String);;Argument[0];Argument[-1];taint;generated | -| p;Joiner;false;Joiner;(CharSequence);;Argument[0];Argument[-1];taint;generated | -| p;Joiner;false;Joiner;(CharSequence,CharSequence,CharSequence);;Argument[0];Argument[-1];taint;generated | -| p;Joiner;false;Joiner;(CharSequence,CharSequence,CharSequence);;Argument[1];Argument[-1];taint;generated | -| p;Joiner;false;Joiner;(CharSequence,CharSequence,CharSequence);;Argument[2];Argument[-1];taint;generated | -| p;Joiner;false;add;(CharSequence);;Argument[-1];ReturnValue;value;generated | -| p;Joiner;false;merge;(Joiner);;Argument[-1];ReturnValue;value;generated | -| p;Joiner;false;setEmptyValue;(CharSequence);;Argument[-1];ReturnValue;value;generated | -| p;Joiner;false;setEmptyValue;(CharSequence);;Argument[0];Argument[-1];taint;generated | -| p;Joiner;false;toString;();;Argument[-1];ReturnValue;taint;generated | -| p;MultipleImpls$Strat2;true;getValue;();;Argument[-1];ReturnValue;taint;generated | -| p;MultipleImpls$Strategy;true;doSomething;(String);;Argument[0];Argument[-1];taint;generated | +| p;InnerHolder;false;append;(String);;Argument[0];Argument[this];taint;generated | +| p;InnerHolder;false;explicitSetContext;(String);;Argument[0];Argument[this];taint;generated | +| p;InnerHolder;false;getValue;();;Argument[this];ReturnValue;taint;generated | +| p;InnerHolder;false;setContext;(String);;Argument[0];Argument[this];taint;generated | +| p;Joiner;false;Joiner;(CharSequence);;Argument[0];Argument[this];taint;generated | +| p;Joiner;false;Joiner;(CharSequence,CharSequence,CharSequence);;Argument[0];Argument[this];taint;generated | +| p;Joiner;false;Joiner;(CharSequence,CharSequence,CharSequence);;Argument[1];Argument[this];taint;generated | +| p;Joiner;false;Joiner;(CharSequence,CharSequence,CharSequence);;Argument[2];Argument[this];taint;generated | +| p;Joiner;false;add;(CharSequence);;Argument[this];ReturnValue;value;generated | +| p;Joiner;false;merge;(Joiner);;Argument[this];ReturnValue;value;generated | +| p;Joiner;false;setEmptyValue;(CharSequence);;Argument[this];ReturnValue;value;generated | +| p;Joiner;false;setEmptyValue;(CharSequence);;Argument[0];Argument[this];taint;generated | +| p;Joiner;false;toString;();;Argument[this];ReturnValue;taint;generated | +| p;MultipleImpls$Strat2;true;getValue;();;Argument[this];ReturnValue;taint;generated | +| p;MultipleImpls$Strategy;true;doSomething;(String);;Argument[0];Argument[this];taint;generated | | p;MultipleImpls$Strategy;true;doSomething;(String);;Argument[0];ReturnValue;taint;generated | | p;ParamFlow;true;addTo;(String,List);;Argument[0];Argument[1].Element;taint;generated | | p;ParamFlow;true;returnArrayElement;(String[]);;Argument[0].ArrayElement;ReturnValue;taint;generated | @@ -36,11 +36,11 @@ | p;ParamFlow;true;returnsInput;(String);;Argument[0];ReturnValue;taint;generated | | p;ParamFlow;true;writeChunked;(byte[],OutputStream);;Argument[0];Argument[1];taint;generated | | p;ParamFlow;true;writeChunked;(char[],OutputStream);;Argument[0];Argument[1];taint;generated | -| p;Pojo;false;fillIn;(List);;Argument[-1];Argument[0].Element;taint;generated | -| p;Pojo;false;getBoxedBytes;();;Argument[-1];ReturnValue;taint;generated | -| p;Pojo;false;getBoxedChars;();;Argument[-1];ReturnValue;taint;generated | -| p;Pojo;false;getByteArray;();;Argument[-1];ReturnValue;taint;generated | -| p;Pojo;false;getCharArray;();;Argument[-1];ReturnValue;taint;generated | -| p;Pojo;false;getValue;();;Argument[-1];ReturnValue;taint;generated | -| p;Pojo;false;setValue;(String);;Argument[0];Argument[-1];taint;generated | +| p;Pojo;false;fillIn;(List);;Argument[this];Argument[0].Element;taint;generated | +| p;Pojo;false;getBoxedBytes;();;Argument[this];ReturnValue;taint;generated | +| p;Pojo;false;getBoxedChars;();;Argument[this];ReturnValue;taint;generated | +| p;Pojo;false;getByteArray;();;Argument[this];ReturnValue;taint;generated | +| p;Pojo;false;getCharArray;();;Argument[this];ReturnValue;taint;generated | +| p;Pojo;false;getValue;();;Argument[this];ReturnValue;taint;generated | +| p;Pojo;false;setValue;(String);;Argument[0];Argument[this];taint;generated | | p;PrivateFlowViaPublicInterface;true;createAnSPI;(File);;Argument[0];ReturnValue;taint;generated | diff --git a/java/ql/test/utils/modelgenerator/typebasedflow/p/MyFunction.java b/java/ql/test/utils/modelgenerator/typebasedflow/p/MyFunction.java index 2dea243bf98..b1b7ee73d55 100644 --- a/java/ql/test/utils/modelgenerator/typebasedflow/p/MyFunction.java +++ b/java/ql/test/utils/modelgenerator/typebasedflow/p/MyFunction.java @@ -3,8 +3,8 @@ package p; @FunctionalInterface public interface MyFunction<T1, T2, T3> { - // MaD=p;MyFunction;true;apply;(Object,Object);;Argument[-1].SyntheticField[ArgType2];ReturnValue;value;generated - // MaD=p;MyFunction;true;apply;(Object,Object);;Argument[0];Argument[-1].SyntheticField[ArgType0];value;generated - // MaD=p;MyFunction;true;apply;(Object,Object);;Argument[1];Argument[-1].SyntheticField[ArgType1];value;generated + // MaD=p;MyFunction;true;apply;(Object,Object);;Argument[this].SyntheticField[ArgType2];ReturnValue;value;generated + // MaD=p;MyFunction;true;apply;(Object,Object);;Argument[0];Argument[this].SyntheticField[ArgType0];value;generated + // MaD=p;MyFunction;true;apply;(Object,Object);;Argument[1];Argument[this].SyntheticField[ArgType1];value;generated T3 apply(T1 x, T2 y); } \ No newline at end of file diff --git a/java/ql/test/utils/modelgenerator/typebasedflow/p/Stream.java b/java/ql/test/utils/modelgenerator/typebasedflow/p/Stream.java index c148df6a91b..415f60678e4 100644 --- a/java/ql/test/utils/modelgenerator/typebasedflow/p/Stream.java +++ b/java/ql/test/utils/modelgenerator/typebasedflow/p/Stream.java @@ -12,17 +12,17 @@ import java.util.stream.Collector; */ public class Stream<T> { - // MaD=p;Stream;true;iterator;();;Argument[-1].Element;ReturnValue.Element;value;generated + // MaD=p;Stream;true;iterator;();;Argument[this].Element;ReturnValue.Element;value;generated public Iterator<T> iterator() { return null; } - // MaD=p;Stream;true;allMatch;(Predicate);;Argument[-1].Element;Argument[0].Parameter[0];value;generated + // MaD=p;Stream;true;allMatch;(Predicate);;Argument[this].Element;Argument[0].Parameter[0];value;generated public boolean allMatch(Predicate<? super T> predicate) { return false; } - // MaD=p;Stream;true;collect;(Supplier,BiConsumer,BiConsumer);;Argument[-1].Element;Argument[1].Parameter[1];value;generated + // MaD=p;Stream;true;collect;(Supplier,BiConsumer,BiConsumer);;Argument[this].Element;Argument[1].Parameter[1];value;generated // MaD=p;Stream;true;collect;(Supplier,BiConsumer,BiConsumer);;Argument[0].ReturnValue;Argument[1].Parameter[0];value;generated // MaD=p;Stream;true;collect;(Supplier,BiConsumer,BiConsumer);;Argument[0].ReturnValue;Argument[2].Parameter[0];value;generated // MaD=p;Stream;true;collect;(Supplier,BiConsumer,BiConsumer);;Argument[0].ReturnValue;Argument[2].Parameter[1];value;generated @@ -42,7 +42,7 @@ public class Stream<T> { return null; } - // MaD=p;Stream;true;distinct;();;Argument[-1].Element;ReturnValue.Element;value;generated + // MaD=p;Stream;true;distinct;();;Argument[this].Element;ReturnValue.Element;value;generated public Stream<T> distinct() { return null; } @@ -51,48 +51,48 @@ public class Stream<T> { return null; } - // MaD=p;Stream;true;filter;(Predicate);;Argument[-1].Element;Argument[0].Parameter[0];value;generated - // MaD=p;Stream;true;filter;(Predicate);;Argument[-1].Element;ReturnValue.Element;value;generated + // MaD=p;Stream;true;filter;(Predicate);;Argument[this].Element;Argument[0].Parameter[0];value;generated + // MaD=p;Stream;true;filter;(Predicate);;Argument[this].Element;ReturnValue.Element;value;generated public Stream<T> filter(Predicate<? super T> predicate) { return null; } - // MaD=p;Stream;true;findAny;();;Argument[-1].Element;ReturnValue.SyntheticField[ArgType0];value;generated + // MaD=p;Stream;true;findAny;();;Argument[this].Element;ReturnValue.SyntheticField[ArgType0];value;generated public Optional<T> findAny() { return null; } - // MaD=p;Stream;true;findFirst;();;Argument[-1].Element;ReturnValue.SyntheticField[ArgType0];value;generated + // MaD=p;Stream;true;findFirst;();;Argument[this].Element;ReturnValue.SyntheticField[ArgType0];value;generated public Optional<T> findFirst() { return null; } // MaD=p;Stream;true;flatMap;(Function);;Argument[0].ReturnValue.Element;ReturnValue.Element;value;generated - // MaD=p;Stream;true;flatMap;(Function);;Argument[-1].Element;Argument[0].Parameter[0];value;generated + // MaD=p;Stream;true;flatMap;(Function);;Argument[this].Element;Argument[0].Parameter[0];value;generated public <R> Stream<R> flatMap(Function<? super T, ? extends Stream<? extends R>> mapper) { return null; } - // MaD=p;Stream;true;flatMapToDouble;(Function);;Argument[-1].Element;Argument[0].Parameter[0];value;generated + // MaD=p;Stream;true;flatMapToDouble;(Function);;Argument[this].Element;Argument[0].Parameter[0];value;generated public DoubleStream flatMapToDouble(Function<? super T, ? extends DoubleStream> mapper) { return null; } - // MaD=p;Stream;true;flatMapToInt;(Function);;Argument[-1].Element;Argument[0].Parameter[0];value;generated + // MaD=p;Stream;true;flatMapToInt;(Function);;Argument[this].Element;Argument[0].Parameter[0];value;generated public IntStream flatMapToInt(Function<? super T, ? extends IntStream> mapper) { return null; } - // MaD=p;Stream;true;flatMapToLong;(Function);;Argument[-1].Element;Argument[0].Parameter[0];value;generated + // MaD=p;Stream;true;flatMapToLong;(Function);;Argument[this].Element;Argument[0].Parameter[0];value;generated public LongStream flatMapToLong(Function<? super T, ? extends LongStream> mapper) { return null; } - // MaD=p;Stream;true;forEach;(Consumer);;Argument[-1].Element;Argument[0].Parameter[0];value;generated + // MaD=p;Stream;true;forEach;(Consumer);;Argument[this].Element;Argument[0].Parameter[0];value;generated public void forEach(Consumer<? super T> action) { } - // MaD=p;Stream;true;forEachOrdered;(Consumer);;Argument[-1].Element;Argument[0].Parameter[0];value;generated + // MaD=p;Stream;true;forEachOrdered;(Consumer);;Argument[this].Element;Argument[0].Parameter[0];value;generated public void forEachOrdered(Consumer<? super T> action) { } @@ -109,47 +109,47 @@ public class Stream<T> { return null; } - // MaD=p;Stream;true;limit;(long);;Argument[-1].Element;ReturnValue.Element;value;generated + // MaD=p;Stream;true;limit;(long);;Argument[this].Element;ReturnValue.Element;value;generated public Stream<T> limit(long maxSize) { return null; } - // MaD=p;Stream;true;map;(Function);;Argument[-1].Element;Argument[0].Parameter[0];value;generated + // MaD=p;Stream;true;map;(Function);;Argument[this].Element;Argument[0].Parameter[0];value;generated // MaD=p;Stream;true;map;(Function);;Argument[0].ReturnValue;ReturnValue.Element;value;generated public <R> Stream<R> map(Function<? super T, ? extends R> mapper) { return null; } - // MaD=p;Stream;true;mapToDouble;(ToDoubleFunction);;Argument[-1].Element;Argument[0].Parameter[0];value;generated + // MaD=p;Stream;true;mapToDouble;(ToDoubleFunction);;Argument[this].Element;Argument[0].Parameter[0];value;generated public DoubleStream mapToDouble(ToDoubleFunction<? super T> mapper) { return null; } - // MaD=p;Stream;true;mapToInt;(ToIntFunction);;Argument[-1].Element;Argument[0].Parameter[0];value;generated + // MaD=p;Stream;true;mapToInt;(ToIntFunction);;Argument[this].Element;Argument[0].Parameter[0];value;generated public IntStream mapToInt(ToIntFunction<? super T> mapper) { return null; } - // MaD=p;Stream;true;mapToLong;(ToLongFunction);;Argument[-1].Element;Argument[0].Parameter[0];value;generated + // MaD=p;Stream;true;mapToLong;(ToLongFunction);;Argument[this].Element;Argument[0].Parameter[0];value;generated public LongStream mapToLong(ToLongFunction<? super T> mapper) { return null; } - // MaD=p;Stream;true;max;(Comparator);;Argument[-1].Element;Argument[0].Parameter[0];value;generated - // MaD=p;Stream;true;max;(Comparator);;Argument[-1].Element;Argument[0].Parameter[1];value;generated - // MaD=p;Stream;true;max;(Comparator);;Argument[-1].Element;ReturnValue.SyntheticField[ArgType0];value;generated + // MaD=p;Stream;true;max;(Comparator);;Argument[this].Element;Argument[0].Parameter[0];value;generated + // MaD=p;Stream;true;max;(Comparator);;Argument[this].Element;Argument[0].Parameter[1];value;generated + // MaD=p;Stream;true;max;(Comparator);;Argument[this].Element;ReturnValue.SyntheticField[ArgType0];value;generated public Optional<T> max(Comparator<? super T> comparator) { return null; } - // MaD=p;Stream;true;min;(Comparator);;Argument[-1].Element;Argument[0].Parameter[0];value;generated - // MaD=p;Stream;true;min;(Comparator);;Argument[-1].Element;Argument[0].Parameter[1];value;generated - // MaD=p;Stream;true;min;(Comparator);;Argument[-1].Element;ReturnValue.SyntheticField[ArgType0];value;generated + // MaD=p;Stream;true;min;(Comparator);;Argument[this].Element;Argument[0].Parameter[0];value;generated + // MaD=p;Stream;true;min;(Comparator);;Argument[this].Element;Argument[0].Parameter[1];value;generated + // MaD=p;Stream;true;min;(Comparator);;Argument[this].Element;ReturnValue.SyntheticField[ArgType0];value;generated public Optional<T> min(Comparator<? super T> comparator) { return null; } - // MaD=p;Stream;true;noneMatch;(Predicate);;Argument[-1].Element;Argument[0].Parameter[0];value;generated + // MaD=p;Stream;true;noneMatch;(Predicate);;Argument[this].Element;Argument[0].Parameter[0];value;generated public boolean noneMatch(Predicate<? super T> predicate) { return false; } @@ -164,41 +164,41 @@ public class Stream<T> { return null; } - // MaD=p;Stream;true;peek;(Consumer);;Argument[-1].Element;Argument[0].Parameter[0];value;generated - // MaD=p;Stream;true;peek;(Consumer);;Argument[-1].Element;ReturnValue.Element;value;generated + // MaD=p;Stream;true;peek;(Consumer);;Argument[this].Element;Argument[0].Parameter[0];value;generated + // MaD=p;Stream;true;peek;(Consumer);;Argument[this].Element;ReturnValue.Element;value;generated public Stream<T> peek(Consumer<? super T> action) { return null; } // The generated models are only partially correct. - // MaD=p;Stream;true;reduce;(BinaryOperator);;Argument[-1].Element;Argument[0].Parameter[0];value;generated - // MaD=p;Stream;true;reduce;(BinaryOperator);;Argument[-1].Element;Argument[0].Parameter[1];value;generated - // MaD=p;Stream;true;reduce;(BinaryOperator);;Argument[-1].Element;ReturnValue.SyntheticField[ArgType0];value;generated + // MaD=p;Stream;true;reduce;(BinaryOperator);;Argument[this].Element;Argument[0].Parameter[0];value;generated + // MaD=p;Stream;true;reduce;(BinaryOperator);;Argument[this].Element;Argument[0].Parameter[1];value;generated + // MaD=p;Stream;true;reduce;(BinaryOperator);;Argument[this].Element;ReturnValue.SyntheticField[ArgType0];value;generated // MaD=p;Stream;true;reduce;(BinaryOperator);;Argument[0].ReturnValue;Argument[0].Parameter[0];value;generated // MaD=p;Stream;true;reduce;(BinaryOperator);;Argument[0].ReturnValue;Argument[0].Parameter[1];value;generated // MaD=p;Stream;true;reduce;(BinaryOperator);;Argument[0].ReturnValue;ReturnValue.SyntheticField[ArgType0];value;generated - // SPURIOUS-MaD=p;Stream;true;reduce;(BinaryOperator);;Argument[0].ReturnValue;Argument[-1].Element;value;generated + // SPURIOUS-MaD=p;Stream;true;reduce;(BinaryOperator);;Argument[0].ReturnValue;Argument[this].Element;value;generated public Optional<T> reduce(BinaryOperator<T> accumulator) { return null; } // The generated models are only partially correct. - // MaD=p;Stream;true;reduce;(Object,BinaryOperator);;Argument[-1].Element;Argument[1].Parameter[0];value;generated - // MaD=p;Stream;true;reduce;(Object,BinaryOperator);;Argument[-1].Element;Argument[1].Parameter[1];value;generated + // MaD=p;Stream;true;reduce;(Object,BinaryOperator);;Argument[this].Element;Argument[1].Parameter[0];value;generated + // MaD=p;Stream;true;reduce;(Object,BinaryOperator);;Argument[this].Element;Argument[1].Parameter[1];value;generated // MaD=p;Stream;true;reduce;(Object,BinaryOperator);;Argument[0];Argument[1].Parameter[0];value;generated // MaD=p;Stream;true;reduce;(Object,BinaryOperator);;Argument[0];Argument[1].Parameter[1];value;generated // MaD=p;Stream;true;reduce;(Object,BinaryOperator);;Argument[0];ReturnValue;value;generated // MaD=p;Stream;true;reduce;(Object,BinaryOperator);;Argument[1].ReturnValue;Argument[1].Parameter[0];value;generated // MaD=p;Stream;true;reduce;(Object,BinaryOperator);;Argument[1].ReturnValue;Argument[1].Parameter[1];value;generated // MaD=p;Stream;true;reduce;(Object,BinaryOperator);;Argument[1].ReturnValue;ReturnValue;value;generated - // SPURIOUS-MaD=p;Stream;true;reduce;(Object,BinaryOperator);;Argument[-1].Element;ReturnValue;value;generated - // SPURIOUS-MaD=p;Stream;true;reduce;(Object,BinaryOperator);;Argument[0];Argument[-1].Element;value;generated - // SPURIOUS-MaD=p;Stream;true;reduce;(Object,BinaryOperator);;Argument[1].ReturnValue;Argument[-1].Element;value;generated + // SPURIOUS-MaD=p;Stream;true;reduce;(Object,BinaryOperator);;Argument[this].Element;ReturnValue;value;generated + // SPURIOUS-MaD=p;Stream;true;reduce;(Object,BinaryOperator);;Argument[0];Argument[this].Element;value;generated + // SPURIOUS-MaD=p;Stream;true;reduce;(Object,BinaryOperator);;Argument[1].ReturnValue;Argument[this].Element;value;generated public T reduce(T identity, BinaryOperator<T> accumulator) { return null; } - // MaD=p;Stream;true;reduce;(Object,BiFunction,BinaryOperator);;Argument[-1].Element;Argument[1].Parameter[1];value;generated + // MaD=p;Stream;true;reduce;(Object,BiFunction,BinaryOperator);;Argument[this].Element;Argument[1].Parameter[1];value;generated // MaD=p;Stream;true;reduce;(Object,BiFunction,BinaryOperator);;Argument[0];Argument[1].Parameter[0];value;generated // MaD=p;Stream;true;reduce;(Object,BiFunction,BinaryOperator);;Argument[0];Argument[2].Parameter[0];value;generated // MaD=p;Stream;true;reduce;(Object,BiFunction,BinaryOperator);;Argument[0];Argument[2].Parameter[1];value;generated @@ -215,19 +215,19 @@ public class Stream<T> { return null; } - // MaD=p;Stream;true;skip;(long);;Argument[-1].Element;ReturnValue.Element;value;generated + // MaD=p;Stream;true;skip;(long);;Argument[this].Element;ReturnValue.Element;value;generated public Stream<T> skip(long n) { return null; } - // MaD=p;Stream;true;sorted;();;Argument[-1].Element;ReturnValue.Element;value;generated + // MaD=p;Stream;true;sorted;();;Argument[this].Element;ReturnValue.Element;value;generated public Stream<T> sorted() { return null; } - // MaD=p;Stream;true;sorted;(Comparator);;Argument[-1].Element;Argument[0].Parameter[0];value;generated - // MaD=p;Stream;true;sorted;(Comparator);;Argument[-1].Element;Argument[0].Parameter[1];value;generated - // MaD=p;Stream;true;sorted;(Comparator);;Argument[-1].Element;ReturnValue.Element;value;generated + // MaD=p;Stream;true;sorted;(Comparator);;Argument[this].Element;Argument[0].Parameter[0];value;generated + // MaD=p;Stream;true;sorted;(Comparator);;Argument[this].Element;Argument[0].Parameter[1];value;generated + // MaD=p;Stream;true;sorted;(Comparator);;Argument[this].Element;ReturnValue.Element;value;generated public Stream<T> sorted(Comparator<? super T> comparator) { return null; } diff --git a/java/ql/test/utils/modelgenerator/typebasedflow/p/TypeBasedCollection.java b/java/ql/test/utils/modelgenerator/typebasedflow/p/TypeBasedCollection.java index 6cd7dcdc5af..bc90ea9c2f6 100644 --- a/java/ql/test/utils/modelgenerator/typebasedflow/p/TypeBasedCollection.java +++ b/java/ql/test/utils/modelgenerator/typebasedflow/p/TypeBasedCollection.java @@ -5,20 +5,20 @@ import java.util.ArrayList; public class TypeBasedCollection<T> extends ArrayList<T> { - // MaD=p;TypeBasedCollection;true;addT;(Object);;Argument[0];Argument[-1].Element;value;generated + // MaD=p;TypeBasedCollection;true;addT;(Object);;Argument[0];Argument[this].Element;value;generated public void addT(T x) { } - // MaD=p;TypeBasedCollection;true;addManyT;(List);;Argument[0].Element;Argument[-1].Element;value;generated + // MaD=p;TypeBasedCollection;true;addManyT;(List);;Argument[0].Element;Argument[this].Element;value;generated public void addManyT(List<T> xs) { } - // MaD=p;TypeBasedCollection;true;firstT;();;Argument[-1].Element;ReturnValue;value;generated + // MaD=p;TypeBasedCollection;true;firstT;();;Argument[this].Element;ReturnValue;value;generated public T firstT() { return null; } - // MaD=p;TypeBasedCollection;true;getManyT;();;Argument[-1].Element;ReturnValue.Element;value;generated + // MaD=p;TypeBasedCollection;true;getManyT;();;Argument[this].Element;ReturnValue.Element;value;generated public List<T> getManyT() { return null; } diff --git a/java/ql/test/utils/modelgenerator/typebasedflow/p/TypeBasedComplex.java b/java/ql/test/utils/modelgenerator/typebasedflow/p/TypeBasedComplex.java index 127f319b49b..3d8c95c1e44 100644 --- a/java/ql/test/utils/modelgenerator/typebasedflow/p/TypeBasedComplex.java +++ b/java/ql/test/utils/modelgenerator/typebasedflow/p/TypeBasedComplex.java @@ -5,16 +5,16 @@ import java.util.function.Function; public class TypeBasedComplex<T> { - // MaD=p;TypeBasedComplex;true;addMany;(List);;Argument[0].Element;Argument[-1].SyntheticField[ArgType0];value;generated + // MaD=p;TypeBasedComplex;true;addMany;(List);;Argument[0].Element;Argument[this].SyntheticField[ArgType0];value;generated public void addMany(List<T> xs) { } - // MaD=p;TypeBasedComplex;true;getMany;();;Argument[-1].SyntheticField[ArgType0];ReturnValue.Element;value;generated + // MaD=p;TypeBasedComplex;true;getMany;();;Argument[this].SyntheticField[ArgType0];ReturnValue.Element;value;generated public List<T> getMany() { return null; } - // MaD=p;TypeBasedComplex;true;apply;(Function);;Argument[-1].SyntheticField[ArgType0];Argument[0].Parameter[0];value;generated + // MaD=p;TypeBasedComplex;true;apply;(Function);;Argument[this].SyntheticField[ArgType0];Argument[0].Parameter[0];value;generated public Integer apply(Function<T, Integer> f) { return null; } @@ -28,54 +28,54 @@ public class TypeBasedComplex<T> { return null; } - // MaD=p;TypeBasedComplex;true;flatMap;(Function);;Argument[-1].SyntheticField[ArgType0];Argument[0].Parameter[0];value;generated - // MaD=p;TypeBasedComplex;true;flatMap;(Function);;Argument[-1].SyntheticField[ArgType0];ReturnValue.SyntheticField[ArgType0];value;generated - // MaD=p;TypeBasedComplex;true;flatMap;(Function);;Argument[0].ReturnValue.Element;Argument[-1].SyntheticField[ArgType0];value;generated + // MaD=p;TypeBasedComplex;true;flatMap;(Function);;Argument[this].SyntheticField[ArgType0];Argument[0].Parameter[0];value;generated + // MaD=p;TypeBasedComplex;true;flatMap;(Function);;Argument[this].SyntheticField[ArgType0];ReturnValue.SyntheticField[ArgType0];value;generated + // MaD=p;TypeBasedComplex;true;flatMap;(Function);;Argument[0].ReturnValue.Element;Argument[this].SyntheticField[ArgType0];value;generated // MaD=p;TypeBasedComplex;true;flatMap;(Function);;Argument[0].ReturnValue.Element;Argument[0].Parameter[0];value;generated // MaD=p;TypeBasedComplex;true;flatMap;(Function);;Argument[0].ReturnValue.Element;ReturnValue.SyntheticField[ArgType0];value;generated public TypeBasedComplex<T> flatMap(Function<T, List<T>> f) { return null; } - // MaD=p;TypeBasedComplex;true;flatMap2;(Function);;Argument[-1].SyntheticField[ArgType0];Argument[0].Parameter[0];value;generated + // MaD=p;TypeBasedComplex;true;flatMap2;(Function);;Argument[this].SyntheticField[ArgType0];Argument[0].Parameter[0];value;generated // MaD=p;TypeBasedComplex;true;flatMap2;(Function);;Argument[0].ReturnValue.Element;ReturnValue.SyntheticField[ArgType0];value;generated public <S> TypeBasedComplex<S> flatMap2(Function<T, List<S>> f) { return null; } - // MaD=p;TypeBasedComplex;true;map;(Function);;Argument[-1].SyntheticField[ArgType0];Argument[0].Parameter[0];value;generated + // MaD=p;TypeBasedComplex;true;map;(Function);;Argument[this].SyntheticField[ArgType0];Argument[0].Parameter[0];value;generated // MaD=p;TypeBasedComplex;true;map;(Function);;Argument[0].ReturnValue;ReturnValue;value;generated public <S> S map(Function<T, S> f) { return null; } - // MaD=p;TypeBasedComplex;true;mapComplex;(Function);;Argument[-1].SyntheticField[ArgType0];Argument[0].Parameter[0];value;generated + // MaD=p;TypeBasedComplex;true;mapComplex;(Function);;Argument[this].SyntheticField[ArgType0];Argument[0].Parameter[0];value;generated // MaD=p;TypeBasedComplex;true;mapComplex;(Function);;Argument[0].ReturnValue;ReturnValue.SyntheticField[ArgType0];value;generated public <S> TypeBasedComplex<S> mapComplex(Function<T, S> f) { return null; } - // MaD=p;TypeBasedComplex;true;returnComplex;(Function);;Argument[-1].SyntheticField[ArgType0];Argument[0].Parameter[0];value;generated - // MaD=p;TypeBasedComplex;true;returnComplex;(Function);;Argument[-1].SyntheticField[ArgType0];ReturnValue.SyntheticField[ArgType0];value;generated - // MaD=p;TypeBasedComplex;true;returnComplex;(Function);;Argument[0].ReturnValue.SyntheticField[ArgType0];Argument[-1].SyntheticField[ArgType0];value;generated + // MaD=p;TypeBasedComplex;true;returnComplex;(Function);;Argument[this].SyntheticField[ArgType0];Argument[0].Parameter[0];value;generated + // MaD=p;TypeBasedComplex;true;returnComplex;(Function);;Argument[this].SyntheticField[ArgType0];ReturnValue.SyntheticField[ArgType0];value;generated + // MaD=p;TypeBasedComplex;true;returnComplex;(Function);;Argument[0].ReturnValue.SyntheticField[ArgType0];Argument[this].SyntheticField[ArgType0];value;generated // MaD=p;TypeBasedComplex;true;returnComplex;(Function);;Argument[0].ReturnValue.SyntheticField[ArgType0];Argument[0].Parameter[0];value;generated // MaD=p;TypeBasedComplex;true;returnComplex;(Function);;Argument[0].ReturnValue.SyntheticField[ArgType0];ReturnValue.SyntheticField[ArgType0];value;generated public TypeBasedComplex<T> returnComplex(Function<T, TypeBasedComplex<T>> f) { return null; } - // MaD=p;TypeBasedComplex;true;set;(Integer,Function);;Argument[1].ReturnValue;Argument[-1].SyntheticField[ArgType0];value;generated + // MaD=p;TypeBasedComplex;true;set;(Integer,Function);;Argument[1].ReturnValue;Argument[this].SyntheticField[ArgType0];value;generated public void set(Integer x, Function<Integer, T> f) { } - // MaD=p;TypeBasedComplex;true;applyMyFunction;(MyFunction,Integer);;Argument[-1].SyntheticField[ArgType0];Argument[0].Parameter[0];value;generated - // MaD=p;TypeBasedComplex;true;applyMyFunction;(MyFunction,Integer);;Argument[0].ReturnValue;Argument[-1].SyntheticField[ArgType0];value;generated + // MaD=p;TypeBasedComplex;true;applyMyFunction;(MyFunction,Integer);;Argument[this].SyntheticField[ArgType0];Argument[0].Parameter[0];value;generated + // MaD=p;TypeBasedComplex;true;applyMyFunction;(MyFunction,Integer);;Argument[0].ReturnValue;Argument[this].SyntheticField[ArgType0];value;generated // MaD=p;TypeBasedComplex;true;applyMyFunction;(MyFunction,Integer);;Argument[0].ReturnValue;Argument[0].Parameter[0];value;generated public Integer applyMyFunction(MyFunction<T, Integer, T> f, Integer x) { return null; } - // MaD=p;TypeBasedComplex;true;applyMyFunctionGeneric;(MyFunction,Object);;Argument[-1].SyntheticField[ArgType0];Argument[0].Parameter[0];value;generated + // MaD=p;TypeBasedComplex;true;applyMyFunctionGeneric;(MyFunction,Object);;Argument[this].SyntheticField[ArgType0];Argument[0].Parameter[0];value;generated // MaD=p;TypeBasedComplex;true;applyMyFunctionGeneric;(MyFunction,Object);;Argument[0].ReturnValue;ReturnValue;value;generated // MaD=p;TypeBasedComplex;true;applyMyFunctionGeneric;(MyFunction,Object);;Argument[1];Argument[0].Parameter[1];value;generated public <S1, S2> S2 applyMyFunctionGeneric(MyFunction<T, S1, S2> f, S1 x) { diff --git a/java/ql/test/utils/modelgenerator/typebasedflow/p/TypeBasedSimple.java b/java/ql/test/utils/modelgenerator/typebasedflow/p/TypeBasedSimple.java index 59fe6e48f13..9d2e9c20680 100644 --- a/java/ql/test/utils/modelgenerator/typebasedflow/p/TypeBasedSimple.java +++ b/java/ql/test/utils/modelgenerator/typebasedflow/p/TypeBasedSimple.java @@ -2,22 +2,22 @@ package p; public class TypeBasedSimple<T> { - // MaD=p;TypeBasedSimple;true;TypeBasedSimple;(Object);;Argument[0];Argument[-1].SyntheticField[ArgType0];value;generated + // MaD=p;TypeBasedSimple;true;TypeBasedSimple;(Object);;Argument[0];Argument[this].SyntheticField[ArgType0];value;generated public TypeBasedSimple(T t) { } - // MaD=p;TypeBasedSimple;true;get;();;Argument[-1].SyntheticField[ArgType0];ReturnValue;value;generated + // MaD=p;TypeBasedSimple;true;get;();;Argument[this].SyntheticField[ArgType0];ReturnValue;value;generated public T get() { return null; } - // MaD=p;TypeBasedSimple;true;get;(Object);;Argument[-1].SyntheticField[ArgType0];ReturnValue;value;generated + // MaD=p;TypeBasedSimple;true;get;(Object);;Argument[this].SyntheticField[ArgType0];ReturnValue;value;generated public T get(Object o) { return null; } - // MaD=p;TypeBasedSimple;true;id;(Object);;Argument[-1].SyntheticField[ArgType0];ReturnValue;value;generated - // MaD=p;TypeBasedSimple;true;id;(Object);;Argument[0];Argument[-1].SyntheticField[ArgType0];value;generated + // MaD=p;TypeBasedSimple;true;id;(Object);;Argument[this].SyntheticField[ArgType0];ReturnValue;value;generated + // MaD=p;TypeBasedSimple;true;id;(Object);;Argument[0];Argument[this].SyntheticField[ArgType0];value;generated // MaD=p;TypeBasedSimple;true;id;(Object);;Argument[0];ReturnValue;value;generated public T id(T x) { return null; @@ -28,11 +28,11 @@ public class TypeBasedSimple<T> { return null; } - // MaD=p;TypeBasedSimple;true;set;(Object);;Argument[0];Argument[-1].SyntheticField[ArgType0];value;generated + // MaD=p;TypeBasedSimple;true;set;(Object);;Argument[0];Argument[this].SyntheticField[ArgType0];value;generated public void set(T x) { } - // MaD=p;TypeBasedSimple;true;set;(int,Object);;Argument[1];Argument[-1].SyntheticField[ArgType0];value;generated + // MaD=p;TypeBasedSimple;true;set;(int,Object);;Argument[1];Argument[this].SyntheticField[ArgType0];value;generated public void set(int x, T y) { } From 9039a468cb3a07ce6c617d7553224ac741b7b85d Mon Sep 17 00:00:00 2001 From: Michael Nebel <michaelnebel@github.com> Date: Fri, 17 Mar 2023 14:14:26 +0100 Subject: [PATCH 48/97] Java: Update models that uses -1 in a range. --- java/ql/lib/ext/android.database.sqlite.model.yml | 6 ++++-- java/ql/lib/ext/com.google.common.base.model.yml | 6 ++++-- java/ql/lib/ext/experimental/java.nio.file.model.yml | 3 ++- java/ql/lib/ext/java.nio.file.model.yml | 3 ++- java/ql/lib/ext/org.springframework.http.model.yml | 3 ++- java/ql/lib/ext/org.springframework.web.util.model.yml | 6 ++++-- 6 files changed, 18 insertions(+), 9 deletions(-) diff --git a/java/ql/lib/ext/android.database.sqlite.model.yml b/java/ql/lib/ext/android.database.sqlite.model.yml index 05748ba2d73..169c7870da4 100644 --- a/java/ql/lib/ext/android.database.sqlite.model.yml +++ b/java/ql/lib/ext/android.database.sqlite.model.yml @@ -75,11 +75,13 @@ extensions: - ["android.database.sqlite", "SQLiteQueryBuilder", True, "buildUnionQuery", "(String[],String,String)", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["android.database.sqlite", "SQLiteQueryBuilder", True, "buildUnionQuery", "(String[],String,String)", "", "Argument[0].ArrayElement", "ReturnValue", "taint", "manual"] - ["android.database.sqlite", "SQLiteQueryBuilder", True, "buildUnionQuery", "(String[],String,String)", "", "Argument[1..2]", "ReturnValue", "taint", "manual"] - - ["android.database.sqlite", "SQLiteQueryBuilder", True, "buildUnionSubQuery", "(String,String[],Set,int,String,String,String,String)", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] + - ["android.database.sqlite", "SQLiteQueryBuilder", True, "buildUnionSubQuery", "(String,String[],Set,int,String,String,String,String)", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["android.database.sqlite", "SQLiteQueryBuilder", True, "buildUnionSubQuery", "(String,String[],Set,int,String,String,String,String)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["android.database.sqlite", "SQLiteQueryBuilder", True, "buildUnionSubQuery", "(String,String[],Set,int,String,String,String,String)", "", "Argument[1].ArrayElement", "ReturnValue", "taint", "manual"] - ["android.database.sqlite", "SQLiteQueryBuilder", True, "buildUnionSubQuery", "(String,String[],Set,int,String,String,String,String)", "", "Argument[2].Element", "ReturnValue", "taint", "manual"] - ["android.database.sqlite", "SQLiteQueryBuilder", True, "buildUnionSubQuery", "(String,String[],Set,int,String,String,String,String)", "", "Argument[4..7]", "ReturnValue", "taint", "manual"] - - ["android.database.sqlite", "SQLiteQueryBuilder", True, "buildUnionSubQuery", "(String,String[],Set,int,String,String,String[],String,String)", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] + - ["android.database.sqlite", "SQLiteQueryBuilder", True, "buildUnionSubQuery", "(String,String[],Set,int,String,String,String[],String,String)", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["android.database.sqlite", "SQLiteQueryBuilder", True, "buildUnionSubQuery", "(String,String[],Set,int,String,String,String[],String,String)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["android.database.sqlite", "SQLiteQueryBuilder", True, "buildUnionSubQuery", "(String,String[],Set,int,String,String,String[],String,String)", "", "Argument[1].ArrayElement", "ReturnValue", "taint", "manual"] - ["android.database.sqlite", "SQLiteQueryBuilder", True, "buildUnionSubQuery", "(String,String[],Set,int,String,String,String[],String,String)", "", "Argument[2].Element", "ReturnValue", "taint", "manual"] - ["android.database.sqlite", "SQLiteQueryBuilder", True, "buildUnionSubQuery", "(String,String[],Set,int,String,String,String[],String,String)", "", "Argument[4..5]", "ReturnValue", "taint", "manual"] diff --git a/java/ql/lib/ext/com.google.common.base.model.yml b/java/ql/lib/ext/com.google.common.base.model.yml index b335b96fdde..2de9d66b0af 100644 --- a/java/ql/lib/ext/com.google.common.base.model.yml +++ b/java/ql/lib/ext/com.google.common.base.model.yml @@ -33,7 +33,8 @@ extensions: - ["com.google.common.base", "Joiner", False, "appendTo", "(StringBuilder,Object,Object,Object[])", "", "Argument[1..2]", "Argument[0]", "taint", "manual"] - ["com.google.common.base", "Joiner", False, "appendTo", "(StringBuilder,Object,Object,Object[])", "", "Argument[3].ArrayElement", "Argument[0]", "taint", "manual"] - ["com.google.common.base", "Joiner", False, "appendTo", "(StringBuilder,Object[])", "", "Argument[1].ArrayElement", "Argument[this]", "taint", "manual"] - - ["com.google.common.base", "Joiner", False, "join", "", "", "Argument[-1..2]", "ReturnValue", "taint", "manual"] + - ["com.google.common.base", "Joiner", False, "join", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["com.google.common.base", "Joiner", False, "join", "", "", "Argument[0..2]", "ReturnValue", "taint", "manual"] - ["com.google.common.base", "Joiner", False, "on", "(String)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["com.google.common.base", "Joiner", False, "skipNulls", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["com.google.common.base", "Joiner", False, "useForNull", "(String)", "", "Argument[this]", "ReturnValue", "taint", "manual"] @@ -71,7 +72,8 @@ extensions: - ["com.google.common.base", "Optional", True, "of", "(Object)", "", "Argument[0]", "ReturnValue.Element", "value", "manual"] - ["com.google.common.base", "Optional", True, "or", "(Object)", "", "Argument[this].Element", "ReturnValue", "value", "manual"] - ["com.google.common.base", "Optional", True, "or", "(Object)", "", "Argument[0]", "ReturnValue", "value", "manual"] - - ["com.google.common.base", "Optional", True, "or", "(Optional)", "", "Argument[-1..0].Element", "ReturnValue.Element", "value", "manual"] + - ["com.google.common.base", "Optional", True, "or", "(Optional)", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] + - ["com.google.common.base", "Optional", True, "or", "(Optional)", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] - ["com.google.common.base", "Optional", True, "or", "(Supplier)", "", "Argument[this].Element", "ReturnValue", "value", "manual"] - ["com.google.common.base", "Optional", True, "or", "(Supplier)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["com.google.common.base", "Optional", True, "orNull", "()", "", "Argument[this].Element", "ReturnValue", "value", "manual"] diff --git a/java/ql/lib/ext/experimental/java.nio.file.model.yml b/java/ql/lib/ext/experimental/java.nio.file.model.yml index 4fb6657913e..647d72329d0 100644 --- a/java/ql/lib/ext/experimental/java.nio.file.model.yml +++ b/java/ql/lib/ext/experimental/java.nio.file.model.yml @@ -4,6 +4,7 @@ extensions: extensible: experimentalSummaryModel data: - ["java.nio.file", "Path", True, "normalize", "", "", "Argument[this]", "ReturnValue", "taint", "manual", "unsafe-url-forward"] - - ["java.nio.file", "Path", True, "resolve", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual", "unsafe-url-forward"] + - ["java.nio.file", "Path", True, "resolve", "", "", "Argument[this]", "ReturnValue", "taint", "manual", "unsafe-url-forward"] + - ["java.nio.file", "Path", True, "resolve", "", "", "Argument[0]", "ReturnValue", "taint", "manual", "unsafe-url-forward"] - ["java.nio.file", "Path", True, "toString", "", "", "Argument[this]", "ReturnValue", "taint", "manual", "unsafe-url-forward"] - ["java.nio.file", "Paths", True, "get", "", "", "Argument[0..1]", "ReturnValue", "taint", "manual", "unsafe-url-forward"] diff --git a/java/ql/lib/ext/java.nio.file.model.yml b/java/ql/lib/ext/java.nio.file.model.yml index 8184d4010f6..46d55500b5f 100644 --- a/java/ql/lib/ext/java.nio.file.model.yml +++ b/java/ql/lib/ext/java.nio.file.model.yml @@ -30,7 +30,8 @@ extensions: - ["java.nio.file", "FileSystem", True, "getPath", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["java.nio.file", "Path", True, "getParent", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["java.nio.file", "Path", True, "normalize", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - - ["java.nio.file", "Path", True, "resolve", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] + - ["java.nio.file", "Path", True, "resolve", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["java.nio.file", "Path", True, "resolve", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["java.nio.file", "Path", True, "toAbsolutePath", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["java.nio.file", "Path", False, "toFile", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["java.nio.file", "Path", True, "toString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] diff --git a/java/ql/lib/ext/org.springframework.http.model.yml b/java/ql/lib/ext/org.springframework.http.model.yml index f90398ff8e9..8835a471c28 100644 --- a/java/ql/lib/ext/org.springframework.http.model.yml +++ b/java/ql/lib/ext/org.springframework.http.model.yml @@ -74,7 +74,8 @@ extensions: - ["org.springframework.http", "ResponseEntity", True, "created", "(URI)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["org.springframework.http", "ResponseEntity", True, "of", "(Optional)", "", "Argument[0].Element", "ReturnValue", "taint", "manual"] - ["org.springframework.http", "ResponseEntity", True, "ok", "(Object)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["org.springframework.http", "ResponseEntity$BodyBuilder", True, "body", "(Object)", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] + - ["org.springframework.http", "ResponseEntity$BodyBuilder", True, "body", "(Object)", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.springframework.http", "ResponseEntity$BodyBuilder", True, "body", "(Object)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["org.springframework.http", "ResponseEntity$BodyBuilder", True, "contentLength", "(long)", "", "Argument[this]", "ReturnValue", "value", "manual"] - ["org.springframework.http", "ResponseEntity$BodyBuilder", True, "contentType", "(MediaType)", "", "Argument[this]", "ReturnValue", "value", "manual"] - ["org.springframework.http", "ResponseEntity$HeadersBuilder", True, "allow", "(HttpMethod[])", "", "Argument[this]", "ReturnValue", "value", "manual"] diff --git a/java/ql/lib/ext/org.springframework.web.util.model.yml b/java/ql/lib/ext/org.springframework.web.util.model.yml index 70db4ceb2ef..bde912f708e 100644 --- a/java/ql/lib/ext/org.springframework.web.util.model.yml +++ b/java/ql/lib/ext/org.springframework.web.util.model.yml @@ -69,7 +69,8 @@ extensions: - ["org.springframework.web.util", "UriBuilder", True, "userInfo", "", "", "Argument[this]", "ReturnValue", "value", "manual"] - ["org.springframework.web.util", "UriBuilder", True, "userInfo", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] - ["org.springframework.web.util", "UriBuilderFactory", True, "builder", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - - ["org.springframework.web.util", "UriBuilderFactory", True, "uriString", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] + - ["org.springframework.web.util", "UriBuilderFactory", True, "uriString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.springframework.web.util", "UriBuilderFactory", True, "uriString", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["org.springframework.web.util", "UriComponents", False, "UriComponents", "", "", "Argument[0..1]", "Argument[this]", "taint", "manual"] - ["org.springframework.web.util", "UriComponents", False, "copyToUriComponentsBuilder", "", "", "Argument[this]", "Argument[0]", "taint", "manual"] - ["org.springframework.web.util", "UriComponents", False, "encode", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] @@ -117,7 +118,8 @@ extensions: - ["org.springframework.web.util", "UriTemplate", False, "getVariableNames", "", "", "Argument[this]", "ReturnValue.Element", "taint", "manual"] - ["org.springframework.web.util", "UriTemplate", False, "match", "", "", "Argument[0]", "ReturnValue.MapValue", "taint", "manual"] - ["org.springframework.web.util", "UriTemplate", False, "toString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - - ["org.springframework.web.util", "UriTemplateHandler", True, "expand", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] + - ["org.springframework.web.util", "UriTemplateHandler", True, "expand", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.springframework.web.util", "UriTemplateHandler", True, "expand", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["org.springframework.web.util", "UriTemplateHandler", True, "expand", "(String,Map)", "", "Argument[1].MapValue", "ReturnValue", "taint", "manual"] - ["org.springframework.web.util", "UriTemplateHandler", True, "expand", "(String,Object[])", "", "Argument[1].ArrayElement", "ReturnValue", "taint", "manual"] - ["org.springframework.web.util", "UriUtils", False, "decode", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] From ae12510d8d4d456039824b8b52e4fbc8c8805381 Mon Sep 17 00:00:00 2001 From: Michael Nebel <michaelnebel@github.com> Date: Fri, 17 Mar 2023 14:48:10 +0100 Subject: [PATCH 49/97] Java: Add change-note. --- java/ql/lib/change-notes/2023-03-17-madargumentthis.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 java/ql/lib/change-notes/2023-03-17-madargumentthis.md diff --git a/java/ql/lib/change-notes/2023-03-17-madargumentthis.md b/java/ql/lib/change-notes/2023-03-17-madargumentthis.md new file mode 100644 index 00000000000..497b774be5c --- /dev/null +++ b/java/ql/lib/change-notes/2023-03-17-madargumentthis.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* The Models as Data syntax for selecting the qualifier has been changed from `-1` to `this` (e.g. `Argument[-1]` is now written as `Argument[this]`). \ No newline at end of file From ba711ab8496882db156dd98f22275f5f96cc095a Mon Sep 17 00:00:00 2001 From: Michael Nebel <michaelnebel@github.com> Date: Fri, 17 Mar 2023 16:25:13 +0100 Subject: [PATCH 50/97] Java: Update expected test-output (different sorting). --- .../modelgenerator/dataflow/CaptureSummaryModels.expected | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/java/ql/test/utils/modelgenerator/dataflow/CaptureSummaryModels.expected b/java/ql/test/utils/modelgenerator/dataflow/CaptureSummaryModels.expected index 1df185e58be..f28d4a9abc5 100644 --- a/java/ql/test/utils/modelgenerator/dataflow/CaptureSummaryModels.expected +++ b/java/ql/test/utils/modelgenerator/dataflow/CaptureSummaryModels.expected @@ -5,8 +5,8 @@ | p;FluentAPI;false;returnsThis;(String);;Argument[this];ReturnValue;value;generated | | p;ImmutablePojo;false;ImmutablePojo;(String,int);;Argument[0];Argument[this];taint;generated | | p;ImmutablePojo;false;getValue;();;Argument[this];ReturnValue;taint;generated | -| p;ImmutablePojo;false;or;(String);;Argument[this];ReturnValue;taint;generated | | p;ImmutablePojo;false;or;(String);;Argument[0];ReturnValue;taint;generated | +| p;ImmutablePojo;false;or;(String);;Argument[this];ReturnValue;taint;generated | | p;InnerClasses$CaptureMe;true;yesCm;(String);;Argument[0];ReturnValue;taint;generated | | p;InnerClasses;true;yes;(String);;Argument[0];ReturnValue;taint;generated | | p;InnerHolder;false;append;(String);;Argument[0];Argument[this];taint;generated | @@ -19,8 +19,8 @@ | p;Joiner;false;Joiner;(CharSequence,CharSequence,CharSequence);;Argument[2];Argument[this];taint;generated | | p;Joiner;false;add;(CharSequence);;Argument[this];ReturnValue;value;generated | | p;Joiner;false;merge;(Joiner);;Argument[this];ReturnValue;value;generated | -| p;Joiner;false;setEmptyValue;(CharSequence);;Argument[this];ReturnValue;value;generated | | p;Joiner;false;setEmptyValue;(CharSequence);;Argument[0];Argument[this];taint;generated | +| p;Joiner;false;setEmptyValue;(CharSequence);;Argument[this];ReturnValue;value;generated | | p;Joiner;false;toString;();;Argument[this];ReturnValue;taint;generated | | p;MultipleImpls$Strat2;true;getValue;();;Argument[this];ReturnValue;taint;generated | | p;MultipleImpls$Strategy;true;doSomething;(String);;Argument[0];Argument[this];taint;generated | From 01ade878ea2253b73b37a2619ea963ffc5bf136e Mon Sep 17 00:00:00 2001 From: Michael Nebel <michaelnebel@github.com> Date: Mon, 20 Mar 2023 10:11:15 +0100 Subject: [PATCH 51/97] Java: Update test comments to use this instead of -1. --- .../frameworks/jdk/java.nio.file/Test.java | 8 ++-- .../frameworks/spring/webutil/Test.java | 40 +++++++++---------- java/ql/test/library-tests/paths/Test.java | 8 ++-- 3 files changed, 28 insertions(+), 28 deletions(-) diff --git a/java/ql/test/library-tests/frameworks/jdk/java.nio.file/Test.java b/java/ql/test/library-tests/frameworks/jdk/java.nio.file/Test.java index 19a602c7be0..12ac0b62570 100644 --- a/java/ql/test/library-tests/frameworks/jdk/java.nio.file/Test.java +++ b/java/ql/test/library-tests/frameworks/jdk/java.nio.file/Test.java @@ -47,7 +47,7 @@ public class Test { sink(out); // $ hasTaintFlow } { - // "java.nio.file;Path;true;resolve;;;Argument[-1..0];ReturnValue;taint;manual" + // "java.nio.file;Path;true;resolve;;;Argument[0];ReturnValue;taint;manual" Path out = null; Path in = (Path) source(); Path instance = null; @@ -55,21 +55,21 @@ public class Test { sink(out); // $ hasTaintFlow } { - // "java.nio.file;Path;true;resolve;;;Argument[-1..0];ReturnValue;taint;manual" + // "java.nio.file;Path;true;resolve;;;Argument[this];ReturnValue;taint;manual" Path out = null; Path in = (Path) source(); out = in.resolve((Path) null); sink(out); // $ hasTaintFlow } { - // "java.nio.file;Path;true;resolve;;;Argument[-1..0];ReturnValue;taint;manual" + // "java.nio.file;Path;true;resolve;;;Argument[this];ReturnValue;taint;manual" Path out = null; Path in = (Path) source(); out = in.resolve((String) null); sink(out); // $ hasTaintFlow } { - // "java.nio.file;Path;true;resolve;;;Argument[-1..0];ReturnValue;taint;manual" + // "java.nio.file;Path;true;resolve;;;Argument[0];ReturnValue;taint;manual" Path out = null; String in = (String) source(); Path instance = null; diff --git a/java/ql/test/library-tests/frameworks/spring/webutil/Test.java b/java/ql/test/library-tests/frameworks/spring/webutil/Test.java index f5ca8b9b5b6..3da2c3d14ab 100644 --- a/java/ql/test/library-tests/frameworks/spring/webutil/Test.java +++ b/java/ql/test/library-tests/frameworks/spring/webutil/Test.java @@ -159,7 +159,7 @@ public class Test { sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;DefaultUriBuilderFactory;false;expand;;;Argument[-1..0];ReturnValue;taint;manual" + // "org.springframework.web.util;DefaultUriBuilderFactory;false;expand;;;Argument[0];ReturnValue;taint;manual" URI out = null; String in = (String)source(); DefaultUriBuilderFactory instance = null; @@ -167,7 +167,7 @@ public class Test { sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;DefaultUriBuilderFactory;false;expand;;;Argument[-1..0];ReturnValue;taint;manual" + // "org.springframework.web.util;DefaultUriBuilderFactory;false;expand;;;Argument[0];ReturnValue;taint;manual" URI out = null; String in = (String)source(); DefaultUriBuilderFactory instance = null; @@ -175,14 +175,14 @@ public class Test { sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;DefaultUriBuilderFactory;false;expand;;;Argument[-1..0];ReturnValue;taint;manual" + // "org.springframework.web.util;DefaultUriBuilderFactory;false;expand;;;Argument[this];ReturnValue;taint;manual" URI out = null; DefaultUriBuilderFactory in = (DefaultUriBuilderFactory)source(); out = in.expand((String)null, (Object[])null); sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;DefaultUriBuilderFactory;false;expand;;;Argument[-1..0];ReturnValue;taint;manual" + // "org.springframework.web.util;DefaultUriBuilderFactory;false;expand;;;Argument[this];ReturnValue;taint;manual" URI out = null; DefaultUriBuilderFactory in = (DefaultUriBuilderFactory)source(); out = in.expand((String)null, (Map)null); @@ -1267,14 +1267,14 @@ public class Test { sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriBuilderFactory;true;uriString;;;Argument[-1..0];ReturnValue;taint;manual" + // "org.springframework.web.util;UriBuilderFactory;true;uriString;;;Argument[this];ReturnValue;taint;manual" UriBuilder out = null; UriBuilderFactory in = (UriBuilderFactory)source(); out = in.uriString(null); sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriBuilderFactory;true;uriString;;;Argument[-1..0];ReturnValue;taint;manual" + // "org.springframework.web.util;UriBuilderFactory;true;uriString;;;Argument[0];ReturnValue;taint;manual" UriBuilder out = null; String in = (String)source(); UriBuilderFactory instance = null; @@ -1282,7 +1282,7 @@ public class Test { sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriBuilderFactory;true;uriString;;;Argument[-1..0];ReturnValue;taint;manual" + // "org.springframework.web.util;UriBuilderFactory;true;uriString;;;Argument[0];ReturnValue;taint;manual" UriBuilder out = null; String in = (String)source(); DefaultUriBuilderFactory instance = null; @@ -1290,7 +1290,7 @@ public class Test { sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriBuilderFactory;true;uriString;;;Argument[-1..0];ReturnValue;taint;manual" + // "org.springframework.web.util;UriBuilderFactory;true;uriString;;;Argument[this];ReturnValue;taint;manual" UriBuilder out = null; DefaultUriBuilderFactory in = (DefaultUriBuilderFactory)source(); out = in.uriString(null); @@ -2041,21 +2041,21 @@ public class Test { sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriTemplateHandler;true;expand;;;Argument[-1..0];ReturnValue;taint;manual" + // "org.springframework.web.util;UriTemplateHandler;true;expand;;;Argument[this];ReturnValue;taint;manual" URI out = null; UriTemplateHandler in = (UriTemplateHandler)source(); out = in.expand((String)null, (Object[])null); sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriTemplateHandler;true;expand;;;Argument[-1..0];ReturnValue;taint;manual" + // "org.springframework.web.util;UriTemplateHandler;true;expand;;;Argument[this];ReturnValue;taint;manual" URI out = null; UriTemplateHandler in = (UriTemplateHandler)source(); out = in.expand((String)null, (Map)null); sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriTemplateHandler;true;expand;;;Argument[-1..0];ReturnValue;taint;manual" + // "org.springframework.web.util;UriTemplateHandler;true;expand;;;Argument[0];ReturnValue;taint;manual" URI out = null; String in = (String)source(); UriTemplateHandler instance = null; @@ -2063,7 +2063,7 @@ public class Test { sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriTemplateHandler;true;expand;;;Argument[-1..0];ReturnValue;taint;manual" + // "org.springframework.web.util;UriTemplateHandler;true;expand;;;Argument[0];ReturnValue;taint;manual" URI out = null; String in = (String)source(); UriTemplateHandler instance = null; @@ -2071,7 +2071,7 @@ public class Test { sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriTemplateHandler;true;expand;;;Argument[-1..0];ReturnValue;taint;manual" + // "org.springframework.web.util;UriTemplateHandler;true;expand;;;Argument[0];ReturnValue;taint;manual" URI out = null; String in = (String)source(); DefaultUriBuilderFactory instance = null; @@ -2079,7 +2079,7 @@ public class Test { sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriTemplateHandler;true;expand;;;Argument[-1..0];ReturnValue;taint;manual" + // "org.springframework.web.util;UriTemplateHandler;true;expand;;;Argument[0];ReturnValue;taint;manual" URI out = null; String in = (String)source(); DefaultUriBuilderFactory instance = null; @@ -2087,7 +2087,7 @@ public class Test { sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriTemplateHandler;true;expand;;;Argument[-1..0];ReturnValue;taint;manual" + // "org.springframework.web.util;UriTemplateHandler;true;expand;;;Argument[0];ReturnValue;taint;manual" URI out = null; String in = (String)source(); AbstractUriTemplateHandler instance = null; @@ -2095,7 +2095,7 @@ public class Test { sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriTemplateHandler;true;expand;;;Argument[-1..0];ReturnValue;taint;manual" + // "org.springframework.web.util;UriTemplateHandler;true;expand;;;Argument[0];ReturnValue;taint;manual" URI out = null; String in = (String)source(); AbstractUriTemplateHandler instance = null; @@ -2103,28 +2103,28 @@ public class Test { sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriTemplateHandler;true;expand;;;Argument[-1..0];ReturnValue;taint;manual" + // "org.springframework.web.util;UriTemplateHandler;true;expand;;;Argument[this];ReturnValue;taint;manual" URI out = null; DefaultUriBuilderFactory in = (DefaultUriBuilderFactory)source(); out = in.expand((String)null, (Object[])null); sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriTemplateHandler;true;expand;;;Argument[-1..0];ReturnValue;taint;manual" + // "org.springframework.web.util;UriTemplateHandler;true;expand;;;Argument[this];ReturnValue;taint;manual" URI out = null; DefaultUriBuilderFactory in = (DefaultUriBuilderFactory)source(); out = in.expand((String)null, (Map)null); sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriTemplateHandler;true;expand;;;Argument[-1..0];ReturnValue;taint;manual" + // "org.springframework.web.util;UriTemplateHandler;true;expand;;;Argument[this];ReturnValue;taint;manual" URI out = null; AbstractUriTemplateHandler in = (AbstractUriTemplateHandler)source(); out = in.expand((String)null, (Object[])null); sink(out); // $hasTaintFlow } { - // "org.springframework.web.util;UriTemplateHandler;true;expand;;;Argument[-1..0];ReturnValue;taint;manual" + // "org.springframework.web.util;UriTemplateHandler;true;expand;;;Argument[this];ReturnValue;taint;manual" URI out = null; AbstractUriTemplateHandler in = (AbstractUriTemplateHandler)source(); out = in.expand((String)null, (Map)null); diff --git a/java/ql/test/library-tests/paths/Test.java b/java/ql/test/library-tests/paths/Test.java index ed38511b14b..e6f2e03152e 100644 --- a/java/ql/test/library-tests/paths/Test.java +++ b/java/ql/test/library-tests/paths/Test.java @@ -135,7 +135,7 @@ public class Test { sink(out); // $ hasTaintFlow } { - // "java.nio.file;Path;true;resolve;;;Argument[-1..0];ReturnValue;taint;manual" + // "java.nio.file;Path;true;resolve;;;Argument[0];ReturnValue;taint;manual" Path out = null; Path in = (Path)source(); Path instance = null; @@ -143,21 +143,21 @@ public class Test { sink(out); // $ hasTaintFlow } { - // "java.nio.file;Path;true;resolve;;;Argument[-1..0];ReturnValue;taint;manual" + // "java.nio.file;Path;true;resolve;;;Argument[this];ReturnValue;taint;manual" Path out = null; Path in = (Path)source(); out = in.resolve((Path)null); sink(out); // $ hasTaintFlow } { - // "java.nio.file;Path;true;resolve;;;Argument[-1..0];ReturnValue;taint;manual" + // "java.nio.file;Path;true;resolve;;;Argument[this];ReturnValue;taint;manual" Path out = null; Path in = (Path)source(); out = in.resolve((String)null); sink(out); // $ hasTaintFlow } { - // "java.nio.file;Path;true;resolve;;;Argument[-1..0];ReturnValue;taint;manual" + // "java.nio.file;Path;true;resolve;;;Argument[0];ReturnValue;taint;manual" Path out = null; String in = (String)source(); Path instance = null; From bff8bbfe3317a54c7a508f9765cd86294fed6352 Mon Sep 17 00:00:00 2001 From: Tony Torralba <atorralba@users.noreply.github.com> Date: Mon, 20 Mar 2023 10:43:46 +0100 Subject: [PATCH 52/97] Apply suggestions from code review --- java/ql/lib/ext/hudson.model.model.yml | 2 +- java/ql/lib/ext/hudson.util.jna.model.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/java/ql/lib/ext/hudson.model.model.yml b/java/ql/lib/ext/hudson.model.model.yml index 8cd424bed83..77b495e0f1e 100644 --- a/java/ql/lib/ext/hudson.model.model.yml +++ b/java/ql/lib/ext/hudson.model.model.yml @@ -10,5 +10,5 @@ extensions: data: - ["hudson.model", "DirectoryBrowserSupport", False, "DirectoryBrowserSupport", "(ModelObject,FilePath,String,String,boolean)", "", "Argument[1]", "read-file", "ai-generated"] - ["hudson.model", "UpdateCenter$UpdateCenterConfiguration", True, "download", "(DownloadJob,URL)", "", "Argument[1]", "open-url", "ai-generated"] -# suggested label is not supported: - ["hudson.model", "UpdateCenter$UpdateCenterConfiguration", True, "install", "(DownloadJob,File,File)", "", "Argument[1]", "delete-file", "ai-generated"] + - ["hudson.model", "UpdateCenter$UpdateCenterConfiguration", True, "install", "(DownloadJob,File,File)", "", "Argument[1]", "create-file", "ai-generated"] # should be delete-file - ["hudson.model", "UpdateCenter$UpdateCenterConfiguration", True, "install", "(DownloadJob,File,File)", "", "Argument[2]", "create-file", "ai-generated"] diff --git a/java/ql/lib/ext/hudson.util.jna.model.yml b/java/ql/lib/ext/hudson.util.jna.model.yml index 695a28dc01e..14f93c7c542 100644 --- a/java/ql/lib/ext/hudson.util.jna.model.yml +++ b/java/ql/lib/ext/hudson.util.jna.model.yml @@ -4,5 +4,5 @@ extensions: extensible: sinkModel data: - ["hudson.util.jna", "GNUCLibrary", True, "open", "(String,int)", "", "Argument[0]", "read-file", "ai-generated"] -# suggested label is not supported: - ["hudson.util.jna", "Kernel32", True, "MoveFileExA", "(String,String,int)", "", "Argument[0]", "delete-file", "ai-generated"] + - ["hudson.util.jna", "Kernel32", True, "MoveFileExA", "(String,String,int)", "", "Argument[0]", "delete-file", "ai-generated"] # should be delete-file - ["hudson.util.jna", "Kernel32", True, "MoveFileExA", "(String,String,int)", "", "Argument[1]", "create-file", "ai-generated"] From 27fc14236fa19e7a4918f73ae065d30e53e48608 Mon Sep 17 00:00:00 2001 From: Tony Torralba <atorralba@users.noreply.github.com> Date: Mon, 20 Mar 2023 10:48:56 +0100 Subject: [PATCH 53/97] Add change note --- java/ql/lib/change-notes/2023-03-20-netty-hudson-models.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 java/ql/lib/change-notes/2023-03-20-netty-hudson-models.md diff --git a/java/ql/lib/change-notes/2023-03-20-netty-hudson-models.md b/java/ql/lib/change-notes/2023-03-20-netty-hudson-models.md new file mode 100644 index 00000000000..84f46f7ffa5 --- /dev/null +++ b/java/ql/lib/change-notes/2023-03-20-netty-hudson-models.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Added sink and summary dataflow models for the Jenkins and Netty frameworks. From 2270d6fa61ba24c6c64de20ccc49ed1bbfd37e2f Mon Sep 17 00:00:00 2001 From: Erik Krogh Kristensen <erik-krogh@github.com> Date: Mon, 20 Mar 2023 10:56:30 +0100 Subject: [PATCH 54/97] fix typo Co-authored-by: Taus <tausbn@github.com> --- shared/regex/codeql/regex/nfa/SuperlinearBackTracking.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shared/regex/codeql/regex/nfa/SuperlinearBackTracking.qll b/shared/regex/codeql/regex/nfa/SuperlinearBackTracking.qll index dd786aef305..d06170502b4 100644 --- a/shared/regex/codeql/regex/nfa/SuperlinearBackTracking.qll +++ b/shared/regex/codeql/regex/nfa/SuperlinearBackTracking.qll @@ -190,7 +190,7 @@ module Make<RegexTreeViewSig TreeImpl> { * * Additionally, a heuristic is used to avoid blowups in the case of complex regexps. * For regular expressions with more than 100 states, we only look at all the characters - * for the transitions out of `q` and only consider transitions that use the lexographically + * for the transitions out of `q` and only consider transitions that use the lexicographically * smallest character. */ pragma[noinline] From ef498020c22dcb51569f2f66934cf7063f133598 Mon Sep 17 00:00:00 2001 From: erik-krogh <erik-krogh@github.com> Date: Mon, 20 Mar 2023 12:11:06 +0100 Subject: [PATCH 55/97] PY: dont depend on codeql/util in src/ now that its added to lib/ --- python/ql/src/qlpack.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/python/ql/src/qlpack.yml b/python/ql/src/qlpack.yml index 99238b665e5..29cb0d4698d 100644 --- a/python/ql/src/qlpack.yml +++ b/python/ql/src/qlpack.yml @@ -6,7 +6,6 @@ groups: dependencies: codeql/python-all: ${workspace} codeql/suite-helpers: ${workspace} - codeql/util: ${workspace} suites: codeql-suites extractor: python defaultSuiteFile: codeql-suites/python-code-scanning.qls From 60a4a795379f535782a94f9b76c586658d12fc22 Mon Sep 17 00:00:00 2001 From: Ed Minnix <egregius313@github.com> Date: Mon, 20 Mar 2023 07:47:55 -0400 Subject: [PATCH 56/97] Make the Config module of public Flow modules public This is to make things easier for the CodeML/ATM team once these configurations are moved from `src/` to `lib/`. --- java/ql/lib/semmle/code/java/security/XxeLocalQuery.qll | 2 +- java/ql/lib/semmle/code/java/security/XxeRemoteQuery.qll | 2 +- java/ql/src/Security/CWE/CWE-022/TaintedPathLocal.ql | 2 +- java/ql/src/Security/CWE/CWE-022/ZipSlip.ql | 2 +- java/ql/src/Security/CWE/CWE-090/LdapInjectionLib.qll | 2 +- java/ql/src/Security/CWE/CWE-094/InsecureBeanValidation.ql | 2 +- .../CWE/CWE-134/ExternallyControlledFormatStringLocal.ql | 2 +- java/ql/src/Security/CWE/CWE-190/ArithmeticTaintedLocal.ql | 4 ++-- java/ql/src/Security/CWE/CWE-190/ArithmeticUncontrolled.ql | 4 ++-- .../CWE/CWE-200/AndroidWebViewSettingsAllowsContentAccess.ql | 2 +- .../ql/src/Security/CWE/CWE-297/UnsafeHostnameVerification.ql | 2 +- java/ql/src/Security/CWE/CWE-601/UrlRedirect.ql | 2 +- java/ql/src/Security/CWE/CWE-601/UrlRedirectLocal.ql | 2 +- java/ql/src/Security/CWE/CWE-643/XPathInjection.ql | 2 +- java/ql/src/Security/CWE/CWE-807/TaintedPermissionsCheck.ql | 2 +- 15 files changed, 17 insertions(+), 17 deletions(-) diff --git a/java/ql/lib/semmle/code/java/security/XxeLocalQuery.qll b/java/ql/lib/semmle/code/java/security/XxeLocalQuery.qll index 086ff3aa41b..2e23886da79 100644 --- a/java/ql/lib/semmle/code/java/security/XxeLocalQuery.qll +++ b/java/ql/lib/semmle/code/java/security/XxeLocalQuery.qll @@ -24,7 +24,7 @@ deprecated class XxeLocalConfig extends TaintTracking::Configuration { } } -private module XxeLocalConfig implements DataFlow::ConfigSig { +module XxeLocalConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node src) { src instanceof LocalUserInput } predicate isSink(DataFlow::Node sink) { sink instanceof XxeSink } diff --git a/java/ql/lib/semmle/code/java/security/XxeRemoteQuery.qll b/java/ql/lib/semmle/code/java/security/XxeRemoteQuery.qll index 404534d90b8..50f5eacd327 100644 --- a/java/ql/lib/semmle/code/java/security/XxeRemoteQuery.qll +++ b/java/ql/lib/semmle/code/java/security/XxeRemoteQuery.qll @@ -24,7 +24,7 @@ deprecated class XxeConfig extends TaintTracking::Configuration { } } -private module XxeConfig implements DataFlow::ConfigSig { +module XxeConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node src) { src instanceof RemoteFlowSource } predicate isSink(DataFlow::Node sink) { sink instanceof XxeSink } diff --git a/java/ql/src/Security/CWE/CWE-022/TaintedPathLocal.ql b/java/ql/src/Security/CWE/CWE-022/TaintedPathLocal.ql index e31d9a172b1..fa62e4e6dfd 100644 --- a/java/ql/src/Security/CWE/CWE-022/TaintedPathLocal.ql +++ b/java/ql/src/Security/CWE/CWE-022/TaintedPathLocal.ql @@ -20,7 +20,7 @@ import semmle.code.java.security.PathCreation import semmle.code.java.security.PathSanitizer import TaintedPathCommon -private module TaintedPathLocalConfig implements DataFlow::ConfigSig { +module TaintedPathLocalConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node source) { source instanceof LocalUserInput } predicate isSink(DataFlow::Node sink) { diff --git a/java/ql/src/Security/CWE/CWE-022/ZipSlip.ql b/java/ql/src/Security/CWE/CWE-022/ZipSlip.ql index b03c12c471a..59f8b07e871 100644 --- a/java/ql/src/Security/CWE/CWE-022/ZipSlip.ql +++ b/java/ql/src/Security/CWE/CWE-022/ZipSlip.ql @@ -34,7 +34,7 @@ class ArchiveEntryNameMethod extends Method { } } -private module ZipSlipConfiguration implements DataFlow::ConfigSig { +module ZipSlipConfiguration implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node source) { source.asExpr().(MethodAccess).getMethod() instanceof ArchiveEntryNameMethod } diff --git a/java/ql/src/Security/CWE/CWE-090/LdapInjectionLib.qll b/java/ql/src/Security/CWE/CWE-090/LdapInjectionLib.qll index 712a9e82002..d682e4902d8 100644 --- a/java/ql/src/Security/CWE/CWE-090/LdapInjectionLib.qll +++ b/java/ql/src/Security/CWE/CWE-090/LdapInjectionLib.qll @@ -5,7 +5,7 @@ import semmle.code.java.security.LdapInjection /** * A taint-tracking configuration for unvalidated user input that is used to construct LDAP queries. */ -private module LdapInjectionFlowConfig implements DataFlow::ConfigSig { +module LdapInjectionFlowConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource } predicate isSink(DataFlow::Node sink) { sink instanceof LdapInjectionSink } diff --git a/java/ql/src/Security/CWE/CWE-094/InsecureBeanValidation.ql b/java/ql/src/Security/CWE/CWE-094/InsecureBeanValidation.ql index 2e431f6fece..c3a991ddcd5 100644 --- a/java/ql/src/Security/CWE/CWE-094/InsecureBeanValidation.ql +++ b/java/ql/src/Security/CWE/CWE-094/InsecureBeanValidation.ql @@ -55,7 +55,7 @@ class SetMessageInterpolatorCall extends MethodAccess { * Taint tracking BeanValidationConfiguration describing the flow of data from user input * to the argument of a method that builds constraint error messages. */ -private module BeanValidationConfig implements DataFlow::ConfigSig { +module BeanValidationConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource } predicate isSink(DataFlow::Node sink) { sink instanceof BeanValidationSink } diff --git a/java/ql/src/Security/CWE/CWE-134/ExternallyControlledFormatStringLocal.ql b/java/ql/src/Security/CWE/CWE-134/ExternallyControlledFormatStringLocal.ql index f418372647f..0300eaea806 100644 --- a/java/ql/src/Security/CWE/CWE-134/ExternallyControlledFormatStringLocal.ql +++ b/java/ql/src/Security/CWE/CWE-134/ExternallyControlledFormatStringLocal.ql @@ -14,7 +14,7 @@ import java import semmle.code.java.dataflow.FlowSources import semmle.code.java.StringFormat -private module ExternallyControlledFormatStringLocalConfig implements DataFlow::ConfigSig { +module ExternallyControlledFormatStringLocalConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node source) { source instanceof LocalUserInput } predicate isSink(DataFlow::Node sink) { diff --git a/java/ql/src/Security/CWE/CWE-190/ArithmeticTaintedLocal.ql b/java/ql/src/Security/CWE/CWE-190/ArithmeticTaintedLocal.ql index eb7dfb680ab..5fae695bf56 100644 --- a/java/ql/src/Security/CWE/CWE-190/ArithmeticTaintedLocal.ql +++ b/java/ql/src/Security/CWE/CWE-190/ArithmeticTaintedLocal.ql @@ -16,7 +16,7 @@ import java import semmle.code.java.dataflow.FlowSources import ArithmeticCommon -private module ArithmeticTaintedLocalOverflowConfig implements DataFlow::ConfigSig { +module ArithmeticTaintedLocalOverflowConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node source) { source instanceof LocalUserInput } predicate isSink(DataFlow::Node sink) { overflowSink(_, sink.asExpr()) } @@ -27,7 +27,7 @@ private module ArithmeticTaintedLocalOverflowConfig implements DataFlow::ConfigS module ArithmeticTaintedLocalOverflowFlow = TaintTracking::Make<ArithmeticTaintedLocalOverflowConfig>; -private module ArithmeticTaintedLocalUnderflowConfig implements DataFlow::ConfigSig { +module ArithmeticTaintedLocalUnderflowConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node source) { source instanceof LocalUserInput } predicate isSink(DataFlow::Node sink) { underflowSink(_, sink.asExpr()) } diff --git a/java/ql/src/Security/CWE/CWE-190/ArithmeticUncontrolled.ql b/java/ql/src/Security/CWE/CWE-190/ArithmeticUncontrolled.ql index 32b33c68bec..636480f7400 100644 --- a/java/ql/src/Security/CWE/CWE-190/ArithmeticUncontrolled.ql +++ b/java/ql/src/Security/CWE/CWE-190/ArithmeticUncontrolled.ql @@ -24,7 +24,7 @@ class TaintSource extends DataFlow::ExprNode { } } -private module ArithmeticUncontrolledOverflowConfig implements DataFlow::ConfigSig { +module ArithmeticUncontrolledOverflowConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node source) { source instanceof TaintSource } predicate isSink(DataFlow::Node sink) { overflowSink(_, sink.asExpr()) } @@ -35,7 +35,7 @@ private module ArithmeticUncontrolledOverflowConfig implements DataFlow::ConfigS module ArithmeticUncontrolledOverflowFlow = TaintTracking::Make<ArithmeticUncontrolledOverflowConfig>; -private module ArithmeticUncontrolledUnderflowConfig implements DataFlow::ConfigSig { +module ArithmeticUncontrolledUnderflowConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node source) { source instanceof TaintSource } predicate isSink(DataFlow::Node sink) { underflowSink(_, sink.asExpr()) } diff --git a/java/ql/src/Security/CWE/CWE-200/AndroidWebViewSettingsAllowsContentAccess.ql b/java/ql/src/Security/CWE/CWE-200/AndroidWebViewSettingsAllowsContentAccess.ql index 0026fbd47c7..1b1ca51e7cd 100644 --- a/java/ql/src/Security/CWE/CWE-200/AndroidWebViewSettingsAllowsContentAccess.ql +++ b/java/ql/src/Security/CWE/CWE-200/AndroidWebViewSettingsAllowsContentAccess.ql @@ -65,7 +65,7 @@ private newtype WebViewOrSettings = IsWebView() or IsSettings() -private module WebViewDisallowContentAccessConfig implements DataFlow::StateConfigSig { +module WebViewDisallowContentAccessConfig implements DataFlow::StateConfigSig { class FlowState = WebViewOrSettings; predicate isSource(DataFlow::Node node, FlowState state) { diff --git a/java/ql/src/Security/CWE/CWE-297/UnsafeHostnameVerification.ql b/java/ql/src/Security/CWE/CWE-297/UnsafeHostnameVerification.ql index 6055089433e..1069cd3cd14 100644 --- a/java/ql/src/Security/CWE/CWE-297/UnsafeHostnameVerification.ql +++ b/java/ql/src/Security/CWE/CWE-297/UnsafeHostnameVerification.ql @@ -44,7 +44,7 @@ class TrustAllHostnameVerifier extends RefType { /** * A configuration to model the flow of a `TrustAllHostnameVerifier` to a `set(Default)HostnameVerifier` call. */ -private module TrustAllHostnameVerifierConfig implements DataFlow::ConfigSig { +module TrustAllHostnameVerifierConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node source) { source.asExpr().(ClassInstanceExpr).getConstructedType() instanceof TrustAllHostnameVerifier } diff --git a/java/ql/src/Security/CWE/CWE-601/UrlRedirect.ql b/java/ql/src/Security/CWE/CWE-601/UrlRedirect.ql index 4c141835eb2..cf9393830b0 100644 --- a/java/ql/src/Security/CWE/CWE-601/UrlRedirect.ql +++ b/java/ql/src/Security/CWE/CWE-601/UrlRedirect.ql @@ -15,7 +15,7 @@ import java import semmle.code.java.dataflow.FlowSources import semmle.code.java.security.UrlRedirect -private module UrlRedirectConfig implements DataFlow::ConfigSig { +module UrlRedirectConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource } predicate isSink(DataFlow::Node sink) { sink instanceof UrlRedirectSink } diff --git a/java/ql/src/Security/CWE/CWE-601/UrlRedirectLocal.ql b/java/ql/src/Security/CWE/CWE-601/UrlRedirectLocal.ql index f9dd9938bc4..de44173ec57 100644 --- a/java/ql/src/Security/CWE/CWE-601/UrlRedirectLocal.ql +++ b/java/ql/src/Security/CWE/CWE-601/UrlRedirectLocal.ql @@ -15,7 +15,7 @@ import java import semmle.code.java.dataflow.FlowSources import semmle.code.java.security.UrlRedirect -private module UrlRedirectLocalConfig implements DataFlow::ConfigSig { +module UrlRedirectLocalConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node source) { source instanceof LocalUserInput } predicate isSink(DataFlow::Node sink) { sink instanceof UrlRedirectSink } diff --git a/java/ql/src/Security/CWE/CWE-643/XPathInjection.ql b/java/ql/src/Security/CWE/CWE-643/XPathInjection.ql index df68af6e4a8..eacebd3f098 100644 --- a/java/ql/src/Security/CWE/CWE-643/XPathInjection.ql +++ b/java/ql/src/Security/CWE/CWE-643/XPathInjection.ql @@ -16,7 +16,7 @@ import semmle.code.java.dataflow.FlowSources import semmle.code.java.dataflow.TaintTracking import semmle.code.java.security.XPath -private module XPathInjectionConfig implements DataFlow::ConfigSig { +module XPathInjectionConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource } predicate isSink(DataFlow::Node sink) { sink instanceof XPathInjectionSink } diff --git a/java/ql/src/Security/CWE/CWE-807/TaintedPermissionsCheck.ql b/java/ql/src/Security/CWE/CWE-807/TaintedPermissionsCheck.ql index 3c0fdbbf82d..bb48958443f 100644 --- a/java/ql/src/Security/CWE/CWE-807/TaintedPermissionsCheck.ql +++ b/java/ql/src/Security/CWE/CWE-807/TaintedPermissionsCheck.ql @@ -52,7 +52,7 @@ class WCPermissionConstruction extends ClassInstanceExpr, PermissionsConstructio override Expr getInput() { result = this.getArgument(0) } } -private module TaintedPermissionsCheckFlowConfig implements DataFlow::ConfigSig { +module TaintedPermissionsCheckFlowConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node source) { source instanceof UserInput } predicate isSink(DataFlow::Node sink) { From 84fd5f7ee0a6ba2cea3772621f7be4aac46726ec Mon Sep 17 00:00:00 2001 From: Ed Minnix <egregius313@github.com> Date: Mon, 20 Mar 2023 07:55:23 -0400 Subject: [PATCH 57/97] Fix naming of ZipSlip configuration --- java/ql/src/Security/CWE/CWE-022/ZipSlip.ql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/java/ql/src/Security/CWE/CWE-022/ZipSlip.ql b/java/ql/src/Security/CWE/CWE-022/ZipSlip.ql index 59f8b07e871..bae6311f362 100644 --- a/java/ql/src/Security/CWE/CWE-022/ZipSlip.ql +++ b/java/ql/src/Security/CWE/CWE-022/ZipSlip.ql @@ -34,7 +34,7 @@ class ArchiveEntryNameMethod extends Method { } } -module ZipSlipConfiguration implements DataFlow::ConfigSig { +module ZipSlipConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node source) { source.asExpr().(MethodAccess).getMethod() instanceof ArchiveEntryNameMethod } @@ -44,7 +44,7 @@ module ZipSlipConfiguration implements DataFlow::ConfigSig { predicate isBarrier(DataFlow::Node node) { node instanceof PathInjectionSanitizer } } -module ZipSlipFlow = TaintTracking::Make<ZipSlipConfiguration>; +module ZipSlipFlow = TaintTracking::Make<ZipSlipConfig>; import ZipSlipFlow::PathGraph From 9b7a20f4ad5c4f8cd893865186e31d9b91d7becf Mon Sep 17 00:00:00 2001 From: Rasmus Lerchedahl Petersen <yoff@github.com> Date: Mon, 20 Mar 2023 13:03:26 +0100 Subject: [PATCH 58/97] python: add example showing FP --- .../undefined/UninitializedLocal.expected | 1 + .../query-tests/Variables/undefined/captured.py | 14 ++++++++++++++ 2 files changed, 15 insertions(+) create mode 100644 python/ql/test/query-tests/Variables/undefined/captured.py diff --git a/python/ql/test/query-tests/Variables/undefined/UninitializedLocal.expected b/python/ql/test/query-tests/Variables/undefined/UninitializedLocal.expected index f2782e7e888..a15c0750e26 100644 --- a/python/ql/test/query-tests/Variables/undefined/UninitializedLocal.expected +++ b/python/ql/test/query-tests/Variables/undefined/UninitializedLocal.expected @@ -11,4 +11,5 @@ | UninitializedLocal.py:163:7:163:7 | x | Local variable 'x' may be used before it is initialized. | | UninitializedLocal.py:176:16:176:16 | x | Local variable 'x' may be used before it is initialized. | | UninitializedLocal.py:178:16:178:16 | y | Local variable 'y' may be used before it is initialized. | +| captured.py:8:15:8:17 | foo | Local variable 'foo' may be used before it is initialized. | | odasa3987.py:11:8:11:10 | var | Local variable 'var' may be used before it is initialized. | diff --git a/python/ql/test/query-tests/Variables/undefined/captured.py b/python/ql/test/query-tests/Variables/undefined/captured.py new file mode 100644 index 00000000000..1eeeb6fec9b --- /dev/null +++ b/python/ql/test/query-tests/Variables/undefined/captured.py @@ -0,0 +1,14 @@ +#!/usr/bin/python + +def topLevel(): + foo = 3 + + def bar(): + nonlocal foo + print(foo) # FP + foo = 4 + + bar() + print(foo) + +topLevel() From e0e3a1d62161999b5d83f96602ad5bb99634a3f9 Mon Sep 17 00:00:00 2001 From: Kasper Svendsen <kaspersv@github.com> Date: Mon, 20 Mar 2023 13:02:18 +0100 Subject: [PATCH 59/97] Dataflow: remove revFlowApAlias trick --- .../code/cpp/dataflow/internal/DataFlowImpl.qll | 11 ++--------- .../code/cpp/ir/dataflow/internal/DataFlowImpl.qll | 11 ++--------- .../code/csharp/dataflow/internal/DataFlowImpl.qll | 11 ++--------- .../lib/semmle/go/dataflow/internal/DataFlowImpl.qll | 11 ++--------- .../code/java/dataflow/internal/DataFlowImpl.qll | 11 ++--------- .../python/dataflow/new/internal/DataFlowImpl.qll | 11 ++--------- .../codeql/ruby/dataflow/internal/DataFlowImpl.qll | 11 ++--------- .../codeql/swift/dataflow/internal/DataFlowImpl.qll | 11 ++--------- 8 files changed, 16 insertions(+), 72 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl.qll index f02728b9e18..a2af8508265 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl.qll @@ -1144,20 +1144,13 @@ module Impl<FullStateConfigSig Config> { module Stage<StageParam Param> implements StageSig { import Param - /* Begin: Stage logic. */ - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - private predicate revFlowApAlias(NodeEx node, ApApprox apa) { - PrevStage::revFlowAp(node, apa) - } - pragma[nomagic] private predicate flowIntoCallApa( DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, ApApprox apa ) { flowIntoCall(call, arg, p, allowsFieldFlow) and PrevStage::revFlowAp(p, pragma[only_bind_into](apa)) and - revFlowApAlias(arg, pragma[only_bind_into](apa)) + PrevStage::revFlowAp(arg, pragma[only_bind_into](apa)) } pragma[nomagic] @@ -1167,7 +1160,7 @@ module Impl<FullStateConfigSig Config> { ) { flowOutOfCall(call, ret, kind, out, allowsFieldFlow) and PrevStage::revFlowAp(out, pragma[only_bind_into](apa)) and - revFlowApAlias(ret, pragma[only_bind_into](apa)) + PrevStage::revFlowAp(ret, pragma[only_bind_into](apa)) } pragma[nomagic] diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl.qll index f02728b9e18..a2af8508265 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl.qll @@ -1144,20 +1144,13 @@ module Impl<FullStateConfigSig Config> { module Stage<StageParam Param> implements StageSig { import Param - /* Begin: Stage logic. */ - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - private predicate revFlowApAlias(NodeEx node, ApApprox apa) { - PrevStage::revFlowAp(node, apa) - } - pragma[nomagic] private predicate flowIntoCallApa( DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, ApApprox apa ) { flowIntoCall(call, arg, p, allowsFieldFlow) and PrevStage::revFlowAp(p, pragma[only_bind_into](apa)) and - revFlowApAlias(arg, pragma[only_bind_into](apa)) + PrevStage::revFlowAp(arg, pragma[only_bind_into](apa)) } pragma[nomagic] @@ -1167,7 +1160,7 @@ module Impl<FullStateConfigSig Config> { ) { flowOutOfCall(call, ret, kind, out, allowsFieldFlow) and PrevStage::revFlowAp(out, pragma[only_bind_into](apa)) and - revFlowApAlias(ret, pragma[only_bind_into](apa)) + PrevStage::revFlowAp(ret, pragma[only_bind_into](apa)) } pragma[nomagic] diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl.qll index f02728b9e18..a2af8508265 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl.qll @@ -1144,20 +1144,13 @@ module Impl<FullStateConfigSig Config> { module Stage<StageParam Param> implements StageSig { import Param - /* Begin: Stage logic. */ - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - private predicate revFlowApAlias(NodeEx node, ApApprox apa) { - PrevStage::revFlowAp(node, apa) - } - pragma[nomagic] private predicate flowIntoCallApa( DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, ApApprox apa ) { flowIntoCall(call, arg, p, allowsFieldFlow) and PrevStage::revFlowAp(p, pragma[only_bind_into](apa)) and - revFlowApAlias(arg, pragma[only_bind_into](apa)) + PrevStage::revFlowAp(arg, pragma[only_bind_into](apa)) } pragma[nomagic] @@ -1167,7 +1160,7 @@ module Impl<FullStateConfigSig Config> { ) { flowOutOfCall(call, ret, kind, out, allowsFieldFlow) and PrevStage::revFlowAp(out, pragma[only_bind_into](apa)) and - revFlowApAlias(ret, pragma[only_bind_into](apa)) + PrevStage::revFlowAp(ret, pragma[only_bind_into](apa)) } pragma[nomagic] diff --git a/go/ql/lib/semmle/go/dataflow/internal/DataFlowImpl.qll b/go/ql/lib/semmle/go/dataflow/internal/DataFlowImpl.qll index f02728b9e18..a2af8508265 100644 --- a/go/ql/lib/semmle/go/dataflow/internal/DataFlowImpl.qll +++ b/go/ql/lib/semmle/go/dataflow/internal/DataFlowImpl.qll @@ -1144,20 +1144,13 @@ module Impl<FullStateConfigSig Config> { module Stage<StageParam Param> implements StageSig { import Param - /* Begin: Stage logic. */ - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - private predicate revFlowApAlias(NodeEx node, ApApprox apa) { - PrevStage::revFlowAp(node, apa) - } - pragma[nomagic] private predicate flowIntoCallApa( DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, ApApprox apa ) { flowIntoCall(call, arg, p, allowsFieldFlow) and PrevStage::revFlowAp(p, pragma[only_bind_into](apa)) and - revFlowApAlias(arg, pragma[only_bind_into](apa)) + PrevStage::revFlowAp(arg, pragma[only_bind_into](apa)) } pragma[nomagic] @@ -1167,7 +1160,7 @@ module Impl<FullStateConfigSig Config> { ) { flowOutOfCall(call, ret, kind, out, allowsFieldFlow) and PrevStage::revFlowAp(out, pragma[only_bind_into](apa)) and - revFlowApAlias(ret, pragma[only_bind_into](apa)) + PrevStage::revFlowAp(ret, pragma[only_bind_into](apa)) } pragma[nomagic] diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl.qll index f02728b9e18..a2af8508265 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl.qll @@ -1144,20 +1144,13 @@ module Impl<FullStateConfigSig Config> { module Stage<StageParam Param> implements StageSig { import Param - /* Begin: Stage logic. */ - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - private predicate revFlowApAlias(NodeEx node, ApApprox apa) { - PrevStage::revFlowAp(node, apa) - } - pragma[nomagic] private predicate flowIntoCallApa( DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, ApApprox apa ) { flowIntoCall(call, arg, p, allowsFieldFlow) and PrevStage::revFlowAp(p, pragma[only_bind_into](apa)) and - revFlowApAlias(arg, pragma[only_bind_into](apa)) + PrevStage::revFlowAp(arg, pragma[only_bind_into](apa)) } pragma[nomagic] @@ -1167,7 +1160,7 @@ module Impl<FullStateConfigSig Config> { ) { flowOutOfCall(call, ret, kind, out, allowsFieldFlow) and PrevStage::revFlowAp(out, pragma[only_bind_into](apa)) and - revFlowApAlias(ret, pragma[only_bind_into](apa)) + PrevStage::revFlowAp(ret, pragma[only_bind_into](apa)) } pragma[nomagic] diff --git a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl.qll b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl.qll index f02728b9e18..a2af8508265 100644 --- a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl.qll +++ b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl.qll @@ -1144,20 +1144,13 @@ module Impl<FullStateConfigSig Config> { module Stage<StageParam Param> implements StageSig { import Param - /* Begin: Stage logic. */ - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - private predicate revFlowApAlias(NodeEx node, ApApprox apa) { - PrevStage::revFlowAp(node, apa) - } - pragma[nomagic] private predicate flowIntoCallApa( DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, ApApprox apa ) { flowIntoCall(call, arg, p, allowsFieldFlow) and PrevStage::revFlowAp(p, pragma[only_bind_into](apa)) and - revFlowApAlias(arg, pragma[only_bind_into](apa)) + PrevStage::revFlowAp(arg, pragma[only_bind_into](apa)) } pragma[nomagic] @@ -1167,7 +1160,7 @@ module Impl<FullStateConfigSig Config> { ) { flowOutOfCall(call, ret, kind, out, allowsFieldFlow) and PrevStage::revFlowAp(out, pragma[only_bind_into](apa)) and - revFlowApAlias(ret, pragma[only_bind_into](apa)) + PrevStage::revFlowAp(ret, pragma[only_bind_into](apa)) } pragma[nomagic] diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl.qll index f02728b9e18..a2af8508265 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl.qll @@ -1144,20 +1144,13 @@ module Impl<FullStateConfigSig Config> { module Stage<StageParam Param> implements StageSig { import Param - /* Begin: Stage logic. */ - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - private predicate revFlowApAlias(NodeEx node, ApApprox apa) { - PrevStage::revFlowAp(node, apa) - } - pragma[nomagic] private predicate flowIntoCallApa( DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, ApApprox apa ) { flowIntoCall(call, arg, p, allowsFieldFlow) and PrevStage::revFlowAp(p, pragma[only_bind_into](apa)) and - revFlowApAlias(arg, pragma[only_bind_into](apa)) + PrevStage::revFlowAp(arg, pragma[only_bind_into](apa)) } pragma[nomagic] @@ -1167,7 +1160,7 @@ module Impl<FullStateConfigSig Config> { ) { flowOutOfCall(call, ret, kind, out, allowsFieldFlow) and PrevStage::revFlowAp(out, pragma[only_bind_into](apa)) and - revFlowApAlias(ret, pragma[only_bind_into](apa)) + PrevStage::revFlowAp(ret, pragma[only_bind_into](apa)) } pragma[nomagic] diff --git a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImpl.qll b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImpl.qll index f02728b9e18..a2af8508265 100644 --- a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImpl.qll +++ b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImpl.qll @@ -1144,20 +1144,13 @@ module Impl<FullStateConfigSig Config> { module Stage<StageParam Param> implements StageSig { import Param - /* Begin: Stage logic. */ - // use an alias as a workaround for bad functionality-induced joins - pragma[nomagic] - private predicate revFlowApAlias(NodeEx node, ApApprox apa) { - PrevStage::revFlowAp(node, apa) - } - pragma[nomagic] private predicate flowIntoCallApa( DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, ApApprox apa ) { flowIntoCall(call, arg, p, allowsFieldFlow) and PrevStage::revFlowAp(p, pragma[only_bind_into](apa)) and - revFlowApAlias(arg, pragma[only_bind_into](apa)) + PrevStage::revFlowAp(arg, pragma[only_bind_into](apa)) } pragma[nomagic] @@ -1167,7 +1160,7 @@ module Impl<FullStateConfigSig Config> { ) { flowOutOfCall(call, ret, kind, out, allowsFieldFlow) and PrevStage::revFlowAp(out, pragma[only_bind_into](apa)) and - revFlowApAlias(ret, pragma[only_bind_into](apa)) + PrevStage::revFlowAp(ret, pragma[only_bind_into](apa)) } pragma[nomagic] From 1c661fd3acdb4d268f0600dd667aa0b366ba7d40 Mon Sep 17 00:00:00 2001 From: Ed Minnix <egregius313@github.com> Date: Mon, 20 Mar 2023 08:10:07 -0400 Subject: [PATCH 60/97] Add missing QLDocs --- java/ql/lib/semmle/code/java/security/XxeLocalQuery.qll | 6 ++++++ java/ql/lib/semmle/code/java/security/XxeRemoteQuery.qll | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/java/ql/lib/semmle/code/java/security/XxeLocalQuery.qll b/java/ql/lib/semmle/code/java/security/XxeLocalQuery.qll index 2e23886da79..02d68fceb5c 100644 --- a/java/ql/lib/semmle/code/java/security/XxeLocalQuery.qll +++ b/java/ql/lib/semmle/code/java/security/XxeLocalQuery.qll @@ -24,6 +24,9 @@ deprecated class XxeLocalConfig extends TaintTracking::Configuration { } } +/** + * A taint-tracking configuration for unvalidated local user input that is used in XML external entity expansion. + */ module XxeLocalConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node src) { src instanceof LocalUserInput } @@ -36,4 +39,7 @@ module XxeLocalConfig implements DataFlow::ConfigSig { } } +/** + * Detect taint flow of unvalidated local user input that is used in XML external entity expansion. + */ module XxeLocalFlow = TaintTracking::Make<XxeLocalConfig>; diff --git a/java/ql/lib/semmle/code/java/security/XxeRemoteQuery.qll b/java/ql/lib/semmle/code/java/security/XxeRemoteQuery.qll index 50f5eacd327..46108b7a680 100644 --- a/java/ql/lib/semmle/code/java/security/XxeRemoteQuery.qll +++ b/java/ql/lib/semmle/code/java/security/XxeRemoteQuery.qll @@ -24,6 +24,9 @@ deprecated class XxeConfig extends TaintTracking::Configuration { } } +/** + * A taint-tracking configuration for unvalidated remote user input that is used in XML external entity expansion. + */ module XxeConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node src) { src instanceof RemoteFlowSource } @@ -36,4 +39,7 @@ module XxeConfig implements DataFlow::ConfigSig { } } +/** + * Detect taint flow of unvalidated remote user input that is used in XML external entity expansion. + */ module XxeFlow = TaintTracking::Make<XxeConfig>; From 83b0d073f0f0e096608091d1eb13e758974d7dd4 Mon Sep 17 00:00:00 2001 From: Ed Minnix <egregius313@github.com> Date: Mon, 20 Mar 2023 08:11:01 -0400 Subject: [PATCH 61/97] Fix typo in QLDoc --- java/ql/src/Security/CWE/CWE-297/UnsafeHostnameVerification.ql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/ql/src/Security/CWE/CWE-297/UnsafeHostnameVerification.ql b/java/ql/src/Security/CWE/CWE-297/UnsafeHostnameVerification.ql index 1069cd3cd14..f6663b8e87d 100644 --- a/java/ql/src/Security/CWE/CWE-297/UnsafeHostnameVerification.ql +++ b/java/ql/src/Security/CWE/CWE-297/UnsafeHostnameVerification.ql @@ -28,7 +28,7 @@ private predicate alwaysReturnsTrue(HostnameVerifierVerify m) { } /** - * A class that s the `javax.net.ssl.HostnameVerifier.verify` method and **always** returns `true` (though it could also exit due to an uncaught exception), thus + * A class that overrides the `javax.net.ssl.HostnameVerifier.verify` method and **always** returns `true` (though it could also exit due to an uncaught exception), thus * accepting any certificate despite a hostname mismatch. */ class TrustAllHostnameVerifier extends RefType { From 1d2f1b6ae6982228d71854d1aa689d960dde90ed Mon Sep 17 00:00:00 2001 From: Kasper Svendsen <kaspersv@github.com> Date: Mon, 20 Mar 2023 13:34:14 +0100 Subject: [PATCH 62/97] Address comments --- cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl.qll | 1 + cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl.qll | 1 + .../ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl.qll | 1 + go/ql/lib/semmle/go/dataflow/internal/DataFlowImpl.qll | 1 + java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl.qll | 1 + .../ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl.qll | 1 + ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl.qll | 1 + swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImpl.qll | 1 + 8 files changed, 8 insertions(+) diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl.qll index a2af8508265..c47b0308855 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl.qll @@ -1144,6 +1144,7 @@ module Impl<FullStateConfigSig Config> { module Stage<StageParam Param> implements StageSig { import Param + /* Begin: Stage logic. */ pragma[nomagic] private predicate flowIntoCallApa( DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, ApApprox apa diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl.qll index a2af8508265..c47b0308855 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl.qll @@ -1144,6 +1144,7 @@ module Impl<FullStateConfigSig Config> { module Stage<StageParam Param> implements StageSig { import Param + /* Begin: Stage logic. */ pragma[nomagic] private predicate flowIntoCallApa( DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, ApApprox apa diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl.qll index a2af8508265..c47b0308855 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl.qll @@ -1144,6 +1144,7 @@ module Impl<FullStateConfigSig Config> { module Stage<StageParam Param> implements StageSig { import Param + /* Begin: Stage logic. */ pragma[nomagic] private predicate flowIntoCallApa( DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, ApApprox apa diff --git a/go/ql/lib/semmle/go/dataflow/internal/DataFlowImpl.qll b/go/ql/lib/semmle/go/dataflow/internal/DataFlowImpl.qll index a2af8508265..c47b0308855 100644 --- a/go/ql/lib/semmle/go/dataflow/internal/DataFlowImpl.qll +++ b/go/ql/lib/semmle/go/dataflow/internal/DataFlowImpl.qll @@ -1144,6 +1144,7 @@ module Impl<FullStateConfigSig Config> { module Stage<StageParam Param> implements StageSig { import Param + /* Begin: Stage logic. */ pragma[nomagic] private predicate flowIntoCallApa( DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, ApApprox apa diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl.qll index a2af8508265..c47b0308855 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl.qll @@ -1144,6 +1144,7 @@ module Impl<FullStateConfigSig Config> { module Stage<StageParam Param> implements StageSig { import Param + /* Begin: Stage logic. */ pragma[nomagic] private predicate flowIntoCallApa( DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, ApApprox apa diff --git a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl.qll b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl.qll index a2af8508265..c47b0308855 100644 --- a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl.qll +++ b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl.qll @@ -1144,6 +1144,7 @@ module Impl<FullStateConfigSig Config> { module Stage<StageParam Param> implements StageSig { import Param + /* Begin: Stage logic. */ pragma[nomagic] private predicate flowIntoCallApa( DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, ApApprox apa diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl.qll index a2af8508265..c47b0308855 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl.qll @@ -1144,6 +1144,7 @@ module Impl<FullStateConfigSig Config> { module Stage<StageParam Param> implements StageSig { import Param + /* Begin: Stage logic. */ pragma[nomagic] private predicate flowIntoCallApa( DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, ApApprox apa diff --git a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImpl.qll b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImpl.qll index a2af8508265..c47b0308855 100644 --- a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImpl.qll +++ b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImpl.qll @@ -1144,6 +1144,7 @@ module Impl<FullStateConfigSig Config> { module Stage<StageParam Param> implements StageSig { import Param + /* Begin: Stage logic. */ pragma[nomagic] private predicate flowIntoCallApa( DataFlowCall call, ArgNodeEx arg, ParamNodeEx p, boolean allowsFieldFlow, ApApprox apa From 5f438e433d2bc2a129d8d326bd9fbbda280b28ac Mon Sep 17 00:00:00 2001 From: Rasmus Lerchedahl Petersen <yoff@github.com> Date: Mon, 20 Mar 2023 13:34:39 +0100 Subject: [PATCH 63/97] python: exclude nonlocals from query --- python/ql/src/Variables/UninitializedLocal.ql | 2 +- .../query-tests/Variables/undefined/UninitializedLocal.expected | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/python/ql/src/Variables/UninitializedLocal.ql b/python/ql/src/Variables/UninitializedLocal.ql index 23a063be5ab..820eea692a0 100644 --- a/python/ql/src/Variables/UninitializedLocal.ql +++ b/python/ql/src/Variables/UninitializedLocal.ql @@ -15,7 +15,7 @@ import Undefined import semmle.python.pointsto.PointsTo predicate uninitialized_local(NameNode use) { - exists(FastLocalVariable local | use.uses(local) or use.deletes(local) | not local.escapes()) and + exists(FastLocalVariable local | use.uses(local) or use.deletes(local) | not local.escapes() and not local = any(Nonlocal nl).getAVariable()) and ( any(Uninitialized uninit).taints(use) and PointsToInternal::reachableBlock(use.getBasicBlock(), _) diff --git a/python/ql/test/query-tests/Variables/undefined/UninitializedLocal.expected b/python/ql/test/query-tests/Variables/undefined/UninitializedLocal.expected index a15c0750e26..f2782e7e888 100644 --- a/python/ql/test/query-tests/Variables/undefined/UninitializedLocal.expected +++ b/python/ql/test/query-tests/Variables/undefined/UninitializedLocal.expected @@ -11,5 +11,4 @@ | UninitializedLocal.py:163:7:163:7 | x | Local variable 'x' may be used before it is initialized. | | UninitializedLocal.py:176:16:176:16 | x | Local variable 'x' may be used before it is initialized. | | UninitializedLocal.py:178:16:178:16 | y | Local variable 'y' may be used before it is initialized. | -| captured.py:8:15:8:17 | foo | Local variable 'foo' may be used before it is initialized. | | odasa3987.py:11:8:11:10 | var | Local variable 'var' may be used before it is initialized. | From 9997326804800498982d789d4eff05abaf0d6ef3 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema <jketema@github.com> Date: Mon, 20 Mar 2023 12:42:10 +0100 Subject: [PATCH 64/97] C++: Refactor `BoostorgAsio` to use `DataFlow::ConfigSig` --- ...oost-deprecated-dataflow-configurations.md | 4 + .../cpp/security/boostorg/asio/protocols.qll | 173 +++++++++++++++++- .../Protocols/TlsSettingsMisconfiguration.ql | 16 +- .../UseOfDeprecatedHardcodedProtocol.ql | 17 +- 4 files changed, 182 insertions(+), 28 deletions(-) create mode 100644 cpp/ql/lib/change-notes/2023-03-20-boost-deprecated-dataflow-configurations.md diff --git a/cpp/ql/lib/change-notes/2023-03-20-boost-deprecated-dataflow-configurations.md b/cpp/ql/lib/change-notes/2023-03-20-boost-deprecated-dataflow-configurations.md new file mode 100644 index 00000000000..b4389ba5b59 --- /dev/null +++ b/cpp/ql/lib/change-notes/2023-03-20-boost-deprecated-dataflow-configurations.md @@ -0,0 +1,4 @@ +--- +category: deprecated +--- +* The `SslContextCallAbstractConfig`, `SslContextCallConfig`, `SslContextCallBannedProtocolConfig`, `SslContextCallTls12ProtocolConfig`, `SslContextCallTls13ProtocolConfig`, `SslContextCallTlsProtocolConfig`, `SslContextFlowsToSetOptionConfig`, `SslOptionConfig` dataflow configurations from `BoostorgAsio` have been deprecated. Please use `SslContextCallConfigSig`, `SslContextCallMake`, `SslContextCallFlow`, `SslContextCallBannedProtocolFlow`, `SslContextCallTls12ProtocolFlow`, `SslContextCallTls13ProtocolFlow`, `SslContextCallTlsProtocolFlow`, `SslContextFlowsToSetOptionFlow`. diff --git a/cpp/ql/lib/semmle/code/cpp/security/boostorg/asio/protocols.qll b/cpp/ql/lib/semmle/code/cpp/security/boostorg/asio/protocols.qll index e2327ecc380..8ba6e635708 100644 --- a/cpp/ql/lib/semmle/code/cpp/security/boostorg/asio/protocols.qll +++ b/cpp/ql/lib/semmle/code/cpp/security/boostorg/asio/protocols.qll @@ -357,7 +357,7 @@ module BoostorgAsio { * Abstract class for flows of protocol values to the first argument of a context * constructor. */ - abstract class SslContextCallAbstractConfig extends DataFlow::Configuration { + abstract deprecated class SslContextCallAbstractConfig extends DataFlow::Configuration { bindingset[this] SslContextCallAbstractConfig() { any() } @@ -369,10 +369,47 @@ module BoostorgAsio { } } + /** + * Signature for flows of protocol values to the first argument of a context + * constructor. + */ + signature module SslContextCallConfigSig { + /** + * Holds if `source` is a relevant data flow source. + */ + predicate isSource(DataFlow::Node source); + + /** + * Holds if `sink` is a relevant data flow sink. + */ + default predicate isSink(DataFlow::Node sink) { + exists(ConstructorCall cc, SslContextClass c, Expr e | e = sink.asExpr() | + c.getAContructorCall() = cc and + cc.getArgument(0) = e + ) + } + } + + /** + * Constructs a standard data flow computation for protocol values to the first argument + * of a context constructor. + */ + module SslContextCallMake<SslContextCallConfigSig Config> { + private module C implements DataFlow::ConfigSig { + predicate isSource = Config::isSource/1; + + predicate isSink = Config::isSink/1; + } + + module F = DataFlow::Make<C>; + + import F + } + /** * Any protocol value that flows to the first argument of a context constructor. */ - class SslContextCallConfig extends SslContextCallAbstractConfig { + deprecated class SslContextCallConfig extends SslContextCallAbstractConfig { SslContextCallConfig() { this = "SslContextCallConfig" } override predicate isSource(DataFlow::Node source) { @@ -383,10 +420,24 @@ module BoostorgAsio { } } + /** + * Any protocol value that flows to the first argument of a context constructor. + */ + private module SslContextCallConfig implements SslContextCallConfigSig { + predicate isSource(DataFlow::Node source) { + exists(Expr e | e = source.asExpr() | + e.fromSource() and + not e.getLocation().getFile().toString().matches("%/boost/asio/%") + ) + } + } + + module SslContextCallFlow = SslContextCallMake<SslContextCallConfig>; + /** * A banned protocol value that flows to the first argument of a context constructor. */ - class SslContextCallBannedProtocolConfig extends SslContextCallAbstractConfig { + deprecated class SslContextCallBannedProtocolConfig extends SslContextCallAbstractConfig { SslContextCallBannedProtocolConfig() { this = "SslContextCallBannedProtocolConfig" } override predicate isSource(DataFlow::Node source) { @@ -398,10 +449,25 @@ module BoostorgAsio { } } + /** + * A banned protocol value that flows to the first argument of a context constructor. + */ + private module SslContextCallBannedProtocolConfig implements SslContextCallConfigSig { + predicate isSource(DataFlow::Node source) { + exists(Expr e | e = source.asExpr() | + e.fromSource() and + not e.getLocation().getFile().toString().matches("%/boost/asio/%") and + isExprBannedBoostProtocol(e) + ) + } + } + + module SslContextCallBannedProtocolFlow = SslContextCallMake<SslContextCallBannedProtocolConfig>; + /** * A TLS 1.2 protocol value that flows to the first argument of a context constructor. */ - class SslContextCallTls12ProtocolConfig extends SslContextCallAbstractConfig { + deprecated class SslContextCallTls12ProtocolConfig extends SslContextCallAbstractConfig { SslContextCallTls12ProtocolConfig() { this = "SslContextCallTls12ProtocolConfig" } override predicate isSource(DataFlow::Node source) { @@ -413,10 +479,25 @@ module BoostorgAsio { } } + /** + * A TLS 1.2 protocol value that flows to the first argument of a context constructor. + */ + private module SslContextCallTls12ProtocolConfig implements SslContextCallConfigSig { + predicate isSource(DataFlow::Node source) { + exists(Expr e | e = source.asExpr() | + e.fromSource() and + not e.getLocation().getFile().toString().matches("%/boost/asio/%") and + isExprTls12BoostProtocol(e) + ) + } + } + + module SslContextCallTls12ProtocolFlow = SslContextCallMake<SslContextCallTls12ProtocolConfig>; + /** * A TLS 1.3 protocol value that flows to the first argument of a context constructor. */ - class SslContextCallTls13ProtocolConfig extends SslContextCallAbstractConfig { + deprecated class SslContextCallTls13ProtocolConfig extends SslContextCallAbstractConfig { SslContextCallTls13ProtocolConfig() { this = "SslContextCallTls12ProtocolConfig" } override predicate isSource(DataFlow::Node source) { @@ -428,10 +509,25 @@ module BoostorgAsio { } } + /** + * A TLS 1.3 protocol value that flows to the first argument of a context constructor. + */ + private module SslContextCallTls13ProtocolConfig implements SslContextCallConfigSig { + predicate isSource(DataFlow::Node source) { + exists(Expr e | e = source.asExpr() | + e.fromSource() and + not e.getLocation().getFile().toString().matches("%/boost/asio/%") and + isExprTls13BoostProtocol(e) + ) + } + } + + module SslContextCallTls13ProtocolFlow = SslContextCallMake<SslContextCallTls13ProtocolConfig>; + /** * A generic TLS protocol value that flows to the first argument of a context constructor. */ - class SslContextCallTlsProtocolConfig extends SslContextCallAbstractConfig { + deprecated class SslContextCallTlsProtocolConfig extends SslContextCallAbstractConfig { SslContextCallTlsProtocolConfig() { this = "SslContextCallTlsProtocolConfig" } override predicate isSource(DataFlow::Node source) { @@ -443,10 +539,25 @@ module BoostorgAsio { } } + /** + * A generic TLS protocol value that flows to the first argument of a context constructor. + */ + private module SslContextCallTlsProtocolConfig implements SslContextCallConfigSig { + predicate isSource(DataFlow::Node source) { + exists(Expr e | e = source.asExpr() | + e.fromSource() and + not e.getLocation().getFile().toString().matches("%/boost/asio/%") and + isExprTlsBoostProtocol(e) + ) + } + } + + module SslContextCallTlsProtocolFlow = SslContextCallMake<SslContextCallTlsProtocolConfig>; + /** * A context constructor call that flows to a call to `SetOptions()`. */ - class SslContextFlowsToSetOptionConfig extends DataFlow::Configuration { + deprecated class SslContextFlowsToSetOptionConfig extends DataFlow::Configuration { SslContextFlowsToSetOptionConfig() { this = "SslContextFlowsToSetOptionConfig" } override predicate isSource(DataFlow::Node source) { @@ -467,10 +578,34 @@ module BoostorgAsio { } } + /** + * A context constructor call that flows to a call to `SetOptions()`. + */ + private module SslContextFlowsToSetOptionConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { + exists(SslContextClass c, ConstructorCall cc | + cc = source.asExpr() and + c.getAContructorCall() = cc + ) + } + + predicate isSink(DataFlow::Node sink) { + exists(FunctionCall fc, SslSetOptionsFunction f, Variable v, VariableAccess va | + va = sink.asExpr() + | + f.getACallToThisFunction() = fc and + v.getAnAccess() = va and + va = fc.getQualifier() + ) + } + } + + module SslContextFlowsToSetOptionFlow = DataFlow::Make<SslContextFlowsToSetOptionConfig>; + /** * An option value that flows to the first parameter of a call to `SetOptions()`. */ - class SslOptionConfig extends DataFlow::Configuration { + deprecated class SslOptionConfig extends DataFlow::Configuration { SslOptionConfig() { this = "SslOptionConfig" } override predicate isSource(DataFlow::Node source) { @@ -488,4 +623,26 @@ module BoostorgAsio { ) } } + + /** + * An option value that flows to the first parameter of a call to `SetOptions()`. + */ + private module SslOptionConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { + exists(Expr e | e = source.asExpr() | + e.fromSource() and + not e.getLocation().getFile().toString().matches("%/boost/asio/%") + ) + } + + predicate isSink(DataFlow::Node sink) { + exists(SslSetOptionsFunction f, FunctionCall call | + sink.asExpr() = call.getArgument(0) and + f.getACallToThisFunction() = call and + not sink.getLocation().getFile().toString().matches("%/boost/asio/%") + ) + } + } + + module SslOptionFlow = DataFlow::Make<SslOptionConfig>; } diff --git a/cpp/ql/src/Likely Bugs/Protocols/TlsSettingsMisconfiguration.ql b/cpp/ql/src/Likely Bugs/Protocols/TlsSettingsMisconfiguration.ql index 984058126fb..e7baf96615e 100644 --- a/cpp/ql/src/Likely Bugs/Protocols/TlsSettingsMisconfiguration.ql +++ b/cpp/ql/src/Likely Bugs/Protocols/TlsSettingsMisconfiguration.ql @@ -33,13 +33,10 @@ predicate isOptionSet(ConstructorCall cc, int flag, FunctionCall fcSetOptions) { ExistsAnyFlow::hasFlow(DataFlow::exprNode(cc), DataFlow::exprNode(contextSetOptions)) and exists(BoostorgAsio::SslSetOptionsFunction f | f.getACallToThisFunction() = fcSetOptions | contextSetOptions = fcSetOptions.getQualifier() and - forall( - Expr optionArgument, BoostorgAsio::SslOptionConfig optionArgConfig, - Expr optionArgumentSource - | + forall(Expr optionArgument, Expr optionArgumentSource | optionArgument = fcSetOptions.getArgument(0) and - optionArgConfig - .hasFlow(DataFlow::exprNode(optionArgumentSource), DataFlow::exprNode(optionArgument)) + BoostorgAsio::SslOptionFlow::hasFlow(DataFlow::exprNode(optionArgumentSource), + DataFlow::exprNode(optionArgument)) | optionArgument.getValue().toInt().bitShiftRight(16).bitAnd(flag) = flag ) @@ -50,11 +47,10 @@ predicate isOptionSet(ConstructorCall cc, int flag, FunctionCall fcSetOptions) { bindingset[flag] predicate isOptionNotSet(ConstructorCall cc, int flag) { not isOptionSet(cc, flag, _) } -from - BoostorgAsio::SslContextCallTlsProtocolConfig configConstructor, Expr protocolSource, - Expr protocolSink, ConstructorCall cc, Expr e, string msg +from Expr protocolSource, Expr protocolSink, ConstructorCall cc, Expr e, string msg where - configConstructor.hasFlow(DataFlow::exprNode(protocolSource), DataFlow::exprNode(protocolSink)) and + BoostorgAsio::SslContextCallTlsProtocolFlow::hasFlow(DataFlow::exprNode(protocolSource), + DataFlow::exprNode(protocolSink)) and cc.getArgument(0) = protocolSink and ( BoostorgAsio::isExprSslV23BoostProtocol(protocolSource) and diff --git a/cpp/ql/src/Likely Bugs/Protocols/UseOfDeprecatedHardcodedProtocol.ql b/cpp/ql/src/Likely Bugs/Protocols/UseOfDeprecatedHardcodedProtocol.ql index 752db39f1f1..140cf8e2ccf 100644 --- a/cpp/ql/src/Likely Bugs/Protocols/UseOfDeprecatedHardcodedProtocol.ql +++ b/cpp/ql/src/Likely Bugs/Protocols/UseOfDeprecatedHardcodedProtocol.ql @@ -12,18 +12,15 @@ import cpp import semmle.code.cpp.security.boostorg.asio.protocols -from - BoostorgAsio::SslContextCallConfig config, Expr protocolSource, Expr protocolSink, - ConstructorCall cc +from Expr protocolSource, Expr protocolSink, ConstructorCall cc where - config.hasFlow(DataFlow::exprNode(protocolSource), DataFlow::exprNode(protocolSink)) and - not exists(BoostorgAsio::SslContextCallTlsProtocolConfig tlsConfig | - tlsConfig.hasFlow(DataFlow::exprNode(protocolSource), DataFlow::exprNode(protocolSink)) - ) and + BoostorgAsio::SslContextCallFlow::hasFlow(DataFlow::exprNode(protocolSource), + DataFlow::exprNode(protocolSink)) and + not BoostorgAsio::SslContextCallTlsProtocolFlow::hasFlow(DataFlow::exprNode(protocolSource), + DataFlow::exprNode(protocolSink)) and cc.getArgument(0) = protocolSink and - exists(BoostorgAsio::SslContextCallBannedProtocolConfig bannedConfig | - bannedConfig.hasFlow(DataFlow::exprNode(protocolSource), DataFlow::exprNode(protocolSink)) - ) + BoostorgAsio::SslContextCallBannedProtocolFlow::hasFlow(DataFlow::exprNode(protocolSource), + DataFlow::exprNode(protocolSink)) select protocolSink, "Usage of $@ specifying a deprecated hardcoded protocol $@ in function $@.", cc, "boost::asio::ssl::context::context", protocolSource, protocolSource.toString(), cc.getEnclosingFunction(), cc.getEnclosingFunction().toString() From bbe95367d6711b41c9fe41121d2f41d887deab50 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema <jketema@github.com> Date: Mon, 20 Mar 2023 14:00:03 +0100 Subject: [PATCH 65/97] C++: Simplify `SslContextCallMake` --- .../semmle/code/cpp/security/boostorg/asio/protocols.qll | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/security/boostorg/asio/protocols.qll b/cpp/ql/lib/semmle/code/cpp/security/boostorg/asio/protocols.qll index 8ba6e635708..6a0841e13e2 100644 --- a/cpp/ql/lib/semmle/code/cpp/security/boostorg/asio/protocols.qll +++ b/cpp/ql/lib/semmle/code/cpp/security/boostorg/asio/protocols.qll @@ -396,14 +396,10 @@ module BoostorgAsio { */ module SslContextCallMake<SslContextCallConfigSig Config> { private module C implements DataFlow::ConfigSig { - predicate isSource = Config::isSource/1; - - predicate isSink = Config::isSink/1; + import Config } - module F = DataFlow::Make<C>; - - import F + import DataFlow::Make<C> } /** From 72e97918e93c98b52455e8a9436cac4d581d3702 Mon Sep 17 00:00:00 2001 From: Rasmus Lerchedahl Petersen <yoff@github.com> Date: Mon, 20 Mar 2023 14:11:10 +0100 Subject: [PATCH 66/97] python: format --- python/ql/src/Variables/UninitializedLocal.ql | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/python/ql/src/Variables/UninitializedLocal.ql b/python/ql/src/Variables/UninitializedLocal.ql index 820eea692a0..3a2461ee3e7 100644 --- a/python/ql/src/Variables/UninitializedLocal.ql +++ b/python/ql/src/Variables/UninitializedLocal.ql @@ -15,7 +15,9 @@ import Undefined import semmle.python.pointsto.PointsTo predicate uninitialized_local(NameNode use) { - exists(FastLocalVariable local | use.uses(local) or use.deletes(local) | not local.escapes() and not local = any(Nonlocal nl).getAVariable()) and + exists(FastLocalVariable local | use.uses(local) or use.deletes(local) | + not local.escapes() and not local = any(Nonlocal nl).getAVariable() + ) and ( any(Uninitialized uninit).taints(use) and PointsToInternal::reachableBlock(use.getBasicBlock(), _) From 39726a54ec464ba6569c6566474c95085d67408f Mon Sep 17 00:00:00 2001 From: Stephan Brandauer <kaeluka@github.com> Date: Mon, 20 Mar 2023 14:12:46 +0100 Subject: [PATCH 67/97] fix suggestion --- java/ql/lib/ext/hudson.util.jna.model.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/ql/lib/ext/hudson.util.jna.model.yml b/java/ql/lib/ext/hudson.util.jna.model.yml index 14f93c7c542..46c6dfdeec2 100644 --- a/java/ql/lib/ext/hudson.util.jna.model.yml +++ b/java/ql/lib/ext/hudson.util.jna.model.yml @@ -4,5 +4,5 @@ extensions: extensible: sinkModel data: - ["hudson.util.jna", "GNUCLibrary", True, "open", "(String,int)", "", "Argument[0]", "read-file", "ai-generated"] - - ["hudson.util.jna", "Kernel32", True, "MoveFileExA", "(String,String,int)", "", "Argument[0]", "delete-file", "ai-generated"] # should be delete-file + - ["hudson.util.jna", "Kernel32", True, "MoveFileExA", "(String,String,int)", "", "Argument[0]", "create-file", "ai-generated"] # should be delete-file - ["hudson.util.jna", "Kernel32", True, "MoveFileExA", "(String,String,int)", "", "Argument[1]", "create-file", "ai-generated"] From b042c60ca3a650b9d8200fffb468a78db1fcddca Mon Sep 17 00:00:00 2001 From: Rasmus Lerchedahl Petersen <yoff@github.com> Date: Mon, 20 Mar 2023 14:13:48 +0100 Subject: [PATCH 68/97] python: remove outdated comment --- python/ql/test/query-tests/Variables/undefined/captured.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/ql/test/query-tests/Variables/undefined/captured.py b/python/ql/test/query-tests/Variables/undefined/captured.py index 1eeeb6fec9b..41c3ea9cad5 100644 --- a/python/ql/test/query-tests/Variables/undefined/captured.py +++ b/python/ql/test/query-tests/Variables/undefined/captured.py @@ -5,7 +5,7 @@ def topLevel(): def bar(): nonlocal foo - print(foo) # FP + print(foo) foo = 4 bar() From ed15cce31f8779fbe384e919b325ce4c776c1af8 Mon Sep 17 00:00:00 2001 From: Rasmus Lerchedahl Petersen <yoff@github.com> Date: Mon, 20 Mar 2023 14:22:58 +0100 Subject: [PATCH 69/97] python: add change note --- python/ql/src/change-notes/2023-03-20-uninitialized-local.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 python/ql/src/change-notes/2023-03-20-uninitialized-local.md diff --git a/python/ql/src/change-notes/2023-03-20-uninitialized-local.md b/python/ql/src/change-notes/2023-03-20-uninitialized-local.md new file mode 100644 index 00000000000..5a817e880e0 --- /dev/null +++ b/python/ql/src/change-notes/2023-03-20-uninitialized-local.md @@ -0,0 +1,4 @@ +--- +category: fix +--- +* Nonlocal variables are excluded from alerts. From aaea976cf2e131a71a1bd88d9bdf21b10bd06918 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli <redsun82@github.com> Date: Mon, 20 Mar 2023 16:30:39 +0100 Subject: [PATCH 70/97] Swift: remove labels from function type printing --- .../decl/ConcreteFuncDecl/ConcreteFuncDecl.expected | 2 +- swift/third_party/load.bzl | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/swift/ql/test/extractor-tests/generated/decl/ConcreteFuncDecl/ConcreteFuncDecl.expected b/swift/ql/test/extractor-tests/generated/decl/ConcreteFuncDecl/ConcreteFuncDecl.expected index 8f91d382599..975da093321 100644 --- a/swift/ql/test/extractor-tests/generated/decl/ConcreteFuncDecl/ConcreteFuncDecl.expected +++ b/swift/ql/test/extractor-tests/generated/decl/ConcreteFuncDecl/ConcreteFuncDecl.expected @@ -2,4 +2,4 @@ | functions.swift:5:1:7:1 | bar(_:d:) | hasName: | yes | hasSelfParam: | no | getNumberOfParams: | 2 | hasBody: | yes | getNumberOfCaptures: | 0 | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | functions | getNumberOfMembers: | 0 | getInterfaceType: | (Int, Double) -> Int | | functions.swift:10:5:10:28 | noBody(x:) | hasName: | yes | hasSelfParam: | yes | getNumberOfParams: | 1 | hasBody: | no | getNumberOfCaptures: | 0 | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | functions | getNumberOfMembers: | 0 | getInterfaceType: | <Self where Self : Beep> (Self) -> (Int) -> Int | | functions.swift:13:1:15:1 | variadic(_:) | hasName: | yes | hasSelfParam: | no | getNumberOfParams: | 1 | hasBody: | yes | getNumberOfCaptures: | 0 | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | functions | getNumberOfMembers: | 0 | getInterfaceType: | (Int...) -> () | -| functions.swift:17:1:19:1 | generic(x:y:) | hasName: | yes | hasSelfParam: | no | getNumberOfParams: | 2 | hasBody: | yes | getNumberOfCaptures: | 0 | getNumberOfGenericTypeParams: | 2 | getModule: | file://:0:0:0:0 | functions | getNumberOfMembers: | 0 | getInterfaceType: | <X, Y> (x: X, y: Y) -> () | +| functions.swift:17:1:19:1 | generic(x:y:) | hasName: | yes | hasSelfParam: | no | getNumberOfParams: | 2 | hasBody: | yes | getNumberOfCaptures: | 0 | getNumberOfGenericTypeParams: | 2 | getModule: | file://:0:0:0:0 | functions | getNumberOfMembers: | 0 | getInterfaceType: | <X, Y> (X, Y) -> () | diff --git a/swift/third_party/load.bzl b/swift/third_party/load.bzl index 8bbb0089957..4e7de8e1b7c 100644 --- a/swift/third_party/load.bzl +++ b/swift/third_party/load.bzl @@ -1,10 +1,10 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") -_swift_prebuilt_version = "swift-5.7.3-RELEASE.124" +_swift_prebuilt_version = "swift-5.7.3-RELEASE.142" _swift_sha_map = { - "Linux-X64": "9d89a101e09a4581b014b04f266f21192530b56124c91653658606ae2af4f75a", - "macOS-ARM64": "95136fadf91d317526ad61d393e9ac31cb564534105777d04650b048d923c58d", - "macOS-X64": "b91725a401b9d33f235f3ad3435a2fe9a36585a83d368a924d6e274e05499773", + "Linux-X64": "398d8de54c8775c939dff95ed5bb0e04a9308a1982b4c1900cd4a5d01223f63b", + "macOS-ARM64": "397dd67ea99b9c9455794c6eb0f1664b6179fe542c7c1d3010314a3e8a905ae4", + "macOS-X64": "4b9d8e4e89f16a7c1e7edc7893aa189b37d5b4412be724a86ef59c49d11a6f75", } _swift_arch_map = { From ec1762e0154af539fed7e9386f6832a27a7eb346 Mon Sep 17 00:00:00 2001 From: Stephan Brandauer <kaeluka@github.com> Date: Thu, 2 Mar 2023 13:09:00 +0100 Subject: [PATCH 71/97] Update MaD Declarations after Triage --- java/ql/lib/ext/java.net.model.yml | 1 + java/ql/lib/ext/java.nio.file.model.yml | 29 +++++++++++++++++++ .../ql/lib/ext/javax.imageio.stream.model.yml | 7 +++++ java/ql/lib/ext/javax.naming.model.yml | 6 ++++ java/ql/lib/ext/javax.servlet.model.yml | 6 ++++ .../lib/ext/javax.swing.filechooser.model.yml | 7 +++++ .../ext/org.geogebra.web.full.main.model.yml | 7 +++++ .../org.springframework.web.client.model.yml | 1 + 8 files changed, 64 insertions(+) create mode 100644 java/ql/lib/ext/javax.imageio.stream.model.yml create mode 100644 java/ql/lib/ext/javax.swing.filechooser.model.yml create mode 100644 java/ql/lib/ext/org.geogebra.web.full.main.model.yml diff --git a/java/ql/lib/ext/java.net.model.yml b/java/ql/lib/ext/java.net.model.yml index b091890a98a..49747801a72 100644 --- a/java/ql/lib/ext/java.net.model.yml +++ b/java/ql/lib/ext/java.net.model.yml @@ -24,6 +24,7 @@ extensions: extensible: summaryModel data: - ["java.net", "InetAddress", True, "getByName", "(String)", "", "Argument[0]", "ReturnValue", "taint", "ai-generated"] + - ["java.net", "InetAddress", True, "getAllByName", "(String)", "", "Argument[0]", "ReturnValue.ArrayElement", "taint", "ai-generated"] - ["java.net", "InetSocketAddress", True, "createUnresolved", "(String,int)", "", "Argument[0]", "ReturnValue", "taint", "ai-generated"] - ["java.net", "InetSocketAddress", True, "InetSocketAddress", "(String,int)", "", "Argument[0]", "Argument[this]", "taint", "ai-generated"] - ["java.net", "URI", False, "resolve", "(String)", "", "Argument[0]", "ReturnValue", "taint", "ai-generated"] diff --git a/java/ql/lib/ext/java.nio.file.model.yml b/java/ql/lib/ext/java.nio.file.model.yml index 46d55500b5f..68e6f7cd796 100644 --- a/java/ql/lib/ext/java.nio.file.model.yml +++ b/java/ql/lib/ext/java.nio.file.model.yml @@ -3,6 +3,16 @@ extensions: pack: codeql/java-all extensible: sinkModel data: + - ["java.nio.file", "Files", True, "createTempFile", "(Path,String,String,FileAttribute[])", "", "Argument[0]", "create-file", "ai-generated"] + - ["java.nio.file", "Files", True, "createDirectory", "(Path,FileAttribute[])", "", "Argument[0]", "create-file", "ai-generated"] + - ["java.nio.file", "Files", True, "createDirectories", "(Path,FileAttribute[])", "", "Argument[0]", "create-file", "ai-generated"] + - ["java.nio.file", "Files", True, "move", "(Path,Path,CopyOption[])", "", "Argument[1]", "create-file", "ai-generated"] + - ["java.nio.file", "Files", True, "createFile", "(Path,FileAttribute[])", "", "Argument[0]", "create-file", "ai-generated"] + - ["java.nio.file", "Files", True, "getLastModifiedTime", "(Path,LinkOption[])", "", "Argument[0]", "read-file", "ai-generated"] + - ["java.nio.file", "Files", True, "isWritable", "(Path)", "", "Argument[0]", "read-file", "ai-generated"] +# suggested label is not supported: - ["java.nio.file", "Files", True, "delete", "(Path)", "", "Argument[0]", "delete-file", "ai-generated"] +# suggested label is not supported: - ["java.nio.file", "Files", True, "move", "(Path,Path,CopyOption[])", "", "Argument[0]", "delete-file", "ai-generated"] + - ["java.nio.file", "Files", True, "isDirectory", "(Path,LinkOption[])", "", "Argument[0]", "read-file", "ai-generated"] - ["java.nio.file", "Files", False, "copy", "", "", "Argument[0]", "read-file", "manual"] - ["java.nio.file", "Files", False, "copy", "", "", "Argument[1]", "create-file", "manual"] - ["java.nio.file", "Files", False, "createDirectories", "", "", "Argument[0]", "create-file", "manual"] @@ -27,6 +37,25 @@ extensions: pack: codeql/java-all extensible: summaryModel data: + - ["java.nio.file", "Files", True, "newByteChannel", "(Path,OpenOption[])", "", "Argument[0]" "ReturnValue", "taint", "ai-generated"] + - ["java.nio.file", "Files", True, "newDirectoryStream", "(Path)", "", "Argument[0]" "ReturnValue", "taint", "ai-generated"] + - ["java.nio.file", "Files", True, "newOutputStream", "(Path,OpenOption[])", "", "Argument[0]" "ReturnValue", "taint", "ai-generated"] + - ["java.nio.file", "Files", True, "newBufferedReader", "(Path)", "", "Argument[0]" "ReturnValue", "taint", "ai-generated"] + - ["java.nio.file", "Files", True, "newInputStream", "(Path,OpenOption[])", "", "Argument[0]" "ReturnValue", "taint", "ai-generated"] + - ["java.nio.file", "FileSystem", True, "getPath", "(String,String[])", "", "Argument[1]" "ReturnValue", "taint", "ai-generated"] + - ["java.nio.file", "FileSystem", True, "getPathMatcher", "(String)", "", "Argument[0]" "ReturnValue", "taint", "ai-generated"] + - ["java.nio.file", "Files", True, "walk", "(Path,FileVisitOption[])", "", "Argument[0]" "ReturnValue", "taint", "ai-generated"] + - ["java.nio.file", "Path", True, "of", "(String,String[])", "", "Argument[0]" "ReturnValue", "taint", "ai-generated"] +# suggested label is not supported: - ["java.nio.file", "Files", True, "walkFileTree", "(Path,FileVisitor)", "", "Argument[0]" "Argument[1].Method[visitFileFailed(Path,IOException)].Parameter[0]", "taint", "ai-generated"] +# suggested label is not supported: - ["java.nio.file", "Files", True, "walkFileTree", "(Path,FileVisitor)", "", "Argument[0]" "Argument[1].Method[postVisitDirectory(Path,IOException)].Parameter[0]", "taint", "ai-generated"] +# suggested label is not supported: - ["java.nio.file", "Files", True, "walkFileTree", "(Path,FileVisitor)", "", "Argument[0]" "Argument[1].Method[preVisitDirectory(Path,BasicFileAttributes)].Parameter[0]", "taint", "ai-generated"] +# suggested label is not supported: - ["java.nio.file", "Files", True, "walkFileTree", "(Path,FileVisitor)", "", "Argument[0]" "Argument[1].Method[visitFile(Path,BasicFileAttributes)].Parameter[0]", "taint", "ai-generated"] + - ["java.nio.file", "Path", True, "of", "(URI)", "", "Argument[0]" "ReturnValue", "taint", "ai-generated"] + - ["java.nio.file", "Files", True, "newBufferedReader", "(Path,Charset)", "", "Argument[0]" "ReturnValue", "taint", "ai-generated"] + - ["java.nio.file", "Files", True, "newDirectoryStream", "(Path,Filter)", "", "Argument[0]" "ReturnValue", "taint", "ai-generated"] + - ["java.nio.file", "Files", True, "newByteChannel", "(Path,Set,FileAttribute[])", "", "Argument[0]" "ReturnValue", "taint", "ai-generated"] + - ["java.nio.file", "Path", True, "of", "(String,String[])", "", "Argument[1]" "ReturnValue", "taint", "ai-generated"] + - ["java.nio.file", "Path", True, "of", "(String,String[])", "", "Argument[0]" "ReturnValue", "taint", "ai-generated"] - ["java.nio.file", "FileSystem", True, "getPath", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["java.nio.file", "Path", True, "getParent", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["java.nio.file", "Path", True, "normalize", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] diff --git a/java/ql/lib/ext/javax.imageio.stream.model.yml b/java/ql/lib/ext/javax.imageio.stream.model.yml new file mode 100644 index 00000000000..7c8ddae605c --- /dev/null +++ b/java/ql/lib/ext/javax.imageio.stream.model.yml @@ -0,0 +1,7 @@ +extensions: + + - addsTo: + pack: codeql/java-all + extensible: summaryModel + data: + - ["javax.imageio.stream", "FileCacheImageInputStream", True, "FileCacheImageInputStream", "(InputStream,File)", "", "Argument[0]" "Argument[-1].Element", "taint", "ai-generated"] diff --git a/java/ql/lib/ext/javax.naming.model.yml b/java/ql/lib/ext/javax.naming.model.yml index c55f76557d6..484b9ca11ff 100644 --- a/java/ql/lib/ext/javax.naming.model.yml +++ b/java/ql/lib/ext/javax.naming.model.yml @@ -9,3 +9,9 @@ extensions: - ["javax.naming", "Context", True, "lookupLink", "", "", "Argument[0]", "jndi-injection", "manual"] - ["javax.naming", "Context", True, "rename", "", "", "Argument[0]", "jndi-injection", "manual"] - ["javax.naming", "InitialContext", True, "doLookup", "", "", "Argument[0]", "jndi-injection", "manual"] + + - addsTo: + pack: codeql/java-all + extensible: summaryModel + data: + - ["javax.naming", "StringRefAddr", True, "StringRefAddr", "(String,String)", "", "Argument[1]" "ReturnValue", "taint", "ai-generated"] diff --git a/java/ql/lib/ext/javax.servlet.model.yml b/java/ql/lib/ext/javax.servlet.model.yml index ba850941729..960a25c8c18 100644 --- a/java/ql/lib/ext/javax.servlet.model.yml +++ b/java/ql/lib/ext/javax.servlet.model.yml @@ -9,3 +9,9 @@ extensions: - ["javax.servlet", "ServletRequest", False, "getParameterNames", "()", "", "ReturnValue", "remote", "manual"] - ["javax.servlet", "ServletRequest", False, "getParameterValues", "(String)", "", "ReturnValue", "remote", "manual"] - ["javax.servlet", "ServletRequest", False, "getReader", "()", "", "ReturnValue", "remote", "manual"] + + - addsTo: + pack: codeql/java-all + extensible: sinkModel + data: + - ["javax.servlet", "ServletContext", True, "getResourceAsStream", "(String)", "", "Argument[0]", "read-file", "ai-generated"] diff --git a/java/ql/lib/ext/javax.swing.filechooser.model.yml b/java/ql/lib/ext/javax.swing.filechooser.model.yml new file mode 100644 index 00000000000..ebe53441293 --- /dev/null +++ b/java/ql/lib/ext/javax.swing.filechooser.model.yml @@ -0,0 +1,7 @@ +extensions: + + - addsTo: + pack: codeql/java-all + extensible: sinkModel + data: + - ["javax.swing.filechooser", "FileSystemView", True, "isTraversable", "(File)", "", "Argument[0]", "read-file", "ai-generated"] # only reads file meta data diff --git a/java/ql/lib/ext/org.geogebra.web.full.main.model.yml b/java/ql/lib/ext/org.geogebra.web.full.main.model.yml new file mode 100644 index 00000000000..9bbb31042e0 --- /dev/null +++ b/java/ql/lib/ext/org.geogebra.web.full.main.model.yml @@ -0,0 +1,7 @@ +extensions: + + - addsTo: + pack: codeql/java-all + extensible: sinkModel + data: + - ["org.geogebra.web.full.main", "FileManager", True, "open", "(String,String)", "", "Argument[0]", "open-url", "ai-generated"] diff --git a/java/ql/lib/ext/org.springframework.web.client.model.yml b/java/ql/lib/ext/org.springframework.web.client.model.yml index 69f4cb64fc6..bb87c03c995 100644 --- a/java/ql/lib/ext/org.springframework.web.client.model.yml +++ b/java/ql/lib/ext/org.springframework.web.client.model.yml @@ -10,6 +10,7 @@ extensions: pack: codeql/java-all extensible: sinkModel data: + - ["org.springframework.web.client", "RestTemplate", True, "exchange", "(String,HttpMethod,HttpEntity,Class,Object[])", "", "Argument[0]", "open-url", "ai-generated"] - ["org.springframework.web.client", "RestTemplate", False, "delete", "", "", "Argument[0]", "open-url", "manual"] - ["org.springframework.web.client", "RestTemplate", False, "doExecute", "", "", "Argument[0]", "open-url", "manual"] - ["org.springframework.web.client", "RestTemplate", False, "exchange", "", "", "Argument[0]", "open-url", "manual"] From 74e261738fca14b76fcfad20f04c9eeadc54a4ed Mon Sep 17 00:00:00 2001 From: Stephan Brandauer <kaeluka@github.com> Date: Thu, 2 Mar 2023 15:19:40 +0100 Subject: [PATCH 72/97] remove predicate --- java/ql/lib/ext/javax.swing.filechooser.model.yml | 7 ------- 1 file changed, 7 deletions(-) delete mode 100644 java/ql/lib/ext/javax.swing.filechooser.model.yml diff --git a/java/ql/lib/ext/javax.swing.filechooser.model.yml b/java/ql/lib/ext/javax.swing.filechooser.model.yml deleted file mode 100644 index ebe53441293..00000000000 --- a/java/ql/lib/ext/javax.swing.filechooser.model.yml +++ /dev/null @@ -1,7 +0,0 @@ -extensions: - - - addsTo: - pack: codeql/java-all - extensible: sinkModel - data: - - ["javax.swing.filechooser", "FileSystemView", True, "isTraversable", "(File)", "", "Argument[0]", "read-file", "ai-generated"] # only reads file meta data From 2236db43ec980967222fd6065942407fc20b9b16 Mon Sep 17 00:00:00 2001 From: Stephan Brandauer <kaeluka@github.com> Date: Thu, 2 Mar 2023 15:21:26 +0100 Subject: [PATCH 73/97] sort the changed MaD declarations --- java/ql/lib/ext/java.net.model.yml | 14 ++-- java/ql/lib/ext/java.nio.file.model.yml | 69 +++++++++++-------- .../ql/lib/ext/javax.imageio.stream.model.yml | 2 +- java/ql/lib/ext/javax.naming.model.yml | 2 +- .../org.springframework.web.client.model.yml | 2 +- 5 files changed, 53 insertions(+), 36 deletions(-) diff --git a/java/ql/lib/ext/java.net.model.yml b/java/ql/lib/ext/java.net.model.yml index 49747801a72..f00fab0d6bd 100644 --- a/java/ql/lib/ext/java.net.model.yml +++ b/java/ql/lib/ext/java.net.model.yml @@ -19,6 +19,12 @@ extensions: - ["java.net", "URLClassLoader", False, "URLClassLoader", "(URL[],ClassLoader)", "", "Argument[0]", "open-url", "manual"] - ["java.net", "URLClassLoader", False, "URLClassLoader", "(URL[],ClassLoader,URLStreamHandlerFactory)", "", "Argument[0]", "open-url", "manual"] - ["java.net", "URLClassLoader", False, "newInstance", "", "", "Argument[0]", "open-url", "manual"] + - ["java.net", "URLClassLoader", False, "URLClassLoader", "(String,URL[],ClassLoader,URLStreamHandlerFactory)", "", "Argument[1]", "open-url", "manual"] + - ["java.net", "URLClassLoader", False, "URLClassLoader", "(String,URL[],ClassLoader)", "", "Argument[1]", "open-url", "manual"] + - ["java.net", "URLClassLoader", False, "URLClassLoader", "(URL[],ClassLoader,URLStreamHandlerFactory)", "", "Argument[0]", "open-url", "manual"] + - ["java.net", "URLClassLoader", False, "URLClassLoader", "(URL[],ClassLoader)", "", "Argument[0]", "open-url", "manual"] + - ["java.net", "URLClassLoader", False, "URLClassLoader", "(URL[])", "", "Argument[0]", "open-url", "manual"] + - ["java.net", "URLClassLoader", True, "URLClassLoader", "(URL[],ClassLoader)", "", "Argument[0]", "open-url", "ai-generated"] - addsTo: pack: codeql/java-all extensible: summaryModel @@ -27,16 +33,16 @@ extensions: - ["java.net", "InetAddress", True, "getAllByName", "(String)", "", "Argument[0]", "ReturnValue.ArrayElement", "taint", "ai-generated"] - ["java.net", "InetSocketAddress", True, "createUnresolved", "(String,int)", "", "Argument[0]", "ReturnValue", "taint", "ai-generated"] - ["java.net", "InetSocketAddress", True, "InetSocketAddress", "(String,int)", "", "Argument[0]", "Argument[this]", "taint", "ai-generated"] - - ["java.net", "URI", False, "resolve", "(String)", "", "Argument[0]", "ReturnValue", "taint", "ai-generated"] - - ["java.net", "URI", False, "resolve", "(URI)", "", "Argument[0]", "ReturnValue", "taint", "ai-generated"] - ["java.net", "URI", False, "URI", "(String)", "", "Argument[0]", "Argument[this]", "taint", "manual"] - ["java.net", "URI", False, "create", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["java.net", "URI", False, "resolve", "(String)", "", "Argument[0]", "ReturnValue", "taint", "ai-generated"] + - ["java.net", "URI", False, "resolve", "(URI)", "", "Argument[0]", "ReturnValue", "taint", "ai-generated"] - ["java.net", "URI", False, "toASCIIString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["java.net", "URI", False, "toString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["java.net", "URI", False, "toURL", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["java.net", "URL", False, "URL", "(String)", "", "Argument[0]", "Argument[this]", "taint", "manual"] - - ["java.net", "URL", False, "toURI", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - - ["java.net", "URL", False, "toExternalForm", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["java.net", "URL", False, "URL", "(URL,String)", "", "Argument[0]", "Argument[this]", "taint", "ai-generated"] - ["java.net", "URL", False, "URL", "(URL,String)", "", "Argument[1]", "Argument[this]", "taint", "ai-generated"] # @atorralba: review for consistency + - ["java.net", "URL", False, "toExternalForm", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["java.net", "URL", False, "toURI", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["java.net", "URLDecoder", False, "decode", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] diff --git a/java/ql/lib/ext/java.nio.file.model.yml b/java/ql/lib/ext/java.nio.file.model.yml index 68e6f7cd796..f12c08111f4 100644 --- a/java/ql/lib/ext/java.nio.file.model.yml +++ b/java/ql/lib/ext/java.nio.file.model.yml @@ -3,16 +3,6 @@ extensions: pack: codeql/java-all extensible: sinkModel data: - - ["java.nio.file", "Files", True, "createTempFile", "(Path,String,String,FileAttribute[])", "", "Argument[0]", "create-file", "ai-generated"] - - ["java.nio.file", "Files", True, "createDirectory", "(Path,FileAttribute[])", "", "Argument[0]", "create-file", "ai-generated"] - - ["java.nio.file", "Files", True, "createDirectories", "(Path,FileAttribute[])", "", "Argument[0]", "create-file", "ai-generated"] - - ["java.nio.file", "Files", True, "move", "(Path,Path,CopyOption[])", "", "Argument[1]", "create-file", "ai-generated"] - - ["java.nio.file", "Files", True, "createFile", "(Path,FileAttribute[])", "", "Argument[0]", "create-file", "ai-generated"] - - ["java.nio.file", "Files", True, "getLastModifiedTime", "(Path,LinkOption[])", "", "Argument[0]", "read-file", "ai-generated"] - - ["java.nio.file", "Files", True, "isWritable", "(Path)", "", "Argument[0]", "read-file", "ai-generated"] -# suggested label is not supported: - ["java.nio.file", "Files", True, "delete", "(Path)", "", "Argument[0]", "delete-file", "ai-generated"] -# suggested label is not supported: - ["java.nio.file", "Files", True, "move", "(Path,Path,CopyOption[])", "", "Argument[0]", "delete-file", "ai-generated"] - - ["java.nio.file", "Files", True, "isDirectory", "(Path,LinkOption[])", "", "Argument[0]", "read-file", "ai-generated"] - ["java.nio.file", "Files", False, "copy", "", "", "Argument[0]", "read-file", "manual"] - ["java.nio.file", "Files", False, "copy", "", "", "Argument[1]", "create-file", "manual"] - ["java.nio.file", "Files", False, "createDirectories", "", "", "Argument[0]", "create-file", "manual"] @@ -33,30 +23,31 @@ extensions: - ["java.nio.file", "Files", False, "write", "", "", "Argument[1]", "write-file", "manual"] - ["java.nio.file", "Files", False, "writeString", "", "", "Argument[0]", "create-file", "manual"] - ["java.nio.file", "Files", False, "writeString", "", "", "Argument[1]", "write-file", "manual"] + - ["java.nio.file", "Files", True, "createDirectories", "(Path,FileAttribute[])", "", "Argument[0]", "create-file", "ai-generated"] + - ["java.nio.file", "Files", True, "createDirectory", "(Path,FileAttribute[])", "", "Argument[0]", "create-file", "ai-generated"] + - ["java.nio.file", "Files", True, "createFile", "(Path,FileAttribute[])", "", "Argument[0]", "create-file", "ai-generated"] + - ["java.nio.file", "Files", True, "createTempFile", "(Path,String,String,FileAttribute[])", "", "Argument[0]", "create-file", "ai-generated"] + - ["java.nio.file", "Files", True, "getLastModifiedTime", "(Path,LinkOption[])", "", "Argument[0]", "read-file", "ai-generated"] + - ["java.nio.file", "Files", True, "isDirectory", "(Path,LinkOption[])", "", "Argument[0]", "read-file", "ai-generated"] + - ["java.nio.file", "Files", True, "isWritable", "(Path)", "", "Argument[0]", "read-file", "ai-generated"] + - ["java.nio.file", "Files", True, "move", "(Path,Path,CopyOption[])", "", "Argument[1]", "create-file", "ai-generated"] +# suggested label is not supported: - ["java.nio.file", "Files", True, "delete", "(Path)", "", "Argument[0]", "delete-file", "ai-generated"] +# suggested label is not supported: - ["java.nio.file", "Files", True, "move", "(Path,Path,CopyOption[])", "", "Argument[0]", "delete-file", "ai-generated"] - addsTo: pack: codeql/java-all extensible: summaryModel data: - - ["java.nio.file", "Files", True, "newByteChannel", "(Path,OpenOption[])", "", "Argument[0]" "ReturnValue", "taint", "ai-generated"] - - ["java.nio.file", "Files", True, "newDirectoryStream", "(Path)", "", "Argument[0]" "ReturnValue", "taint", "ai-generated"] - - ["java.nio.file", "Files", True, "newOutputStream", "(Path,OpenOption[])", "", "Argument[0]" "ReturnValue", "taint", "ai-generated"] - - ["java.nio.file", "Files", True, "newBufferedReader", "(Path)", "", "Argument[0]" "ReturnValue", "taint", "ai-generated"] - - ["java.nio.file", "Files", True, "newInputStream", "(Path,OpenOption[])", "", "Argument[0]" "ReturnValue", "taint", "ai-generated"] - - ["java.nio.file", "FileSystem", True, "getPath", "(String,String[])", "", "Argument[1]" "ReturnValue", "taint", "ai-generated"] - - ["java.nio.file", "FileSystem", True, "getPathMatcher", "(String)", "", "Argument[0]" "ReturnValue", "taint", "ai-generated"] - - ["java.nio.file", "Files", True, "walk", "(Path,FileVisitOption[])", "", "Argument[0]" "ReturnValue", "taint", "ai-generated"] - - ["java.nio.file", "Path", True, "of", "(String,String[])", "", "Argument[0]" "ReturnValue", "taint", "ai-generated"] -# suggested label is not supported: - ["java.nio.file", "Files", True, "walkFileTree", "(Path,FileVisitor)", "", "Argument[0]" "Argument[1].Method[visitFileFailed(Path,IOException)].Parameter[0]", "taint", "ai-generated"] -# suggested label is not supported: - ["java.nio.file", "Files", True, "walkFileTree", "(Path,FileVisitor)", "", "Argument[0]" "Argument[1].Method[postVisitDirectory(Path,IOException)].Parameter[0]", "taint", "ai-generated"] -# suggested label is not supported: - ["java.nio.file", "Files", True, "walkFileTree", "(Path,FileVisitor)", "", "Argument[0]" "Argument[1].Method[preVisitDirectory(Path,BasicFileAttributes)].Parameter[0]", "taint", "ai-generated"] -# suggested label is not supported: - ["java.nio.file", "Files", True, "walkFileTree", "(Path,FileVisitor)", "", "Argument[0]" "Argument[1].Method[visitFile(Path,BasicFileAttributes)].Parameter[0]", "taint", "ai-generated"] - - ["java.nio.file", "Path", True, "of", "(URI)", "", "Argument[0]" "ReturnValue", "taint", "ai-generated"] - - ["java.nio.file", "Files", True, "newBufferedReader", "(Path,Charset)", "", "Argument[0]" "ReturnValue", "taint", "ai-generated"] - - ["java.nio.file", "Files", True, "newDirectoryStream", "(Path,Filter)", "", "Argument[0]" "ReturnValue", "taint", "ai-generated"] - - ["java.nio.file", "Files", True, "newByteChannel", "(Path,Set,FileAttribute[])", "", "Argument[0]" "ReturnValue", "taint", "ai-generated"] - - ["java.nio.file", "Path", True, "of", "(String,String[])", "", "Argument[1]" "ReturnValue", "taint", "ai-generated"] - - ["java.nio.file", "Path", True, "of", "(String,String[])", "", "Argument[0]" "ReturnValue", "taint", "ai-generated"] + - ["java.nio.file", "Files", True, "newBufferedReader", "(Path,Charset)", "", "Argument[0]", "ReturnValue", "taint", "ai-generated"] + - ["java.nio.file", "Files", True, "newBufferedReader", "(Path)", "", "Argument[0]", "ReturnValue", "taint", "ai-generated"] + - ["java.nio.file", "Files", True, "newByteChannel", "(Path,OpenOption[])", "", "Argument[0]", "ReturnValue", "taint", "ai-generated"] + - ["java.nio.file", "Files", True, "newByteChannel", "(Path,Set,FileAttribute[])", "", "Argument[0]", "ReturnValue", "taint", "ai-generated"] + - ["java.nio.file", "Files", True, "newDirectoryStream", "(Path,Filter)", "", "Argument[0]", "ReturnValue", "taint", "ai-generated"] + - ["java.nio.file", "Files", True, "newDirectoryStream", "(Path)", "", "Argument[0]", "ReturnValue", "taint", "ai-generated"] + - ["java.nio.file", "Files", True, "newInputStream", "(Path,OpenOption[])", "", "Argument[0]", "ReturnValue", "taint", "ai-generated"] + - ["java.nio.file", "Files", True, "newOutputStream", "(Path,OpenOption[])", "", "Argument[0]", "ReturnValue", "taint", "ai-generated"] + - ["java.nio.file", "Files", True, "walk", "(Path,FileVisitOption[])", "", "Argument[0]", "ReturnValue", "taint", "ai-generated"] - ["java.nio.file", "FileSystem", True, "getPath", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] +<<<<<<< HEAD - ["java.nio.file", "Path", True, "getParent", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["java.nio.file", "Path", True, "normalize", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["java.nio.file", "Path", True, "resolve", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] @@ -65,5 +56,25 @@ extensions: - ["java.nio.file", "Path", False, "toFile", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["java.nio.file", "Path", True, "toString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["java.nio.file", "Path", True, "toUri", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] +======= + - ["java.nio.file", "FileSystem", True, "getPath", "(String,String[])", "", "Argument[1]", "ReturnValue", "taint", "ai-generated"] + - ["java.nio.file", "FileSystem", True, "getPathMatcher", "(String)", "", "Argument[0]", "ReturnValue", "taint", "ai-generated"] + - ["java.nio.file", "FileSystem", True, "getRootDirectories", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["java.nio.file", "Path", False, "toFile", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["java.nio.file", "Path", True, "getParent", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["java.nio.file", "Path", True, "normalize", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["java.nio.file", "Path", True, "of", "(String,String[])", "", "Argument[0]", "ReturnValue", "taint", "ai-generated"] + - ["java.nio.file", "Path", True, "of", "(String,String[])", "", "Argument[0]", "ReturnValue", "taint", "ai-generated"] + - ["java.nio.file", "Path", True, "of", "(String,String[])", "", "Argument[1]", "ReturnValue", "taint", "ai-generated"] + - ["java.nio.file", "Path", True, "of", "(URI)", "", "Argument[0]", "ReturnValue", "taint", "ai-generated"] + - ["java.nio.file", "Path", True, "resolve", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] + - ["java.nio.file", "Path", True, "toAbsolutePath", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["java.nio.file", "Path", True, "toString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["java.nio.file", "Path", True, "toUri", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] +>>>>>>> cc4ba800cf (sort the changed MaD declarations) - ["java.nio.file", "Paths", True, "get", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["java.nio.file", "Paths", True, "get", "", "", "Argument[1].ArrayElement", "ReturnValue", "taint", "manual"] +# suggested label is not supported: - ["java.nio.file", "Files", True, "walkFileTree", "(Path,FileVisitor)", "", "Argument[0]" "Argument[1].Method[postVisitDirectory(Path,IOException)].Parameter[0]", "taint", "ai-generated"] +# suggested label is not supported: - ["java.nio.file", "Files", True, "walkFileTree", "(Path,FileVisitor)", "", "Argument[0]" "Argument[1].Method[preVisitDirectory(Path,BasicFileAttributes)].Parameter[0]", "taint", "ai-generated"] +# suggested label is not supported: - ["java.nio.file", "Files", True, "walkFileTree", "(Path,FileVisitor)", "", "Argument[0]" "Argument[1].Method[visitFile(Path,BasicFileAttributes)].Parameter[0]", "taint", "ai-generated"] +# suggested label is not supported: - ["java.nio.file", "Files", True, "walkFileTree", "(Path,FileVisitor)", "", "Argument[0]" "Argument[1].Method[visitFileFailed(Path,IOException)].Parameter[0]", "taint", "ai-generated"] diff --git a/java/ql/lib/ext/javax.imageio.stream.model.yml b/java/ql/lib/ext/javax.imageio.stream.model.yml index 7c8ddae605c..22ef30e52ce 100644 --- a/java/ql/lib/ext/javax.imageio.stream.model.yml +++ b/java/ql/lib/ext/javax.imageio.stream.model.yml @@ -4,4 +4,4 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["javax.imageio.stream", "FileCacheImageInputStream", True, "FileCacheImageInputStream", "(InputStream,File)", "", "Argument[0]" "Argument[-1].Element", "taint", "ai-generated"] + - ["javax.imageio.stream", "FileCacheImageInputStream", True, "FileCacheImageInputStream", "(InputStream,File)", "", "Argument[0]", "Argument[-1].Element", "taint", "ai-generated"] diff --git a/java/ql/lib/ext/javax.naming.model.yml b/java/ql/lib/ext/javax.naming.model.yml index 484b9ca11ff..7b7dd0e529a 100644 --- a/java/ql/lib/ext/javax.naming.model.yml +++ b/java/ql/lib/ext/javax.naming.model.yml @@ -14,4 +14,4 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["javax.naming", "StringRefAddr", True, "StringRefAddr", "(String,String)", "", "Argument[1]" "ReturnValue", "taint", "ai-generated"] + - ["javax.naming", "StringRefAddr", True, "StringRefAddr", "(String,String)", "", "Argument[1]", "ReturnValue", "taint", "ai-generated"] diff --git a/java/ql/lib/ext/org.springframework.web.client.model.yml b/java/ql/lib/ext/org.springframework.web.client.model.yml index bb87c03c995..5352fd0f814 100644 --- a/java/ql/lib/ext/org.springframework.web.client.model.yml +++ b/java/ql/lib/ext/org.springframework.web.client.model.yml @@ -10,7 +10,6 @@ extensions: pack: codeql/java-all extensible: sinkModel data: - - ["org.springframework.web.client", "RestTemplate", True, "exchange", "(String,HttpMethod,HttpEntity,Class,Object[])", "", "Argument[0]", "open-url", "ai-generated"] - ["org.springframework.web.client", "RestTemplate", False, "delete", "", "", "Argument[0]", "open-url", "manual"] - ["org.springframework.web.client", "RestTemplate", False, "doExecute", "", "", "Argument[0]", "open-url", "manual"] - ["org.springframework.web.client", "RestTemplate", False, "exchange", "", "", "Argument[0]", "open-url", "manual"] @@ -24,3 +23,4 @@ extensions: - ["org.springframework.web.client", "RestTemplate", False, "postForLocation", "", "", "Argument[0]", "open-url", "manual"] - ["org.springframework.web.client", "RestTemplate", False, "postForObject", "", "", "Argument[0]", "open-url", "manual"] - ["org.springframework.web.client", "RestTemplate", False, "put", "", "", "Argument[0]", "open-url", "manual"] + - ["org.springframework.web.client", "RestTemplate", True, "exchange", "(String,HttpMethod,HttpEntity,Class,Object[])", "", "Argument[0]", "open-url", "ai-generated"] From b7ce0c2d9682370442fd626fc6d0301d174b9d0c Mon Sep 17 00:00:00 2001 From: Stephan Brandauer <kaeluka@github.com> Date: Mon, 6 Mar 2023 08:36:13 +0100 Subject: [PATCH 74/97] fix: taint flow of ctor goes to Argument[-1], instead of ReturnValue --- java/ql/lib/ext/javax.naming.model.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/ql/lib/ext/javax.naming.model.yml b/java/ql/lib/ext/javax.naming.model.yml index 7b7dd0e529a..2c1e4ddf7e0 100644 --- a/java/ql/lib/ext/javax.naming.model.yml +++ b/java/ql/lib/ext/javax.naming.model.yml @@ -14,4 +14,4 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["javax.naming", "StringRefAddr", True, "StringRefAddr", "(String,String)", "", "Argument[1]", "ReturnValue", "taint", "ai-generated"] + - ["javax.naming", "StringRefAddr", True, "StringRefAddr", "(String,String)", "", "Argument[1]", "Argument[-1]", "taint", "ai-generated"] From bd21dc9460df04da41e68f32d926f90dc99914c1 Mon Sep 17 00:00:00 2001 From: Stephan Brandauer <kaeluka@github.com> Date: Tue, 14 Mar 2023 12:12:40 +0100 Subject: [PATCH 75/97] remove nonexploitable sinks --- java/ql/lib/ext/java.nio.file.model.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/java/ql/lib/ext/java.nio.file.model.yml b/java/ql/lib/ext/java.nio.file.model.yml index f12c08111f4..276e0f0f117 100644 --- a/java/ql/lib/ext/java.nio.file.model.yml +++ b/java/ql/lib/ext/java.nio.file.model.yml @@ -27,9 +27,6 @@ extensions: - ["java.nio.file", "Files", True, "createDirectory", "(Path,FileAttribute[])", "", "Argument[0]", "create-file", "ai-generated"] - ["java.nio.file", "Files", True, "createFile", "(Path,FileAttribute[])", "", "Argument[0]", "create-file", "ai-generated"] - ["java.nio.file", "Files", True, "createTempFile", "(Path,String,String,FileAttribute[])", "", "Argument[0]", "create-file", "ai-generated"] - - ["java.nio.file", "Files", True, "getLastModifiedTime", "(Path,LinkOption[])", "", "Argument[0]", "read-file", "ai-generated"] - - ["java.nio.file", "Files", True, "isDirectory", "(Path,LinkOption[])", "", "Argument[0]", "read-file", "ai-generated"] - - ["java.nio.file", "Files", True, "isWritable", "(Path)", "", "Argument[0]", "read-file", "ai-generated"] - ["java.nio.file", "Files", True, "move", "(Path,Path,CopyOption[])", "", "Argument[1]", "create-file", "ai-generated"] # suggested label is not supported: - ["java.nio.file", "Files", True, "delete", "(Path)", "", "Argument[0]", "delete-file", "ai-generated"] # suggested label is not supported: - ["java.nio.file", "Files", True, "move", "(Path,Path,CopyOption[])", "", "Argument[0]", "delete-file", "ai-generated"] From 4761c3a328b79a8d402ba60baf893e699944e8d6 Mon Sep 17 00:00:00 2001 From: Stephan Brandauer <kaeluka@github.com> Date: Tue, 14 Mar 2023 12:18:21 +0100 Subject: [PATCH 76/97] remove duplicates --- java/ql/lib/ext/java.nio.file.model.yml | 4 ---- java/ql/lib/ext/org.springframework.web.client.model.yml | 1 - 2 files changed, 5 deletions(-) diff --git a/java/ql/lib/ext/java.nio.file.model.yml b/java/ql/lib/ext/java.nio.file.model.yml index 276e0f0f117..94554a0249c 100644 --- a/java/ql/lib/ext/java.nio.file.model.yml +++ b/java/ql/lib/ext/java.nio.file.model.yml @@ -23,10 +23,6 @@ extensions: - ["java.nio.file", "Files", False, "write", "", "", "Argument[1]", "write-file", "manual"] - ["java.nio.file", "Files", False, "writeString", "", "", "Argument[0]", "create-file", "manual"] - ["java.nio.file", "Files", False, "writeString", "", "", "Argument[1]", "write-file", "manual"] - - ["java.nio.file", "Files", True, "createDirectories", "(Path,FileAttribute[])", "", "Argument[0]", "create-file", "ai-generated"] - - ["java.nio.file", "Files", True, "createDirectory", "(Path,FileAttribute[])", "", "Argument[0]", "create-file", "ai-generated"] - - ["java.nio.file", "Files", True, "createFile", "(Path,FileAttribute[])", "", "Argument[0]", "create-file", "ai-generated"] - - ["java.nio.file", "Files", True, "createTempFile", "(Path,String,String,FileAttribute[])", "", "Argument[0]", "create-file", "ai-generated"] - ["java.nio.file", "Files", True, "move", "(Path,Path,CopyOption[])", "", "Argument[1]", "create-file", "ai-generated"] # suggested label is not supported: - ["java.nio.file", "Files", True, "delete", "(Path)", "", "Argument[0]", "delete-file", "ai-generated"] # suggested label is not supported: - ["java.nio.file", "Files", True, "move", "(Path,Path,CopyOption[])", "", "Argument[0]", "delete-file", "ai-generated"] diff --git a/java/ql/lib/ext/org.springframework.web.client.model.yml b/java/ql/lib/ext/org.springframework.web.client.model.yml index 5352fd0f814..69f4cb64fc6 100644 --- a/java/ql/lib/ext/org.springframework.web.client.model.yml +++ b/java/ql/lib/ext/org.springframework.web.client.model.yml @@ -23,4 +23,3 @@ extensions: - ["org.springframework.web.client", "RestTemplate", False, "postForLocation", "", "", "Argument[0]", "open-url", "manual"] - ["org.springframework.web.client", "RestTemplate", False, "postForObject", "", "", "Argument[0]", "open-url", "manual"] - ["org.springframework.web.client", "RestTemplate", False, "put", "", "", "Argument[0]", "open-url", "manual"] - - ["org.springframework.web.client", "RestTemplate", True, "exchange", "(String,HttpMethod,HttpEntity,Class,Object[])", "", "Argument[0]", "open-url", "ai-generated"] From 12bb0d98c0212a7243dbb42a7ebb3fdd500174b7 Mon Sep 17 00:00:00 2001 From: Stephan Brandauer <kaeluka@github.com> Date: Tue, 14 Mar 2023 12:31:09 +0100 Subject: [PATCH 77/97] move toFile back to its original location --- java/ql/lib/ext/java.net.model.yml | 1 - java/ql/lib/ext/java.nio.file.model.yml | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/java/ql/lib/ext/java.net.model.yml b/java/ql/lib/ext/java.net.model.yml index f00fab0d6bd..79087f3f4a1 100644 --- a/java/ql/lib/ext/java.net.model.yml +++ b/java/ql/lib/ext/java.net.model.yml @@ -24,7 +24,6 @@ extensions: - ["java.net", "URLClassLoader", False, "URLClassLoader", "(URL[],ClassLoader,URLStreamHandlerFactory)", "", "Argument[0]", "open-url", "manual"] - ["java.net", "URLClassLoader", False, "URLClassLoader", "(URL[],ClassLoader)", "", "Argument[0]", "open-url", "manual"] - ["java.net", "URLClassLoader", False, "URLClassLoader", "(URL[])", "", "Argument[0]", "open-url", "manual"] - - ["java.net", "URLClassLoader", True, "URLClassLoader", "(URL[],ClassLoader)", "", "Argument[0]", "open-url", "ai-generated"] - addsTo: pack: codeql/java-all extensible: summaryModel diff --git a/java/ql/lib/ext/java.nio.file.model.yml b/java/ql/lib/ext/java.nio.file.model.yml index 94554a0249c..2fe91bc703a 100644 --- a/java/ql/lib/ext/java.nio.file.model.yml +++ b/java/ql/lib/ext/java.nio.file.model.yml @@ -53,7 +53,6 @@ extensions: - ["java.nio.file", "FileSystem", True, "getPath", "(String,String[])", "", "Argument[1]", "ReturnValue", "taint", "ai-generated"] - ["java.nio.file", "FileSystem", True, "getPathMatcher", "(String)", "", "Argument[0]", "ReturnValue", "taint", "ai-generated"] - ["java.nio.file", "FileSystem", True, "getRootDirectories", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["java.nio.file", "Path", False, "toFile", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - ["java.nio.file", "Path", True, "getParent", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - ["java.nio.file", "Path", True, "normalize", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - ["java.nio.file", "Path", True, "of", "(String,String[])", "", "Argument[0]", "ReturnValue", "taint", "ai-generated"] @@ -62,6 +61,7 @@ extensions: - ["java.nio.file", "Path", True, "of", "(URI)", "", "Argument[0]", "ReturnValue", "taint", "ai-generated"] - ["java.nio.file", "Path", True, "resolve", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] - ["java.nio.file", "Path", True, "toAbsolutePath", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["java.nio.file", "Path", False, "toFile", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - ["java.nio.file", "Path", True, "toString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - ["java.nio.file", "Path", True, "toUri", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] >>>>>>> cc4ba800cf (sort the changed MaD declarations) From bc99a44f3a96bec1f64438c7150e951a4d4341a0 Mon Sep 17 00:00:00 2001 From: Tony Torralba <atorralba@users.noreply.github.com> Date: Mon, 20 Mar 2023 09:46:19 +0100 Subject: [PATCH 78/97] Apply suggestions from code review --- java/ql/lib/ext/java.nio.file.model.yml | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/java/ql/lib/ext/java.nio.file.model.yml b/java/ql/lib/ext/java.nio.file.model.yml index 2fe91bc703a..37718c0bc42 100644 --- a/java/ql/lib/ext/java.nio.file.model.yml +++ b/java/ql/lib/ext/java.nio.file.model.yml @@ -24,8 +24,8 @@ extensions: - ["java.nio.file", "Files", False, "writeString", "", "", "Argument[0]", "create-file", "manual"] - ["java.nio.file", "Files", False, "writeString", "", "", "Argument[1]", "write-file", "manual"] - ["java.nio.file", "Files", True, "move", "(Path,Path,CopyOption[])", "", "Argument[1]", "create-file", "ai-generated"] -# suggested label is not supported: - ["java.nio.file", "Files", True, "delete", "(Path)", "", "Argument[0]", "delete-file", "ai-generated"] -# suggested label is not supported: - ["java.nio.file", "Files", True, "move", "(Path,Path,CopyOption[])", "", "Argument[0]", "delete-file", "ai-generated"] + - ["java.nio.file", "Files", True, "move", "(Path,Path,CopyOption[])", "", "Argument[0]", "create-file", "ai-generated"] # should be delete-file + - ["java.nio.file", "Files", True, "delete", "(Path)", "", "Argument[0]", "create-file", "ai-generated"] # should be delete-file - addsTo: pack: codeql/java-all extensible: summaryModel @@ -67,7 +67,8 @@ extensions: >>>>>>> cc4ba800cf (sort the changed MaD declarations) - ["java.nio.file", "Paths", True, "get", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["java.nio.file", "Paths", True, "get", "", "", "Argument[1].ArrayElement", "ReturnValue", "taint", "manual"] -# suggested label is not supported: - ["java.nio.file", "Files", True, "walkFileTree", "(Path,FileVisitor)", "", "Argument[0]" "Argument[1].Method[postVisitDirectory(Path,IOException)].Parameter[0]", "taint", "ai-generated"] -# suggested label is not supported: - ["java.nio.file", "Files", True, "walkFileTree", "(Path,FileVisitor)", "", "Argument[0]" "Argument[1].Method[preVisitDirectory(Path,BasicFileAttributes)].Parameter[0]", "taint", "ai-generated"] -# suggested label is not supported: - ["java.nio.file", "Files", True, "walkFileTree", "(Path,FileVisitor)", "", "Argument[0]" "Argument[1].Method[visitFile(Path,BasicFileAttributes)].Parameter[0]", "taint", "ai-generated"] -# suggested label is not supported: - ["java.nio.file", "Files", True, "walkFileTree", "(Path,FileVisitor)", "", "Argument[0]" "Argument[1].Method[visitFileFailed(Path,IOException)].Parameter[0]", "taint", "ai-generated"] + # Not supported by current lambda flow + # - ["java.nio.file", "Files", True, "walkFileTree", "(Path,FileVisitor)", "", "Argument[0]", "Argument[1].Method[postVisitDirectory(Path,IOException)].Parameter[0]", "taint", "ai-generated"] + # - ["java.nio.file", "Files", True, "walkFileTree", "(Path,FileVisitor)", "", "Argument[0]", "Argument[1].Method[preVisitDirectory(Path,BasicFileAttributes)].Parameter[0]", "taint", "ai-generated"] + # - ["java.nio.file", "Files", True, "walkFileTree", "(Path,FileVisitor)", "", "Argument[0]" "Argument[1].Method[visitFile(Path,BasicFileAttributes)].Parameter[0]", "taint", "ai-generated"] + # - ["java.nio.file", "Files", True, "walkFileTree", "(Path,FileVisitor)", "", "Argument[0]", "Argument[1].Method[visitFileFailed(Path,IOException)].Parameter[0]", "taint", "ai-generated"] From bc227179c74bee55b5932d73b26311fe56665305 Mon Sep 17 00:00:00 2001 From: Stephan Brandauer <kaeluka@github.com> Date: Mon, 20 Mar 2023 09:49:27 +0100 Subject: [PATCH 79/97] Update java/ql/lib/ext/org.geogebra.web.full.main.model.yml Co-authored-by: Tony Torralba <atorralba@users.noreply.github.com> --- java/ql/lib/ext/org.geogebra.web.full.main.model.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/ql/lib/ext/org.geogebra.web.full.main.model.yml b/java/ql/lib/ext/org.geogebra.web.full.main.model.yml index 9bbb31042e0..f9d9437d752 100644 --- a/java/ql/lib/ext/org.geogebra.web.full.main.model.yml +++ b/java/ql/lib/ext/org.geogebra.web.full.main.model.yml @@ -4,4 +4,4 @@ extensions: pack: codeql/java-all extensible: sinkModel data: - - ["org.geogebra.web.full.main", "FileManager", True, "open", "(String,String)", "", "Argument[0]", "open-url", "ai-generated"] + - ["org.geogebra.web.full.main", "FileManager", True, "open", "(String,String)", "", "Argument[0]", "url-redirect", "ai-generated"] From 8802fbdfe76ecf3ff1b0627eb95ff9f6ec277c25 Mon Sep 17 00:00:00 2001 From: Stephan Brandauer <kaeluka@github.com> Date: Mon, 20 Mar 2023 09:49:39 +0100 Subject: [PATCH 80/97] Update java/ql/lib/ext/java.nio.file.model.yml Co-authored-by: Tony Torralba <atorralba@users.noreply.github.com> --- java/ql/lib/ext/java.nio.file.model.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/java/ql/lib/ext/java.nio.file.model.yml b/java/ql/lib/ext/java.nio.file.model.yml index 37718c0bc42..0dcf1d33793 100644 --- a/java/ql/lib/ext/java.nio.file.model.yml +++ b/java/ql/lib/ext/java.nio.file.model.yml @@ -56,7 +56,6 @@ extensions: - ["java.nio.file", "Path", True, "getParent", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - ["java.nio.file", "Path", True, "normalize", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - ["java.nio.file", "Path", True, "of", "(String,String[])", "", "Argument[0]", "ReturnValue", "taint", "ai-generated"] - - ["java.nio.file", "Path", True, "of", "(String,String[])", "", "Argument[0]", "ReturnValue", "taint", "ai-generated"] - ["java.nio.file", "Path", True, "of", "(String,String[])", "", "Argument[1]", "ReturnValue", "taint", "ai-generated"] - ["java.nio.file", "Path", True, "of", "(URI)", "", "Argument[0]", "ReturnValue", "taint", "ai-generated"] - ["java.nio.file", "Path", True, "resolve", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] From 0cab45e4b97b09b4259003745d8daa487c241017 Mon Sep 17 00:00:00 2001 From: Stephan Brandauer <kaeluka@github.com> Date: Mon, 20 Mar 2023 09:54:31 +0100 Subject: [PATCH 81/97] update old data to current standard (stream creation arg is a sink) --- java/ql/lib/ext/java.nio.file.model.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/java/ql/lib/ext/java.nio.file.model.yml b/java/ql/lib/ext/java.nio.file.model.yml index 0dcf1d33793..9e3a8ac1c60 100644 --- a/java/ql/lib/ext/java.nio.file.model.yml +++ b/java/ql/lib/ext/java.nio.file.model.yml @@ -26,6 +26,7 @@ extensions: - ["java.nio.file", "Files", True, "move", "(Path,Path,CopyOption[])", "", "Argument[1]", "create-file", "ai-generated"] - ["java.nio.file", "Files", True, "move", "(Path,Path,CopyOption[])", "", "Argument[0]", "create-file", "ai-generated"] # should be delete-file - ["java.nio.file", "Files", True, "delete", "(Path)", "", "Argument[0]", "create-file", "ai-generated"] # should be delete-file + - ["java.nio.file", "Files", True, "newInputStream", "(Path,OpenOption[])", "", "Argument[0]", "ReturnValue", "taint", "ai-generated"] - addsTo: pack: codeql/java-all extensible: summaryModel @@ -36,8 +37,6 @@ extensions: - ["java.nio.file", "Files", True, "newByteChannel", "(Path,Set,FileAttribute[])", "", "Argument[0]", "ReturnValue", "taint", "ai-generated"] - ["java.nio.file", "Files", True, "newDirectoryStream", "(Path,Filter)", "", "Argument[0]", "ReturnValue", "taint", "ai-generated"] - ["java.nio.file", "Files", True, "newDirectoryStream", "(Path)", "", "Argument[0]", "ReturnValue", "taint", "ai-generated"] - - ["java.nio.file", "Files", True, "newInputStream", "(Path,OpenOption[])", "", "Argument[0]", "ReturnValue", "taint", "ai-generated"] - - ["java.nio.file", "Files", True, "newOutputStream", "(Path,OpenOption[])", "", "Argument[0]", "ReturnValue", "taint", "ai-generated"] - ["java.nio.file", "Files", True, "walk", "(Path,FileVisitOption[])", "", "Argument[0]", "ReturnValue", "taint", "ai-generated"] - ["java.nio.file", "FileSystem", True, "getPath", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] <<<<<<< HEAD From a66b7ed54a43e28b1106a484bc6c5d029edcf1f1 Mon Sep 17 00:00:00 2001 From: Tony Torralba <atorralba@users.noreply.github.com> Date: Mon, 20 Mar 2023 10:41:10 +0100 Subject: [PATCH 82/97] Fix incorrect model, add missing model --- java/ql/lib/ext/java.nio.file.model.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/java/ql/lib/ext/java.nio.file.model.yml b/java/ql/lib/ext/java.nio.file.model.yml index 9e3a8ac1c60..95f00987aa9 100644 --- a/java/ql/lib/ext/java.nio.file.model.yml +++ b/java/ql/lib/ext/java.nio.file.model.yml @@ -26,7 +26,8 @@ extensions: - ["java.nio.file", "Files", True, "move", "(Path,Path,CopyOption[])", "", "Argument[1]", "create-file", "ai-generated"] - ["java.nio.file", "Files", True, "move", "(Path,Path,CopyOption[])", "", "Argument[0]", "create-file", "ai-generated"] # should be delete-file - ["java.nio.file", "Files", True, "delete", "(Path)", "", "Argument[0]", "create-file", "ai-generated"] # should be delete-file - - ["java.nio.file", "Files", True, "newInputStream", "(Path,OpenOption[])", "", "Argument[0]", "ReturnValue", "taint", "ai-generated"] + - ["java.nio.file", "Files", True, "newInputStream", "(Path,OpenOption[])", "", "Argument[0]", "read-file", "ai-generated"] + - ["java.nio.file", "Files", True, "newOutputStream", "(Path,OpenOption[])", "", "Argument[0]", "create-file", "ai-generated"] - addsTo: pack: codeql/java-all extensible: summaryModel From f685b933799f9e5461d3ca88016333be2409aa1d Mon Sep 17 00:00:00 2001 From: Tony Torralba <atorralba@users.noreply.github.com> Date: Mon, 20 Mar 2023 14:15:33 +0100 Subject: [PATCH 83/97] Add change note --- java/ql/lib/change-notes/2023-03-20-dataflow-models.md | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 java/ql/lib/change-notes/2023-03-20-dataflow-models.md diff --git a/java/ql/lib/change-notes/2023-03-20-dataflow-models.md b/java/ql/lib/change-notes/2023-03-20-dataflow-models.md new file mode 100644 index 00000000000..e43f3b1746a --- /dev/null +++ b/java/ql/lib/change-notes/2023-03-20-dataflow-models.md @@ -0,0 +1,10 @@ +--- +category: minorAnalysis +--- +* Added more sink and summary dataflow models for the following packages: + * `java.net` + * `java.nio.file` + * `javax.imageio.stream` + * `javax.naming` + * `javax.servlet` + * `org.geogebra.web.full.main` From 12588124285c7d17bf3e2ebfb285c58267c14773 Mon Sep 17 00:00:00 2001 From: Tony Torralba <atorralba@users.noreply.github.com> Date: Mon, 20 Mar 2023 17:11:14 +0100 Subject: [PATCH 84/97] Fix Argument[this] --- java/ql/lib/ext/hudson.model.model.yml | 2 +- .../ext/io.netty.handler.codec.http.model.yml | 2 +- java/ql/lib/ext/java.nio.file.model.yml | 24 ++++++------------- .../ql/lib/ext/javax.imageio.stream.model.yml | 2 +- java/ql/lib/ext/javax.naming.model.yml | 2 +- 5 files changed, 11 insertions(+), 21 deletions(-) diff --git a/java/ql/lib/ext/hudson.model.model.yml b/java/ql/lib/ext/hudson.model.model.yml index 77b495e0f1e..2c0c7e46be6 100644 --- a/java/ql/lib/ext/hudson.model.model.yml +++ b/java/ql/lib/ext/hudson.model.model.yml @@ -3,7 +3,7 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["hudson.model", "DirectoryBrowserSupport$Path", False, "Path", "(String,String,boolean,long,boolean,long)", "", "Argument[0]", "Argument[-1].SyntheticField[hudson.model.DirectoryBrowserSupport$Path.href]", "taint", "ai-generated"] + - ["hudson.model", "DirectoryBrowserSupport$Path", False, "Path", "(String,String,boolean,long,boolean,long)", "", "Argument[0]", "Argument[this].SyntheticField[hudson.model.DirectoryBrowserSupport$Path.href]", "taint", "ai-generated"] - addsTo: pack: codeql/java-all extensible: sinkModel diff --git a/java/ql/lib/ext/io.netty.handler.codec.http.model.yml b/java/ql/lib/ext/io.netty.handler.codec.http.model.yml index a7a801d67dd..6a4b0e7922e 100644 --- a/java/ql/lib/ext/io.netty.handler.codec.http.model.yml +++ b/java/ql/lib/ext/io.netty.handler.codec.http.model.yml @@ -9,4 +9,4 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["io.netty.handler.codec.http", "QueryStringEncoder", True, "QueryStringEncoder", "(String)", "", "Argument[0]", "Argument[-1]", "taint", "ai-generated"] + - ["io.netty.handler.codec.http", "QueryStringEncoder", True, "QueryStringEncoder", "(String)", "", "Argument[0]", "Argument[this]", "taint", "ai-generated"] diff --git a/java/ql/lib/ext/java.nio.file.model.yml b/java/ql/lib/ext/java.nio.file.model.yml index 95f00987aa9..cca00413c33 100644 --- a/java/ql/lib/ext/java.nio.file.model.yml +++ b/java/ql/lib/ext/java.nio.file.model.yml @@ -40,30 +40,20 @@ extensions: - ["java.nio.file", "Files", True, "newDirectoryStream", "(Path)", "", "Argument[0]", "ReturnValue", "taint", "ai-generated"] - ["java.nio.file", "Files", True, "walk", "(Path,FileVisitOption[])", "", "Argument[0]", "ReturnValue", "taint", "ai-generated"] - ["java.nio.file", "FileSystem", True, "getPath", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] -<<<<<<< HEAD + - ["java.nio.file", "FileSystem", True, "getPath", "(String,String[])", "", "Argument[1]", "ReturnValue", "taint", "ai-generated"] + - ["java.nio.file", "FileSystem", True, "getPathMatcher", "(String)", "", "Argument[0]", "ReturnValue", "taint", "ai-generated"] + - ["java.nio.file", "FileSystem", True, "getRootDirectories", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["java.nio.file", "Path", True, "getParent", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["java.nio.file", "Path", True, "normalize", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - - ["java.nio.file", "Path", True, "resolve", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["java.nio.file", "Path", True, "of", "(String,String[])", "", "Argument[0]", "ReturnValue", "taint", "ai-generated"] + - ["java.nio.file", "Path", True, "of", "(String,String[])", "", "Argument[1]", "ReturnValue", "taint", "ai-generated"] + - ["java.nio.file", "Path", True, "of", "(URI)", "", "Argument[0]", "ReturnValue", "taint", "ai-generated"] - ["java.nio.file", "Path", True, "resolve", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["java.nio.file", "Path", True, "resolve", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["java.nio.file", "Path", True, "toAbsolutePath", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["java.nio.file", "Path", False, "toFile", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["java.nio.file", "Path", True, "toString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["java.nio.file", "Path", True, "toUri", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] -======= - - ["java.nio.file", "FileSystem", True, "getPath", "(String,String[])", "", "Argument[1]", "ReturnValue", "taint", "ai-generated"] - - ["java.nio.file", "FileSystem", True, "getPathMatcher", "(String)", "", "Argument[0]", "ReturnValue", "taint", "ai-generated"] - - ["java.nio.file", "FileSystem", True, "getRootDirectories", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - - ["java.nio.file", "Path", True, "getParent", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["java.nio.file", "Path", True, "normalize", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["java.nio.file", "Path", True, "of", "(String,String[])", "", "Argument[0]", "ReturnValue", "taint", "ai-generated"] - - ["java.nio.file", "Path", True, "of", "(String,String[])", "", "Argument[1]", "ReturnValue", "taint", "ai-generated"] - - ["java.nio.file", "Path", True, "of", "(URI)", "", "Argument[0]", "ReturnValue", "taint", "ai-generated"] - - ["java.nio.file", "Path", True, "resolve", "", "", "Argument[-1..0]", "ReturnValue", "taint", "manual"] - - ["java.nio.file", "Path", True, "toAbsolutePath", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["java.nio.file", "Path", False, "toFile", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["java.nio.file", "Path", True, "toString", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] - - ["java.nio.file", "Path", True, "toUri", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] ->>>>>>> cc4ba800cf (sort the changed MaD declarations) - ["java.nio.file", "Paths", True, "get", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["java.nio.file", "Paths", True, "get", "", "", "Argument[1].ArrayElement", "ReturnValue", "taint", "manual"] # Not supported by current lambda flow diff --git a/java/ql/lib/ext/javax.imageio.stream.model.yml b/java/ql/lib/ext/javax.imageio.stream.model.yml index 22ef30e52ce..a1e9abcca9d 100644 --- a/java/ql/lib/ext/javax.imageio.stream.model.yml +++ b/java/ql/lib/ext/javax.imageio.stream.model.yml @@ -4,4 +4,4 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["javax.imageio.stream", "FileCacheImageInputStream", True, "FileCacheImageInputStream", "(InputStream,File)", "", "Argument[0]", "Argument[-1].Element", "taint", "ai-generated"] + - ["javax.imageio.stream", "FileCacheImageInputStream", True, "FileCacheImageInputStream", "(InputStream,File)", "", "Argument[0]", "Argument[this].Element", "taint", "ai-generated"] diff --git a/java/ql/lib/ext/javax.naming.model.yml b/java/ql/lib/ext/javax.naming.model.yml index 2c1e4ddf7e0..bf1395abdb3 100644 --- a/java/ql/lib/ext/javax.naming.model.yml +++ b/java/ql/lib/ext/javax.naming.model.yml @@ -14,4 +14,4 @@ extensions: pack: codeql/java-all extensible: summaryModel data: - - ["javax.naming", "StringRefAddr", True, "StringRefAddr", "(String,String)", "", "Argument[1]", "Argument[-1]", "taint", "ai-generated"] + - ["javax.naming", "StringRefAddr", True, "StringRefAddr", "(String,String)", "", "Argument[1]", "Argument[this]", "taint", "ai-generated"] From 7cdd2b69c909fe191e531ab41dea9ebfc99ed4d4 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema <jketema@github.com> Date: Mon, 20 Mar 2023 18:58:16 +0100 Subject: [PATCH 85/97] C++: Adjust the internals of default taint tracking to use `DataFlow::ConfigSig` --- .../internal/DefaultTaintTrackingImpl.qll | 107 +++++++++--------- 1 file changed, 52 insertions(+), 55 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DefaultTaintTrackingImpl.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DefaultTaintTrackingImpl.qll index e8148e29791..2c288b6d3da 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DefaultTaintTrackingImpl.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DefaultTaintTrackingImpl.qll @@ -9,7 +9,6 @@ import cpp import semmle.code.cpp.security.Security private import semmle.code.cpp.ir.dataflow.DataFlow private import semmle.code.cpp.ir.dataflow.internal.DataFlowUtil -private import semmle.code.cpp.ir.dataflow.DataFlow3 private import semmle.code.cpp.ir.IR private import semmle.code.cpp.ir.dataflow.ResolveCall private import semmle.code.cpp.controlflow.IRGuards @@ -90,65 +89,64 @@ private predicate conflatePointerAndPointee(DataFlow::Node nodeFrom, DataFlow::N ) } -private class DefaultTaintTrackingCfg extends TaintTracking::Configuration { - DefaultTaintTrackingCfg() { this = "DefaultTaintTrackingCfg" } +private module DefaultTaintTrackingConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source = getNodeForSource(_) } - override predicate isSource(DataFlow::Node source) { source = getNodeForSource(_) } + predicate isSink(DataFlow::Node sink) { exists(adjustedSink(sink)) } - override predicate isSink(DataFlow::Node sink) { exists(adjustedSink(sink)) } + predicate isBarrier(DataFlow::Node node) { nodeIsBarrier(node) } - override predicate isSanitizer(DataFlow::Node node) { nodeIsBarrier(node) } + predicate isBarrierIn(DataFlow::Node node) { nodeIsBarrierIn(node) } - override predicate isSanitizerIn(DataFlow::Node node) { nodeIsBarrierIn(node) } - - override predicate isAdditionalTaintStep(DataFlow::Node nodeFrom, DataFlow::Node nodeTo) { + predicate isAdditionalFlowStep(DataFlow::Node nodeFrom, DataFlow::Node nodeTo) { conflatePointerAndPointee(nodeFrom, nodeTo) } } -private class ToGlobalVarTaintTrackingCfg extends TaintTracking::Configuration { - ToGlobalVarTaintTrackingCfg() { this = "GlobalVarTaintTrackingCfg" } +private module DefaultTaintTrackingFlow = TaintTracking::Make<DefaultTaintTrackingConfig>; - override predicate isSource(DataFlow::Node source) { source = getNodeForSource(_) } +private module ToGlobalVarTaintTrackingConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source = getNodeForSource(_) } - override predicate isSink(DataFlow::Node sink) { - sink.asVariable() instanceof GlobalOrNamespaceVariable - } + predicate isSink(DataFlow::Node sink) { sink.asVariable() instanceof GlobalOrNamespaceVariable } - override predicate isAdditionalTaintStep(DataFlow::Node n1, DataFlow::Node n2) { + predicate isAdditionalFlowStep(DataFlow::Node n1, DataFlow::Node n2) { writesVariable(n1.asInstruction(), n2.asVariable().(GlobalOrNamespaceVariable)) or readsVariable(n2.asInstruction(), n1.asVariable().(GlobalOrNamespaceVariable)) } - override predicate isSanitizer(DataFlow::Node node) { nodeIsBarrier(node) } + predicate isBarrier(DataFlow::Node node) { nodeIsBarrier(node) } - override predicate isSanitizerIn(DataFlow::Node node) { nodeIsBarrierIn(node) } + predicate isBarrierIn(DataFlow::Node node) { nodeIsBarrierIn(node) } } -private class FromGlobalVarTaintTrackingCfg extends TaintTracking2::Configuration { - FromGlobalVarTaintTrackingCfg() { this = "FromGlobalVarTaintTrackingCfg" } +private module ToGlobalVarTaintTrackingFlow = TaintTracking::Make<ToGlobalVarTaintTrackingConfig>; - override predicate isSource(DataFlow::Node source) { +private module FromGlobalVarTaintTrackingConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { // This set of sources should be reasonably small, which is good for // performance since the set of sinks is very large. - exists(ToGlobalVarTaintTrackingCfg otherCfg | otherCfg.hasFlowTo(source)) + ToGlobalVarTaintTrackingFlow::hasFlowTo(source) } - override predicate isSink(DataFlow::Node sink) { exists(adjustedSink(sink)) } + predicate isSink(DataFlow::Node sink) { exists(adjustedSink(sink)) } - override predicate isAdditionalTaintStep(DataFlow::Node n1, DataFlow::Node n2) { + predicate isAdditionalFlowStep(DataFlow::Node n1, DataFlow::Node n2) { // Additional step for flow out of variables. There is no flow _into_ // variables in this configuration, so this step only serves to take flow // out of a variable that's a source. readsVariable(n2.asInstruction(), n1.asVariable()) } - override predicate isSanitizer(DataFlow::Node node) { nodeIsBarrier(node) } + predicate isBarrier(DataFlow::Node node) { nodeIsBarrier(node) } - override predicate isSanitizerIn(DataFlow::Node node) { nodeIsBarrierIn(node) } + predicate isBarrierIn(DataFlow::Node node) { nodeIsBarrierIn(node) } } +private module FromGlobalVarTaintTrackingFlow = + TaintTracking::Make<FromGlobalVarTaintTrackingConfig>; + private predicate readsVariable(LoadInstruction load, Variable var) { load.getSourceAddress().(VariableAddressInstruction).getAstVariable() = var } @@ -332,8 +330,8 @@ private import Cached */ cached predicate tainted(Expr source, Element tainted) { - exists(DefaultTaintTrackingCfg cfg, DataFlow::Node sink | - cfg.hasFlow(getNodeForSource(source), sink) and + exists(DataFlow::Node sink | + DefaultTaintTrackingFlow::hasFlow(getNodeForSource(source), sink) and tainted = adjustedSink(sink) ) } @@ -359,12 +357,11 @@ predicate taintedIncludingGlobalVars(Expr source, Element tainted, string global globalVar = "" or exists( - ToGlobalVarTaintTrackingCfg toCfg, FromGlobalVarTaintTrackingCfg fromCfg, DataFlow::VariableNode variableNode, GlobalOrNamespaceVariable global, DataFlow::Node sink | global = variableNode.getVariable() and - toCfg.hasFlow(getNodeForSource(source), variableNode) and - fromCfg.hasFlow(variableNode, sink) and + ToGlobalVarTaintTrackingFlow::hasFlow(getNodeForSource(source), variableNode) and + FromGlobalVarTaintTrackingFlow::hasFlow(variableNode, sink) and tainted = adjustedSink(sink) and global = globalVarFromId(globalVar) ) @@ -422,20 +419,18 @@ module TaintedWithPath { string toString() { result = "TaintTrackingConfiguration" } } - private class AdjustedConfiguration extends TaintTracking3::Configuration { - AdjustedConfiguration() { this = "AdjustedConfiguration" } - - override predicate isSource(DataFlow::Node source) { + private module AdjustedConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { exists(TaintTrackingConfiguration cfg, Expr e | cfg.isSource(e) and source = getNodeForExpr(e) ) } - override predicate isSink(DataFlow::Node sink) { + predicate isSink(DataFlow::Node sink) { exists(TaintTrackingConfiguration cfg | cfg.isSink(adjustedSink(sink))) } - override predicate isAdditionalTaintStep(DataFlow::Node n1, DataFlow::Node n2) { + predicate isAdditionalFlowStep(DataFlow::Node n1, DataFlow::Node n2) { conflatePointerAndPointee(n1, n2) or // Steps into and out of global variables @@ -448,13 +443,15 @@ module TaintedWithPath { additionalTaintStep(n1, n2) } - override predicate isSanitizer(DataFlow::Node node) { + predicate isBarrier(DataFlow::Node node) { exists(TaintTrackingConfiguration cfg, Expr e | cfg.isBarrier(e) and node = getNodeForExpr(e)) } - override predicate isSanitizerIn(DataFlow::Node node) { nodeIsBarrierIn(node) } + predicate isBarrierIn(DataFlow::Node node) { nodeIsBarrierIn(node) } } + private module AdjustedFlow = TaintTracking::Make<AdjustedConfig>; + /* * A sink `Element` may map to multiple `DataFlowX::PathNode`s via (the * inverse of) `adjustedSink`. For example, an `Expr` maps to all its @@ -470,12 +467,12 @@ module TaintedWithPath { */ private newtype TPathNode = - TWrapPathNode(DataFlow3::PathNode n) or + TWrapPathNode(AdjustedFlow::PathNode n) or // There's a single newtype constructor for both sources and sinks since // that makes it easiest to deal with the case where source = sink. TEndpointPathNode(Element e) { - exists(AdjustedConfiguration cfg, DataFlow3::Node sourceNode, DataFlow3::Node sinkNode | - cfg.hasFlow(sourceNode, sinkNode) + exists(DataFlow::Node sourceNode, DataFlow::Node sinkNode | + AdjustedFlow::hasFlow(sourceNode, sinkNode) | sourceNode = getNodeForExpr(e) and exists(TaintTrackingConfiguration ttCfg | ttCfg.isSource(e)) @@ -524,7 +521,7 @@ module TaintedWithPath { } private class WrapPathNode extends PathNode, TWrapPathNode { - DataFlow3::PathNode inner() { this = TWrapPathNode(result) } + AdjustedFlow::PathNode inner() { this = TWrapPathNode(result) } override string toString() { result = this.inner().toString() } @@ -561,25 +558,25 @@ module TaintedWithPath { /** Holds if `(a,b)` is an edge in the graph of data flow path explanations. */ query predicate edges(PathNode a, PathNode b) { - DataFlow3::PathGraph::edges(a.(WrapPathNode).inner(), b.(WrapPathNode).inner()) + AdjustedFlow::PathGraph::edges(a.(WrapPathNode).inner(), b.(WrapPathNode).inner()) or // To avoid showing trivial-looking steps, we _replace_ the last node instead // of adding an edge out of it. exists(WrapPathNode sinkNode | - DataFlow3::PathGraph::edges(a.(WrapPathNode).inner(), sinkNode.inner()) and + AdjustedFlow::PathGraph::edges(a.(WrapPathNode).inner(), sinkNode.inner()) and b.(FinalPathNode).inner() = adjustedSink(sinkNode.inner().getNode()) ) or // Same for the first node exists(WrapPathNode sourceNode | - DataFlow3::PathGraph::edges(sourceNode.inner(), b.(WrapPathNode).inner()) and + AdjustedFlow::PathGraph::edges(sourceNode.inner(), b.(WrapPathNode).inner()) and sourceNode.inner().getNode() = getNodeForExpr(a.(InitialPathNode).inner()) ) or // Finally, handle the case where the path goes directly from a source to a // sink, meaning that they both need to be translated. exists(WrapPathNode sinkNode, WrapPathNode sourceNode | - DataFlow3::PathGraph::edges(sourceNode.inner(), sinkNode.inner()) and + AdjustedFlow::PathGraph::edges(sourceNode.inner(), sinkNode.inner()) and sourceNode.inner().getNode() = getNodeForExpr(a.(InitialPathNode).inner()) and b.(FinalPathNode).inner() = adjustedSink(sinkNode.inner().getNode()) ) @@ -590,20 +587,20 @@ module TaintedWithPath { * from `par` to `ret` within it, in the graph of data flow path explanations. */ query predicate subpaths(PathNode arg, PathNode par, PathNode ret, PathNode out) { - DataFlow3::PathGraph::subpaths(arg.(WrapPathNode).inner(), par.(WrapPathNode).inner(), + AdjustedFlow::PathGraph::subpaths(arg.(WrapPathNode).inner(), par.(WrapPathNode).inner(), ret.(WrapPathNode).inner(), out.(WrapPathNode).inner()) or // To avoid showing trivial-looking steps, we _replace_ the last node instead // of adding an edge out of it. exists(WrapPathNode sinkNode | - DataFlow3::PathGraph::subpaths(arg.(WrapPathNode).inner(), par.(WrapPathNode).inner(), + AdjustedFlow::PathGraph::subpaths(arg.(WrapPathNode).inner(), par.(WrapPathNode).inner(), ret.(WrapPathNode).inner(), sinkNode.inner()) and out.(FinalPathNode).inner() = adjustedSink(sinkNode.inner().getNode()) ) or // Same for the first node exists(WrapPathNode sourceNode | - DataFlow3::PathGraph::subpaths(sourceNode.inner(), par.(WrapPathNode).inner(), + AdjustedFlow::PathGraph::subpaths(sourceNode.inner(), par.(WrapPathNode).inner(), ret.(WrapPathNode).inner(), out.(WrapPathNode).inner()) and sourceNode.inner().getNode() = getNodeForExpr(arg.(InitialPathNode).inner()) ) @@ -611,7 +608,7 @@ module TaintedWithPath { // Finally, handle the case where the path goes directly from a source to a // sink, meaning that they both need to be translated. exists(WrapPathNode sinkNode, WrapPathNode sourceNode | - DataFlow3::PathGraph::subpaths(sourceNode.inner(), par.(WrapPathNode).inner(), + AdjustedFlow::PathGraph::subpaths(sourceNode.inner(), par.(WrapPathNode).inner(), ret.(WrapPathNode).inner(), sinkNode.inner()) and sourceNode.inner().getNode() = getNodeForExpr(arg.(InitialPathNode).inner()) and out.(FinalPathNode).inner() = adjustedSink(sinkNode.inner().getNode()) @@ -634,10 +631,10 @@ module TaintedWithPath { * the computation. */ predicate taintedWithPath(Expr source, Element tainted, PathNode sourceNode, PathNode sinkNode) { - exists(AdjustedConfiguration cfg, DataFlow3::Node flowSource, DataFlow3::Node flowSink | + exists(DataFlow::Node flowSource, DataFlow::Node flowSink | source = sourceNode.(InitialPathNode).inner() and flowSource = getNodeForExpr(source) and - cfg.hasFlow(flowSource, flowSink) and + AdjustedFlow::hasFlow(flowSource, flowSink) and tainted = adjustedSink(flowSink) and tainted = sinkNode.(FinalPathNode).inner() ) @@ -660,8 +657,8 @@ module TaintedWithPath { * through a global variable. */ predicate taintedWithoutGlobals(Element tainted) { - exists(AdjustedConfiguration cfg, PathNode sourceNode, FinalPathNode sinkNode | - cfg.isSource(sourceNode.(WrapPathNode).inner().getNode()) and + exists(PathNode sourceNode, FinalPathNode sinkNode | + AdjustedConfig::isSource(sourceNode.(WrapPathNode).inner().getNode()) and edgesWithoutGlobals+(sourceNode, sinkNode) and tainted = sinkNode.inner() ) From 6598cc44ee28b5c5d6ebb2024203250e7fdd825e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 21 Mar 2023 00:15:33 +0000 Subject: [PATCH 86/97] Add changed framework coverage reports --- .../library-coverage/coverage.csv | 19 ++++++++++++++----- .../library-coverage/coverage.rst | 12 ++++++------ 2 files changed, 20 insertions(+), 11 deletions(-) diff --git a/java/documentation/library-coverage/coverage.csv b/java/documentation/library-coverage/coverage.csv index fa61d8d78ea..84e5a0db8eb 100644 --- a/java/documentation/library-coverage/coverage.csv +++ b/java/documentation/library-coverage/coverage.csv @@ -1,7 +1,7 @@ package,sink,source,summary,sink:bean-validation,sink:create-file,sink:fragment-injection,sink:groovy,sink:header-splitting,sink:information-leak,sink:intent-start,sink:jdbc-url,sink:jexl,sink:jndi-injection,sink:ldap,sink:logging,sink:mvel,sink:ognl-injection,sink:open-url,sink:pending-intent-sent,sink:read-file,sink:regex-use,sink:regex-use[-1],sink:regex-use[0],sink:regex-use[],sink:regex-use[f-1],sink:regex-use[f1],sink:regex-use[f],sink:set-hostname-verifier,sink:sql,sink:ssti,sink:url-open-stream,sink:url-redirect,sink:write-file,sink:xpath,sink:xslt,sink:xss,source:android-external-storage-dir,source:android-widget,source:contentprovider,source:remote,summary:taint,summary:value android.app,35,,103,,,11,,,,7,,,,,,,,,17,,,,,,,,,,,,,,,,,,,,,,18,85 android.content,24,31,154,,,,,,,16,,,,,,,,,,,,,,,,,,,8,,,,,,,,4,,27,,63,91 -android.database,59,,39,,,,,,,,,,,,,,,,,,,,,,,,,,59,,,,,,,,,,,,39, +android.database,59,,41,,,,,,,,,,,,,,,,,,,,,,,,,,59,,,,,,,,,,,,41, android.net,,,60,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,45,15 android.os,,2,122,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,,,,41,81 android.support.v4.app,11,,,,,11,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, @@ -16,7 +16,7 @@ com.esotericsoftware.kryo.io,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, com.esotericsoftware.kryo5.io,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, com.fasterxml.jackson.core,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, com.fasterxml.jackson.databind,,,6,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,6, -com.google.common.base,4,,85,,,,,,,,,,,,,,,,,,,,3,1,,,,,,,,,,,,,,,,,62,23 +com.google.common.base,4,,87,,,,,,,,,,,,,,,,,,,,3,1,,,,,,,,,,,,,,,,,63,24 com.google.common.cache,,,17,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,17 com.google.common.collect,,,553,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,551 com.google.common.flogger,29,,,,,,,,,,,,,,29,,,,,,,,,,,,,,,,,,,,,,,,,,, @@ -33,8 +33,17 @@ freemarker.cache,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,, freemarker.template,7,,,,,,,,,,,,,,,,,,,,,,,,,,,,,7,,,,,,,,,,,, groovy.lang,26,,,,,,26,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, groovy.util,5,,,,,,5,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +hudson.model,4,,1,,2,,,,,,,,,,,,,1,,1,,,,,,,,,,,,,,,,,,,,,1, +hudson.os,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, hudson.remoting,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, +hudson.util,4,,1,,3,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,1, +io.netty.bootstrap,3,,,,,,,,,,,,,,,,,3,,,,,,,,,,,,,,,,,,,,,,,, +io.netty.channel,9,,,,,,,,,,,,,,,,,9,,,,,,,,,,,,,,,,,,,,,,,, +io.netty.handler.codec.http,3,,1,,,,,,,,,,,,,,,2,,1,,,,,,,,,,,,,,,,,,,,,1, +io.netty.handler.ssl,2,,,,,,,,,,,,,,,,,,,2,,,,,,,,,,,,,,,,,,,,,, +io.netty.handler.stream,1,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,, io.netty.resolver,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, +io.netty.util.internal,2,,2,,1,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,2, jakarta.faces.context,2,7,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,,,,7,, jakarta.json,,,123,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,100,23 jakarta.ws.rs.client,1,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,, @@ -44,7 +53,7 @@ java.beans,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, java.io,42,,40,,17,,,,,,,,,,,,,,,3,,,,,,,,,,,,,22,,,,,,,,39,1 java.lang,16,,76,,,,,,,,,,,,8,,,,,3,,4,,,1,,,,,,,,,,,,,,,,53,23 java.net,12,3,16,,,,,,,,,,,,,,,12,,,,,,,,,,,,,,,,,,,,,,3,16, -java.nio,20,,15,,15,,,,,,,,,,,,,,,3,,,,,,,,,,,,,2,,,,,,,,15, +java.nio,20,,16,,15,,,,,,,,,,,,,,,3,,,,,,,,,,,,,2,,,,,,,,16, java.sql,13,,2,,,,,,,,4,,,,,,,,,,,,,,,,,,9,,,,,,,,,,,,1,1 java.util,44,,465,,,,,,,,,,,,34,,,,,,,,5,2,,1,2,,,,,,,,,,,,,,38,427 javafx.scene.web,1,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,, @@ -114,7 +123,7 @@ org.springframework.boot.jdbc,1,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, org.springframework.cache,,,13,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,13 org.springframework.context,,,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,3, org.springframework.data.repository,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1 -org.springframework.http,14,,70,,,,,,,,,,,,,,,14,,,,,,,,,,,,,,,,,,,,,,,60,10 +org.springframework.http,14,,71,,,,,,,,,,,,,,,14,,,,,,,,,,,,,,,,,,,,,,,61,10 org.springframework.jdbc.core,10,,,,,,,,,,,,,,,,,,,,,,,,,,,,10,,,,,,,,,,,,, org.springframework.jdbc.datasource,4,,,,,,,,,,4,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, org.springframework.jdbc.object,9,,,,,,,,,,,,,,,,,,,,,,,,,,,,9,,,,,,,,,,,,, @@ -128,7 +137,7 @@ org.springframework.web.client,13,3,,,,,,,,,,,,,,,,13,,,,,,,,,,,,,,,,,,,,,,3,, org.springframework.web.context.request,,8,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,8,, org.springframework.web.multipart,,12,13,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,12,13, org.springframework.web.reactive.function.client,2,,,,,,,,,,,,,,,,,2,,,,,,,,,,,,,,,,,,,,,,,, -org.springframework.web.util,,,163,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,138,25 +org.springframework.web.util,,,165,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,140,25 org.thymeleaf,2,,2,,,,,,,,,,,,,,,,,,,,,,,,,,,2,,,,,,,,,,,2, org.xml.sax,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, org.xmlpull.v1,,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,3,, diff --git a/java/documentation/library-coverage/coverage.rst b/java/documentation/library-coverage/coverage.rst index b0b240d9acc..cc6fdb875ff 100644 --- a/java/documentation/library-coverage/coverage.rst +++ b/java/documentation/library-coverage/coverage.rst @@ -7,7 +7,7 @@ Java framework & library support :widths: auto Framework / library,Package,Flow sources,Taint & value steps,Sinks (total),`CWE‑022` :sub:`Path injection`,`CWE‑036` :sub:`Path traversal`,`CWE‑079` :sub:`Cross-site scripting`,`CWE‑089` :sub:`SQL injection`,`CWE‑090` :sub:`LDAP injection`,`CWE‑094` :sub:`Code injection`,`CWE‑319` :sub:`Cleartext transmission` - Android,``android.*``,52,479,138,,,3,67,,, + Android,``android.*``,52,481,138,,,3,67,,, Android extensions,``androidx.*``,5,183,19,,,,,,, `Apache Commons Collections <https://commons.apache.org/proper/commons-collections/>`_,"``org.apache.commons.collections``, ``org.apache.commons.collections4``",,1600,,,,,,,, `Apache Commons IO <https://commons.apache.org/proper/commons-io/>`_,``org.apache.commons.io``,,560,107,91,,,,,,15 @@ -15,13 +15,13 @@ Java framework & library support `Apache Commons Text <https://commons.apache.org/proper/commons-text/>`_,``org.apache.commons.text``,,272,,,,,,,, `Apache HttpComponents <https://hc.apache.org/>`_,"``org.apache.hc.core5.*``, ``org.apache.http``",5,143,28,,,3,,,,25 `Apache Log4j 2 <https://logging.apache.org/log4j/2.0/>`_,``org.apache.logging.log4j``,,8,359,,,,,,, - `Google Guava <https://guava.dev/>`_,``com.google.common.*``,,728,39,,6,,,,, + `Google Guava <https://guava.dev/>`_,``com.google.common.*``,,730,39,,6,,,,, JBoss Logging,``org.jboss.logging``,,,324,,,,,,, `JSON-java <https://github.com/stleary/JSON-java>`_,``org.json``,,236,,,,,,,, - Java Standard Library,``java.*``,3,615,147,32,,,9,,,12 + Java Standard Library,``java.*``,3,616,147,32,,,9,,,12 Java extensions,"``javax.*``, ``jakarta.*``",63,609,33,1,,4,,1,1,2 Kotlin Standard Library,``kotlin*``,,1835,12,10,,,,,,2 - `Spring <https://spring.io/>`_,``org.springframework.*``,29,477,101,,,,19,14,,29 - Others,"``cn.hutool.core.codec``, ``com.esotericsoftware.kryo.io``, ``com.esotericsoftware.kryo5.io``, ``com.fasterxml.jackson.core``, ``com.fasterxml.jackson.databind``, ``com.hubspot.jinjava``, ``com.mitchellbosecke.pebble``, ``com.opensymphony.xwork2.ognl``, ``com.rabbitmq.client``, ``com.thoughtworks.xstream``, ``com.unboundid.ldap.sdk``, ``com.zaxxer.hikari``, ``flexjson``, ``freemarker.cache``, ``freemarker.template``, ``groovy.lang``, ``groovy.util``, ``hudson.remoting``, ``io.netty.resolver``, ``javafx.scene.web``, ``jodd.json``, ``net.sf.saxon.s9api``, ``ognl``, ``okhttp3``, ``org.apache.commons.codec``, ``org.apache.commons.compress.archivers.tar``, ``org.apache.commons.jelly``, ``org.apache.commons.jexl2``, ``org.apache.commons.jexl3``, ``org.apache.commons.logging``, ``org.apache.commons.ognl``, ``org.apache.directory.ldap.client.api``, ``org.apache.hadoop.hive.metastore``, ``org.apache.hive.hcatalog.templeton``, ``org.apache.ibatis.jdbc``, ``org.apache.log4j``, ``org.apache.shiro.codec``, ``org.apache.shiro.jndi``, ``org.apache.tools.ant``, ``org.apache.tools.zip``, ``org.apache.velocity.app``, ``org.apache.velocity.runtime``, ``org.codehaus.cargo.container.installer``, ``org.codehaus.groovy.control``, ``org.dom4j``, ``org.hibernate``, ``org.jdbi.v3.core``, ``org.jooq``, ``org.kohsuke.stapler``, ``org.mvel2``, ``org.openjdk.jmh.runner.options``, ``org.scijava.log``, ``org.slf4j``, ``org.thymeleaf``, ``org.xml.sax``, ``org.xmlpull.v1``, ``play.mvc``, ``ratpack.core.form``, ``ratpack.core.handling``, ``ratpack.core.http``, ``ratpack.exec``, ``ratpack.form``, ``ratpack.func``, ``ratpack.handling``, ``ratpack.http``, ``ratpack.util``, ``retrofit2``",60,308,299,6,,,18,18,,12 - Totals,,217,8477,1612,140,6,10,113,33,1,97 + `Spring <https://spring.io/>`_,``org.springframework.*``,29,480,101,,,,19,14,,29 + Others,"``cn.hutool.core.codec``, ``com.esotericsoftware.kryo.io``, ``com.esotericsoftware.kryo5.io``, ``com.fasterxml.jackson.core``, ``com.fasterxml.jackson.databind``, ``com.hubspot.jinjava``, ``com.mitchellbosecke.pebble``, ``com.opensymphony.xwork2.ognl``, ``com.rabbitmq.client``, ``com.thoughtworks.xstream``, ``com.unboundid.ldap.sdk``, ``com.zaxxer.hikari``, ``flexjson``, ``freemarker.cache``, ``freemarker.template``, ``groovy.lang``, ``groovy.util``, ``hudson.model``, ``hudson.os``, ``hudson.remoting``, ``hudson.util``, ``io.netty.bootstrap``, ``io.netty.channel``, ``io.netty.handler.codec.http``, ``io.netty.handler.ssl``, ``io.netty.handler.stream``, ``io.netty.resolver``, ``io.netty.util.internal``, ``javafx.scene.web``, ``jodd.json``, ``net.sf.saxon.s9api``, ``ognl``, ``okhttp3``, ``org.apache.commons.codec``, ``org.apache.commons.compress.archivers.tar``, ``org.apache.commons.jelly``, ``org.apache.commons.jexl2``, ``org.apache.commons.jexl3``, ``org.apache.commons.logging``, ``org.apache.commons.ognl``, ``org.apache.directory.ldap.client.api``, ``org.apache.hadoop.hive.metastore``, ``org.apache.hive.hcatalog.templeton``, ``org.apache.ibatis.jdbc``, ``org.apache.log4j``, ``org.apache.shiro.codec``, ``org.apache.shiro.jndi``, ``org.apache.tools.ant``, ``org.apache.tools.zip``, ``org.apache.velocity.app``, ``org.apache.velocity.runtime``, ``org.codehaus.cargo.container.installer``, ``org.codehaus.groovy.control``, ``org.dom4j``, ``org.hibernate``, ``org.jdbi.v3.core``, ``org.jooq``, ``org.kohsuke.stapler``, ``org.mvel2``, ``org.openjdk.jmh.runner.options``, ``org.scijava.log``, ``org.slf4j``, ``org.thymeleaf``, ``org.xml.sax``, ``org.xmlpull.v1``, ``play.mvc``, ``ratpack.core.form``, ``ratpack.core.handling``, ``ratpack.core.http``, ``ratpack.exec``, ``ratpack.form``, ``ratpack.func``, ``ratpack.handling``, ``ratpack.http``, ``ratpack.util``, ``retrofit2``",60,314,327,12,,,18,18,,28 + Totals,,217,8491,1640,146,6,10,113,33,1,113 From 7420e90a46fe2258387ef006b573b00d23643ed5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 Mar 2023 04:06:18 +0000 Subject: [PATCH 87/97] Bump serde from 1.0.157 to 1.0.158 in /ql Bumps [serde](https://github.com/serde-rs/serde) from 1.0.157 to 1.0.158. - [Release notes](https://github.com/serde-rs/serde/releases) - [Commits](https://github.com/serde-rs/serde/compare/v1.0.157...v1.0.158) --- updated-dependencies: - dependency-name: serde dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> --- ql/Cargo.lock | Bin 22516 -> 22516 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/ql/Cargo.lock b/ql/Cargo.lock index 876328614e72e172d28a290b3a2070cfe6204e57..08d54ab697a6dbee77aecea32f35fb61f382395c 100644 GIT binary patch delta 260 zcmWm6J4!@B5QSkb=niy{5d;&%p&tFH0vS{=FuRkODRgz$HFgoMpjTjQFv3JG$34sf zY?Bk6|2yud<9_=7iIepA=Xsm4g{C!NVs~T_h>lb<LTj9&hb07aF^33T4b9X|MFYi= z_3N8ee@%}A`@NXA0$4F4EkQz#QOI)AREFkI3kNr2a8PC${r@CwnlaZzwe)*f^_PdM zQ`*2L^xfI|@R8q6`e&Z+XgsJmD^z75Ck&MlkmHC65_+|Psd5w<XDDi%7okNG#o`_1 MeAw&5*X`5gA9J2b5dZ)H delta 252 zcmW;GJ5B>Z41i&+v}d46gP>oHJ!5+;UKM@PK!-FBJ2gk3-~eF`5~NgIgPS1b0IYI> z@Bh!o>3p2Ne`u2N{<3?JZsg6WJ64jMy%o*9i<O!*)P~-*iaDf^x_L{CImVi!Ben5& zdo|wp`C@G!v#NL^qJ~&R1rQRY&{AOrR8R>FTD%i?19cG#-7=%HfsK#5Fs^s=j7wO? zVcDEMWj`OjwojxzqHr+-FQLVF(L`A*fvn%vu-8C<5er+&$PNX{T7(+X3csFy?{7B$ DKP^gP From 1f75c3836ea67baf267d2bb445b0f7a29bc68f4b Mon Sep 17 00:00:00 2001 From: Jeroen Ketema <jketema@github.com> Date: Tue, 21 Mar 2023 09:02:21 +0100 Subject: [PATCH 88/97] C++: Refactor dataflow examples to use `DataFlow::ConfigSig` --- .../analyzing-data-flow-in-cpp/exercise2.ql | 18 +++++++----------- .../analyzing-data-flow-in-cpp/exercise4.ql | 16 +++++++--------- .../fopen-flow-from-getenv.ql | 16 +++++++--------- .../index-flow-from-ntohl.ql | 18 +++++++++--------- 4 files changed, 30 insertions(+), 38 deletions(-) diff --git a/cpp/ql/test/examples/docs-examples/analyzing-data-flow-in-cpp/exercise2.ql b/cpp/ql/test/examples/docs-examples/analyzing-data-flow-in-cpp/exercise2.ql index 10c0bcf5ee8..3fbc4fc10fd 100644 --- a/cpp/ql/test/examples/docs-examples/analyzing-data-flow-in-cpp/exercise2.ql +++ b/cpp/ql/test/examples/docs-examples/analyzing-data-flow-in-cpp/exercise2.ql @@ -1,14 +1,10 @@ import cpp import semmle.code.cpp.dataflow.new.DataFlow -class LiteralToGethostbynameConfiguration extends DataFlow::Configuration { - LiteralToGethostbynameConfiguration() { this = "LiteralToGethostbynameConfiguration" } +module LiteralToGethostbynameConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source.asIndirectExpr(1) instanceof StringLiteral } - override predicate isSource(DataFlow::Node source) { - source.asIndirectExpr(1) instanceof StringLiteral - } - - override predicate isSink(DataFlow::Node sink) { + predicate isSink(DataFlow::Node sink) { exists(FunctionCall fc | sink.asIndirectExpr(1) = fc.getArgument(0) and fc.getTarget().hasName("gethostbyname") @@ -16,11 +12,11 @@ class LiteralToGethostbynameConfiguration extends DataFlow::Configuration { } } -from - StringLiteral sl, FunctionCall fc, LiteralToGethostbynameConfiguration cfg, DataFlow::Node source, - DataFlow::Node sink +module LiteralToGethostbynameFlow = DataFlow::Make<LiteralToGethostbynameConfig>; + +from StringLiteral sl, FunctionCall fc, DataFlow::Node source, DataFlow::Node sink where source.asIndirectExpr(1) = sl and sink.asIndirectExpr(1) = fc.getArgument(0) and - cfg.hasFlow(source, sink) + LiteralToGethostbynameFlow::hasFlow(source, sink) select sl, fc diff --git a/cpp/ql/test/examples/docs-examples/analyzing-data-flow-in-cpp/exercise4.ql b/cpp/ql/test/examples/docs-examples/analyzing-data-flow-in-cpp/exercise4.ql index 09c01b953e3..fc73440cd7b 100644 --- a/cpp/ql/test/examples/docs-examples/analyzing-data-flow-in-cpp/exercise4.ql +++ b/cpp/ql/test/examples/docs-examples/analyzing-data-flow-in-cpp/exercise4.ql @@ -5,12 +5,10 @@ class GetenvSource extends DataFlow::Node { GetenvSource() { this.asIndirectExpr(1).(FunctionCall).getTarget().hasGlobalName("getenv") } } -class GetenvToGethostbynameConfiguration extends DataFlow::Configuration { - GetenvToGethostbynameConfiguration() { this = "GetenvToGethostbynameConfiguration" } +module GetenvToGethostbynameConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof GetenvSource } - override predicate isSource(DataFlow::Node source) { source instanceof GetenvSource } - - override predicate isSink(DataFlow::Node sink) { + predicate isSink(DataFlow::Node sink) { exists(FunctionCall fc | sink.asIndirectExpr(1) = fc.getArgument(0) and fc.getTarget().hasName("gethostbyname") @@ -18,11 +16,11 @@ class GetenvToGethostbynameConfiguration extends DataFlow::Configuration { } } -from - Expr getenv, FunctionCall fc, GetenvToGethostbynameConfiguration cfg, DataFlow::Node source, - DataFlow::Node sink +module GetenvToGethostbynameFlow = DataFlow::Make<GetenvToGethostbynameConfig>; + +from Expr getenv, FunctionCall fc, DataFlow::Node source, DataFlow::Node sink where source.asIndirectExpr(1) = getenv and sink.asIndirectExpr(1) = fc.getArgument(0) and - cfg.hasFlow(source, sink) + GetenvToGethostbynameFlow::hasFlow(source, sink) select getenv, fc diff --git a/cpp/ql/test/examples/docs-examples/analyzing-data-flow-in-cpp/fopen-flow-from-getenv.ql b/cpp/ql/test/examples/docs-examples/analyzing-data-flow-in-cpp/fopen-flow-from-getenv.ql index d21ae4ae52e..7d810156e7d 100644 --- a/cpp/ql/test/examples/docs-examples/analyzing-data-flow-in-cpp/fopen-flow-from-getenv.ql +++ b/cpp/ql/test/examples/docs-examples/analyzing-data-flow-in-cpp/fopen-flow-from-getenv.ql @@ -1,17 +1,15 @@ import cpp import semmle.code.cpp.dataflow.new.DataFlow -class EnvironmentToFileConfiguration extends DataFlow::Configuration { - EnvironmentToFileConfiguration() { this = "EnvironmentToFileConfiguration" } - - override predicate isSource(DataFlow::Node source) { +module EnvironmentToFileConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { exists(Function getenv | source.asIndirectExpr(1).(FunctionCall).getTarget() = getenv and getenv.hasGlobalName("getenv") ) } - override predicate isSink(DataFlow::Node sink) { + predicate isSink(DataFlow::Node sink) { exists(FunctionCall fc | sink.asIndirectExpr(1) = fc.getArgument(0) and fc.getTarget().hasGlobalName("fopen") @@ -19,11 +17,11 @@ class EnvironmentToFileConfiguration extends DataFlow::Configuration { } } -from - Expr getenv, Expr fopen, EnvironmentToFileConfiguration config, DataFlow::Node source, - DataFlow::Node sink +module EnvironmentToFileFlow = DataFlow::Make<EnvironmentToFileConfig>; + +from Expr getenv, Expr fopen, DataFlow::Node source, DataFlow::Node sink where source.asIndirectExpr(1) = getenv and sink.asIndirectExpr(1) = fopen and - config.hasFlow(source, sink) + EnvironmentToFileFlow::hasFlow(source, sink) select fopen, "This 'fopen' uses data from $@.", getenv, "call to 'getenv'" diff --git a/cpp/ql/test/examples/docs-examples/analyzing-data-flow-in-cpp/index-flow-from-ntohl.ql b/cpp/ql/test/examples/docs-examples/analyzing-data-flow-in-cpp/index-flow-from-ntohl.ql index e6452137053..a81c3a71d75 100644 --- a/cpp/ql/test/examples/docs-examples/analyzing-data-flow-in-cpp/index-flow-from-ntohl.ql +++ b/cpp/ql/test/examples/docs-examples/analyzing-data-flow-in-cpp/index-flow-from-ntohl.ql @@ -2,18 +2,16 @@ import cpp import semmle.code.cpp.controlflow.Guards import semmle.code.cpp.dataflow.new.TaintTracking -class NetworkToBufferSizeConfiguration extends TaintTracking::Configuration { - NetworkToBufferSizeConfiguration() { this = "NetworkToBufferSizeConfiguration" } - - override predicate isSource(DataFlow::Node node) { +module NetworkToBufferSizeConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node node) { node.asExpr().(FunctionCall).getTarget().hasGlobalName("ntohl") } - override predicate isSink(DataFlow::Node node) { + predicate isSink(DataFlow::Node node) { exists(ArrayExpr ae | node.asExpr() = ae.getArrayOffset()) } - override predicate isAdditionalTaintStep(DataFlow::Node pred, DataFlow::Node succ) { + predicate isAdditionalFlowStep(DataFlow::Node pred, DataFlow::Node succ) { exists(Loop loop, LoopCounter lc | loop = lc.getALoop() and loop.getControllingExpr().(RelationalOperation).getGreaterOperand() = pred.asExpr() @@ -22,7 +20,7 @@ class NetworkToBufferSizeConfiguration extends TaintTracking::Configuration { ) } - override predicate isSanitizer(DataFlow::Node node) { + predicate isBarrier(DataFlow::Node node) { exists(GuardCondition gc, Variable v | gc.getAChild*() = v.getAnAccess() and node.asExpr() = v.getAnAccess() and @@ -32,7 +30,9 @@ class NetworkToBufferSizeConfiguration extends TaintTracking::Configuration { } } -from DataFlow::Node ntohl, DataFlow::Node offset, NetworkToBufferSizeConfiguration conf -where conf.hasFlow(ntohl, offset) +module NetworkToBufferSizeFlow = TaintTracking::Make<NetworkToBufferSizeConfig>; + +from DataFlow::Node ntohl, DataFlow::Node offset +where NetworkToBufferSizeFlow::hasFlow(ntohl, offset) select offset, "This array offset may be influenced by $@.", ntohl, "converted data from the network" From 2fdfa0808a8dfe5d110ddef9b6fcb5bb88d0dafd Mon Sep 17 00:00:00 2001 From: Jeroen Ketema <jketema@github.com> Date: Tue, 21 Mar 2023 09:11:33 +0100 Subject: [PATCH 89/97] C++: Refactor experimental queries to use `DataFlow::ConfigSig` --- .../CWE/CWE-193/ConstantSizeArrayOffByOne.ql | 36 +++++++++---------- .../CWE/CWE-193/InvalidPointerDeref.ql | 36 ++++++++++--------- 2 files changed, 35 insertions(+), 37 deletions(-) diff --git a/cpp/ql/src/experimental/Security/CWE/CWE-193/ConstantSizeArrayOffByOne.ql b/cpp/ql/src/experimental/Security/CWE/CWE-193/ConstantSizeArrayOffByOne.ql index bdf8d175a48..35cce4a30da 100644 --- a/cpp/ql/src/experimental/Security/CWE/CWE-193/ConstantSizeArrayOffByOne.ql +++ b/cpp/ql/src/experimental/Security/CWE/CWE-193/ConstantSizeArrayOffByOne.ql @@ -15,8 +15,7 @@ import experimental.semmle.code.cpp.semantic.SemanticBound import experimental.semmle.code.cpp.semantic.SemanticExprSpecific import semmle.code.cpp.ir.IR import semmle.code.cpp.ir.dataflow.DataFlow -import semmle.code.cpp.ir.dataflow.DataFlow2 -import DataFlow2::PathGraph +import PointerArithmeticToDerefFlow::PathGraph pragma[nomagic] Instruction getABoundIn(SemBound b, IRFunction func) { @@ -36,16 +35,16 @@ predicate bounded(Instruction i, Instruction b, int delta) { ) } -class FieldAddressToPointerArithmeticConf extends DataFlow::Configuration { - FieldAddressToPointerArithmeticConf() { this = "FieldAddressToPointerArithmeticConf" } +module FieldAddressToPointerArithmeticConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { isFieldAddressSource(_, source) } - override predicate isSource(DataFlow::Node source) { isFieldAddressSource(_, source) } - - override predicate isSink(DataFlow::Node sink) { + predicate isSink(DataFlow::Node sink) { exists(PointerAddInstruction pai | pai.getLeft() = sink.asInstruction()) } } +module FieldAddressToPointerArithmeticFlow = DataFlow::Make<FieldAddressToPointerArithmeticConfig>; + predicate isFieldAddressSource(Field f, DataFlow::Node source) { source.asInstruction().(FieldAddressInstruction).getField() = f } @@ -70,11 +69,8 @@ predicate isInvalidPointerDerefSink(DataFlow::Node sink, Instruction i, string o } predicate isConstantSizeOverflowSource(Field f, PointerAddInstruction pai, int delta) { - exists( - int size, int bound, FieldAddressToPointerArithmeticConf conf, DataFlow::Node source, - DataFlow::InstructionNode sink - | - conf.hasFlow(source, sink) and + exists(int size, int bound, DataFlow::Node source, DataFlow::InstructionNode sink | + FieldAddressToPointerArithmeticFlow::hasFlow(source, sink) and isFieldAddressSource(f, source) and pai.getLeft() = sink.asInstruction() and f.getUnspecifiedType().(ArrayType).getArraySize() = size and @@ -86,21 +82,21 @@ predicate isConstantSizeOverflowSource(Field f, PointerAddInstruction pai, int d ) } -class PointerArithmeticToDerefConf extends DataFlow2::Configuration { - PointerArithmeticToDerefConf() { this = "PointerArithmeticToDerefConf" } - - override predicate isSource(DataFlow::Node source) { +module PointerArithmeticToDerefConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { isConstantSizeOverflowSource(_, source.asInstruction(), _) } - override predicate isSink(DataFlow::Node sink) { isInvalidPointerDerefSink(sink, _, _) } + predicate isSink(DataFlow::Node sink) { isInvalidPointerDerefSink(sink, _, _) } } +module PointerArithmeticToDerefFlow = DataFlow::Make<PointerArithmeticToDerefConfig>; + from - Field f, DataFlow2::PathNode source, DataFlow2::PathNode sink, Instruction deref, - PointerArithmeticToDerefConf conf, string operation, int delta + Field f, PointerArithmeticToDerefFlow::PathNode source, + PointerArithmeticToDerefFlow::PathNode sink, Instruction deref, string operation, int delta where - conf.hasFlowPath(source, sink) and + PointerArithmeticToDerefFlow::hasFlowPath(source, sink) and isInvalidPointerDerefSink(sink.getNode(), deref, operation) and isConstantSizeOverflowSource(f, source.getNode().asInstruction(), delta) select source, source, sink, diff --git a/cpp/ql/src/experimental/Security/CWE/CWE-193/InvalidPointerDeref.ql b/cpp/ql/src/experimental/Security/CWE/CWE-193/InvalidPointerDeref.ql index a35ed79a440..9cadcb505d0 100644 --- a/cpp/ql/src/experimental/Security/CWE/CWE-193/InvalidPointerDeref.ql +++ b/cpp/ql/src/experimental/Security/CWE/CWE-193/InvalidPointerDeref.ql @@ -17,7 +17,6 @@ import cpp import experimental.semmle.code.cpp.dataflow.ProductFlow -import semmle.code.cpp.ir.dataflow.DataFlow3 import experimental.semmle.code.cpp.semantic.analysis.RangeAnalysis import experimental.semmle.code.cpp.semantic.SemanticBound import experimental.semmle.code.cpp.semantic.SemanticExprSpecific @@ -204,14 +203,14 @@ predicate isInvalidPointerDerefSink(DataFlow::Node sink, Instruction i, string o * A configuration to track flow from a pointer-arithmetic operation found * by `AllocToInvalidPointerConf` to a dereference of the pointer. */ -class InvalidPointerToDerefConf extends DataFlow3::Configuration { - InvalidPointerToDerefConf() { this = "InvalidPointerToDerefConf" } +module InvalidPointerToDerefConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { invalidPointerToDerefSource(_, source, _) } - override predicate isSource(DataFlow::Node source) { invalidPointerToDerefSource(_, source, _) } - - override predicate isSink(DataFlow::Node sink) { isInvalidPointerDerefSink(sink, _, _) } + predicate isSink(DataFlow::Node sink) { isInvalidPointerDerefSink(sink, _, _) } } +module InvalidPointerToDerefFlow = DataFlow::Make<InvalidPointerToDerefConfig>; + /** * Holds if `pai` is a pointer-arithmetic operation and `source` is a dataflow node with a * pointer-value that is non-strictly upper bounded by `pai + delta`. @@ -236,13 +235,13 @@ newtype TMergedPathNode = // The path nodes computed by the first projection of `AllocToInvalidPointerConf` TPathNode1(DataFlow::PathNode p) or // The path nodes computed by `InvalidPointerToDerefConf` - TPathNode3(DataFlow3::PathNode p) or + TPathNode3(InvalidPointerToDerefFlow::PathNode p) or // The read/write that uses the invalid pointer identified by `InvalidPointerToDerefConf`. // This one is needed because the sink identified by `InvalidPointerToDerefConf` is the // pointer, but we want to raise an alert at the dereference. TPathNodeSink(Instruction i) { exists(DataFlow::Node n | - any(InvalidPointerToDerefConf conf).hasFlow(_, n) and + InvalidPointerToDerefFlow::hasFlow(_, n) and isInvalidPointerDerefSink(n, i, _) ) } @@ -252,7 +251,7 @@ class MergedPathNode extends TMergedPathNode { final DataFlow::PathNode asPathNode1() { this = TPathNode1(result) } - final DataFlow3::PathNode asPathNode3() { this = TPathNode3(result) } + final InvalidPointerToDerefFlow::PathNode asPathNode3() { this = TPathNode3(result) } final Instruction asSinkNode() { this = TPathNodeSink(result) } @@ -280,7 +279,7 @@ class PathNode1 extends MergedPathNode, TPathNode1 { class PathNode3 extends MergedPathNode, TPathNode3 { override string toString() { - exists(DataFlow3::PathNode p | + exists(InvalidPointerToDerefFlow::PathNode p | this = TPathNode3(p) and result = p.toString() ) @@ -324,7 +323,9 @@ query predicate edges(MergedPathNode node1, MergedPathNode node2) { * Holds if `p1` is a sink of `AllocToInvalidPointerConf` and `p2` is a source * of `InvalidPointerToDerefConf`, and they are connected through `pai`. */ -predicate joinOn1(PointerArithmeticInstruction pai, DataFlow::PathNode p1, DataFlow3::PathNode p2) { +predicate joinOn1( + PointerArithmeticInstruction pai, DataFlow::PathNode p1, InvalidPointerToDerefFlow::PathNode p2 +) { isSinkImpl(pai, p1.getNode(), _, _) and invalidPointerToDerefSource(pai, p2.getNode(), _) } @@ -334,28 +335,29 @@ predicate joinOn1(PointerArithmeticInstruction pai, DataFlow::PathNode p1, DataF * that dereferences `p1`. The string `operation` describes whether the `i` is * a `StoreInstruction` or `LoadInstruction`. */ -predicate joinOn2(DataFlow3::PathNode p1, Instruction i, string operation) { +predicate joinOn2(InvalidPointerToDerefFlow::PathNode p1, Instruction i, string operation) { isInvalidPointerDerefSink(p1.getNode(), i, operation) } predicate hasFlowPath( - MergedPathNode source1, MergedPathNode sink, DataFlow3::PathNode source3, + MergedPathNode source1, MergedPathNode sink, InvalidPointerToDerefFlow::PathNode source3, PointerArithmeticInstruction pai, string operation ) { exists( - AllocToInvalidPointerConf conf1, InvalidPointerToDerefConf conf2, DataFlow3::PathNode sink3, + AllocToInvalidPointerConf conf1, InvalidPointerToDerefFlow::PathNode sink3, DataFlow::PathNode sink1 | conf1.hasFlowPath(source1.asPathNode1(), _, sink1, _) and joinOn1(pai, sink1, source3) and - conf2.hasFlowPath(source3, sink3) and + InvalidPointerToDerefFlow::hasFlowPath(source3, sink3) and joinOn2(sink3, sink.asSinkNode(), operation) ) } from - MergedPathNode source, MergedPathNode sink, int k, string kstr, DataFlow3::PathNode source3, - PointerArithmeticInstruction pai, string operation, Expr offset, DataFlow::Node n + MergedPathNode source, MergedPathNode sink, int k, string kstr, + InvalidPointerToDerefFlow::PathNode source3, PointerArithmeticInstruction pai, string operation, + Expr offset, DataFlow::Node n where hasFlowPath(source, sink, source3, pai, operation) and invalidPointerToDerefSource(pai, source3.getNode(), k) and From 346086524bb15bdc96bde18ccafebe2a13388891 Mon Sep 17 00:00:00 2001 From: Rasmus Wriedt Larsen <rasmuswl@github.com> Date: Tue, 21 Mar 2023 10:09:01 +0100 Subject: [PATCH 90/97] Python: Accept dataflow-consistency test changes To PRs must have had a conflict when merged separately --- .../dataflow/variable-capture/dataflow-consistency.expected | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/python/ql/test/experimental/dataflow/variable-capture/dataflow-consistency.expected b/python/ql/test/experimental/dataflow/variable-capture/dataflow-consistency.expected index 820c89524bf..fa1789c0a86 100644 --- a/python/ql/test/experimental/dataflow/variable-capture/dataflow-consistency.expected +++ b/python/ql/test/experimental/dataflow/variable-capture/dataflow-consistency.expected @@ -1,5 +1,10 @@ uniqueEnclosingCallable uniqueCallEnclosingCallable +| collections.py:39:17:39:38 | Lambda() | Call should have one enclosing callable but has 0. | +| collections.py:39:17:39:38 | Lambda() | Call should have one enclosing callable but has 0. | +| collections.py:45:19:45:24 | mod() | Call should have one enclosing callable but has 0. | +| collections.py:45:19:45:24 | mod() | Call should have one enclosing callable but has 0. | +| collections.py:52:13:52:24 | mod_local() | Call should have one enclosing callable but has 0. | uniqueType uniqueNodeLocation missingLocation From 2876b4aa5deedc9ad354ab559b3115a4064405b7 Mon Sep 17 00:00:00 2001 From: Chris Smowton <smowton@github.com> Date: Tue, 21 Mar 2023 09:25:33 +0000 Subject: [PATCH 91/97] maven-httpo-repository: add Maven wrapper Maven 3.9.1 changes the format of the error message this test is looking for (though it still matches the target regex). Use the Maven wrapper to avoid such sensitivity to the precise version present in the environment. --- .../maven-http-repository/.gitattributes | 6 + .../.mvn/wrapper/maven-wrapper.jar | Bin 0 -> 59925 bytes .../.mvn/wrapper/maven-wrapper.properties | 18 ++ .../diagnostics/maven-http-repository/mvnw | 287 ++++++++++++++++++ .../maven-http-repository/mvnw.cmd | 187 ++++++++++++ 5 files changed, 498 insertions(+) create mode 100644 java/ql/integration-tests/all-platforms/java/diagnostics/maven-http-repository/.gitattributes create mode 100644 java/ql/integration-tests/all-platforms/java/diagnostics/maven-http-repository/.mvn/wrapper/maven-wrapper.jar create mode 100644 java/ql/integration-tests/all-platforms/java/diagnostics/maven-http-repository/.mvn/wrapper/maven-wrapper.properties create mode 100755 java/ql/integration-tests/all-platforms/java/diagnostics/maven-http-repository/mvnw create mode 100644 java/ql/integration-tests/all-platforms/java/diagnostics/maven-http-repository/mvnw.cmd diff --git a/java/ql/integration-tests/all-platforms/java/diagnostics/maven-http-repository/.gitattributes b/java/ql/integration-tests/all-platforms/java/diagnostics/maven-http-repository/.gitattributes new file mode 100644 index 00000000000..36e4b9d7df9 --- /dev/null +++ b/java/ql/integration-tests/all-platforms/java/diagnostics/maven-http-repository/.gitattributes @@ -0,0 +1,6 @@ +# +# https://help.github.com/articles/dealing-with-line-endings/ +# +# These are explicitly windows files and should use crlf +*.bat text eol=crlf +*.cmd text eol=crlf diff --git a/java/ql/integration-tests/all-platforms/java/diagnostics/maven-http-repository/.mvn/wrapper/maven-wrapper.jar b/java/ql/integration-tests/all-platforms/java/diagnostics/maven-http-repository/.mvn/wrapper/maven-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..bf82ff01c6cdae4a1bb754a6e062954d77ac5c11 GIT binary patch literal 59925 zcmb5U1CS=sk~ZA7ZQHhc+Mc%Ywrx+_*0gQgw(Xv_ZBOg(y}RG;-uU;sUu;#Jh>EHw zGfrmZsXF;&D$0O@!2kh40RbILm8t;!w*&h7T24$wm|jX=oKf)`hV~7E`UmXw?e4Pt z`>_l#5YYGC|ANU0%S(xiDXTEZiATrw!Spl1g<J=Bi|XeNO+{WbLk9%<x8@z!nrdDA znRkh>yQYxsqjrZO`%3Yq?k$Dr=tVr?HIeHlsmnE9=ZU6I2QoCjlLn85rrn7M!RO}+ z%|6^Q>sv`K3j6Ux>a<oZy1b+;ewnh8hg1fCQIy&S)pjS|#@g<H^-1bOAp22TCVK*w zFkI=E*w`OZuq3_?1=;MYHTh>s6NoB}L8q#ghm_b)r{V+Pf3xj>b^+M8ZFY`k|FHgl zM!^0D!qDCjU~cj+fXM$0v@vuwvHcft?EeYw=4fbdZ{qkb#PI)>7{J=%Ux*@pi~i^9 z{(nu6>i-Y^_7lUudx7B}(hUFa*>e0ZwEROS{eRc_U*VV`F$C=Jtqb-$9MS)~&L3im zV)8%4<VB^#l&fNdVL+JS#Gd)Z7;?KpcjQxDGC$|w*q|-2XBXD7Z@~V#j=d2Jn(=(d zj;Go7{VAM)ps_dipAHajR`iu7Mbu_~Cg#nL$e%?~3mx>)^9W3c4IT<q-5S`|-}diF z&3@h>94|h<wSsY#m<=Yy_XhgsCDYir7h?16V?8<`Af*33M_DORF?nUNO)YJw^<i|M z=bBZ=Vr2`6;w&}`+~e@NgODmwiyv*a6p5kawL~otwWAC~5g(8IDP8`B#%_Pr<cis) zF4h{3@3O8lhhT5pdc+tfvQVyF%6Llj`0ft`lU)8d@14J%i@eLZ7BoWMKAx{^^R=0C z!hK|@*F3#_=*)9C0a|Ksw#K_W{b8?bu6?v3ht8xsyEJv_uTwZHn%v!-C<Q8OU>)3k zdAT_~?$Z0{&MK=<JbrB6g(AMdL%&!uRI60+^7}d3e)e0j-czPSw<OAuYLW9Y_ew#U zXj2-ihtE5s*Pt}j89A3DsXZ>M0K)Y#_0R;gEjTs0uy4JHvr6q{RKur)D^<rtx<Ou- zqt>%t<Wq43%-yGx02S@K8jJu1G+H^|TF(yLpf$H~7)5A|vt6PCu8XLpui}r+Oeflq zEIcsl_9hezS8dPHbz)^98xzuMsfTbBKqw^H<?lFhDQGP}>>W+U;a*TZ;VL{kcnJJT z3mD=m7($$%?Y#>-Edcet`uWDH(@wIl+|_f#5l8odHg_|+)4AAYP9)~B^10nU306iE zaS4Y#5&gTL4eHH6&zd(VG<m$AZp09z($MlF$DL@O;dBOKw7hMqCwv<#(TCHtYGEJp zbGLnOjWuLzZ6;4R1<-{$=CeT?`>yR0Qccx;>0R~Y5#29OkJpSAyr4&h1CYY|I}o)z ze}OiPf5V~(ABejc1pN%8rJQHwPn_`O*q7Dm)p}3K(mm1({hFmfY{yYbM)&Y`2R=h? zTtYwx?$W-*1LqsUrUY&~BwJjr)rO{qI$a`=(6Uplsti7Su#&_03es*Yp0{U{(nQCr z?5M{cLyHT_XALxWu5fU>DPVo99l3FAB<3mtIS<_+71o0jR1A8rd30@j;B75Z!uH;< z{shmnFK@p<c*k!ASW^jFT4}x1ZHyr_B0z&E&2fAG4Drji!}+Si_*v^Asl&{lo8sUs zE197O5W)UAP3Qz04`k+7LkT%O2P^-#_vBI$;n=o<hJMKY<R0M5_Ot*^b+IcmpK1?9 zN?+u6)z54MQhWMdr=<xT$0xZtDu;R}I8X#KhXz`kB#>l080=?j0O8KnkE;zsuxzZx z4X2?!Dk7}SxCereOJK4-FkOq3i{GD#xtAE(tzLUiN~R2WN*RMuA3uYv-3vr9N8;p- z0ovH_gnvKnB5M{_^d`mUsVPvYv`38c2_qP$*@)N(ZmZosbxiRG=Cbm`0ZOx23Zzgs zLJPF;&V~ZV;Nb8ELEf73;P5ciI7|wZBtDl}on%WwtCh8Lf$Yfq`;Hb1D!-KYz&Kd< z+WE+o-gPb6S%ah2^mF80rK=H*+8mQdyrR+)Ar5krl4S!TAAG+sv8o+Teg)`9b22%4 zI7vnPTq&h=o=Z|$;>tEj(i@KN^8N@nk}}6SBhD<PPHB-6A{xgn^pO2wnq-{uDn}!X zkFWGAiA)5r(su8%oSzM+Ef6oCJJ^=+oLG9IrvSP+Y5y&%7ILTT;nkXDJSzGRlRpIe zzY2O&*;Dr{?(R&M^d|SxO!Y8U-k>IGCE4TrmVvM^PlBVZsbZcmR$P7v3{Pw88(<uW ztB)y~m-H1G6Tfxrt^Gu+qumDml;Hs;IfKCD6rvW^QmZFHcZB3DT|PuYV0Tl|5RopA z|AclGR1+|zjkh`!XJo-j`yp&<(}-)o;pnV#Xfcv}Gruqz8{}TbRyJY~bgC)J*RP~g zGcgy1kkIn`2~{LV?t)5@;qalE^deO82VuP7j5tZak~R2KGRe%+>jhhI?28MZ>uB%H z&+HAqu-MDFVk5|LYqUXBMR74n1nJ|qLNe#G7UaE>J{uX(rz6McAWj)Ui2R!4y&B01 z`}LOF7k|z0$I+psk+U^Z3YiAH-{>k*@z|0?L4MPNdtsPB+(F791LsRX$<VuyvnwiI z(K-dJn=*HufvEc<DZQQ-7`T*9aZ~p0n%dwwY)BoD$|P|)Do)#9yCHe&0qAi6{^48b zd2+7n5%@}QT9MqR=pdokZNF(9OZ;E^;bL1YhirmI%<+eb_%lgP{TQyZgshO8(qNlk zpw~LREK7)~2D6TE{v`eZF}V3MbN8C8*TA}vhP<!2VTa(srLi0?(R_#zewIK!ufD)a zQTVIO$dG(WPnB^76q#^xy#g>D<K1?(n{4=8S(Q<%hpM!=Wqn)k)~;N&B+z43xDE}0 z7cTNza%-B}LOHW@RQQ(q*)Nz^D1QtVsP&P7KmFo=s3}auU<QFYgq~N>m(Gycm1k}n z#a2T#*)k-v{}p@^L5PC^@bH+-YO4v`l7Gq)9pgSns??ISG!M6>7&GySTZkVhykqk* zijh9sE`ky?DQPo+7}Vu@?}15_zTovL$r%h~*)=6*vTz?G#h|~>p(ukh%MKOCV^Jxa zi~lMP5+^-OW%Te@b#UoL6T1%9h-W}*hUtdu!>odxuT`kTg6U3+<o&G>a@6QTiwM0I zqXcEI2x-gOS74?=&<18fYRv&Ms)R>e;Qz&0N20K9%CM_Iq#3V8%pwU>rAGbaXoGVS z-r5a$;fZ>75!`u@7=vV?y@<KA?*qC~z8eOm#r+t)N&K0Gr}Fa`*A-cJ2@B5ChOyV( z4uz7%MM16aabC<2Qoxh28y4jTf4j9;P%G9v6{_|#J+^3F=IOLabAu`<nFg}E({jJE z8xRgYA;UVCZ7N89FPzL$-OZdX5uF;0hjM&8G|U`vQHCIHEYb9d6I|I#N-A!FS)A~= zY6uj)3N{}_dLrvILYe)ol)TL2qWKbefZ9Wk-TUlP!_w5p-Q^=(!nFgD7vRq;f1IP) z+ripz;odY^?mD_xT2yo`1!#dJ^v6`{lSR!25-O?8ds8F6Qe>7J;S;E#lvQ?Ar>%ao zOX)rc794W?X64tUEk>y|m_aCxU#N>o!Xw7##(7dIZDuYn0+9DoafcrK_(IUSl$m`A zZF1;0D&2KMWxq{!JlB#Yo*~RCRR~RBkfBb1)-;J`)fjK%LQgUfj-6(iNb3|)(r4fB z-3-I@OH8NV<qrI{Pq_{P2}sy$Miq<CUN%Sud1OuR>#Rr1`+c=9-0s3A3&EDUg1gC3 zVVb)^B@WE;ePBj#Rg2m!twC+Fe#io0Tzv)b#xh64;e}usgfxu(SfDvcONCs$<@#J@ zQrOhaWLG+)32UCO&4%us+o5#=hq*l-RUMAc6kp~sY%|01#<|RDV=-c0(~U2iF;^~Z zEGyIG<C}{(SZGU?CPQqQF7}Y}Ph2mTLXWA$H5>a;#2iBbNLww#a{)mO^_H26>4DzS zW3Ln9#3bY?&5y|}CNM1c33!u1X@E`O+UCM*7`0CQ9bK1=r%PTO%S(Xhn0jV&cY5!; zknWK#W@!pMK$6<7w)+&nQZwlnxpxV_loGvL47cDabBUjf{BtT=5h1f2O&`n<$C%+3 zm$_pHm|BCm`G@w&Db)?4fM_YHa%}k|QMMl^&R}^}qj!z-hSy7npCB+A1jrr|1}lLs zw#c+UwVNwxP{=c;rL2BGdx*7zEe1Bcd{@%1-n8y7D4tiWqfpUVh-lHmLXM^KZShOH z*xFp)8|Y+bM`|>mg}p~MOHeh4Ev0_oE?T1n|HMCuuhyf*JDmFP(@8+hi#f-8(!7>g zH}lOHg#Nw(x(LkB`Q;g)oVAM{fXLqlew~t2GU);6V}=6Hx<4O5T!!-c93s;NqxUDm zofsXe!Q%wAD~BBUQ3dIiCtR4WMh-t>ISH?ZMus*wja+&<^&&Gm-nBlDvNS4vFnsl^ ztNpIbyMcWMPfKMe=YnWeIVj|?e>nZbwm$=sV@Qj@A@PE#Gnjlk{CGPDsqFS_)9LEa zuKx7=Sa>|^MiSKB?)pG()OoM<?&<tW6FJ$u^Kt1qT7ksS8@}8_z<b*L*puJzY3=CJ z)OTt+T<?dl!w~u+;8=1#7vf~yK$jl?=QESDW1n~8v4@`vj#YdoADlWW;<Ir^;6f(g z>}_%lx|mMlX&!?+`^^4bT=yz=ZoxWH_ngA*jX*IZcHOjb62dT(qTvBPn`2AFuL0q` zG+T@693;<++Z2>R2bD`qi0y2-Zf>Ao)K0f&<Hn4AI6O9Ew*L_j4l@0K+eIuQF>d2P zfP78gpA6dVzjNaH?(M_mDL)R0U=lEaBZvDI4%DXB?8uw7yMJ~gE#%4F`v`Nr+^}vY zNk!D`{o4;L#H`(&_&69MXgCe`BzoU+!tF?72v9Ywy}vJ>QpqhIh5d@V>0xHtnyvuH zkllrfsI^;%I{@6lUi{~rA_w0mAm940-d++CcVAe<%1_RMLrby@&kK~cJQDXKIiybT z-kqt-K3rNz|3HT@un%{nW0OI{_DTXa-Gt@ONBB`7yPzA#K+GBJn@t@$=}KtxV871R zdlK|BI%<KdxORnw$Cvt>we#j)k%=s3KJX%`<AeGv)9T)JOEGs4MG2hoY8CIW?2%l8 z4+J!~^2?j01U4i<1BbAiAxCtM2(q0=aBbjZN{!YIUn*mF&pfa&An>+e4L~_qWz2@P z#)_IbEn(N_Ea!@g!rjt?kw;wph2ziGM|CPAOSzd(_Cp~tpAPO_7R!r5msJ4J@6?@W zb7r0)y);{W17k3}ls4DaNKdRpv@#b#oh4zlV3U@E2TCET9y3LQs1&)-c6+olCeAYp zOdn^BGxjbJIUL0yuFK_Dqpq%@KGOvu(ZgtKw;O*bxSb1Yp#>D?c~ir9P;<3wS2!-P zMc%jlfyqGiZiTjBA(FcUQ9mq#D-cvB9?$ctRZ;8+0s}_I8~6!fM~(jD=psem4Ee>J zWw&CJ7z{P9{Q7Ubye9)gwd`}~OSe#Rf$+;U1GvliVlhuHCK9yJZ2>_y@94OzD`#Ze z9)jO->@7)Bx~CeDJqQK|0%Pfmg&-w7mHdq3hENhQ;IKK;+>|iFp;c?M^kE!kGY&!y zk0I0Fk*!r6F59pwb<6v2ioT*86d(Tee%E1tmlfVjA#rHqA%a~cH`ct#9wX$-o9erW zXJEEOOJ&dezJO$TrCEB2LVOPr4a1H9%k<&lGZo1LDHNDa_xlUqto!CGM^Y}cxJn@x ziOYwn=mHBj_FAw|vMAK^Oqb(dg4Q?7Umqwc#pL?^vpIVNpINMEiP4Ml+xGo3f$#n$ zSTA3aJ)pM~4OPF>OOXOH&EW^(@T%5hknDw^bLpH%?4DjNr1s9Q9(3+8zy87a{1<&7 zQ@0A|_nnege~*7+LF5%wzLWD`lXWotLU4Y&{0i|(kn5hdwj^9o@)((-j86#T<b@W9 z+j_`4S)Ygdp}18#H-?4dA?hq#k==B$W6aKP0}Rf@202&?(gT!k9-icY&e5MF9?2lH zC42?xgC_QqCaKAztkZ%x9*0s%qzMCGn6?QW1nbSqe`ZtIjQ|}sKs)gN%p+*X7H^Y6 z0s&nk00FUnPx#;HssA9K{++b>KNN|Got?9j^EYE8XJ}!o>}=@hY~siOur_pZ`mJW+ zg}Q?7Q_~bhh6s%uqEU!cv`B=jEp1K|eld>}I`pHtYzif`aZCe88}u$J6??5!TjY7Z zi_PXV!PdeegMrv48ein(j_-BWXDa73W&U|uQY2%u#HZ5hI@4>q?YPsd?K$Vm;~XD| za8S@laz_>}&|R%BD&V-i4%Q6dPCyvF3vd@kU>rvB!x*5ubENu_D>JSGcAwBe1xXs> z#6>7f9RU7nBW^%VMe9x%V$+)28`I~HD=gM$1Sivq)mNV>xD~CileqbUCO{vWg4Rh# zor2~~5hCEN)_0u$!q<(|hY5H=>Bbu%&{4ZV_rD1<#JLjo7b^d16tZ8WIRSY-f>X{Z zrJFo^lCo+3A<buY*fei3#c|;F8_PK|gfwnU^T}JB*6KAsTXPn}g|)%h>agC{EW4g= z#o?8?8vCfRVy)U15jF^~4Gl{&Ybt92qe)hZ^_X>`+9vgWKwyZiaxznCo|TfVh3jIi zc<r9gMg|huztruD*~;Ja(RrQ-=~g4gilb{xySPH%Swbd#|A4M4H!-y|;?(wNQKi~& zLftNvKx(Hu<enep8Q|!v;})qVY~TeNST*zep)=$5d9<wxd-Tu|ellCFi4+vF=x6}* z-gAweZb9irHN<q936{Ic2*rBc$&_dbxz0t12@80t>Ef?H`U;iFaJh=3Gy2JXApN`o zE=O1Gg$YQt6|76IiMNF?q#SA1bPB@dw#H+-V@9gL>;1mg+Cb#k1ey8`dvR+(4ebj= zUV1Z)tKRo}<wDK+$w==~fhD3fWQd2{>YEh@TN=$v(;aR{{n8vk`w|nNuHuckt$h27 z8*aBefUxw1*r#xB#9eg<Ia!ovMuf%^ol=+K6qEa~=#G4X0X@^X45!<fK8D68Ajebl zhwOrwX<bCl?lFyz{|egs&!HN7IRmEx1k;;Lq323NQ;a7MeHx$W?OIu58WshudZ{71 zTOOAUa)s$^(i<3`lD+2_P;j#@gC~yt8F_o3`3XUAUzJ;k>cpXEi_*UAJYXXk!L7j@ zEHre9TeA?cA^qC?JqR^Tr%MObx)3(nztwV-k<CqH`xSfi8)&P$HcH|UF8z+N8t4s* zHBjJo6|KQ;VB!*0(q(aM^qiVTzuG+K>CeU-pv~$-T<>1;$_fqD%D@B13@6nJvk$Tb z%oMcxY|wp&wv8pf7?>V>*_$XB&mflZG#J;cO4(H9<<L!rDR5PSb<UG)n1aeahvnHh zHZm�>>)V(X0~FRrD50GSAr_n^}6UI=}MTD3{q9rAHBj;!)G9GGx;~wMc8S8e@_! z_A@g2tE?_kGw#r}Y07^+v*DjB7v08O#kihqtSjT<VbVM3+HC$Rd+I2d5+-ntwZcz# zsr)&#WRhKPRkD0uQhj)C!QSq}%HDboI$2&sNNF9}cEAA3x7Ak~Jym(GW}T(RP`_EU z{9L(YjNS4__0brzuEECd!Ol7FvAShsB-oHa>)2uwHG1UbSIKEAO<7Nt3T;R`YCSSj z!e)qa4Y~g>{F>ed`oWGW>((#s<m@uWrltM4nDkH1=1WXteiJQ5jiOR+R9VC8DKXxF z;^(<c0hedd*Mvi)emSi?CSB?jYzGO-=B~0MnA>$zQGbsS&sg}^pBd?yeAN05Roe8> zT5^XsnI??pY-edI9fQNz3&cr}&YORzr4;sw1u{|Ne1V}nxSb|%Xa_Xy5#TrcTBpS@ z368Ly!a8oDB$mv21-kqD9t&0#7+@mt50oW4*qGcwbx}EyQ=zv+>?xQUL*ja2`WGq` z)sWi!%{f{lG)P(lu6{68R~smEp!Jy9!#~65DQ1AHIc%r7doy*L!1L>x7gLJdR;hH_ zP$2dAdV+VY*^|&oN=|}3-FdyGooDOM-vAGCT@@JyuF4C(otz>?^9!lR%m-tde}ePe z)Jp)zydtP%C02mCPddGz5R9NYvrS6)Bv$~r@W&cP5lLp7-4NrEQDN3%6AmXH@Tdfj zZ+k^}6%>L=d8BK-pxg<cM-c6;y=-m0fM(b12l{KfZ_~Ky44ntwW>vV`ix>w6F;U0C zlZ#lnOYYDhj4r)_+s){%-OP5Z{)Xy~)T{p`w1d-Z`uhiyaHX5R=prRWzg^tr8b$NI z3YKgTUvnV)o{xug^1=F=B;=5i^p6ZQ3ES<#>@?2!i0763S{RDit@XiOrjHyVHS*O` z`z@(K2K8gwhd0$u@upveU3<SEyIL<vU5VP293PR^vId<wnSZ5H#V8&}X5MEqI$gsY zw_wX*_eg}_+wT2Jiig_;?mii|&#WWqeoXB?7E6%B{>ryuDP~by=Xy(MYd_#3r)*XC z^9+R*>njXE-TIP1lci2Q!U>qTn(dh*x7Zxv8r{aX7H$;tD?d1a-PrZ_=K*c8e050Z zQPw-n`us<k<i9ouLYsAM)F41W#NYKGmVfon{b6Ei=wj{s!_Ljt+Ro6}#F32oKYqE& zx(cYmX#Ap9Ep#$vszUD|MMf<|uzR>6g%-5T&A%0G0Pakpyp2}L*esj#H#HB!%;_(n z?@GhGHsn-TmjhdE&(mGUnQ3irA0sJtKpZ!N{aFsHtyTb#dkl=dR<nHpjD5*<cRzAm zCBDYEx*e9m{^o6|8s^HRBwLU7FwQ^yyayv9p8Qj>F+oo-dwy<#wYi=wik;LC6p#Fm zMTEA@?rBOmn>eCuHR%C{<p(lKrvz899}(A(Nm9R60wLL}f1x5KDv`$Zc`y{szWTZG z1oST<OD>!jx>b|+<6B-)Z%(=lG{@y_@8s2x4Hym6ckPdCB$7NZFp_|El()ANXTORs zO@b$@1`3tXjEm>;bX)%xTUC>T)r6eTFtq<FZ?(?<OGM?Q&tuPYN@Uo6^hF$HSg%vD zxZPci;YQo$IM+`KS#jfY=;pX&`Eh95*PkBf!pBjI`|zhghY<f+c8J@x2)q6(c7SPJ z@vhg-rRn7!E<Or7$~cF7r~Xh?fhUivkh#DN^)A(rTA8N>*Rp*_?%C+fEzT##kVNH` zV}-lw6&hY;cyl5#RR-w!&K4e)Nf4noLFyjiAbKvP7Y!=2lRiRjc$&d?P~!<L9`Pf+ z!Wf_eYE3HUYN{A)l?w4UTbR`6Pa3|Fjj}OMaSzE~3YSAxBkIUW%0UI@&rdiGf2cJ~ zvWlSdMjUsuS+1bi9q}Gd1Wt?SJq%mrBI2UH%Y}W)f8Ok6DE{oF{|>zM@4!?3-vyqs zhm*63jiRI7cfruv!o=zO%H2cQ#o64%*4YAJ=xp~No53pO?eEA$`fR4x=^|*#{u3bx z1YB3OT97ZU3=ol)l`K!lB?~Dj(p_i0)NN=fdgz(QBu>8xV*FGZUb7m4NEbrA+BJ1O z%CPI+T>JPq9zpg~<>QR+je>?{g)rSuWpyCDcc2@rE8T>oNWPi<fu;%S0UC=%q2HEW zp~w28q0J^lW32`{qyl{f^_r(jmss#-lS1qwLjQ2ehC#QB01QyR3juep-6a&hT>P*u zLZc3LaQVE<Q%=lxsMdBz9@w<&A(EWI2L-m&S@TkVb;D7^5wx)9)$i1v&=TIOiJ9Y3 zQnvh2z4G88H#&6xDg(FRlE)F=bw2S&ar%)zB-pz8F8JDE1a%x6o(5aPl*)8uPL=MI zHS(f{32nFnz|`^{QyIZoEin3kEh{|H#1u?6aKSx~od93-C%9Q4Io3Z8f<T+9H?QtP z;l0AdPre$9O3OV!b@QOi-we)<(S@wB0(G+lWnw=QU6kg)!m;M+VV#BSq4sUc3r=Qj z9O;MDN=1sJnJ65iI1r;oIuAZ6@;D=Bt4?A<VweU;i?ZoxlzE-<@-vz5tu7#jpdS1~ z40)~v=z+@OFs=yLh{V@#l+%$!a?Y0pj$jw(!Cn-|dV>sC6emsi7DCL0;U0BP!Sw<O z^{LPXkK_|y9l^kdKTqbT`cCTK&-}Z6;y<!E$wJDh1hd^_xY*`K1?)v{e*P4fo5NYP z7q($Np}592cPOK~JhB@w4ll6(9Gw$SIv#m&KtNaD#cHPiRdoKxM^O{n9d`)*b0oRR z%EJNgupUJ+X}!h45A4EzHAV_VAmETIRmhOk&YJvAx>AkXuetI25TYuCwD8~Z|M@2_ z0FaB<B_bnp{nmXQxP{5~VWyTqt{s9j(!p!D#eV&9JvDi3_W68*3N(#`k8=f+3-6Y) zkFr5Zc#Uv#OYrJm6Y~sy<Krzf00~MpvI}%I^ovJ;Ed2TWr8Wc-BsDnJ{KXtd;>G|x zW)FZvkPsN^5(Q}whYFk-E8)zC(+hZMRe5VA6GZM!beBdDBqq#Rye$I~h@Kf8ae!Ay z*>8BsT)dYB${E3A<HPN>^j5m_ks3*1_a^uA+^E{Gxcgw2`f7jw8=^DG391okclzQA zwB6_C;;k_7OnwT<<5RjXf#XxTO9}jrCP+Ina|?UA%gFvNJy7HFE<R$%{w_aq4SF(2 zSU4>x9r{(c&yDZ9e2a<iyL8Km@5?wMc%y*-m2mg9d_xHTg|30Img87eM=wue!EHM! zeQUM-`P9g3xn@ge*$yqyyK23jynxNAOifG9G$Bi|@5qo`>ovtJL$um8u>s&1k@G6# z-s55RDvTcFYZji6x+UMyCu{&*d4N<{6;H^PEF!?X@SqMfGFR}LYImL1;U}{iT!qnA zgqLCyvSp>>nS}|sv56Dnwxdo<Hl(o?6sX;&wvE(hJo7k@I;L}K@J=~zY{soxji4UY z9?q^P7eITNS(9CAD6iCXGE~LKWTH4som>&HrZG1WQL_EkC!D6j)JW4Tv1yyqe&aM- zHXlKm;srQVctoDYl&e}E-P8h#PCQNW{Dg*Te>(zP#h*8faKJ!x-}2Rd)+>ssE`OS? zH{q>EEfl3rrD`3e_VOu!qFXm7TC9*Ni&^{$S76?jtB;*1+&lyEq_j{|Nhg&s;W6R9 zB#r9L#a7UU(Vnq#7asUx%ZyVz{CiVL5!CBl-7p|Kl&=g>)8<oLm>e?z&u?Q^r>L@P zcB6n=#5Wz+@-j`qSB=wD1p_n<<!Z4TwPnXG0NM(mk8BJHasZc63tA1F5<UYzCpGn^ zaCw4*XIlW6!N%@nmz4q~6V7|gW9*Evv?<MW`|W(<J&=kb^a>(NhAp8wa!IxDP?M&_ zKNcJonwpOS>a3-OBC9jGV@*WND}F8~E_QS7+H3ZK6w&kq>B}kc123ypkAfx`&en&T z+?U=!q?N5DDkt(2$KU;t^dR}IVC|M)pn@S)m{saxD4V?TZZWh@hK|C|n(P&eXLAq1 zZ#v0gPhHJYiyjEkJT~&%u@zLE`Lm!p!&-VAfk?eF{HN%PeV5S87-u3n<EG-NKh;9e zHd6ZRnwlqsSBq{N`~1@O`qqL;n4`rUsjWrqkLJfmI|D&4Y=TBfP+&D{!vce^jm?tW z;&2#ItUa{kQev7RI@dB0wFMJBw?f?t&5$mBUX~xfQ|T2c29k`zaY@2>;g}^R(OZqI zA|#<QT)9k3DycGz-0LL=Y)LY0qzuJLDicr$Vv6{tj4fd7!nG^)sDDQ|VDC2mY_%{j zkSUZxy@zAgr(>#x9SAAKAb!FSr9+E^(}_HX+lb+XLQiWF2UmH*7tM?y7R{u<P=FOP zBWV-FjUW$!iYyAzph#|z!!`>3(Vr<5h8V>Y-c`SgYgD9RvV*ZP{xBLuk-5sAcGP5G zDdk)Ua8PaYS-R*C(V(}4>%>{X%~yk{l3&El7iOz}m0Y8MAl_Qc`-2(z2T3kJ4L1Ek zW&^0C5lA$XL5oFZ0#iRevGn2ZyiotWRIag?#IT-E<oqCxXeP1wGo5H9`Z=6KGgpZp zBduVG<TeVF%vpEwFTiavKC@S=Mc`@r)o0;QaaSli5r0}%A;`*oO`vvKLk_;{Pfg$S zCT7#a(@wrfvvB`YbE)9x;SDA5m|D!8{!21Enc&MHT=}BJF)&>$gv92YXfp3P1BJxO zShcix4$;b#UM2o=3x#3;cA8Q#>eO8bAQ6o|-tw;9#7`gGIFVll^%!T5&!M|F|99EZ z?=t(Tag~g}`Wep_VX!|sgf_=8n|trl((YTM-kWDQ1U@<yM;E5LwY(dqOgnE%;}k9@ zCe}Lhy;O+fRGf@^p)X`3$xyT`^@c5M#3Fe>WIg!~YjGqsZN<Z&N7q4NUy=|6zu63a zkSWFyU~--krqX)3yN$z^C*;C+4Q1tvq~<QK;+PFJFYFdUY_tWX^^5ll4&KL1PTp~} z*5#1Y0kk?$sfG_q6Pu9YEsj9qQ@NnsIHqT9^^z$r`l*UEpWgUt#x!Q{&G2|+Xpn8a zg}M@|QQm`;HfZp{@{M+<;~DAx!Re8Meri5&vpJ%LZ3Q<E<7_Yu@|B-JJK&n=3kZF? z{RTIqc8D3%HwQ7ogl`?q&Mj`Px@#_{N29$*ThV-0E<H)9ZgKMSY0>Orayhav_lrw< zgSle+;b;p^Ff)tDt~?&TweI#6(}<3?Uw1@|4MvG2w}sQgX*N;Q=eD+(bJ%jKJ9L2o z3%MlC9=i-DKzXOun`;&7ZI$Iw?Y|j!RhIn*O`mRl2_vUnE*Rf6$?{IC&#;ZS4_)ww zZ${m6i^cVHNiw5#0MSjEF!NaQfSr&DbTX&tHM{Ke)6Pt9^4_Jf%G&51@IH0aA7QRc zPHND$ytZTZ7-07AEv8Rn%5+<=Bx1tW<V>JSG_?CqXuJ99Zwp=hP2?0a{F)A8HLWkv z)nWbhcgRVdtQ4DpZiw6*)QeCWDXGN6@7m@}SN?Ai*4{l!jL`wrp_lL`bJF6HVAOnj zNa*f<X;jZAB)4k7r8h%R&J6p_E?hYm>Tj+{niV5~<z2_=Ab$2%kQ$)H6gJxLq0>*O zN5NwHHcEed1knV2GNSZ~H6A+13`U_yY?Dlr@mtyq*Eutin@fL<nXfGhU->qITcw+{ zgfCsGo5WmpCuv^;uTtgub$oSUezlUgy1KkqBTfdC=XJ}^QYY+iHNnhYEU)j7Oq^M^ zVSeY5OiE#eElD6|4Haq&dOHw4)&QX<E*5YFc4PxPT|+n$;GjYnKmaFaV5s|RfSE3x ztp^JyC$QAO5zbOqa=*g7KAS?jwRH@uW^BkEp6){Bs;Uo4{50BmCKLt0j7r<H3M{$# z`%#6jk50}0h^ULZsl@@Wr0MV3nP@jaW73b#f*$rYU{`UCD>=k_Ut{?Uvr21pd&diJ zB2+roNX!_7mJ$9n7GNdG8v{=K#ifQnT&%`l82sR{h&TKf?oxK%8RlG}Ia$WP=oQ3C z8x#$S3Rrhe<WNB%j3wm5=)s6xy(`=5X{+P(T2E)>yw7recyTpSGf`^->QMX@9dPE# z?9u`K#Vk!hl`$zv<^Wl(#=J4ewGvm4>kxbr*k(>JDRyr_k#52zWRbB<V~_esjy-4T z>BxSsQfy=+DkvQ40v`jh_1C>g+G@4HuqNae&XeekQeAwk+&jN88l<W5RNb5WY_l&< z4vjiv#Y$YDdI#JN;w&!o)}QvjfYM7FZ>@etjc2U0(3m{pQ8vycb^=k>?R~DSv8<p? z?+6f!5F<p8)sbMmfg7C)5!GYrDezJb%v`O`gudLw$^><0tRfmLp27RlxR~V8j?ClC z)_B-Ne*s0#m}G~_QwykU<`~vMvpTlr7=W&w=#4eEKq!$muL_QJblmEh6<Vep?ucjj zm?AdidWiIS?B0e$rbNu6!tOgMnoUYResDf<4%PV9nHOA^XdgVvm9E0PRF+MB4mwI+ zL(T3wtQ2JVOJ{fkC+m8P0kSRmJi-p%Mo6?fEV3tV(N*r^dfS5=6J;n?ryGlXXz3xt zhM$+p3xiosr8uocP0<lWa~$r=VL>*MUg!$z4fC{DBd*3h=N|lf1X7dTfqL1v6~_al z%J+WD;fSJ>TKV*mid$G+8eIjdfK%pu!#kkan;Qi>LK<0bn$?ecFn-b|@+^+OT=0nl zZzN%OUn9w14s`D45>E^)F8?Z?;l!%DF^oL|Yt!@m^V@3twFD@^D5$*5^c%)sM*sbi zk(RQq-d<^O7T8RfFwEK9_us2+S$&W1-Z3OR+XF6$eJl7IgHM~N8<S>sHzWeuzxpB% zE9h3~^*;?_y)7i>a4#z6(ZQ%RaIo)|BtphTOyY@sM+vd#MYN11?ZV(xUvXb&MFg6g z=p`JrH(5;XsW4xVbiJ?|`nutpC1h*K1p~zS%9GcwUz0UWv0GXKX{69Mbhpcsxie0^ zGqg<E+tGEr7w5%hM<MEAj(6pKUdtTtomfVtsfptX39tM8{v=8heZ`>qzpqFAefIt5 zbjNv;*RSO}%{l!Z)c-Qw`A_=i-}4-?=swGSMI^E7)y37u+#O1^yiI2ehK4F|VMVkK z!hIFgJ+Ixg^6jI3#G8UbMwE1a!y~wFx@T(|6G*f($Q=e5na9eDt?f6v;SI;w0g-j% z!J#+aN|M&6l+$5a()!Cs22!+qIEIPkl)zxaaqx#rxQ_>N-kau^^0U$_bj`Aj28>km zI4^hUZb4$c;z)GTY)9y!5eJ{HNqSO{kJDcTYt-+y5;5RiVE<zYg(d4ZgpVzeW5j>9 z-rfg@X78JdxPkxzqWM?WOW8U(8(Lfc7xz`AqOH6jg!Y-7TpXRJ!mtM~T)9C^L}gSL z;YSLGDG_JZayritQkYm6_9cy96BXEf5-2!+OGf|OA7sdZg?o)Z<$B#|?fq|82c!WU zA|T92NDMBJCWHwuFa{aCfTqmu)kwClHDDbMnUQhx07}$x&ef5J(Vmp?fxerb?&J3W zEcoupee$`(0-Aipdr2XA7n`Vp9X;@`bGTh>URo?1%p&sSNNw!h%G)TZ^kT8~og*H% z!X8H2flq&|Mvn=U>8LSX_1WeQi24JnteP@|j;(g*B2HR-L-*$Ubi+J1heSK4&4lJ| zV!1rQLp=f2`FKko6Wb9aaD_i=<=1h?02JU2)?Ey_SS%6EQ>I20QL=(nW-P4=5mvTJ z&kgssLD)l`rHDCI`%vQMOV-yUxHQyhojHdYC*$H1=nrJKqFo93>xvB=M`$}Roksx# zRgV+d8#sk=v+tN#P-n?dx%RC(iv;9-YS-7PrZu#xJ5%k4i*8joRv1J`M_tOQR`{eV zE~<8%VC63sx|_U&{Bpy&<DOu$QP*lC-#xsn41k7rV=faO;)ch$qL#Es?Jo>?!<ly% zBK1m=5{1=bZ`{Yxoz$Yp$=go~!b-1j4#_)rcBj!*OYKK(_&jJ)#h3lc5B2=D=G}<M zrWKC@BKj6?V-z-BNmnz)D40`_ByT~@bE<$*Ku91%_WpOiJX;SQK6iPRCYr|+sL6K+ zRO5?sv8zZIA4f`j6w*BwYz&s1F;jvSsnVNG9I?sYS^%R&H>~^Ce+CNv^T)?diyKrA zu^d&el}PFVW<rN^c}-9)rh!{>KFz9wkriy~eruRakPmmS0ZsKRiEMGj!_V`HL0FT$ zQU#r2x}sc&kxyY}K}1C{S`{Vdq_TYD4*4zgkU_ShWmQwGl2*ks*=_2Y*s%9QE)5EL zjq8+CA~jxHywIXd=tyIho1XBio%O)2-sMmqnmR&ZQWWD*!GB&UKv6%Ta=zRBv&eyf z{;f~`|5~B_&z17;pNS$3XoIA~G@mWw1YgrTRH95$f&qLKq5wY@A`UX)0I9GbBoHcu zF+!}=i8N>_J}axHrl<NPnB@wB#t1bu5faM_VjG(l+jW=A_Vw>mb)A1>vwib%T;N(z z!qkz-mizPTt^2F1``LZ#Is;SC`!6@p@t72+xBF5s!+V#&XJ54bJ|~2p(;ngG3+4NA zG?$Orjti%b`%<{?^7HlMZ3wR29z7?;KBDbAvK`kgqx4(N-xp5MuWJ1**FC|9j~trE zo`+jX&aFP*4hP;(>mA>X7yZujK`$QP9w?a`f9cQJaAA2cdE{Tm@v?W3gT&w=XzhbY zCDpADyRHQ?5fOuf*DrAnVn6BjADR2&!sV&wX1+TC*Qk}9xt8KA7}6LBN-_;c;r`H= zwL1uGsU0;W?OEez?W5HYvu>6SR+O8l#ZM+X@T3>y9G^L76W?!YFcytB^-`NyTDB=; zw421!sr`Wwopu>VDWNN>IN&RxE08d0JJZigpK%)p|Ep&aHWO`AFP)}VkqQg1S#TY> z(W)bm7duX(Nvry|l%sGs+Eudz3=_A0i@M47VtBp1RTz_zxlmqgi53tT!_i)(bad*R zt<1n~oT!|>QLmYf?YL$n8QEJ2A6liMI!hR<?ciV1ZmMhIw0V@Z)FhX|xm0blrPEPo zXa+budJGtI@%niCK;IQA%qK-^q`~<J=dZx3dXiM<!n$pNJz5qs>Y#mB@?9sWAUW8! z3#M&1`ZQmRP*o`jtHjbA78}!&iq6v&rlp|5&!}O}NT>|10NoWbiq5@7lhquTSHBCO z2a!-M+(e10feoq(nVw~!ZC;y+4M=F0%n)oHB7{BRYdVp<fSv_74KFL=#!$ZZ6>eTN zryeS3Ecv^OC_2HcYbRWnOSY2McCa2PfRXH~!iu|fA^#y<&eJkS1^d|DM3)QKAnMe1 zp%9s~@jq$zOV8LQ$SoOZGMPYE@s<@m$#S(N##mh{yFb!URLo?VmR4c2D<_vio;v$u zEJivu^J$RML#dZFhO#!?D8s-JTIP{sV5EqzlSRH3SEW;p+f8?qW%}bdYNyDgxQcQg z)s4r6KHcPGxO_<pp*<o#D{ceRBM|+YAp0z93!g=mqa5foY^;!gUB!|6C<b%WxsLr4 zH7KJ-4m%g8c9ptnGRh&^ywI3_#X(zcIs(7eM*~YyRiJw>ErHr?P}mfM;FZE)8_I3? zDjMJvQui}|DLHJ=GXcz4%f~W;nZtC{WKitP66ONo4K<7TO!t?TYs_icsROOjf=!bP z#iDYw8Xa2L$P!_IMS+YdG$s?Gh(pybF}++ekEr=v(g97IC8z28gdGEK?6QPNA@g_H znGEeNG!5O#5gfi{IY+V>Q!Z=}bTeH|H2IGYcgh~<ZL&~moA|(;3?|bDEa@$T?`TXk zdLtT!kt@h>!jjG`b~g<YdQxorOx@EJT+o8y^dEDsKWU?2Exj<5M*I&p%hjc20q9Bv z`iqz}jTBO*R31Wa{f%@X>Go!$<2(Kis_p5;(P-s_l8JWL!*jOOFW7(UIXj)5^C~7r z>g7M$hT|sIVBpur@M~;gi~j(BNMp8UkYv?y&{`-sK=@)-@S(2kqob<t<DjnW@u+1| ztB2{=8psNjt!TnPo__%6$7=Qz<(V88rw>O@Wt_pSnMh|eW*8azy%8exS@DAQxn9~G zE=4(L_gg-jHh5Ltd<xN_Ak0l{eNfBZrq2_1$gPnAi$0~-D+Ck=1-WAplfbtuCY9<~ zNXuf8u;K={X%at42UA0zvY7}%$e#B55pTAi6DU_FRHQ++l?@KJ*a6s}dsb2%t8^&2 zcn`&{My%cjGB$zCuO1znsB;!2LN|n1=Y?wEioK<m(CA|R0-%)z=sDBxu-nGsGO(du zFQ7onN#?Q}fpb_7F<v{VTgEYEU-Na$_K^9c-PsOh?o5mdsrBdNHYxN?-f%Th0;HC- zv@ONGa0WUlx+4LTiKg_mr9J>XPgG=|7Xcq4E&x?X2G2ma(6{%4i1k?yUE4(M*Qk6_ z1vv$_*9q$Ow(QAvO;Y5T^gBQ8XX5ULw$iW6S>Q`+1H*Qj+COZ<4PxD-Fwh71j0cBx zz1pnDR}STs5k`ekB^)M`Iu39H@BwM@^8_X7VVp@epjNMqRjF($LBH!#dnEe)By}7T z7<ExUvk*DvY}k!+-b$yha(LWlYZS^TuO&eq2&2we*kE;l?7|Shvf<m2jSjZA10o-C zh!NB7YVlYOweKz)Gj;qhl2pZb0xz4**3iuD+G*VjL~Z)kk;7lHrtdMla08PCZJF`( z_zTKldD8m$w}e7lDCbWv?;3VmU*+dl1$3;(NwpZn$-22@bvO={s?G)+L#boO_TOiJ z585erlPcUyKF>*XbIUY>#irgB@|lb)RRvHN^cPT%6slXqX1FW;4YMtNurd;?3g>rm zCSyAc0+aO+x0NojMi`4bp59%=g=zuk4R4o~h<Sbs1RmBIdeO*zF0VFQ>TUxxaj-YA z@UtFr6OY{A=_+?qZnrqBO4<lgx+G$a?yZ0w5+6aP_cErQ^r;4D5?%`Tfq!i$W*f|n z@GRG>9}q~-hZ!+0QZzD)8F6c7AMQ8Edl-y|d#R;NOh4ukOeId((#ChBKo`M=<kU87 zZlEe?9MF;x;*QVWGQBa>8Z@5!BZsX7<wHNcinxSlyJBQv*p=6uZZaZEg?c!imP$`! zvm&{~Z+5Vc#|X6scG--Zmp}eU39D6)xe?hc--uB!d4q1z-o)h{j#HIc4R^bWD7nb` zsm0r_ZluPCvN3Z%P+6B1j~*`6>A3n)%+;0Dy*bI-#fNe6_VV1{v%_*=I&54mqAWAg z3XmVyRkbAG&>7rIx23lx*caz7vL$Tha&FcrqTEUNZXhFsibRbc*L@H$q*&{Bx?^60 zRY;2!ODe~pKwKFrQ{(`51;0#9$tKAkXx7c-OI>j-bmJb*`eqq_;q-_i>B=}Mn^h`z za=K-$4B2-GE(<ub7){>-X{u|gHZ+)8*(@CW35iUra3LHje(qEJao_&fXoo%kNF}#{ zYeCndcH;)cUYsmcLrAwQySyF2t+dUrBDL;uWF|wuX8S|lr+Kg8>%G?Kuzxf;L!g<n z2tfcQ;uFzP=zMS-4_*7={8N^Zd9n(*Hok5S8Bxb%Z3SshR%-POXAUAc=ZwcY0@g!` zC|k1-#MkSM$xjA%N`=lGR(y{QfLE5zQ=o()q~p7unk|>ZoxAqhd;`!i$5wZfphJ-c zd|uR@Q=cF4N1HXz1y}KjQJ8{7#aqNM_|j!oz6@&wEfq)8)wG4ngiGocMk=1Ft54#R zLyJe(u>P{fm>k_wUn20W9BZ#%fN9ZePCU*5DGK$uQ{GP3{oE1Qd^}1uSrdHw<-AM% znk>YZOU^R94BahzlbdB994?8{%lZ*NSZ4J+IKP3;K9;B))u#S>TRHMqa<Uv+%agK* zG@_9~S$UcESJn?TPB(0sL2VG2c?NiYLDNK8*{{j8HajSeEHz)O{Z?)Y0cDHnwlWgl zY3?2zxL5M$5hMxRU0HjF)6#801_E2GIhx<W>-y}{@z#V5wvOmV6zw~pafq=5ncOsU z`b-zkO|3C@lwd3SiQZeinzVP4uu+V>2-LKKA)WQXBXPb#G9E8UQ%5@sBgZtYwKzkq zNI6FloMR!lx7fV|WjJ*b<y5iz8TPE(Dv4iwOECqbuZLasiz#SNedZd@D7YAp{T@iF zlslIE2yRkJjIs=AU05rjd%;~;+mX-$p`pGq6i@kun2FvosHq$6CtSrzvX?__v4OFk z(pleqJSApg!fQ$gPR=1Uv&yTH*aCoveIg14YOb(b0@5$d%(c)41Oqj#!!?zXpyP)? zw?4f|*|TZ=U6pR@<SvV3O=Hc}ya%i@m)N=3wdSw{?lJxcfGvSHLu>`&y_UK9mPl*` z;XO8P%7{H*<oxnGWnFF=q6xhP{~>K=GrNF#+K3At?5`_oXT|Vz!Rh_05t2S&yd`A2 zjcyVJB|#czi?o<&biP<}0alxnpPLzJ9d#_R9(c$2IPXg7=4mL{7WoN>JTCCZ%zV{) zm691r%m<UGTs@CcI*RoP9k)$KUOF3-<@*}^iboE|&-?v+>?d5yR3l=Qxn7|f0?e7@ zk^9ia@dNTbyi6%GO;kec5sHCjtyr*i1QSY;G}gTsivUQRTG(i)y`O_~K{I*S+x=>M z;}<><>$k8!-=R}>b#)kmSE&~qf+xi@lJazu^F@~pV>MQ3ISq0)qH;F^;_yT@vc-Pr z390Cb$Zq{edB^7W@Mz_+gQ$>@*@>hJIjn4*`B@N%Lt_t1J1wT!aN`jpEBE5;Z|_X| zT^67k%@CVrtYeC}n;uLV%ZSClL-hu4Q5t8ke5a8BZ`=p#4yh?Xa^Q~OrJm_6aD?yj z!Od*^0L5!;q95XIh28eUbyJRpma5tq`0ds9GcX^qcBuCk#1-M-PcC@xg<jAxaAZ(K z9Cs+Lw_mae&$G9{rVh3{yU)MxW;<@WLMI~37V>aV`dTbrNS$rEmz&;`STTF>1pK8< z7ykUcQ^6tZ?Yk3DVGo<BD<xc-Tmn%LrcpmWr}|w%H%}%p1&r~#q?YjfZr0KK#w340 zEq0%*I5F#ZNpw{R8bLvr(Gt;6&eNeSf?Nm<?gh?qa(Xv)&naQR!l^YOk^o?^i|TyE zq2td{JO@`S>vmRU?@pWL#e2L7cLSeBrZc$+IyWiBmoex!W#F#PlFAMT00niUZfkGz z0o{&eGEc{wC^aE3-eC$<2|Ini!y;&5zPE>9MO-I7kOD#cLp<3a%Juu2?88km=iL=? zg)Nm=ku7YEsu57C#BvklPYQ>o_{4C>a9C*0Px#k2ZkQ)j3FI#lIW3mT#f*2!gL4$_ zZDI76!tIw5o=j7Opkr~D0loH62&g?CHDg;Lp^HZ;W7)N+=s>^NuhmsYC?}lxS;sOE z69`R?BLA*%2m_L7BSZ^X5BKaWF-Y?b-HqGLcTd9NU7vY8k|j{O`cOrwxB2WW@tmhU zt`FA4?YCJwFISu42CLh~%e8Qg093rgqDa!ASGd!qoQ1e+yhXD=@Q7u0*^ddk+;D{) zKG0?!-U>8p8=*&(bw!x;E{EjWUUQyY3zVB2V}@t$lg*Bn3FId6V_Ez&aJ%8kzKZg$ zVwL+>zsp<S!J3=qtJdFY3l2w_(iG~PKDlH}9ZXY(Ub4F;@>;_`X|m4RRvc|Wtejy* z?bG~}+B%y$b6zBRba$P?mX#UbwE{i{@jbuL@tZ6Rn;SCu#2M*$dpQIn$Hqv`MgjBn zURSnq5+1ReLXsI#*A8G1&h5`YFo^I17Y<LTYJDV#PsEG;0S7I$GvwB!46%vlMZdzV zA6w<~*Y*X*Vy5L$`GX#<ZEY3ebvrARttJ|G<7>=&&1eQDtwY8HI3#DdGWslPJSP1` z1D()O()qzD6U~BYRUPw6gfc4Wx!am$yM#i~5MCmF8=7(q7;n3?L@7uuvn$;8B8wk8 z3>T-EJ5X9Z3@yH;L=9QF<J;MPlIShBahYVw?ra1in#iAZg`LxyM5`EeO~%7yl~@|W zDuKRWvmTNE{LFm)kV#UShv^jA(y#05ioo)j8toZQT(%3>tWmzdE_;Kw^v+te+u`pF zN4&*o>iRKeC&l_{U^a`eymoog3(GY&2h;5vMyRyld37+7bW+&7tvIfrL9TpA@{Z<P z#LlQa&pk3XbCJ0)C*x{@U61TLrQ}mQoWSBEkF5o`Hn<~7iINRp`|>dy!05UMhSKsK zV1FiJ5SlAhkpcl_H0wRzql?0Qp5wz72o2cMC@utM(|&o0Z<PEPLq8j(m;_d){7lZ1 zF_OaWlle+Y8g%~*Z#haKbN@W`hIv!1T!mINCoGsLnABfWym7N;@I;yctV@5kWyyDe zR)2y1Gs!c^*V`fgO^1?ycV>O_JpXr+N7l~F?Ef_02md^m|Ly|(EN;<FF6ssODI7dr zRW)AjZU+DZ4JpJNNaqlVN?SJ6w06t51i4l6hO^8c{6W|o%93q^8KJS4!|lXy|LfS> z%;)3t6SWt{5hgzszZWS1v^AU?`~Rctor7%qx@EySW!tuG+qP}nwr$(CZQHi1PTA*F z*Vo_ezW4q*-hHnl_8%)^$Bx*s=9+Vi%$1qr5fK%c+Hm4kiE$B;k<pgoct_P9YzomC zw4%GWMU`<CW1Urq+H52BHJcz?G7W=}E(b2qfZcAR(0#rf@)f3Tm7?$@2eU4%!|L4^ zKHA+&HHsj^O<U<qMt2LzGYAh-i_g)ci9(y_cY3LPld|PT7wnKQW#1fJhwfQx1y-)r zhUw}V44Y=D+=E=A!T6o~jZpxboJ3r^71MZ!CXcxeLpD$wDJwM}&w7dWOM-H=zOo4R z5aMlRd)R04-UhX8^6m_6Gb*@Av6y=0ZB!<ifyf9DxAOgXUF>gV)wam25w$Y7#k5$> zyB^6k3i~L_6~PX554`c3Lxx;&_sT;I^U92G@fS6#(Xv!B%;H3+{e)1R6lyU)8AK1_ z<b9Yx>?@>F5H=sXG=ep;kDRZO_ofS}`Jus*Qp3`_V4v~&b-RQ=t8AN5H5{@!_Il~0 zZd!-aH=h)(7CJ&tL%%{P{6d_g=5tsj%S3Z!QxjrLdjoKmNP-zSjdJ!?qL(UMq38ps zjKSz5gzwhDFA;5md5yYb>QN)U_@8Xpjl4yw5065)+#MSGp;yQ*{%mt>12;$~<lHVd zN)WcYirx|8&u_*vzY{vQsf1A13nP`x4p{!Gj=nN$nssATE}$So=MMM)DL9H{?MW!R z=w2AeegEeJc{Zg*|0Bj?!vX-H`=1_2nSUjZsQo)h<X_g1f0K_j>R{eVV>o|juO{Z^ z^o^m@DOBrE2mm1nLgBfA(Wi=X9R%(1UYZcZJ!3;*bR^smI~6lyn`O4<Q(G_aC8)C6 zAuc30oqzXiIse`<ed>BOwo-STsQcyodVA~leg9`{=l(qDl@DCM>s+w`%S_q*PIjYP ziuHHuj0VVW1%+TH*lx9#-$^q&l)G_o<!|`B#1^v^cZay|E_IQgcLpGM3h-|Fk|9V- zkh4=IpDN1wq9cgj$^$@@lqKz-clm)(l&VM3fnmzkDM?lL4DZhl8{UGjd=>jju-w{# zVs{oOc>_fcS51xY+19tN`;V~R0wVyu<YRh@cP1!$18OSXFnVhDFy2ZdZFe>xdkS|t zC}~Gtu-<wjaCbr-XJR9748Di`awuQYv3|4^xJvg>UyA{H5~6*ocUWM)RfQ076mL1r zFVWV%zx!_*zk`5&d<JA+8Y6mlY9M|}3$cAvZ(%^+$<u#N`uj-Ki$CM8@#si#<;dL? zAw4Du_TdHf71Yc=<<;EG(%QP(R<?-tpKzAQoaOl8Vmv$x4gAcl)A%i#Fd~JY<(u{3 zhM@yaXm)*Ke0p~aUPgWG#^m+l+Pu#B&AQa|D|&d2*?5Zn`X5{@7Ku&hyMP{4j}H{E z{>Fbdq4nbWxIwAu=`+$V-`m<*-Z*mE2X|>OCAJVV;wlq0E$hVe@&x7V(!xg1*;%`} zxxBu5;jmZEH*e!Rj=Mz|udBR8BR6LiGoLWb<1=<14it;Fuk$6=7YCR&;F+%r`{S6M zP92W>ECy`pZR$Q<6n8Zw1|uh*M=zK=QP0b38_aX#$gB^y>EahIiUzy^MP1ct%UhZX z>FFLVJ=H`FRSq!<_DtWyjLZ6t^Nf|?<69Aj$U0*lrAJG0{t;t8Y^SKLacoR%3EXw+ zDi5T^PkjmJp7@B|$lkEwHHaQ7BGc$})@qNRqk4JH!(bgPM!{Mb&K<yV<jHRMWIVoy z#u^lpT9VaBm{6$Q#Vgx7GGuBV=mm4Rl&zI_;J=qdQMCaL`aB=*Z23ry<fzS<o&7tJ zGx2dXgoDlOHa_zC?MFb(j9Ll?s~b$yb*40(w;?oo@-Z%6N--T-X+1$qG?wE-;&n?S zk)DEzpu!Q3^Gnok8M0Ue0+Q(R;>z|UGk?Qsk<?2zwD2RMgFHT^kgO68uk1$kaQu+$ zK?B8fq-5;P5b8y_Cpn^n9u^CM2^E(Wlc<>ODW5-NCJ3`Fbks<}%TsOB+e{Hn1i7BP z(XsKkfl`r0N)u1VqaPYGlDxR3>%y{&vYaQCnX8AAv8h8>a^4<#jAhtfa;T<VWT@C$ zcAr@%#X?7E8V^0eKy|@fBz@}eT(aKTqEMVX(|*61Fp{Mp5>doFlN=?Ac{@Cdxj{YI z!kxobbr?~GU8JKwH2Ywa(#i=Rzof$nu?4-zlN#QJflTO^QkyarxNI<~MY1}jy~Jz` zBRwV&0+G01D9biQ4PR*1NiSqTXZB~NdI6yVEU|AiWJYA>k9G=*`R^VFjr{jhqZ$&G za0#huq)Mhb&8oR!jrv%;xRe@b&PWBXh7ATurhUY7<a&NYjA0Tf>yobngzP;($8b5g z9U{5JMt%fMp(N6ZVGsYa2p(#ry;Y&;GG(DG((_<Zcui)zvbEB%tBf`&Et+}@|0YDW zbf}&iHS#l9Oozxt8O~FSwBu<ZX>GrS%r&waWuX94*RX8>&x|Lzv8WCaXaWo(<C;Bx zobc#{`&v1MD@n8KJ-K5{V|rJphcoU1QK;3_>3FK=U@G#S$8kCX_R6q|VO;WbeXk~x zmq?NS+S2WfO|{j{dKy5``SRA!r+%)`DCW{s?8uZJW{-4%x}KJzAtiyY6b#)!fe0kA z)=W5C>X6ZLRFH_-$)Z(B8Hr}FD#FLGum2gRluDsrJHf$do$r!ORQqrI6~=-H0vPiG zC2V88MIp?Xhc&UnIS(c)naRXTu-r!%x0J;3uWjp5K%!b_v$;;T0*{_2txs!*+BgP} z%eY2;N7AFz(g@fFy&(hWk`R9#fRZ&X598A7xjHyoDJ4!3CK{Grr4>0<Pu-bQJPm1~ z3ZL+{{?5v5u!pZf>bTBw3ps{tN7KqVY^)~B5<X_j#!R!Mg*@9{m0oqN(P;C_h1SAK z&NY_ma8_1OK<0YNBSvBmHJ$62XvXwfpp3E}pW>St2NQS9wH_Lc=s8$1H5J?52_$nh z+rnm{F~bV<RKn)ryqnXMtd;GHb^w{yrpZLgy27Hr3|FIVKEH|@_s~hg94A@HJ_W~w zn!A>IsiCZ^Gy&eV*X9JTJZB^`|6F$9|Fq@ekZKP~h_BWGsow^hUpo~MCTrdk^1B;= zNXiYAZnUPm>}{vX*&Yb&{0FNvW!V)h-<{na1yT-|kAkG7xU7QA-NAc|e4Nf2`OWnV zxbr6@^w<Z7vr$p6)@)lM5X7EeVt}e48rj5_sbN(%z$<ZxoTI`~7JR5|)2b2RMLgGW zxlhK6@t>O^6xW+Xdu=Z{sdK+Qw3Dii+X&Y(VdCv>CFEIOt?MCM?9@CDUKm7+N>%!q z$WI;(L@2YJ&Qfwr7k@<77r}%_q3O8c#><<+(JFdeT2?e+nsP4h+`n(HuX8^8qLN88 zv^9`|ICnNwS^PYDf7ebCGG~QNosD6-%$5;6<Yd`;#g3;T%=7$CQOe<RIqmU=G$xQC z%xa)bppnQGB=eZ+D<@Ly#Yht0z!$Dg?<F{e!@@BwCnA-r%F)1XrvL7cRA9%ZH=&?P zf!kYuV_ymZA$_l(NpQSSP!isXo)7M?rS5X<n_b%Rf4<Xa0{~M!<irN7`;m1U(2aF( z-gP0)$!7dMRhPqfb@V1S;hw%1pIqN}XExy;y<bRfz@zMYZ#2f*j}Gh6*E`P*Y#$?p zXryT*twJ!Y+5o0!nC(Sp!<VMCMfG47I?&d~^ytmBIBsjAI8PTf5E_7v1TD*F$8kVb zL#>Yx$`PGlZVnxs6ntftJW^L?iy3KIBDW&1q;{OspV)`a4w`+K45XmW5g6HLPL(lu zM^>HAPux}=ZJ?|;f=zDh!2|)WLyu7pHcc)9vAr(R_-sI`3GRfExjVpYMgql~xox)Q z)W3=WFT93oM<sfrh5>dC)bluYO{cphI8Hjl&)W$TKN(PAk2r&mB9-)@%@xbewYx!c z{}phewJ939{qT;q&KR_!>>XnVYPC^kRaX%+G_v;*kg4g0jdi&G2G5$4#bk+*0mK8` zie_>y1oDA_0hGE(n`I(s0k(P&;*KDaX278vofbbNMZ-&1MCm<E#?3vdvlx&C!E^6y z%Nr;4Kp#UhoTqf#96{V^MH39GF#SCI4zIvIEsuHlWngU>PD*6d6oN$VjMzpTd@C8e zg81s83_+Y#T;duYQ%tXE$RWVk=@P5Z1VY<1C?mU)7?G9IHYx#rHCx1Mhb!a<IW)-; z%8)HdAH7t_{i0h&7F*+>jXBoJ-rANULXqSAu0Mn9s%@_;uy-AOG|5#jDZ3j5dR7|< zR_{f>x5E@uRa$=rDD-yel$t(bf5=#v9ZWObAu%fou?4Kk<Xwr*>V-kv<f}csM|CF| zJBi_3H&``c!GbiK>jmRiGX7iDe(Q)_^=>m}`2$#Xi#5CpJTi#5EF1T1mmPB}c<v9l zq}e?4xpl7KR0xJUhRx@uN%&2j3vPH(OVO-{J*Ewi3k=9@SVQTlfwKLA8|rN6VCLi? zJLjxm0#gde*`}3G3mRr5<3)0&BuPl^xnS1t=*Gz6eKl0G7u?d|l(14pCQ!s*_!VrE z9tcP7{`mwW`c^w*LfHD0o)~Q)CD>@A6ou~a`>sHSeM4gF(ksh|DObX#Ao1r$Jp3I3 z-#zhd+d&)DO54E0K@@kKgxRB5%x&3BZ$OrawIi6~b_kN~$5G(kH6b5BD&%g70UWu6 z-ub`EccvhA2YleM%U@;V)N{Ixrkd0bjN}m<e=~F%BMAETB$;lrqdEY}O!BRrUFC|( zVtOfEUu28sK049<m?<32`T+nfwTp%}#e^lj_<N!$7^NUijytn9N7aX3!;ui3I3z2a z9R7ja6%E?URos1~?oZ>=kn%!g%wE&P@WcBs>5NJ~t}y$Ar7F1n_=iC*<|&`C=qG#+ z0|)?s_kRK(@&?Z40!~gQHirKa2ua%+8CVNj{J7LD3|*Wp?EV9b<S6b)VhN!0G<8j| zUTh9O*R^V*2pcMPqV0yK1_}oYnuCz!yCoS*lUlnDU6bm*blNEm;JY6HJrzXmNefoE z&`H|$_Hq2+WYgEPx=%0wuXS?5uoOV-?p1@85iK+;Xj?JTixO-`YSs_$=^*jZffQ&F z`^lx<1893{6rsOG(Z(MU1*#K)rZcWt(6T(Y;Gv2_qK8xF^N5$(ZGxF^G3_%$q-u(< zO$A9W#)I^Bv#}N}i8Tt8N8tmX*dl@}Lb=3&_+T;WE<n7;H@V=T-qeNrn)e6t<V~O9 z@<55oTXV(ds=jK)ezDUaX;fVscJjo`Jqr=buu*3B;w>Z1_j%PH`5U;9>aTZzwPD=a zXur{4zSk&)HrOFOmSK8ZKMHdg*HQk|a($OZ(0puje1K8EZNjPavWjhh64i-B(p7Zf z2g`IQ_W)I`lGa!LCabrDUSVPmGZbVX*#xhnAH|koEn~hs`=w;zVM^IEU${9oXf4C9 zk#|zrR`2_TI+u08MszOoi%H;viD}|x@Ax-{F_aW3ZIQHw-pT;hgNi%we<wp6P$AY~ ze{^A|KlqdS|9JWT4LoyHE!2?AkbOggrO`p-!wbk;%yk3-i&s@?%0*Zq1o;OQo0DY| ze~Bh$urmo<_iA;m)w(u#{gIrrh*(~F@%onh7L=3w&BYW7F9`P{wENsU_qlzx`zrhQ z>uhcB7xt*kubK4fep+r)eaJIl%p9|sqv{M(E4lgwXe=HL2nYvO$$HX>QpPxqUn}WG zs*l{rztHOO@k5#cP%_alezmlZW9HCcT_;auQpbtV(Kh6e(9wF`C;OM(L&uqUaFglN zk@mRfKGV716J9j|zU-6W(m9pmEF&sbiZMv*M3~8lC~<@%sH8mKCL5zS4h--)TNbi$ zGT~m~<Xqt4Ugku^#E2G_alC=jiAO22lT<hzpy#Naak4ABSXCNGR&o%OG%|)=CM+BT z?A|tfRa7=NlUE&uR=-+VFqStdD2qVNQBrVl6J|UHA92){M|va%QO$D?4D8g9OthQI zE1a0K;-oz@P~;|JK%Djm7gJf^Qg_aHgrtLkviQ(an-mXsW4G4A=q;8=i>}sa$tL(& zG_GBAe(+OZUY}-iY-rcb4f^fNZt_IXS52F^MC6>C?-IuOU<D2U%OD#%fbX50V0SxA z#1|nVZDkSLd#P7gVRDpiG3DCKPh;dLF=CSfVF7us<)%T?=B+6GNo0^CQe4Bm=|TFn z0UZ}7dW)@-r*jMaOJ1>ttpxwVQBy0~D@|I1g*pQ^8D9@mu?5(kge3_GjbOm2G+7-z zkx`X#L5jF0+(b=RSgOE*XGFk$mF562Yft^UFH0micC5KNH~tfuDq*ce5Q~fKPyieC z9su^<T|}5m7lk2^7Xbk}{9L##e9c~DnB0(1cT5G>F5Df-F2X&FrZ1?<8uQ5h`uh~m z=&m+g_sL;h^%^JcRk%COiklbyo`Co8z9C%hj$&e+^pKMm>7Jt({+@)$DJbC`QjMHZ zi%3X-hLW4Gca)8|Pf3A1t4Ud8Gcj`ZNDE=lz<+3#C9z0jMR_q934+6jFXzJ$uCq~+ za-#O3p1hSU;tiKizC8=Mh@y(Ne3L{f0B?<h54#Vaj9g9g_az0qaDE57O&i)uDlHYw zB_Ih>%ewopC*<FLQjXKDcFE0)#)1;mi$wj4KsC&$6OI(%tX!ssUqU1XtW_mjY_&=m zt_b*Hv50eLU#WV@>gCiXqueXVpGg9HaGK>hK#}F8++%^d7M6b=5@V(e#PAgrUnD<Z zGZ9!Q=wRj;s}PgH`v%8HVZbKv!jnS{M`lxFP>^4)b1JPZ-PGNWqckW?kadj9w8b7f zp6l)!4JIwHtcBOekEW-B`yJ(E6n$+g06FFIjgZzz&+`UpKdgY-=lxNe1BI|=Cg;T; z?FYQs{*)^&tV>xbx0m~jf7l5>`+q#>!*0u^UJNZmE(3w>j|yNHB$#6zkjE;_0pL0S ze2gb<KtkiAe}I@+k*^3tfg?(SqX@?lyxUlTMZ}=fh!*1Dz@F+k2bTGAqH6|FfxXJt zlY~8(*Rv!CmF>)=zGHVUt5ge;3k7XmZcc5;mh=#z-ZobkM!xX0De$bw@9s|&m~zN9 z!K5tX5=4qA2sK|$bdVMz5etUdXN!`}2PL8R7qLr)<a8|9Ax(EN$heY)`+|&)H>Si} z!IONdCg$e~UlJ3u{n50K+;kj7SP&tC(^xDUbl{fdvL#ilA93{7Vm|&0)1p+nx=!<! z8a22i)%L7m9r#kgjn(JEWEO*7$Jkg+h=-oV_|jv4%O%SrWaw$r7t+~+#l3pL1VZq5 zy3oTe^S3GKsl+M%6e0s;3-94ZJ>XmT2qv6B?FjPHZV*SamC-ro9lXMAb<nm^4uzi2 zh~Z44PXIc>WtsPx?Xq1Kcc_^$@r-YuI4|#Q?})HOyhMfBUVTIsc4Su?*<H!~NMj7^ zL!PUBO<c}&<;aTo*sE>`>kGqVs(0tbI_r0@mbv4tR&NZCQd@%?W!R_Br)qtk^~)!$ zd{bZ$2k_tV&)c$dz%vTer6*=naysJcAnpE2vboBzhwzL3ZZg^xE_1)_2eUw2B&FcL zW(!+zg@=0oy{=sCi##j;)Rn!Ty7I5A;QytP@}FjBaRXc9p9bUK6(&VZ!%ayA`L8Y0 zHgiu1Y%~0(WC8`wP<c8syrdNsj-XN$2(sOhkmJ@9>F)OYDg?-xhpK#kN37I*3t$V> zeFT`E`_n>;_dQuVYN1PBmZ_}9TfEcl#^=`Ab<?Zc3&;EOUY;*#J;>h1!Ek&ykSp^2 zUtg|J2l-(Fu4-@Z^f<izAg~+uz%b!)S8;TN12hK8zzu~^0<72v-u^6nJ7lg@!|1G- zH2mNQ#B%UQQbIwhQBYwid7vCR*?IKX4TcDcUFofRaNLv4G08i6+_nP<Sa#Y&2?RL^ z^-HW553r9OvF<J~FfPy!V0O>ZW1~i@QYwP9Q9$d-lN6U6i%K#778wN;pE7`?CIfN* z4j%4F^H^LF6Q70%gi@GEB7#Kar{F)1=Hjc!yt?q2&-sWb^&Mo@Ali<?FJKu~g1n>3 zYsI8ugwjs$rA3@sca{d2=a5mZ6PM=U7R~l1{udpZzpk<&^i)W$IV*$FUzyJ>#@G4l zunDZP3O}4<CXfIt5hWSVRf!mQ2uQ>G8=e2)DEXo;q|ooRSY*pQ@?dPnSA%LBmzMuh zj6iCX{hWsksbMQPykb&WEA^2^)4$ly11z>xG12rAj}?8Ft!(tswaOoNlpt=|kqrTJ z&?vxxBG>4bNn(%_w*|gVh^|*LD_=TzvKLX^EG3#)_JHhIOGSwPo4|0o#`B(-!+g_f zebxHKe=60kQz4i3=g8Q=o!~GyJjpp(m|JFSl$~J?ocx92m&&RUW=F?w)i?X8sjbbg z0+7xvpM&&Mvk2s6TEQh%-l$+wW+-wwx(yPsAW>CS<4@5r)9$_e^l&p0?yxh8t`Ni| zvkg20%R$9KD0hWHDff&(!UL3EXA@7RAORZg2_v!tmF`q!lSi%o$>srm>6H|S)B^2X ztV|vT66Q&WzEYv3LCrtL@fFVn_1u!3AIwvi9c5g^-LY)$kEOwFcdT%;T!@=Lh3b{K zJ5DKC5TfipAQ;Xelrj5>A<F_0bDsQwIxIVBe^iW+H}wvp?GrgK;!S%HEj{6mWLEqQ zQV)tesx;BLePv^F9sdB!n@a!an}(NJg|;FhLqk^4X1q+tw0S9o6oN&%tD<t!Q(a0> z=_T7N`9+b0vmdY_zM3SwtpmRY?wNX&N^VG?5}z__+A;qz)l|ZX+QaujvNXdiXZ(V? z{OmPo1P@Yd;$G3ic^NHAm|1j%cIXFahDM~236V%gF?}nu9!H?ApHB?XA?IZs*m$xN z6e^ufgCQ0+_=81#=-f_IGbvy4Xizg)_Q^<)baO)G5(D<h2Rb&#$y|)0NL?^hjpA>O zgxn}JpKET9(UqM<ZEpa!8s8T3kX!M-*hg3RrmCPh*;RMHdnUbRzn2d#89|sIpfmJM zZs^dvn{+TbvJNi;@S!(1*+zoC^Ad*{4#OcWi1xn#Vsv}RDmlRaIfw{%5VaM|0;I#N zE^SLn(zR6v@rWs)L-J9AC~FN7rM(2Xq=`Wz(9Vw|Y*w^l3AU1e@$A6>upTD8jB3cp z4G`IGH%ByG7iZ-QD?Esze`e049rA`qU8-l!$qPyeHl#z_q%CNdv(L)XI;?Ng4p}qk zjkLr}p4PA1I;7{Kc1WJp_Y!Q55JqK#sB5nY)=dehb&d)~g=roafxSw>Sbm)`xVXcf zG#`10jAW<8I#Nd!Q<)M`*0YE;dZ$(eKex&V5$dNnGAi-clRskp_SX#aKy?8;Y^RA; z@xEcdlr!iVGK@89*}AMBb@<d!X5*;F?il5tHLQUEGd=CI<CHt-M8drWt~;t(@0-Uf zo~I{&%1se>T}NL#V3*a00ErFr0GKMbDa2<jN+ec6KIVjU0t#tI(VDPC(y$@Px-o8n zA+yMFa^}%4r8>oQ-DkTV{N0Y_X9!nY1oWN1B)$PK)1Hfas5LPvtlH8ZL@g6sQ;=~> z=vTK;Y5TAt=ya36;hG?pES_n__RRVv!qlpCcy$N%vN$cm%p@=41Lzl*;2C>KsLXaT zT7L{$DZI@k7u*!SE|y2=Df|?99>gyrLB^u<lqJS7tSt;_l3AuAO~FzxChT_ugB*4D z7v{Ii;w@YFq}zoQgGY;i5~2A>r<D3PktH2^vs{x0PzE$+=&M2{0GEW-Io%Mf)%`!5 zL0m#=rUyUJcMalylgaiUuib>~Y)vi9TpSJl6Z57d+o)lQAdh`R5kMGB7)eE`*Q;2G z<Ehp}Y6`OvCyR?4;@Ws4fUSp))Mq8_^bgD(Lp_f-jG_Gj@FkCPb7c#lPD1lZ$mnpp z?Rm`l&Y9`^{__ah&-8^X0Js-=r-N<@tYIw{FXW5Mv<`6ulIJEw9(>QEcRN!Q?$b+o zUoag8iRTMmKuJ)5s&zS~S*B1~zU7tUT|q&h!EInBeZf#vwR|05>zpU0zRe0VWg5C; z+*3eGa6)oAS)<rceY&lj@jSZ`vO@oHeTN32s3o}Uax(2yWY$O&$+1XN=}F)0vXuW5 zMJ3dfBHF@FHd6Q7ETiOI8^sh)s{N$oqVz%Xw*};@qT{(*&+pT_6fDf`Wtg4aMEWdU zveEul58=;-LR<5agNp#x@}{8N(cd<>jk-xN&bD5&{yx=Oh{=T<=akX4F4Yue*V0VM zkH4;7TLKmx%@)s6c5z_Q&5qaRX;$2vIP-ud)H84PAd0uJX*ee_AkeYKVtI6CW@W(9 z<?233jxCY|BA$$)`Djk4PA*-olx-WoDWs6SxqO&Zl{amM7t@#5So|E=zGO9#XQsr; zy}g#t!(Ddl-L?UDW6hSQ5BBA^7Ch9_L}a`s<&y4kZ>8KHRBux28|zpfOJu7mRVm*s z%?_&|3rLG%MZsk-XuimeAl!(zkxHX`$uQhJ=7%b<zf>ztEXtmw!ImA{G>b$_T&F%g zFsQ^s?i59_UX8n_!c>ZltM6ABcMHOtRyrRBB3#Yo+AYyiYjPIXgd#0RF$%&xX*?+- zsPtBuy)cP<j(M@vH`kGSu|8OFrF(1xzCWL`t7y+2xGam*e;-4(c(%mbEJK|rmKCnL zIpqCaM|>jVkYkf31o50Tp3zUe-dekc|5FYz`%%l5L^><o$-yLXI$f39bGpt@DL@xI z3TCVmuUF_n^vG5$?fAk1SjXTNp-+l|Su>Pje2fT{!AGEHxWG_Yi|{!_@x>cc6%5SD z$ZvA==C5j@X;L3MCV!XA?SG9M0(T#83W28(9aS(t{d&siNAR`PZa(ke>q+Bbo82ut zvU5xmnR~F1ffCpw7|Fg1Gx@$)QGYDzf$|nfH3sKP3=Huhz#4)dH-ay~7cR-ML4hxY zJC3AyNh<#3hBqDyFFY{D#*eE*cnh{slzoT{|2On)ATR!sO#t-^ABA9?$(s~V<1UDq zyo>|Hc*Nrxk#`IYFkXaDTnoHWAP3E#`a^&-`SJ1RcPRHkeTbBZ&q3G_0==kIKNsi8 zPK+SND@w;5@(Jm9!|;LDkth-G0@RZYW&YJ3k={qg)_?xtrkih<Qf&V@EqZ>&RnY!V zo$Y^|7$WW_MlSzvW>1PbggdqghA-L1jCJc$kjxUI<c*+I*9Ni97NB6%JXJ{mbHqk* ze5z(ymIb48Q`7A%D@<5hp*udMAPTTRHJD`-^Myf$nSwI1-N;XNiWc70=Zy5rB=BSs z*`waxtMBXU_r%dR*9*D7%3EBdTG(ACMmtEI%6%t2U^@#mNS)e!DE)3YTSa>fuHEPj zLAS_=)=>DNjluF!EIspf<>8IN^gzw?ak~<)+k{ykeXo%GE=68f$Z;<GF3C|(qf_4W zF3#W|Mqd2Jy`sYb`rRm?#>ZaxUAiN%<HrGb+{AmKhxhu(xL|vEWOibHxUdF5JQRO1 zV^?+4BT7<1cET|+lSf#TG2wzE!>zGF_5d-JZ0I9JZ*6=&gi*5l3i_WA7VrU|K{v|a zF=S?&Yw?$7*XrNDug-5bH}<wVn#$U`%6i)D_yvj|J$>qO#ji37gcoNsG74BAO>OHL zJ+$W5wVs^^<n3ia`afJIUKoSlw>UjrNk2QiwyJ(aXP&FiHZNvXoDgPCs;lE0r3q^E zb1QZFSr@``4tbojlnOSCOUjP5QW*?2!?w1>p3YwB&Mp*GO<UNC@#oEsLJ&MvWuY;{ z;k|3)#G+1~spt__+YUiO8sitO7AE7H^;?q)r_Z93yXL2FEsjQztD|4QEPO<spS(mW z_`m@`Sk(fS++9o4=sF<@I-<35dnByFoHfb0yOn3s8eUn4aB^TEW=dpm^<|U4n37s^ zH=9J}JiT4gGBB2UwFR>3M*qgz>{jv<I2mc^Hvg8w(3m6p<+X0CerRS(d!;yHrjaP^ zG0K$1)aW_8Zho3!(*+5*mB)lK9l_$IiRoI{*Cr&G)&|*uoRXp9G1!@}7O8on;vKts z2JJI1(DLDA@lZ_TQ(s1%Bxo86VS7#_a&#UWE8VK!wH54>{ak$b7(E?tkY*+R+^&>> z2dO%o%W=L!QGyw(WuAnw#oO{!I(8KwC|wq_y)<9lMxDiZwL#OlUU_DnD8&!tX&a7f zewQGgB8{dwkjR8EC%AP&bY^iirN#jA47*}#6?~g6@a?%^7(){yv(mgF=P`2yXr$Ab zuYEY=Rw^DeYTFZ^Ywa=6!`PU?q?O*FI=gFl`bbPev2k8T+=C;_X>sLJQt7BpOATpg zrpfyxa?;Uc`KUT2B@@q5dI0rCDDr{Q8d~En$h%e_rtAvjTEMd-OH%Qc7)o~}(R!O` z(i0MG6N^6LsC174qc^gK-0ayYDy1n5!q9mg_|<rxKVmZ4STxG3y6BiH57Fe6#>@<( zH^wGhrdBV;Qzf}LA3=l3S|l{2(ylqgc3&K7pj~tzGSA`-wO86b&<LqpcLoEqH=u-R z+dqTZOC?A}UQA*6hTB_r0OnpPsKeGy>05pv_SO)Zw_hfmjx}wah`^|Qo(J(X2h!rc zPxx05-j4zshL<KqcUvE2F(|gI*hECkCp)uA6uXQT&F+unP(1p(Rl*yVz<15GFW6~{ z>Mr@l7%0`IwPtjmgCwA{Sxj^m0H$vopZOcn-(l18gE{v?!K>bbY!=G2sL;OsI!wlS zl`om0y?Z#6@8vtXFRh`e5wNSy>T)H41%)Nt*jt9t?c#B>nB<NvX3!$j(Y3{iCxc$$ zQe90*)MTu5?5XvSUPe9Ex2NZaom)mt7PI4;C*4(Z>knI{Kbhq*5+Q8Lxe_H!J*!N? zH;Gr-bx%ExZEmt^9#)xcGN#!|?Xz6|l^~v7U7wM4&5cAIxbMj53pOBXW2LxqE#=+s zUC(EG;8)Odp&Rd)Qg_wrCnDExg_o7dmilm!?}lv0f5NK>w#Db7WRQa5Z94pw011GV zyHnjESKowJ&H%GT#al{iWgq|S`7S<DIAvwHz(Af&q1{G6?dP;dy)Esjj#xSYFC&po z+>)<lPkX(EPtH$|9{MiU)F8{X<2BQq>99~4MXM?gl`=`rD9WWj$*)*NbWq$x&Jdq^ z(Q<+*Sx9NqE8$^Fqc(bfoIHwRM8##C@jW61>q;vG-*gk8G>_$;P+4b&%lQGl^XQpt z@48~+y!wp4mqN@Q?HOZ!Yr_;kT-E1R!Dz4OldNG)t;&2^&}q?~dMa&r60E7E)}#>< zrV*SWbim~#un~*J_!+nsWF_-x*9gTk>Hl>g2f7!ZQCMExX9omA0+-Fd%?Ek`^u5Av zTse2a$3`W_+4p=xIbdWKo>d*OlH=zIocE<>kNpS;Lx`OQ&-Q1P$CASxn1-0<yb!NO zR=En#96@LYWGde=^eiBDOfi${6RM&<?SGA;(n8qyb&DM(r_UO22LDz)6h5p4S46Pu zi0-7NU4r>~RGYd=l#b>XT!xg+7u%F$Q7jSakj)eTa>Ty2qji4Eb4HFzvHy#qP|SXp zeb#Lbt?Nt*I~QuZr{s3Gk%GGcNPV5<BEJ199@Rm73s_SYw~$22p6yno=`50#`K~L& zRVR7_`b?WMKY~_WFph2M5=x>a16K0EjBCtb^pLdk4E5uLHP+1tY@v3<XFarN{i2<b z_8SU+vIX59+b7y=>z5hntx9$Vv0Tj2xkovNOuQz_TE%+7VTio)we=x|p6Zw6woNPx zcG_Z2O%BbGxfe9ld2ol=fLGR4aFV*%y*3D#mSjOJI|7z5B4+&ACSoxT&RK_fuBkxk z1Z{D-MxPSpq+f$DN!oyle^-|TkMi;fqFJ1UGd5NFA{AM^B_NurnPV??jj4yDq`QF! zXQ%rlV=SedtGKM5GccN+LZ_zY*nRh^QhVnOGA2jgF~DjqY%>eUXu}5pt)p9N9V|0Q zXC@$-8kj_9y)dSR&f2Q-S$t*V60-4m5IfeHAp)(*?%V*RU3YRI+fVm;XbrN;Znfre zHV>~Kt<08qOPU*d|3s=CmW8uaSX^bMnclwZa0*-JYD_xdlH-9QSVqCTFRD6%n}VS4 zy>uY+r9H8?BwSa;PMf%#`x7lDq2Ra&?)MJ=q&X-Vdw3kLg=AF;<RGPiFQ|);tUm7f z1rf(b{<SjQmc{@UHBBcvI~Bs51E2g8k5i&Iir*rhoa<K}e%zYHh4I*BkNUzDj@GF? zG8s;<XDucP407#)jX6O6lE5b2GIqYnzwm2@`>bh`Ngu`{SU0AP{2FA1bXzI)&Qc+N zQe2V^EkBDVUja~}gLyF(bfSN%OWm}<eG0hNysEb1vtkXX`9{Ds9%!VK%t=AGh)mFw z?w~ppo9Rw*)>6u4HUH3r`v7TIiEzS4!DYc1O$+O(bDf_b(zmfoP2*iYBPA-5lKMee z{!TLNugW*re`hye;8u`de<Z}pKePAv{-+-BUvt|84F8qoZR9LuXJhk2Zc1C&n*5+h z*Pm?1|A*$xQL#}%R6zEvrKYn@HZ4x>34Z~ks!!LT7(P~?WfwY)j%M<?YP4;KrJimy z{~O^O<uj0xc>(rRlsVfY75wv`_j8-f<~Zh@@_No5u3lgB08$gw3J7t6YYm|-P>#mI z?Ihgih8w9<&jhN0?+L@xpaZf^v}|(+(B!Te$gx^{k_-y<H%?ufG#PUU=~T!WRmw5C z8^>^@xZ8pvz4Teo8$&XcRy}gCz)E#b#7b-MxVm-OaCXYoKRhcAIJfQDELSMoUPZ2A zGJT9WYcGs3O6S~oE52|3o?hBGjTo}Z^#p~Y8HA5Pg?)uzq1dK9(?}wqZwRa130=%H zYf~z=E0yYqfTG0fyWBEMhY>h2^w4T@H3nLOIgGoExay2GP9=7H+(sF!>QtGs1-g&W z_gbac+_K^zlCn7G0blgrvHCKoOxX2B-RbMlZrJ;wg{CYdkQ}uH=vCz{^XL9b<ITT_ zWa8SdkpnaiO^sjVkzKQXbf2<q-)23>5<UcK_~StLu2kE;`pvtChxq~joMYqCw(1P+ zw1n7%*kz8n2*?smU&~Z1#?@?4ZAcSM?P#z)s*UbI9Q>MT@I1LRLBCN2G_*J_s4ZGh zWx7MbR#kfA8X5^2SsOa1ssX$FKr+_smpY<zk;e9G=+v(^HKEMJ?$`puk}w&4=biE# zc*!p~j~WM9({6r=Q-ic{6Jwpt(K|h#1wW`My_n^iWS_Kje3ug~BHqLqv$R6CnTz0x zi0cu^2ybrRtByoVzWLY?>Mtr_8IC^|BTXp$X~a|@aOR`r7XM(DK=Ni-`62A>;$AvH z9_f{d2&YC<vP+zI$h8kQz8y3iNka!~15RV1><VfNY9LLptQTumJa+f3Wmu5pj?vTK zz19_0N4nkaVJ-6`ACjv0nAVW>RYk$@WOzak*c~OoAFfe6f@DJQ(UOb0(1s-V6+8}t zM%Y6TDbM(n0`0~e(Z=fVgs<RBw^a^BM4C~g+bqU6w=Mi<NXtL67k;!(LjymOd;}N( z0Ez$8J@ua<ssHQU)uXDRge3<5S5&iMu@SUb9p3tI{howh6n1o!RUZtf^(34q;m5!n zp0+}WTC8K@Hj==_N2KCAXZ1iBR-E|Y^j8iyadM@JlV1#@pqNla=J(UnllLDPxw)^0 zH8?(?pJa97?0z1ESCS{f*(@-`T~Wb7>Qi^OTtAv{cQHYLACfn!I5^C`4kt?8a_m$6 zbcTozSL$v*0uQgb2#l)xk-#q3kt{M?g;oWD0s&KKtKIf|mIl<W*e^jKol&XyM*2LI zHEpiea#hHLMJQ8#P&s9~(D0&LPZ4sq)0SzPSegn)$uY9CcBFAK)pWR(h9qsNIz4m2 zD5<K|h@!GdKcm>uc_x>!Nn=F(UZhmoC@MLVWfWf8%A{!LJ-a9ibm(5(&roPX(GX)q zd@M1x1j~Z)riLkJ6<cJ^oFcRr)Tq_+f+X(O3iIld^KKzPt*|caAAos~kwyp-vI?3r zUnXtdOY2OlRDEW?HgupF8@A?~b_1@+0>l^njEwFgGs7mySZY8C9vkvltS$4KH+P<d z=S;0*5#^|?!FqdeK3nw)AoVdz{1u_6Q)x*I)UxEwWmmKmY2B=i35`sfuI6COn^tw= z8Q$a;Pi|<%+C(?*2CI8#HL@4m+U#vLE#u$niwes!nFk*T4Wee5^3&JlnhcN#7NKU} zi5sK`&6$8JW4697LP|J_bgkhZ`DvlCHK&r|MS~2xis9Vi6c(p6DqU5NH@Mcd(l8Es zjIxDs1y!qc(QNjrqa4{N4YWo8o#8MTS>xmEb7GD8$Z)quJ$36>!5YC6H4?tWLx3jX zL_~2klDHUK>j@1}T+ZgC#@^9#==euU-lRuP-UC^5Cc+L8jCGOV7-{#UL(6{hSs1p> z-8|04uLdI$1?;B<uyE{|&5Q5VrtB$?L-fwgl~QQR#|}QQPk225Y(4hxFNtd?UDyCB zc?aT9QLgcEl~C544}8E%ZiyJU*giX)bSW!hni*nf*gH43IRe(9m9*`_wvU2~3N;3I zS1H+7wVCp>BEEg_BTk#KN4<f#3tgl3T!ps9%{lKZq4q`dM_-InNjuNtJ`z@qw;<Qt zd|bzILs4T`ysm=@qMirPJx8+s-+=nvgbJUS&xXVmqWx@l*w<Vicl*dKHnoj#bwO)z zYXD^qpzy%Dt=b;7#B)v(tZ4QP$IN1@x`}9@K70dB*Er<;S=y-L;1ht}O$&gVrbWvr zP<M1Ub(n$tHzJ-9qUJZg58V5N>^e`X!u!4==E(^<WE#+m)&XcNiQdl!iP#O_V!)|+ zLLaT9l?6Zw?^3*B+E}unD*~D^pYJJ!=0qKg<M(Luy8hi^M$k@aFY^O;ET-p0Ne3X@ zY$3V?%PRbLnRM4)q58?41w7q{Ba3Y85<GV6YW?@R1lLHpsPMEffByI+7a?gom*FdN z2`cCjaTh&J_XS8u>tnRt1KV|!i-9k}i*QR9@it-?e5<6jq(E{}G5amY*n+H0gn_Y9 z-8;^pTZ~?CK_9>Yi%5S(q=#!=vps#u3bpC*N25|FGH$TQ9Pd_4r2%$YW!S{i=_C!G zD_fX}hHLaDE%xg_fp|i?KbzndD++)5bCZZKr8}JL`2AxVDM>tTh|-T>%j~EB_}}&( z|K(H^a5QtVF|l<PaW^ut|4;ThCt*$&kO6+Q>}x|sSOHm@dqAK_|9T*4ARfIiVq!E1 z{?^1IHFL*xX$M4a3Mm5YU!EpeD1oBkARcKhJu}}&7N2i-A0U4zc4~oNFEZ@*1*d{J z{!TQ-;$6U&WxGgOjF^lV^S+fK(41yMfFZe<PJk$K;(y~sh-$&CkqZ@{ljjBrmIjZd z8scSz1@n(6aO6>${01$COSKm>OdY0Ko`nRwC?nIcv5sS48^fobUN+7gD3h<@?TK=U zsq2}1JqYJDkDjs^)6H3!Y^(ni&NTu{w6vfAOZuc(<n2Km^}eSyKmm~pAz&l9f@}Zz zi~)}A-R3rBL_yHg5kz`;6EZ#VPxnCAneI$Kvv<?H;fP1`>I-NvUIA5QH9(Sk7D2hx zN<HMqXiYFs=aO3GnH@j6ZQVR`8vhfFW3&_z!h&i-mEIMcp#<VuGs3f_^XDH5s}*7d z7V)3;>iT)h!1lkZYyV}v{?Q|*B<@K93LuZprFU9<U-R_@=q?i@CQ}Kj3*aMHyYtnS z*%-UIVu)RBbe{k6EH}qC&~Pktu`@mO&fatTvC#VXc?0r8$>Oj(?x*`7jTy!&B9yOv zBC(n=8x!WoL6TsFoU<~Hlq~@JoFJC(_I;+4<3?2gkpWZU!T~EWMF7v*q|26`QcQ^K zyY7tY=WEzh-Beb}LTZdzTqsr?>f%%?W^OSKq2qcG1lkqAukEF_zkk$u>XCWe4? z#Ea%vy>ICg-GEoSljel7W)-xQqU;Q+>#pyscZDYnsvo{+1MT9<8T4`~uVdxf?M~|B zy<gzUHMQ?Kg<sgM?u=l5nnPqmEdOaEzE4VbstVc!9wOPKL&~2I5LKs4T>net59NiL z!rIjSxz;b%7{vy1l_G16WSgRE^<<rzYk`^Vv=kq9`m=+7khx)fU4O+u004gd$P}3W ze=LsNf89Z<T24qN=)SEIO%{zj@KWSp1>nid77&vHB`Hc!j_1F`ZD`0gi18)_8?o51 zU@6a|ci)iO?`1pg1#z@MGaRt#+VAApkLK*L@84Osn8n1p&wayu_RhR=UwwK_{XRd- z@_u3Wn-N%#fS{lWoezfKS`U=q7T4pO{SIjeFQMNZYxLGubs&kZYA-$P^!^hNiAC_F z(&Wq`HKids+xS2b*p4AAYkL|*f4oYA(x!rpT&_C7K;2ZG?{}K&D<-FkT@)`3VJ0Xb zH#wfssnie>s1svHRy7r9dzwfw#yY({tYB*1nNx)vazVXK$6z6(v#cyYmxjT(-pz)Q zmT^!`Ze~41QiQ(<S%<G&Tg;@|P@bhBYAiB=ilH+~chNclFN$tjns}P4O`e7VObWAP zA4|E8TqVSP1+FEBHavV@2>6|xf}+@C5ZNKgKywZ9F6&s&=xLzP2GjAv3Y0oF|N9sQ z)#f|e<SfxsV(wU^v3w7~^r5yUO>$7y6jIc&Qc}%ut}8+Yq?|zk-iAB&`7zddtXt^a zODQ(DgQqHOTe)pS1jRV(Z4SSYxFFm9bj`YffOXR_nrFrf=Pmfr^F8?NXDAH)RY_IJ zia@*!T}8>IHGTVN@d71~NRP5^{UuSEQBA;iP@E>vHBrii=Mt#3LM<}6v(uCW8I>pj z)iuPfGO41XkYTVm86?P+ZI7a!bu#F#q8E#ld66=_3qe5(7rwYzkyP1Cj<^O27m+O1 zqSOMa#3!)|Oi}&%<#TTC!j#90$`EUJWnuAw(DgEXbdGZ}D3-~lWKfV3CT06jARCpc zgW3?!cG<SeGDeZ~IM4bF)JB0YrmI0)Xxv>xC<4bPFx>G2K|pQw6%H=mDNJ9f0i7Z9 zM9Op2T#uZC_CRl%l}%9a`x8xq0TEG6nyJmw%8@N+>W!<FgG?n>pE-tgq@Th2AO(m( z5h}V(JEs-EqPp`)cKevppHePn%`Qoa-TTm}v83nfYu{=X)eka!5~;S>wiZ9KJjMq6 z>Fgx8lpK|M8rEmK1%a_jTLUsb<JJc>8vpPoSY+$7N+_;3vCrkzy8E~s*E6qfhheM@ zrP!Wm9FgoRV70zMFupOPdouaMx%rka;9iusBffkukbq&Oa!Av$T*C5wgjUDJqJ6aB z(?h;NzQ4!^wA4Jl_hYZYcSg~3H}db;N0wk864a3n*J6lB-nb)I+5y2n+93^b!`=_} zy?b!&O*YX7-^{Ztu`4-1**M4EM4h_wU2-D?C}Aqy5ML7Yl@D#`Ppq--or&5LPqq_} zTx|N&G<n<H$BpHOZeC_;0;KJ15pHkE_+cGHMuGR@;UnR7N8@!6cl7{Fs||s;se&ao z^v$m5V-XI8G@}f?N}9t@tWg|0qS1omNxBaVqEkW3?uH;eG-r8ci_uUBHK8k>1%{D- z63FD%(!Xv4BFxT<ls?SH&G$K)gR#{b3?ht<ISeCIx*t#kBLWUoplL}6u}-)!kR8Yp z%F((m5JEGJ!nWg8tW%YJXjh27ngMAW+0)D`L7?x4Y{2+7MC~({>lU%s)bFl{J%a)l zqbCh9*g7WHB#?5O@r&ddY*myj&i_IQQSRbI!%jx#TIh8Iq)wt}a5M>>xO${;MLFTF zQ_O(@DdX&)d|+07Gko>hSrJy<P_MN(^$T&Ix3*UOZV%?x3(9`M|0FRM{wxJL?BN{# zD>|%;=1|&mC?0hPHtn%4a35agZa4ED#_egj-4`fBqo0R#9mQ#BIn&i-6N6{L`Zvuc zhVM*t=AS0*G3(^>#-9WE*H7jAAN6DZVp#r5)s#1Ibo$Ty%9LoC$U%Pi5WROaGDy=C zPt+z^E_YxBba`ZMfei{n!7?uADyKFLcYluL^~1#!m1QqvZ}0E6J}Q3>QHVrfykO_w zv$|82jDqR3+Dr8`t0^fspZL6W?}Nb;i<U=%CQ~ulv9;pyh^Dh?ky@)_3NU)Zm3nhF zRJs;Q6=*AKYzALOHE$sY@Wk+qVLBMCC7ZaG3uJ<SbD2MZ3xdv^j|hE#5=ma^!#SeU zL_=};S-bz?3^t~38Pfad8_J>n4>0ln_bv#S{!mP!7LHENN-l=~@%6ujbu+43{~BuZ zw^SLl6$KJ<_cuxbNb7Q!O0hDnWC6M4;8A_GNy9bkmdF>;M}Dt+#2h+{u6VQ^>0eSK z?k25<;(Ths!zu0AKiM3QGv1%~7fk+3?IroYB0MoYk(mh#@FSK8vIjI`ov_bH&I$oz zrLZYtsUQX0EBOWR#C}5l3RW{%Bo}~%2(30eRFFehtEwIkdu=PDTFFsev{oQPGaF9N zLO7CGq<ys4Np@rtZcT=mvvomhcIqDTPIL+~AZwJzh=u5lX3n8w66ss%`D(V>Mw|o4 zXEdacLL>~Z9Q8;+O$?#CmfUc5aG9?YnHuPISSR3nZ8JM_D8dyb$SQv2-HWX?N}@nm z^pSjPE?!b&xN4pT6Iqj~IYUn!w~x*r*YJ!DJC8qDd%4PPqge{1d$<fXz%b=imO8)9 zR8As^C=*?GQ#+)%aQaQ9l)+Oi&Zbyk{U(zWB9-H9@hU1j$1T_z0D^{V>*@GPtr)Wz z>kkUX_B@U^7XN4)%$HV&YAuDsY&6oUGVU~47&0HNr6)8$M29v4AHrT6Y7amNwe@2$ zMSs9J#(B)Opvkmq-rs#zH^A-}z<5I6p~|}zU3FOP#3gE}fPLjmm(O>k5}KVb$R=n4 zvES$OqRV_LtbbnFs2e-~T>F$+Tee&KFz1vD>C`sQ)TI=mBR(H3_R%|oh4VtiF3Lw_ z7tdE0!H=H2f)&ytAwMlWbDnuG(ULf9m*DTI1h-oaT(SX8kWAje29U8iM_5m`S?wCh z|2)fTcQ|>_y8p(TEt&BeR`_UPS^SO_Aw+z!Pzmz)2I2q4*o0Z?4L!A|{tFwR-u=j9 zsk_AMkBW&!9LF;X`vOexf?OkPMS?qF1or}T8%dvO4jne0W%dkm317^C;}z8p2F%50 zC<dS>&$arDGBdTW<Z!q=vhKA^M<bMx=r{!~Gr|>teETu7-Ej;`Eo6}jy1~TUaAs~m zhhS2-ZEu)clw!Zg9(sfvs-2Us;-4ssADLua7E|t`zlU(bj*`I2HTml-oa)BD4e;6x z#Il6qrF;-Y&tW8D@woFayo)8iO4hl9<<`}vd|k|mufrz)`$@MDyYyXLUZ9H^p@Jxe zn3mtSIH_Iw3x1|2Uhj^WaR8u^ISw=>@4vIf@UM=kjX!9O{)a6V`2W#l{>NGNfA8Xd zH=IuY-n}iVHvby@<NKoNd7^2qAmA+~5>n;Z4Nh6Epb#M;g4i74tF_sb-Rd>-;(kwu z!RK#BjQOW9?`I~}#+8PwCNmj9+V$-8Ece{>&Gqh|xAzMwe+X%;d4~ahM4=pFn5%J& z@T0^41a(ePmuQCKNZXc45sKg7Sq99%CmTnsy4$U_RC+C;tYjWEXHr!g4%MNwS8o=t zU5BBC4m*jkf0GUk%P;RA01A1p(jYj9Vw|c~O0{}Vr%@Vn#JfdxEAB5Uc<M)cP08jE z_<VMlO^LD0IfN+UfgAip6xOZTDB6AT#L0vDN;=X<i=voReXS(+oI6~wL__xoy`y=j zXra(ft`?HvDCA=Jj=~=`Rx8?Q7@s?efD4YX3&{!D)-M){q0qDm*bbqz6r+;1DA~%( zOrkv2zUgRP#(AS|s$iz@Ojj8N4#aL_DNu}k*)Fb%t?>Ks;NtiXs5`3}FZBK{*S)g3 z$55~%jX_?tZ2!@XL*pbtJ0W!BhNlhcAlYmd__dLYu$LT3VyZdB7?{G*%+mk){+zJ4 zs;d!SlV0vINdFQ8yIDmbS|~){ZQ+Xl-0nVjY{WBZH5Ok(qD#50@k&H<HyPPI38m8a z=f#%z_`f)N2QJaNEm`p7$&<Ei+tx|jwr$(CZQHhO+qSLF>aWJ=SGQjG>sw?0g%xYX zo)I%5ZHB10EwcdH<m^vOVR!@E9Alb1@w%VU5jSp=XjzaIdOKYH2$VyOB<ckfy}`M8 z3qiQQ4-J`$&@|oyaE?491r60xQD`DAMu<KJzqy`?0o#TC!@i2oZ47=0R_b&J&t&Q~ zoIIM7#l^3WJwRwijdY*XUoxV@qH`kLzVZMMnK?%Mxkudix>ot<W`Umkah@=RW{k0s zz;;SVUhF;X;@n|8x<^et%+3Zc><PMgq47Ov-;HFal)#@6Q?Iedrau<tC(+{C;Et#n z55}r5K#7b3*S`P;@edR_d-xIB{}m8W4>a@yKcn98pHZ*azYhpLLnCWD!~gxero1VS zp@{gsIoVg3UI+zeB3s%p_gfSf;DeNK@ONMnGm*)fS&4SKAx4v=6GM980?4Bv)-VW8 z#%=F+UKG0m8qZe7ZTAh#?Cr)Tq8}KQ_&S>Q)0X>H>+#1=Ija73_V>pJg^y?j*~!oY z-dh3EgHGCh#cwnQaC#T22>X=76ohcssCz$4SzkX0OcV~A(0xas<XFX-Pzp?O@H~|x z7yo_9ASdU^3aBDfIn{MCqQ<hKYP8WXr{S77j3}i_bSXKS^ikJ#x!H=v3RAT4G<k*$ z#>~l-q|+(dlYU+po{VjMHA~h+?A9sV>Gg8pemGtgwQ5AD<1!^m1fsM?$4U=Pdx_dA z1Vdd^{^<<cd8Y`$`O?<cM?Fnqf49*(NaL=GMKj=9Dqu#PnnIO3QI&07&jR@$o99VG zWk)%iRn=Kq)1Yl)?s)cln&~{zsCoaY`WhCM>QaRq{WW`$q8N+3kYCzjK`3k>V=-aI z24N<C&(q6j=GVY>j-l1^-9@jCMfs_jjagNd?f30jHf$A9_`|w#Lm3Kw0)GM{<}zxR z>)9>F0>Hl3fVi{#9s@Nu0wh9jAuXw^`{pc}oS@tT^KC?^x}q(lC%Kz#g8xDh&VExs zNwY#n<nQ6IFbtPqUCI^7QWunKIt|c}y)?)5I+hCLRy&JoDkKscIou`GqNj4JC9+Co z$Z^e<a*Rh6PFZDIndtdh`dg?MGCEp^GG@jh*j3SNjoYN$c1%GecBMeC->tAS8{_V% z>+5d(Cat43U!n=EJ35}M^%!aT7r^byL#@M=>I%4i#Ns}GAERjzpA-XOl0L$U&V?$O zU5Et*b(n1e(Qj=l+Kt#miKG*{HUE^I6ZIRiZkqVvq{2)w$2r|dfN{q6-d5PiP=H>y z<zK76UXvv+4IMevq=$Z>Ffj3n#fJ%9Wti#CMh3gPv`;=Zu!_H}OdwcEN1rtFVw`_} z_Z7iZ!2v$7Z1VH$Qo_SQ#Tns=<Z1ius;X%gIEDx@A%DZkQD&_OoN%a#yF_&b4`RQA zT3+Y}tdh87nRGS?f1Hr4-WV+eh78@{ODz|E{p?fBnpp5s4<J||Sc=#F?6(TL?~&Mm zb?57=UB!R*v`BM5Q01x1fZM7C=?_$It@9b<xv6{s34`a(es~Hn&pxgr=K<O3HAs8) zyiRaUlL9=mvi5!^<ah;nJ+VpE(ZuLz<4<<=(Z8?xf5*XCV08K7K_XbtVdSO;&?>?5 z`x!jNy9?0?NhcN<mprh{{cyzFE6|b9ct?Bt0gCw%uJ2l`??#B;3w~+a3FB3z39vC) zX}aO@ERewqq>i)A88qo3M6Dd#sE$?1>im5Hw1V3NN-b%$fzwz<JOM#=TrFt`SnGVq z-q@2VhLLgjt>Rli)mN1NdKEb(pdIM^yv_VSLm-8J|0?3wwKx390yng>H+3*|GL-*W zhqW^PVcIsjKMvvlr>9Td{6EOHk^L&Om4yV2S>uv;W9x#II$Ugm-=BcL6@dv|(oORY zX7m_FEQ`+Ch_@gwICp#EKsW=&-ti&EPRU}DiodxpG8l}z?0>$@*Qfn^lwUA4vHp>T zn8Xuty_)qK^|cm#L>NdIiWn4-tCFP#ErT)SiO;BWj^5g|5=@2g>;78mCz@MVas?|7 zTw9y_YH6PE62ZarIw}?Se;E~U6>#}oDb;e5%H*HjJ*!+#%z=w@6J{Q%VSe+1aY$-A zYiu2F<=VJ^sE|Gv9({JrR4pe`8$PwHv2b13V1af%!1$s2UkY;k<aIA_?hS8T+AZ4Z z8(1>RS;<6g!xUC8O*#<x%<n^`*=u8C($bENHuGI|x(vOC{xM$3YK{&-SrQ^R42pb* zgc09|?$ToL9&~FQs-g3u?l%y3LWBVkN}1$wWCt}|{wzE?DnV6OAYZ-%SwoO6M02+a zuv#Q!8`<^qS8Rb^+M!4EqB+z-XJ8h&zx;LwnX(z&r<=%N!RcRX5u=wNc{X3Rc1WlW zJPp!)%4j#TS~?(0({<#epPMXF7H2xaD%M34G(Db~A{rktBG1<GBpl|;TB-n3tG12x zAOY3^7p$8I$s{!AD;`BIry%(m?Roq)(lz;bh{-GcS%t%`U>Q-fj;-J7t=$q<q_8!T zTXd;U2~P=Yk;oF{Vr}s&S1{(jI^n=na^d?}hW`?FNWxFAR_MmB=i3IW>+gn)jXnj( z1wxL)j~-PE{e9s9bfni~T8*~RgP&P!!_c?gcR8}vTUg>9en5>d&RK=wqPzDm#gp4$ zj01f?E#o{t{#5aQ|3r&h{ZwH5!#4lnpFjQM4u=2m&Px?_6-;NO@5vh4aaz$4;+Vfo zXzFr0t(35F%ut&_KV4xqqT+;eWs@}=fuc#Njz-9FE@W#<@0CnSrHbWCOXB6BNkoY5 zx5$>A@1ET6XYn+j+&CX^rN<K!)XkBTe$ibY#~;?m8Q-s&>sROBZnuWN+;2(HE>lR0 zdt+vO8Q`bJK=B4C;yF_|RX7V=U2w9SiCA@8{v$N4F98y0ULq4>-vfwx=hNc^ke)jP z=JtUX3@51;5GL@pCPIo6e?R{P_1Z&Yh~!3;`{l=LI!TdT+GBjnhRsd0E4$?t(cF!z z4~#<OAuGfsr^`9DO>=v5NNe=^9uQHzBg*}*h}OJs4&Oz+O9l{@=ma&6>15fDnS3Lu zhNjlUH_tu4aG8~G#M(x%^W-&-9c^k#MVC8F+(@<=A-S%`Ub$W?Fc$Kt5+9$Idch*` z8DPZGrrDga&I@4J#R*`!JUMdw*O>xdJluM;2O(QyC<rxyz3S);zDuyf<1xsU_pfqo zwVG2p4pU(vy+!8O7sFZt@_367`I0p&^<^Rq#(vR}kp;YbvswFib}^$pC$b9Z)Wrr^ zf2ldekWd%5NAox>6bm(|7=LXtOMpeK2{Oc%&@VGgIM}n=xPTsHZu*o|%=ydsHI*<W z{7)r5@ko=V-g_Oo0Z`BqZY#C<qUu|4Z#K0G_CPc^tvW-e_5D=QO$VS16P0t=NDTYQ znxtcF)p3m;V)hhPj+{dOWNRY<rgf}^>DGc2AD4b$rWMYr_F+cj(?lYu$Y(d0;`Gym zsVB<E-yw05Yk*#)BXIBG4{<%sgq&2n>+o4{0WaVAxWNLo&g-2maMO*qGgJH^Fz&7= z2fEolQG2QIcl}C3QYX&n7uJjBQw?>=<ShuoNSM4d^3&ieO$lu6mg*eSr}52Q`8%*} zNaTynq%BAwh#Nuv;B7X+e$IZ_Hal)i6Kp2etpV6C+gm#AM1t>S+N}$3TvDBB4GzLg zRLYKx^=)OTX4DgErJ$67t1~NTT)b{xDBJpm-PJp6oYIFy>k5yf4es3Dl0RBGlcl=6 zkeqZGj7n2lOVEiD7>~>izlNL*I0?~Dk3B&I=?k3@VF&JxNNflsY7~FfIS1h??ud;d z(DEysJz}!|k{hFP%wR_V1vv6eo}VD6bZprUiHm6Oc!Z({ZoD1T7?|r-)XyP$bG-Kk zs+K#Tcp+0iFn)Ojr~N=xynz_nO>QaMQGRLk!77)=oI))vu#!h&Wy>uG*Xlp#{1EDy z%3$r6jdxpHLNJIgSmO)!3NMHED&BdX_<))Ch(?8<dFLrb_zhi2K~bqw+t{<#3q{BQ z&|Jxb0d}GxZB~rmlmPOkvALuX?qf#53<0*HY@rK!hlfOiK0X3N!c=Am0<LiJ{-#Xw z(=-DlX04cOHa#KV#&#v;QukKkRds=8swz&byg3z`+qR~r0frwg=XoVnSaIqRS~Mk0 zpP?lsBY1N^NvP9iGG28Vz7#AOm?Ux%CBMA2DkOM*<#-l*-46cuX*;rZ$h7pGq{1$! zOXk<L9!5~}$zatYoGi6{1VjalFBklWN+=^^)n}_*`g4#5wbl`mE&-0+A_es^Uo5H! zLR$YMK`3MA^i$AKW7e1sQM@>pE>b8Lyn%w;OM+3lR+y?QTQooRsb|E)Y+ibYPpR&p z6s+)b!X(VTwzS7+!HF5!N~m_e9HxfjR~m1(1NVhmD`i`y54ph*<FwoXbNUEle`;;c z+3Y%%{S3I-ABBc|z`tnt8^7U@cBx0+<p>TuOHuB+7D#w|bn^rs6qM}j4>u88m-909 z8Qn378h$ehryt=81-d2(punML3ZG(*<xSeh<Wbp!3Y+uUlSVJilzFV~uL$o`iwGp~ zA%n@*LN?|FZ0e!957;q=(qH8<WRe<wu|@&(<f~ZE=BwPpN9%3!V-Kz+$2s|<f;)JG z72Le`njj-d?*s{w=Eq9rCfB$&5Wf8`*riyZj~-J_t6NE1kE+-tZmTc_SQp5^7h0!* z8-~9|YP0~bg&?%0Fzv=-3118eXF5SJ??h2}pS!0)9RS;qY}@2_0NuON6oA<`$hkCC zLpW&<J_xKYNfU$;*ZSM&qiUfx5GBieKP66)xH1t0tEdpp!iRLu*&8-Z3hNQ=tR!O^ zi@y0+4aD<RhBf9%13R5w3nhOXH4sqfH%r`?=Pq6y)%qt?(<S9ua_JdHT~Q9+xT_aX zW7h)4+o!oT!e7*mO#-Rltf^ETW$1*>KwecJa-AGkfNPyvMS%^{9mNgCm4!IL&HC@J z^l77MMF&_St=`G-5)v585Jn?7Ln~EA!8Fe_82Ch>P0PpQ+VT)sB9MB@HR@Z3(I;CA zJo(00bBCDqE0P=Q-p@S%iEzyp(jhvEEnkvBeitFmh~)w7kJK)2IQLuSThcG;t;19m zA}y3r+ik(BUg}RFoeS0@+Aw!O=T#}{7vd=KmTSobahGQvS@-iPF`2(zEWZ|rcL;+h z*A_P95X#6hgKb=iO8R&>Lx(@?U7Hnbcz{}VWQ+Y_<#T}WigYMJ>43m!22#ZMp5gld zvjS`{o;AuM{G5Q_d%Q8HaIyEgX^dy2Nw)g^$op4#@1uRb@iKc^`0oDIN}!Mz`O)-4 zeusYO!vEkuT+-Cu{)g`VLl%DQ1^)|Es7&0Jo|i!!?smr5TtY%458>ez*n}wn6hK@k z`Jf#NB}A3*Xpcyjt>2`!1o+JMh!McM?KR%_f7^?f=04Td<!q+1@6jSJ5Ox3QPWPIc zZp!}lcmdVHoM)FCITy)~AucUh(8WU2kT)j~qmM_G)QjM)$H+1qCmcd+%YM7Vch=aY zblpIJ93mhKWRTylqR<EeF<dWA>*%F0@2j|n!kd%~W<l?xqhK1(s6BV2Rvu461TZ}L zWtZl$)l_h}X_zvOg`KQzBr>s5j%c1tuc1<14SI~GT{=5<Tc^3(Xn3U}27`jIl_psF zz*(!Y9Jlz(b-OeOZCW_8lqz^`V(Il9i8pN@$o+sp*=v-gMRmW<jM^0%D}Ab4C&a$E zERU;ZbjEa?E2NP*gn1_aM1Cj<qG`i1W0e6V{E|NO%%Qryf=XTD=zx5YC|O%-kG=m0 zPC`tfuY^avR+-2V!w@wbT4yHt!m$|th>FRz6U0JD0S?LmuiOd&*a4Hl2GA3j*mk~0 zHG{zh;!{+DZUTEyhhE~-I~nx~s|gCSu*A?HC1m3($CYe+6H9wDyGls11or9(nytJ| zd*-n%2D@K`5fS*rJ)?+*sq?mMo6t0*6fGywY7RRNIp4Ub#|f4Kahsq^&@5tt_sEw0 z6$tBs!r=*u#H5mic33oSM;v_oggvkemK}+&k<S(*ltnU2=v`-9omDM9f0uFU1v9Nb z=04>^{?7?z2fqgf*5IzCiS_fY*Gr3UPfh4gBdXY(XjrTV_9xzp6snGzFWJz6*U5Ae z>b#^$8`}Oa>Yx%)Z5Ua^{d@1j`9<3&2(qX3VKiS|pK-r78?u0jI73d-73h_vE*<Vh zgB7(JyzU#Zwg?I@A?43_wlOqR0lzePzgU^?19-QbuMr{*Tu&K*y3+3d`fF$ntl--D zgO2SVbo>v9^nb#_S=Y|+zY*z1#s8FFs5YJ2SHfgyTzIL#sp<+tP{L67dQd6i78rY* zPo1dBFRd8bfj;rLUm!egc@bm@LV0>{3_0s5RelFi_9kbtHD7z!KV_t9cYA;Qp^bbc zltWd_-A&ujR6b=W(!+E`0+JwY$>sB{$|=DQjq@`FVnLG&nzyoVm#wvk&sDJ%kUz$< zsz`N9uTKBzKyxY92j4VNeFI0ST2*<$kTnW%H&05Zz(!w3IP3>S<M@dncFyiag}}f} zI&q1_YuaHvi7_ozxoSEua+x}(nuAop^lvuPP?3X9pmU`Sx~PvbW_$VoM&Z3G8|JDr zkG5P#grK@=BYx!qclF!oZBa;+NbjypCj_%z57srQxC^Vc?;N}=(s~RqWEtP5LCw=( zB>MCedaI4<yjbD*Rm!!X4DAOo?oD&*wT4=qeHW$8)!n#IHjfn4YA|YM^b8;&297>A zV!|4#j{auL*KY|)(UQMQZG@D-G_i}_&nIGbPs1fosoM8gw&|v0gvu#GWiJny6dkAA z-tutWs3nWft)s%3<fN0r^=2)56QfIfVRBgXp)0C#C3P<ml+I)Zyk$b!b^E9KR%!V| z_<ac)aBDb1Ees>*w5>H2Uz2q{mj;TB{`%`((Z0bgJ@|&bigU0=wieD!l+jHeA2opi z+<@NBOcX&dBF*y`WU)wDjBvt|L{|-1lJPd|sI&$C8(Rp_U|c3sZXHuWY9QX6;iwQ@ zLl)3S<^&wxggq*BjIn5v)~&}bg&vOc?VbThy}Qj`JF9KRFi;(X#(;=Vy)XB6dBV3J zDevR#SQo(;_9_)=xm+BwUe=4x19DusZ;98PG=+T`ysxWBjg|D)oYj_G%rpHZl7LV) zX$v2<vgaIIMlO>yquc{&c9dXA4Uk6IXmP8L=$*(MyP&AihZ^D6zu3_R{e=R?eo&(G zgA&1i|9A5rl>F<&q)_1>d>FMGiksGIAa&&UH3jzB36t8@&K8KuOPGl~Sdzxq8MLok zG>?S8p?u(Vy!;k|@2}?>b17=?6)Ue>Yv6hw&-f2<^6QYo2k0O#M4vuP>vh?m3~FAs zWF|jlFeAtn3PM((0JAqP$ndl)Z#OhZ5y~7=^E}9~1p_iy!7Z70a`oMBSE#o}pjLJh zVTz*5IIgH$C%LtC9E*RfOV079G@4(p_z1lzvA&$?%4XRKRqv;AP-^Pnu?;u+((h8i zL2LgIFjx6Cw&tN3x_U7nKUtE$c!a$9$#6D#qZGn;&uoa&U&%^Lp(&%yiJeB8xx|}Y z`tgF8XP6d)@q^wa%SeIAAnL0Rk7uuKv@%S~4y(V+fD5CQP@ZZivy)%ess1v}K?`t@ zQuF)fi}JY6u72#6vftxICFm+nwzg$GCg1zMT?(U0_l)Pc5!=B4LxEJS4ns<{gO;!< zXgw`8Hc(F_hbG98bMbG9=a+QL9r8@r^6nI{s-;H15v2MGagO#T9zUH9Ae$D7YdLjA z+b+6rUT1u5x61&npD`pu?-5155E}FMJ^B~@Z|iSJ|IA;1n~6ymKz||ax)GgDo`@H! z=P1HkG53^qW<c^+cBT?Po)f{$PU^3SA+fJ=@Uy2|4SyxJpKD(@NwP~%+h$;!x~ZM6 zD&>lx#xF?6NhQERNoVoC3Pkt;yj{nM9isXV40D1&?jp+)C!d0N7Z~W~jmsB<X7YPZ zPQiXfR6&>wN~D`fatRBJZO#*%k>!yjFS^0uKVbnUJd2Ryq$#3wPIxJfZVqJ{k&L&9 zXGCBQb4AEn#6de{voh66ZgSnUtK&f&3VPU`{pLb@%fxrO3nm!q)B}6PdXBGvSNwRb znYu@N!ldSa(*GSjg59@Y<PBd+EV)lS8_ZbGN{`4S#_0(UH)lZ0Zx?WaFZ8d3D}R?F zyZ*<~fcGPQ2>nmN^50&QLU~Q;g};bg&FW1uN-D6+(tiSj13|*jaU7szS?JO%d<?)~ zIwq4u(dMMmPbu%3J?L+HadxzCc~Gw%Sn&R6lVA3?+Phz|U8bH^^YD26b_tw>g{la; zsYTbJ>S51)l`=Ja293O0qU*grE{>~Vl~KEju8(CD)=RK6c8wXv=Ry{0eQY>gXHbMs zf(9?Q^CXoZo16h3k5<!eNGi$>t4ol0WgU@(59J#$rXL#!T$oiR2;)m5l~P=ou9rBG zKW3L*?Z8_lpgc$u*MB}N{M3p2H4S>dtnu8Y?ig969?)uZXiMBkgy{rwyvHX{IwQ*1 zAaq*bEdCiNur{67aksM~O|G6rDQ9Zva~!a|*~U!cX7%1NuGu&KR{sIq?_r_$D%$FK zxv_K6f~%Io%g_V7`)TPMKhqWVq~k!XKec!HEiArL`92$v=|=Fy{>{a`u^4b%_X}@F zaX=)3VSRhobHA_OLU51xa|m;}5)1(E>KAu5Af;kUL_1Q|j#ePnvNgw%f9VT`kTto~ zH}bUvD8g--TZr)D%6`~)z-4bH@U}GFb+C$o1;du}!_&pT=wTNZRcmcOcPPeBVAB6U zApYkL{b%<4&!DbQ;Zh1g7M80S$3itpF5HI{9ABip!2*Jmd?dIe6pq(l?`GSuoh<y) zs=hskJ4|{<TjUSCq{lCuG1g}*-keWe{`jfPR1SNiqlv4puls!zA2Q0ue1tYJJq<y4 zHr*qH6dB!|oSYIqUa1gKydwA%<l1M%2~w9H*h8&Uyw1A*=N8#rsZ|vi&ULbB`i9oV z9w#ihBa30^BeWs<NZZJ)3t)bWRVr0TO^PP{$}6R2%4@3aGL^hI^Sd$NXA9ls%vzoG zC$t78RoVc&`@nsbExW+?F2Uw#WsPc!8+4Xts{FBM%HfxTTeZnM$a+1D@gI#kGmi8n z&Asa|GD9%mHqMa3#q7Ni{JU<fT;b7-c-`V+>d_}1NBcI-LaLWPNMI*u862C=;tK_$ z(n&p`Ly#LKfE1kWXOo8=oF9Zma{O61Y#!*hdweURwIrF`@}}l=L)N;UYbO*a0={5B zQUPPZEY(0o5Osk`nMW4tB5m+6q$f&l_QhIa+@Wd8uwM`_ByCMc5C*DD%?Pb~C@-qq zcUh(7rHYZwlq0;NNurHgAibV_8IBFj&GvdPGrx4aFyXuJ79qf40_xr5Z*&bu?vUHi zrL{iT&VA80Zh;VY{H%tC6_8BZ({o_1Zv)FXq{4b}9w7xB9s!AIEI+J~1?*I0z!gqC z3xG=tIMJp6tvi@N)02M3zh-%m@oA)pc$rU1H2dNhDf8U~Nl`etmlVKWe5;&7d?}X) z#txXgpFv;o;ZgP|?+G}GT#aCqPZCeLfh~{RR&(0C1`nBj>JD@+Yd*Zipb_W7Gf&dR z5V2ZWykWs2WOT2WZg=R5kzfX%oX!y=y@3yCsa3&v#Q~(KRS0=IQG@~}1gL_Hi9MPT zOb$ZvS{D{a8pi$b?0yjmst@Cz0w#;kwov4k0bZp8{{js0aEg`EA7HHgs5Ad#3jY5h z$|y+wcqmZ4jM^{z+5*F5kf?I-8xU8MX!ONG3S{RC{6wKbw}R+RQPww&oWsAMXvhap zt+d>3e}@taRsYzaJdD+4Db3PcR$O_GT)VSUS82Aly#Lhr7-D^<Eai?1^2_x{KqJ-L zwdU$dS;aFl888~4;Zr18zLrDg8koiNPI9dK>DHL6>UFAa!(Z`tDH2S}%#z)&5j#_v zI%kw=H*yBO2=zB(wjZ=7X^wI{0z0=}w?GQ@HU*|v+fE|{v@1JogpFc!`~<ONUW2cD zoZSiWw-~h=r6Q^xKQ&Q)`m|@+kVsFb>(7k&3Q|dsgmZW#r!!e8PcYLjUy34;4uRDf z9#U%h>|eU(4V1H2NwYq^1oLj0j2<77JiF#IyodH-sB`399Jg_m`T>J$i9NBqF_T2| zyC&(TTyrJmb{i;KT(J-dQ+S^>oT@Y3lhjgdc2vlbcOEcq*0q?A*6wQ_9vQ>{0LuDb zZRZ6M1wCSOOxa5#T1c;C9jdqIy%R@%1LB=aqoVR=;61$~LOOqq4|2q|NfP$om`cza zxN$MGnK9`qf0*4Mo_0+=CIO(it+Jy|&3OL}#D@u}0H~9Qi!g9G0v+R!Lxh||kCi%P z(<{KR{57SQLKrXL<i|rG;H5+584~06OVSg9se%2yys?7#DJQz*9h9PSpiAKyR!JQv zhg(k=v=|J_R5ngV#wEf_LPksHuWM+)9k~1$cifn{K_ZKa476Vm^12`gl;|ZV^&iQq zU3^n;re+^mjl2vni9LE#a?_lX5ZiRmz}~fTZ1sHGA@=<ZLXQvw2jWk#HA>Im6Z6l& zc$4<Plm-%ZQL9)5_JF#1u*hbB;m=@OAZ1gY0CNB@_+>!0Kzl;r(d}r&AQ6n@8x<VM zcs}&}ZGiv!Qwj&qSO@om2>KsH{QdVC#Q%mnNLtVTh4tKLwY8B;`=gfQktp{QX3*lp z`j<RF!8ZVrDe*U#&EGY`@&Uz;DCVCKnt?zF5zLn#L&ZQvW>Ui_(Lx+oeZBQoN2=!c z*Zn<;PjN}Bi2kG?u(|4nb8Qp|G&Vaa0zF69U4C+aLaW{18t48hLP};2qUR{TriE(( z_nufef{Tz|-<dAeXn&`LXW@X2t{H+-_1F;B6z}qcg?2zXbkVI1(}1?)(A<-ULX;5w z(hg}g$Y445OyBFvAYNRB<ppt-C6bY|06yHV2BK<*1xz8Y5>WBOp<Gtvt-mE%%V7=G zZjWOid`mc)f93d|BaX;0b@3DsETG8)^!Bn(^LX+{BI@p$SrkK&4*42U$`DT9>)YCQ zAo-a9Tr1n4nZc&V?(4X#(kb*jw}?4Yd6IXU`Uo~-tv&3WlZt7X=AE&j>pXna8_WF7 zu%l%hY6M+wzY%r-KGIF<JxMv>b{7R<qH4IVL8m}Pqmp+1;OhZ@$(!BZu9knu8|z?$ zB%xt|Cc7Ng5;dJp;?#82>h~U65B(_(#e9GL)8hnJqlywnCmU+XCwELaE~6}7dR^0< zmG6o(Pe~FJK>Sp-LmmQ_Y{Ny|<%<-BV3k!?K4k7SP4Ui}8v#G&m)pT5<uSE{-prJ^ zkuej`y%;})wGlb5r2oOCVbt!2cx|E6>%^uHxV*AOf5Z3mFX_<awiCMtKgZ4Z$GRr@ z?;kfsEA#&kIdSkmOsKN3UsFx%NteG1{|;i1=QWAzww7rKfZg)(#rz=(>%v@<RJELD zUZ=V_`@ZGHPaXjA_Td?0HEt(E3M<mt8=uHvW7yV^ZszgwdWY8e9nCZlvp5s9%N!>} zNJoU0h@y`^L<cvhfcT8I5H`$35f%)2t9YeE=`2Z(`apz7>0CQPfmGf{+kDXi6rb#B zHBK+?u?~L}H9l@Q&SWpRuHhg?M142jRAWZ!52aHNiFbvJ8aIyf!pst`fjGf5-6-f= zwb!bz9W=``d@FkoH4BPMZw#@XZv2wK9l1@uAviWs!4QCw$(cAyCaF|bC^_yq$P%7Z zu{nCX$L?(D3Z0;9JzjM5)QOA}SWlpp#I+9B9jRNo7%=6RC*+7oc@0!e*%D|r3Xd&G zl(~xANHEg(s8pe8%^PLPo!Pq5z$A<bqH0N>2(dTpf|bb^>)2{CN|a^v@|NwKqqt4y zZJw|xD>_7omTcgs+u=xRHk>B!XurguZl!#dFd1?Y8D;e#LZ6?H0EVS0ayB!QtN-g$ zcH%6hKcDnOkn3A`eE6n7uz(m=Q__Lq7zgQdsbNhgsPy3#m~(CooW9}S<Lk8Q_|8$Q zVy?A$mEw)!rqsbEzU!CeLn0_1nXr_c9JTMXDNKlP&Ik~|V1az7l<r<9Fo&NWBo?lL z0Sqj25KPY1Y@i?FETRJZ_Fu&<K6&Pu(hmOUJM83>sS<!380BBuaR8|_qcLGLqXv8h zonhv@CzQ6Pg#kRv`vL_*yWCY;?NByoRrx$OjDXUMtO5t)V8?v^^=i&tyqTqJ(g?~^ zcGRy^rD?pK_(;tkVJRMe0VX(CM_|G9v)dY@XYld{7W4%q^GJ~fkgD+t1)vg%=OTN5 znftSgd<ssWjzQ!2US^J%4L)aAtS;1t?MlrYqh0}fM(t*88<Q2r;%NjP5zGe7NO|}$ z+Vaiy-&OY!Qp+bb6RGf3O%h@UH2w>p8C3pFuJO|^k466PtsDJwZU4jVD^=Zf6c$sz zJx3=tMkj&d{`&C7jN}vI;f;uc?!x`X7yFG4w_m<Rm`qEX8p?oxz2s~fZf)-AJ3XgY zrbs~!Mz?rnRe9Ow)DENGe$`~<+`PHT?Nr{_h#&o#X>Ux-5YG#Gg~Rqd!M6RXb^Pvi z%t2y}>Hezt%l@$N_n%u|v#*jgp3)<JKyT_EVOER2@My^>OuAYCVJJ)n-Lh+21Y{5( z{EQ?{{yV5!#4u$K;;=zlSwb&<aEXL4RnkB`q%lym(lps1#MBnquunNXJ--NMgNRUu z!UY=r#cSI#v})4d#BGLt+EX$F2#O4%kr}7SqYH9lA9hK2@)8QWC2^cTjq=21HVZWK zuZhzoMnP(_RcYXZIdZp|rD^2+Ws;O}szD2=^y>nd8J2pr6J!ak^wTk~#7Pug_Ji~W zzIeweDy5|82Dy0Q5*14Ejdd$Dj$?r03lnnPl=5km%95RA6a~DGO6YZEuqdOgUaFQO zu4U~)q1@XvD5O}+Z-ug-R`dp$p%jSwk9xHvD07!%0Tc#7cqp%hs;f4&p-QVcZpkl( z`ElaX+Gb+m8b%|Bzs)6CF9b07oG6b5{^&0|4*JL1*mI&oIx`Bew_lWCMGHW+^3k^T zMzNXq(UD+64Ee8TSm5)<wzGR~Ci>lC^r`p9Ug|pAbz()b%^tO2IYYLF!PBtzZWsd% zvISKmColu+(}g)1pXXz_g*7c$hjGX{Ga7|Zq2>!uK?&*K9$hJ&Et&?ekLm>0lfgUI z4MCYovgLTSV>!|vG=YIL0FMldJtyfX3?Oyt8JihgBD<$+&SSv@nW0}+4f^>V=?Jex zISZFs+aFnEzB3pEbC_uWhcEv`H8VLSZ#J!#o;EbI?WSGIwwI5GE;R)DF@be11NTRj zkL(pD$XEpP#a>4CVoAC8AxU(M|H*%J8Pc*TD%d;?W4CO2VlbT3e26X=rIpJMW)||t zBtD;=S4a_foJ;IY*+jQH0n*l_#f+dqI!IR5z`tP>Si>@8Uo<<rvT)2pq2LQs!!WJq zPhOeLdCNq77+?V@9lDTjTG#|ElyDUr5AYLnlYPqRSuaciRZ7(6Ug$^4rc@C(mqw8G z3bgd+DHVb)`fa}$#Y}=0Qo!EK8EFRfD7TayWh0IezoOb3ru$~O788LlosD2+j7%r7 zMEjRuG)0Lcsh<%H95VUDqAHS*akLpJn67ogK*Gr|-ENL*+OVT^m9VbUs-?&nor{?P z-PwtVfPPu(P((7(j9{d~l0sgYW^q_89WUL*$n>S{B0)7%2v-7I!k$kBpHTmCx3?f$ z-V45|wQlS}4y_x{$ax0I*8%XXm3rf9hzemc%s^*5MWkUflo)UxE7I_{PCY`gk8D7? zq}n;5q%8X6nvMkAp|ztEy>0Vq?p3_-m<;NH90_JLIdb`iwJGs})O^2~OaVug9$s;( z1TZ#2rV}R?B2&11e18F2sxI5*ZBPkV_iN@8bnk)$Oa^XTk>TskAA@lF)Y$Wlk=8bD z^~8Br&7<s(i7~u%qF_8M$~?$b3lW)R5p|Ul*zaZmKY{4BJH{@kSeX&id3<{SCuoVg zJ49L86lj%mwdR;mKNc=DaZCFqNGtmZ(M8&>r7Oww1+Qove3QT|**)gcG2hqNcwNmx zdKav4mfpGzC$czs#!CmON)5DFpNkY<t_i#L%E{2dqRDJ7b=qc+7FyX}JACWm3tnyr zr0loddo($0A~b3_NC*U;sU@>2Zp|nDF;s7?)6KX+izo--brmr3100TkLCV3NKFgNP zzRDHL-TM{8UGWvFl$e9gDvqs1tm7e8r(%k}m`Y@=_?SSB!g#1F`AJPqV30|!=_t#h z(Fz>96BCh@xDW?bmtWDKMo`x_sQAIHQw8-0=%M6^dS$u~RhUPwsr4pG9c@snMx#!v zz4g;^nRb;#+41L~7pu1BqmOog{Kai+aTtfhd#kjHA~ZLN2kB_bi;KzHjR#|?NgMbq zDtE4{hNCD4;Yl8%E#gLcPNNlK;#P_4h`pCd8+gw2kPiuIy;x?#P+wJDc1lF@JeRB@ z$Q|W*vmy&|?Fno9LHPW%3srylO;$JUqKUMV+^Jr}>;^sS*5lp}0mQKrIH+7jfcj1_ zg+s$)`O(~+Z5M1?oCRX%$?t%xb;lIl73z~;%t!lwX8%D0z6e`q4aN9(@%@&dO|W@V z;++@g`9#rU`e;?9(L$G*XN(8Bx}*DJ_pXYD$X;RIbq8Rr%D=?B$lobn(>RSrmZ>`M z-l<&a!zIsh8VZC13ys|@+*k?NH}m`AtVbM^IEkd?ryM$Cw+$2q#>N(Yi)YDlurNR8 z>WtKfeX;c>G{i;QZ0iQAs5v{=VT)>lsdThblcv*gG3QgFQq=PcL_cL3UQ$N(Nxf4R z4mK|YaaoT7B+@rRIk94fCa+#z8pbv>GA{?k6IfD9Qd$Y`8?O7`P8u?l8Bd@O1+~5F zk3b}KkS^EVpdSt0anCSL5RrJwt8hsKk+@l)dZiqBrNB~tHz-%_@?V2tbD~Rua0hn; zWoW$_b;r;ONq=)Qf5hY79~#b<R!zl*6ZwneUYoF=4IQ+>-t;BQ{x$wsnqi}_51Z!v z?L4$6bsRH{)NG@|>9RUTPPU;ONhxDMcV4ew6>^FOq?dPAiRxB-ce;+K97R*jDvO87 z%8ORzfSUXc=Fjj9(@u|Z<>=g^{8`_qMa2JjSc)TIdA9;7Ovs|WIF^2?5?@bHmEE9n z?$-A<oN^bY@f@Bf<!)T=mKZV=Poih)8kP1*|2StS*^Cut2uJuF@n=d@<MsOx-Jc0W zd0=6)xSc6UB!BLXiR~JfK%uBGwV5s0HTx*;4$NAf03mPD>4c@Mu-|KO#O;O7Z`a9q zxJ`0HDXm>7us3bPC>`CLNegu8cx_I)SX5V?5VP5TcLnIIvESG{2TtKQ!ND(1UekCl zc7Z~|Rf=E8iPbjA*?%a-$`REL@!^e6s)e9S6@+6`78Q&|uy3@IdM-hfL5b}12!>@7 zfi4+{dXzwG`c-9RA($`Q=dT2GyitLcY8XS@vZwkO3Ci+XqErPHx&*hRQ>k!PAe-D( zKu_wUU(Mob>8;nnjzNB<#*tzzfAQ<1dwkKY{0Grhe`2(zv-PHPL9cVv!zUY<M{zfk z<V0eQf9%dC;#riXRF;-1HKIbMo(_=~8#0vm@<hlun9qi>JW6qGB=2E|tUuu!j*P^h z6A5wz`(>$mvRL93>J%R=#xIxH;;J2358v*)8^Nzz=BoGRGwaZ{3P8dA#muN~;kYDc z>n7*>Wq6krKp{owp7p!m9-g#sJ3KjP8~sZMC@ntYOMBxNs?=;(gUT<86<6XlZGIJq zmjh$mh%uR~bHRQ7BgV^SsjI<oAb9>B;v!HL`s&hF=eEGq3m?O6obVrt*UTHzU@Z4X z-?+ybh4+k#yoVF~sH@?!)5R-q4Q|Rswd5kT<URZ={jZ%D6y-Qa+kh^AUc*ekI35h~ zR$YK)7U+HUlE#u_wxi*BafF_ACH8-bsgsu%!04wNJ?UePb4d5hN8kE!-4&ey{qgn% zYuq~XX+|-=h&2Y>iVN*bX#f!fWUUvZ%G_8Wh_-8~Krz1T{UZn5L6|icUfS5@Q;jk& zVuJ-%WbUU5U_BeB<zeJIT}VkZ2q|d(C*qg4Yt@qZc&iB$isFf&v8h@#3$IucKsAjZ z%PWw=l^|KEahw|sIEc((WZ4&Va!kom@dWhC8y!XT6neSKD?EIolM6*}`_fE;kl)?W z8Nfo!>_uF?JDo7x^y#3+W2V|U%!@mnHH_HruYy(upytxuSII3PphBQALx?9`yvjWq z!{rDyhWNr%9n&I}DeE;wT&`j5^IrP1xa2A;y)KY>>7rzO`p2Zq`2~9mCr27&C9Y}$ zfx-Fm65aMd-EO3PxIP63dL05*oaG(80iFDGhV@zm4jY1XbsMVt3-+Lk$CYS|8+hS& z8-%Yo2Jc~sPn4sx_K6vo)bL^3@`#>GdT8enLM_X2n`ng{EjEy6QHHDJ@!K4W-u}5j z;R82L;^tjjS9s~0wa*aDf%rR1PNM34(^t5x<n5iG^b`L(fVV?^$Pv1ZxMbl=MQl!g zJ+q_!e3yvJ&y<Ma+duB_sV-&{IYvnw;+h)l{&Ph;<trfadMZKHwt@hSW{dS+V^ks! z<TrpGnGV2?Hp_3OtM3P0(cR~VhMc2W%7#kx2&?X(ToYZlcj_L1(sa_rV>CC6U85Qv z#9;JkXR1$G`yyCjQMyIG)@UwUJ-!4f);oc9t_(w1yln2mwLz7>DA6+c{VHy#uD;PW zN?W=wE0W_bC`8(N-?(lFJxtjI;7k!>)4VR^AiV>FUDtB2%X2l;BD&j^t*Qr5y0^;) zw?b0Lo~#FTBRnG3aNY;OfGPz$bxA(;DSs7~`8HJMf(s=V$pp@Z>o_eid+dOnJS&Ua za40~9C)`k?Zi>!KS<OlwTP>8xnaf9n^g-+oHVESv4eYS(du>_~|A515P|J4yDM=;2 zM0UyQN$}xOR(jHhN`2J1+j$tsogdDId=a1G34kCCB(G4k&=$@;>O>I|B>>^{_48Sc zF7goM;qdlV<~?UOte=}I&Ji_tE;=J>U=Zsh&qu-Rdjs0a+UHRgr^ak6plCe6KMeF@ zJU>)>K~p3`ao6e%LWVNsOi6dIjRmGE6I-(<lO!XOXh_gFLO-0uwZ0`}ZG(v3mR$@V zhbizmP|Fy7qAHq<hU<}*@olC9;W-?AhUPuUh9hRQ7@l^)?Hqsj0Fr-B&UlrM`e5-2 z)ZTY~fr75*3fc}2eFnw67Ki)7y}uDwjp7jn<W7M0AY8w#-H6=3<AQtjJs3@os|LKL z&f0;|A@b}?C>kifp$A3{Sw{=m9-@#~)7C{Vyvh&i?kDsRp06ZX^m-c+W=jeJ^p~r` z&+tq(N2?f3FuG>)h|bl(t=@I?$kxS)Nd|=ilsIL(qm|b|;aqq@BJM+w07*Q$e{p1b zO-~@UruWqZ<2gtf-?x_M^b)WpXI+Vm9hQZ_$sO<6#&`h%{5IL4!UqK9F4uw1q`lGK z{0=2%_apif(a-9CV}ppm<kAu2ogsB+L<JO;C(?34TZGjM3dODQ{-ishJfl}Oyey!3 z2hh#!HI37Q1er>K!6k0&h0_%`)R_3$Lf)y<^B~YGbDr6N0;I?p&eL8ihQ+5`uJtvS zwQtSfb<yi@k^~ImzjcccCmDeVF-Q-tC>OCxj}B3QIBrNu;DxC)>e6{U)~!hCzoqNp zny3{~n|&&G;_;E;K01d<folC-cBwK|vYrXullHa!qKJ(HGcAjV@#4((o1ep1>ODI8 zgce24dlcM~M_<H0b;0&Jf#hk*qQcG5^y{~Dsqq{)qjI9#(Sn=f=8oh7lrKO-Q$hog z-1NE!=%uHPN+hYvYC^{KNY?h@ZtwTSFLX5pu$AD+NJaFylpD!K(SQ;ufB@m~2L&SA zLru?t<6>7Q@}Ut2iC8q15dzD=iGf1Qb}_RWK_mU<iCte#6c{>~xGb!Gi?!<LrcKmb zdw#_RclpC3Eu(63mS&x%sa(#>VX_-6|Lq=cFf7%4eVe=NU9K=Wtel9tQbDhyk7@)G zaj0%HnuKM}X@kYq@wq8P8UR1P)|Y09o!s#I`tXB|@NbghgAV!lkM0-Gs6jjMIJD5~ zLTaM>2S^zW_=`bgY{)EZmpg5NLtngzEc@%fOLn^h?{04}l=FyNQF^+-l}ln;N$hmK zs2B#P%)WyHu$muQ{niPwIQuM9iJKo*_bCE-xZ`Z`Ay@{x264);+4~-3-OIP`T-_`# zcPeW@wg{)zN6*M}nuJ;(iPbyb|6*;C%?G9x{IRt_{!DECkKr)?_lU;ef7!wRXIhh~ z{OXLMjPxZGE}TT-R6%H#QB;~Xm}EFe9!XYu$?iDUVr#}hM9pkPMw>)@R}d$J6`8?0 zlQf6iR@+cvy2>IC8e=EIH=_Fr1?>&keJd>^B{lK96=5)r-aH_DJkfsL)$Vn@#gXs5 z^)|2l3$yQ#bdR)*R1ofOEmCKVLP9=hd%Cg0imbqfWFZuEnWf4A+bwIgp6Fm8DZ5NW z9#*z_|FNv%tp!F_|2^DKvo?fmnI~PCrHkyKxU54iYVWw-r`#WH<Z}wXJ;mHtH4H6b zMT>1%;I6#AaySpFu+JAajI9B6z9S6suF{--a*iU!GEB`hCyV+7663v!t`g(2DAf^( zvqL<f%6X%%0uIG>8QNtR_6sWrH?nM7C`d^aC+_^@#|yt$va@g@GW)5eal`&80|=ud zy3H!oR{ftWnPfWzqfu6(PngIVY4=rTa-mUM)x;s0BB)^ecXT%Ht3tf}4*m0dr!KVu zHuSYNA<MoBQ1SQWT4vfsdW$3pV}V|*QKsMfQM%{%K>8)lLcAv_i3|cY6Gmlf87vpW zgQ<Qi0f~zc3~iQSox>K60L2h^GY9g%N=dM-xTG!K_Ac~x<MlSzAnG^sP;3xJhx|<G z9`f>yX35Q)Ff>57LNZBXOgcjz2f@}X4z`BsMOa+#jN$U=Mv3JwNnzIQSVcM;*Z3^E zA{w3pwPu#}T&w5q>C*~S!>Ck;QfkE4_@~-}UTIWF({*R?NVbKF#Tt%?4oqa2m1%() zy5ShK6#7M)xe0fFu-=Hz<<Bz6Fj>HZzOA9QOVm*w#3~(}3Db$((Bg$sXXoT3D=1ov zkfK!s{bCbgA!eie60>QMBl$du2R;Ll3Orz#P0szlxIga=FiAe;RxOO3j-ZZT+Q5*? z6Q|eE7B>era5Jggs7a`%P6Eqn0q!c6Z}Qx?#9q-qP&^E*n=zQ71Rd7O)>QQ;5D{>< z2$yN_=V^VeVH*_*rA`uoo|=OY-_oF8)MjR)Bm6AOLGqg_X~2FldHi{{#Wi`MrnVzD zalyDY`H#%&obRVPCEA+Q3Z{==JPNl2U5QKkReQteUVho+E$bNh{-J=04tckZ#4b={ z#YfY19!wIu2|?Mr#~!MdwAhG$=D?u3d+3Y#ql3UC%v@ma(Y->Q6+guK5nSZ@t8GPl zx0v*OK4X_58bPD7r_r&0b8Ke7bAga^g~lBc+6|!@rJbWB4|#ay?>4(A_g~*E1n;i@ zK}pYZg<nj$QzDwLO;MsH8?IF~9>7p5CMF#s2%bg+NMygbkP)>)A8rmWDUoh6^L%h% zUUA?NX=0>Bf2xpSkG+4hsathn7-sQHVo1_lFx>~p=JvevkF4kt|1(jzakgQep^wom zfv;MAa8fkl6)X+?yXVr&KOyuO2y@d*%*(WiWs2?0ULdr`zIB!l;Q2<Lc`Et>S1<20 z7k5(g7f7pd_44zx-869ZHB4^e`7ds<H?O~FIY5aS$8yU#1y;DU&QQG+ps|qg7OlS% z4FU|#kp$kW@+Er>-q;y|P;N;>sldO2o=P!Jawe8~XL`#|I-*kidTo?f;>AJ5z^yPW zL_Yy?tCFf_94%n<oLmpJ$0@qKqu~N>=(yi!hm6D8JwG0Jd^AsX>tTdbR>88;CQdLJ z+Iljw44H!snRV~hZ+`*L@|C{R2I#7>_C4}O(DEM*Z}R&T2-zmMU=mc?I<mpUvrD=0 z@KFSim*`0h5|CH!BDX0<l(UX*de3}n;~(q2k~*@|z7WQ-N^bY5;WrU{7!Mr#kr|a~ z^<&N3<M9dsy$b)NZa4~7UDDU}uZ)g3+jD6|lkN&)z!FS!l6Cy(F)yvY)O?-h^o)C2 z!#W~9WWLz22_OzHRn2gc!&e<)oAswFns%q))vG|lNy=ZbU140w%eg##-v+|4hJQry z6N#CFX@x9s@T5pyFos3Hh*Q0xJ_(=p=)?kupqUD!_xIsXK?|kz({6=JKUukZJCtWp z<QTBuIAA*hQ^HgORkj8A21&M$zgbbP*uZVk-EE@d5q8#6&)UP<je(W|2;h1O*}G)P zX!#e63=3?PbFsBa%JpN85Iw-9T}iw9nFbn@hptrR&)UrjyDZ5E;kVu4c4rC?6TLxb z7JI|TAC6V)*!paP3LAR%m<rGT$Zrk$1n}FQc0S^|-I{t7<zfOI*JI<N`?2K0M{JfG z7T-rylfnd}taQ!golpRG()8eR5YKxLPhqU^pm4y(4X%)gU8A>sr*%;l2Z6E@GdQXQ zE6yFGUdVB+48dw<tl1V{RQNzr{XQgiTS4X=r8h+Bju=1y4G+_%dPJ_CRTAgCNOiWS zf8q4+NS^QC+BE9}wLb&XdFpgre!~}kEM!_PTkKy9dCz&!-K#LJJ<vSQ0!}CrSS&c~ z5t|$AeXM*1UshgCs}|)UTjtxG#%8lY6b+?A$azo#lZn|VF0AbP*JnAGTHo{NN0Ze3 zk-*viPnzU^dzSw(Oa15LEWiF^lS0&-Uw@$gi$<;WmlUNI(NG~L4A(Cts31%f3V0j( zQj~)=)6}Sl)B}8)xa-9yR4hio^C>^#eF9P@tRto9xXw7caarv>W81sy`xkBCuxLSS zJYB2+XzL$#8wSySDztc86VU-1jzEqUjNycoV#A3LHku%J`m6DjMA&sBA%70|xj?F> z$%deE3^iWo4K}dQJT1D^^_tdz*`(?FuPq%TL5j8}E2Sgk6A=q77Ds1ZK30w{YP>p& z#8Vq#UY6HzA<Ovn>Xjm1xJI4Cl-el^%?p2>fy%Q1LhYK1u%WXGg+sMSOM7{D<9fHu zb+yr%#^ebn7uVIY#S~TK9&<<KW(jiaY8z+Gk=U6`EFNhYKJ{6{!scmJu96g1ZeGL1 zeS%5kh)f7AT+YF<L!$P%65IL2nRu>jqK}aJc*IBTk3GesKj0%hEbwuH<+{l)@|rc5 z-GAQ-{>shxYk_GNTO?bgUxJQ-v*(hd_CtaB7b_}5`75XJCbf7RdWO2IB<%VdjUhYJ z7abavE%-q)IMZ(_rXmIk8F0$b2D^fJ^0L!SFQ5mNFGF1!vnRa4I-tx|iXn0K<@piu zn!I_Zc>>#8+J`5P%s$me=Di=Bw0FgqGs=|<>MNzw1bHV!z{tO=ts#3LXvR1i7b-bB z(+XTuNJdAmk#H8ahCAUo5Qv$Z{fbN`t@EL+^l`ZQC3gjy8wnWDjeoZ~-X)RmQva6+ zAGHTbjm(R?DsQ^~dbshIIZMyjaTi`&a1+4*v%>4I+w4}F5KMetKAu0j2ezypAqt?~ zIT!PzHOjTgtiStX=)^XLORSQ-T8qwJbKZV^5`a2_Gx?9e%J=f;XO4t{e|#d~(b1GJ z^$Gx@Zl~deLFp61-Us0Gwc!6HhMq<4J6Dn~itURCUOqntcF|)BJI97<8wc2{_enZy zpQYA?u{$78y*U+Vo3?EV&0iyA3X^e@^)cYW-}n9(1BqMq&0Wxs1(oS1R!Zdmh#os@ zGedoc|34|qg>mCjeSZ;yrfpDU|J?f7%CZ25%mj+lgz{;?5%t#KjMYM#a!k_dxKL=O zw%h=CknWQy=-0?1w6l62Uw>z^%}<=K-$VSu?AJn;lNsw#0&Zfci4WRjOh7A;3M6@8 z^LHs+(~mJ31E3#i4h&vKXpTNhdd9K~voy6W9!>;Z%1xc&r!$%{6E{rXI9`I4OqQNy zxJG*RRQSJ2I}>;)w>OSYhR9M~LZos{lo*6aQd!12G`6~;m}DQuPLfa|WlLRKT+1|B zveXroREliLTFIIgd*oJ1uD}18D_+jkpnH6Ltk3UzmiN5pJ?FgVd8qGL{!Dwzg4I<C z=h@+;{o-ARU~`&iv1nYn-r6;!zgcRWe6f`BWTT7%4c{u=;Nt}^pJ{u`;i@}Ru}x+> zc39+X9C0Lx{^I$>^PQTBw{Rf3>3_1Om{>t(y9z0b^~)7bDnHXYu{`Eble#U_&d!&& zqO0muWxsKCv7awPsWYwfe3b6hW)i9BW@9*n&ud8*nVdYs9=}KKc5lSZ*Y`aF(3%ap zE0P%VUey^Lu(i4%-Ej2%ie^l4si4mG?ef)m+S?0RB6Dg+JSu{nl}^7YYktIO@2mXg zk6v{~eslFzn0gh)_}|ncga~)ueQfGhocpp+;sA$J2xw~&(AF9YwKW`wbJkP_az%<X zb+*4y2=DoGceYtj4&8F@68?2HFZD1d`*?~#b!<T+o|&C|MU0DgxBn`u%PN-aa;2r< zK+?xr(AqL_5w(S0s2xG=3~!UECDi4n{G=Y@=2adHw`ICzjwuVa+m5a{y3;p=v5M#8 zi1i=`p{+3>>tbe^WB+J|Mg2}58P`%3hV|#z$|=ikYS{X?2i_aoWV<?9$}uLc*ltUG z5trGD3&iHGB#jB8yISx#mvHJ1VS)?cF}2T8knhWiCVt(4D82MPgU)To4Wv5tpMR5d z;1#x#Sh-?Qc<@Ytg-e-AM8uh}81er5V=>Rqrw4GpRmSYS!x-AdZqF1d<lLZ|QOm6q z67g*8l!QjQ`RClv%lX4o3h#8twkUm}a`lH_w_9yHIbPpXEty@v;j{t4R3evQJkr=4 z!_OyJuViedFJ@?!>N@&?yW(6tB{}(slgRUw^dojogkv5-xylMbrrR#(P?LBG6U_1d zQ-8r#_esbnGGsqz-4h|7i~gBpB{xT3sAEf?O&#b5@0H&NPIZ((W9#CKl(AZR>XME` zPb()$5P(&J=uEV<wUYSf7ZP5sL}zC!*Qq~ar+;!LJ4$#vl5QU8B)7_~_IqLOA~RaY z5OtBVo^UjiwNO{eD?_PNuV{BegNZdJieIZtE@)y{(cl8+WoE0=HOcJ}o$V*S7~(%! zo4)-JqU|PnI6@-u<1fjYN2_q7KJNE#jhKgZlqT^`ydCer?jzXZOEje%PP<fcej`g9 zuzs}WVc0dbDt41Vn>S-MZpoOfkqk;1$&rj&6sb^2G1b7ka?Ij}Axx}kXn%#&Ka~=( zBEvbvGPh3#IS#_E#a-6As2n2Z8TwkqN*zO|#2W&)1eLqCc(ck-Ndj;4+eDMHIV!@E z2`}z$+Q+u8<ZtSg6o;&*zm^q78>`;uvWxbY`D(P8UE-9Rw>pa4WEPe**>A*Ffc}-k zi2sj41}83Yj_aGWadB=UoS))DMxUQ;iFq7o#;<PCErhz=|InYW7X7VIj(V5%QH?d1 zl!i>?R<_pkho;(Z-2L8j8P^u^D%f+dPG;UpB}sTa&=$IoCtP3saye<Yqmo%v<rj5* zC!A+@UqMy7{VuC?D_n}_vWpmzyY=2HqsLe}!h52}_<WPZ{Sw+GUw!;K<h1J$KBq^j z=#<x=edCo!q!SwYmOpNk>==&j8<*KzwMwDHF+<!-sKRkb>b<+pKzqR{Y_P<(F0mwn zrcl;zL6KVauEe4gHDhPT>Z@l>wLeSVa>1q*r+G8fesLU+(e^7VMd_Za%hk|*$~GF3 zn(%p#^~OgrCASlWg73E2-_vMibv(SI?cLZI?rTqZtAZ%clOC0It!$JlW0yQ1n#S!g z*z@YiP5%vnB#(n^Cz#oLcZFs+q^eM3<qruI6>S-;B$08#&rD;RZ<<^bHMtZmD^iqw zuBB65e^pB8LmvG%aninJoT`EGDyKd=Wa&3AYvQlr4>f1xEy1lR(5T+zoBBF2uU+0g zDv*2a$^5ln%`9J`F_)uF_lEA&znh=2`?0e2I!uhX68b>eF0xOMaUf^1X~ue9s<bR2 zp*h0;5GNjeUEUMCFJ@mZ8-9r;HBYBBEAEo!#1_u*JC${Z^Rt)|Z}?_2$}?~8waHW# zpcY4ejVUQR_v%K>F|S;^NedDo+GnDO%C+Gy1zg=|O+5EmS8KfwBxOGp^YhWZl9LB+ zoWXCn6}9=cT<oyn3BJEw>l!D|ka`B=OG1C=u5GOp{kS!4e_KL!?fWQ3@Ge#H@5XwH z8|@}}^H&;Lh*`Eq-rHN*GBln$7*!&cCq~X4tGQ10-EhUmc2~V$442}#p4}EhN{}hO zt)h1`@j%<93zx6DSiUeHVsA)enh?3KU(twm7ct2hzoFi8Fhz4PBbR4oFYZ&Q$;dT> z!C3D0%&p~^eRAO~HLXDdSN+63B{Q}9X>L4NT6^*ZUtz>@ANBO)j_s3mRYP4t;v;y1 z1J$k76io@2(v=)lQ}ui_yf*ydMmBj?=0@)9wY8RMTQft)j}b1B_xu07p-@NTt1O1- zrP&glb2U2-`-Q`(;a+<SN1MQx{pq#+86UX2D`Y)Qa~0EWdY;r%ym1N@ArfL2Rwmt< zcv<l3&Rw{PtN@>19I#@FcwNEcG3AfmuF+c=pxVoPID8#uB=m8}g~n(O(fV>{k-yrT z%?ghWQ)IKh$vXwJZ@YAD40G=ap`+1KK4p)Br_1Woavo@T^m<>PC&B#hU!|J&ey|k_ z4nD3pDDgS3(P11-Y$uQNhZVz5N6F>F!h6BZllEk!_MdK|&aPx|cXhY3a?=stT8Y=e zON`*J*XWAt)HGrxwZ*q+Vqa@ZR!L$}q20V!284MwiP%v31Gsxj)?B>8!)?>u^OApn zub<C#8CaBD#;^v>ibAoVP(51dG%rOn3B)1%o>rsY(~gcHxBV%zHNcGJAG5LXzusqp zf6xIB1mL$bi4w3Gd_OZ<=ql@JspAZdBy`p3fx$rYJ<-5uph=7HP0s?jFr8%~{M}+| zNTO>9R$pfs>diHr8r<k{`KGN=w49!p&wP6DqbIX|j!Zs18JbI4dQz+ANDTw2nc82t zI9uiz3xIhrWc<T{o?ez{E_SC9t&)x`LG_;;&pbX%F_4QcL8EM$3lL@lg#`YHW)dZU z=67Hw=V~|tPEQS|r>ccBgeCIxUk5pYDmyHW0xgInO29$zSUV$u*HXpl8RB4To$Jl) z{=g^)d?NLZLQw)fbI!8X+h+vqVdLNM)J_c802p356&!dPP6<fmq7%|yg-mv*g?w_> zCE7UwrwB-(Cm67|{rYWDP!Y8AfYQ_I;43A7XB{1Ynw2%tgXFFTJT;NX#G{D6V^}|d zVDJD7^jm?x;T-)4a6Qv{?DzgRb=^((gMaJ8lLIg#^ggES;cg28O4wN<uFl{LRF9e+ zOJPT$hCnZrnv(&n;8HR$wO#|OyFXF%F9fQ6;8S#tx&W4*`b@peFYD|Fyx4$R8v@7i zz>B&wi4wpM0>1vR)_@;4cOr@O<JLf(H(>b#+|3e&Q7EJv(^^|?+hTO*&u!_h2Ss`y zx5A)}f$&VC1c<8AQN@#OY^LLn!S!0&Q*9~*T1_5YgpxCYw2a=t(UH`pO*9TnO)F@Z z{`~n3`;;u525tv@p!e>cBQ9@1N1Q-(w^ep?vvNE_t6@CZl1Ngs1HH`dhzAnP1TKgR z&x+=ipcT78VZ`UK<iIfc!<L-Gn!gkSuW+A@fO02LMsA+8DhfYHM;Y!%njjz?D9`*1 zI5zoo0Vn}-L^_P`EdVC%aHMj$df-sT2*B2AVZhwL#;`UVA`j6fk?CkJE?^!EgJXvw zum`S-ge_)`3&z5sco1x_*8<pCt1CYU%mc&VI5G$<_SoWK&{7Tzf#abdknP7851GBj z4ijL<{s`fz|KbT#2O>6Yo4@10Zu1dFQ^1lLKX#%I7Y+9FjbP)?{2X?wBENh6hH<bL zWdxTMvSb_`pUN;7cA1KB<-(TCU6cb=I0vwcOC$#@kxR}2J%^Vt7<QP2fMsHr45s5g z3+BSEh!C!R!jidD7nSn7j)`C}?A-+cdnNrO820r7BVivI2$GWWlgO#N#Vq$^FcWsb zfG~^Fev&!c9RrMmkF_JXChC8}EmXJg>0t!iov~!_g0%`C9z|%z*OpA9f0PuiVfdgO zf~Mpy6+QnL1HT-G5DZEdApC1jdVT`D&y5iJDway1HzLD3f(U2xlZ7~o-yeiq2;Q4Q zs9aAMpu!K)v!10Ec)Wr4NDwHhZq{nR)NJ^N3n_D#JihOkz~zHi5)l;c*?&PH>xu*& VCNKd3JGtOvEm(5t0lFyE{{i--k}m)N literal 0 HcmV?d00001 diff --git a/java/ql/integration-tests/all-platforms/java/diagnostics/maven-http-repository/.mvn/wrapper/maven-wrapper.properties b/java/ql/integration-tests/all-platforms/java/diagnostics/maven-http-repository/.mvn/wrapper/maven-wrapper.properties new file mode 100644 index 00000000000..6686a643d7d --- /dev/null +++ b/java/ql/integration-tests/all-platforms/java/diagnostics/maven-http-repository/.mvn/wrapper/maven-wrapper.properties @@ -0,0 +1,18 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.0/apache-maven-3.9.0-bin.zip +wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.1/maven-wrapper-3.1.1.jar diff --git a/java/ql/integration-tests/all-platforms/java/diagnostics/maven-http-repository/mvnw b/java/ql/integration-tests/all-platforms/java/diagnostics/maven-http-repository/mvnw new file mode 100755 index 00000000000..b7f064624f8 --- /dev/null +++ b/java/ql/integration-tests/all-platforms/java/diagnostics/maven-http-repository/mvnw @@ -0,0 +1,287 @@ +#!/bin/sh +# ---------------------------------------------------------------------------- +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# ---------------------------------------------------------------------------- + +# ---------------------------------------------------------------------------- +# Apache Maven Wrapper startup batch script, version 3.1.1 +# +# Required ENV vars: +# ------------------ +# JAVA_HOME - location of a JDK home dir +# +# Optional ENV vars +# ----------------- +# MAVEN_OPTS - parameters passed to the Java VM when running Maven +# e.g. to debug Maven itself, use +# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +# MAVEN_SKIP_RC - flag to disable loading of mavenrc files +# ---------------------------------------------------------------------------- + +if [ -z "$MAVEN_SKIP_RC" ] ; then + + if [ -f /usr/local/etc/mavenrc ] ; then + . /usr/local/etc/mavenrc + fi + + if [ -f /etc/mavenrc ] ; then + . /etc/mavenrc + fi + + if [ -f "$HOME/.mavenrc" ] ; then + . "$HOME/.mavenrc" + fi + +fi + +# OS specific support. $var _must_ be set to either true or false. +cygwin=false; +darwin=false; +mingw=false +case "`uname`" in + CYGWIN*) cygwin=true ;; + MINGW*) mingw=true;; + Darwin*) darwin=true + # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home + # See https://developer.apple.com/library/mac/qa/qa1170/_index.html + if [ -z "$JAVA_HOME" ]; then + if [ -x "/usr/libexec/java_home" ]; then + JAVA_HOME="`/usr/libexec/java_home`"; export JAVA_HOME + else + JAVA_HOME="/Library/Java/Home"; export JAVA_HOME + fi + fi + ;; +esac + +if [ -z "$JAVA_HOME" ] ; then + if [ -r /etc/gentoo-release ] ; then + JAVA_HOME=`java-config --jre-home` + fi +fi + +# For Cygwin, ensure paths are in UNIX format before anything is touched +if $cygwin ; then + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --unix "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --unix "$CLASSPATH"` +fi + +# For Mingw, ensure paths are in UNIX format before anything is touched +if $mingw ; then + [ -n "$JAVA_HOME" ] && + JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" +fi + +if [ -z "$JAVA_HOME" ]; then + javaExecutable="`which javac`" + if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then + # readlink(1) is not available as standard on Solaris 10. + readLink=`which readlink` + if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then + if $darwin ; then + javaHome="`dirname \"$javaExecutable\"`" + javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" + else + javaExecutable="`readlink -f \"$javaExecutable\"`" + fi + javaHome="`dirname \"$javaExecutable\"`" + javaHome=`expr "$javaHome" : '\(.*\)/bin'` + JAVA_HOME="$javaHome" + export JAVA_HOME + fi + fi +fi + +if [ -z "$JAVACMD" ] ; then + if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + else + JAVACMD="`\\unset -f command; \\command -v java`" + fi +fi + +if [ ! -x "$JAVACMD" ] ; then + echo "Error: JAVA_HOME is not defined correctly." >&2 + echo " We cannot execute $JAVACMD" >&2 + exit 1 +fi + +if [ -z "$JAVA_HOME" ] ; then + echo "Warning: JAVA_HOME environment variable is not set." +fi + +# traverses directory structure from process work directory to filesystem root +# first directory with .mvn subdirectory is considered project base directory +find_maven_basedir() { + if [ -z "$1" ] + then + echo "Path not specified to find_maven_basedir" + return 1 + fi + + basedir="$1" + wdir="$1" + while [ "$wdir" != '/' ] ; do + if [ -d "$wdir"/.mvn ] ; then + basedir=$wdir + break + fi + # workaround for JBEAP-8937 (on Solaris 10/Sparc) + if [ -d "${wdir}" ]; then + wdir=`cd "$wdir/.."; pwd` + fi + # end of workaround + done + printf '%s' "$(cd "$basedir"; pwd)" +} + +# concatenates all lines of a file +concat_lines() { + if [ -f "$1" ]; then + echo "$(tr -s '\n' ' ' < "$1")" + fi +} + +BASE_DIR=$(find_maven_basedir "$(dirname $0)") +if [ -z "$BASE_DIR" ]; then + exit 1; +fi + +MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}; export MAVEN_PROJECTBASEDIR +if [ "$MVNW_VERBOSE" = true ]; then + echo $MAVEN_PROJECTBASEDIR +fi + +########################################################################################## +# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +# This allows using the maven wrapper in projects that prohibit checking in binary data. +########################################################################################## +if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found .mvn/wrapper/maven-wrapper.jar" + fi +else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." + fi + if [ -n "$MVNW_REPOURL" ]; then + wrapperUrl="$MVNW_REPOURL/org/apache/maven/wrapper/maven-wrapper/3.1.1/maven-wrapper-3.1.1.jar" + else + wrapperUrl="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.1/maven-wrapper-3.1.1.jar" + fi + while IFS="=" read key value; do + case "$key" in (wrapperUrl) wrapperUrl="$value"; break ;; + esac + done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" + if [ "$MVNW_VERBOSE" = true ]; then + echo "Downloading from: $wrapperUrl" + fi + wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" + if $cygwin; then + wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"` + fi + + if command -v wget > /dev/null; then + QUIET="--quiet" + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found wget ... using wget" + QUIET="" + fi + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + wget $QUIET "$wrapperUrl" -O "$wrapperJarPath" + else + wget $QUIET --http-user="$MVNW_USERNAME" --http-password="$MVNW_PASSWORD" "$wrapperUrl" -O "$wrapperJarPath" + fi + [ $? -eq 0 ] || rm -f "$wrapperJarPath" + elif command -v curl > /dev/null; then + QUIET="--silent" + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found curl ... using curl" + QUIET="" + fi + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + curl $QUIET -o "$wrapperJarPath" "$wrapperUrl" -f -L + else + curl $QUIET --user "$MVNW_USERNAME:$MVNW_PASSWORD" -o "$wrapperJarPath" "$wrapperUrl" -f -L + fi + [ $? -eq 0 ] || rm -f "$wrapperJarPath" + else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Falling back to using Java to download" + fi + javaSource="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" + javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" + # For Cygwin, switch paths to Windows format before running javac + if $cygwin; then + javaSource=`cygpath --path --windows "$javaSource"` + javaClass=`cygpath --path --windows "$javaClass"` + fi + if [ -e "$javaSource" ]; then + if [ ! -e "$javaClass" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Compiling MavenWrapperDownloader.java ..." + fi + # Compiling the Java class + ("$JAVA_HOME/bin/javac" "$javaSource") + fi + if [ -e "$javaClass" ]; then + # Running the downloader + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Running MavenWrapperDownloader.java ..." + fi + ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR") + fi + fi + fi +fi +########################################################################################## +# End of extension +########################################################################################## + +MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" + +# For Cygwin, switch paths to Windows format before running java +if $cygwin; then + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --windows "$CLASSPATH"` + [ -n "$MAVEN_PROJECTBASEDIR" ] && + MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` +fi + +# Provide a "standardized" way to retrieve the CLI args that will +# work with both Windows and non-Windows executions. +MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@" +export MAVEN_CMD_LINE_ARGS + +WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +exec "$JAVACMD" \ + $MAVEN_OPTS \ + $MAVEN_DEBUG_OPTS \ + -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ + "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ + ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/java/ql/integration-tests/all-platforms/java/diagnostics/maven-http-repository/mvnw.cmd b/java/ql/integration-tests/all-platforms/java/diagnostics/maven-http-repository/mvnw.cmd new file mode 100644 index 00000000000..474c9d6b74c --- /dev/null +++ b/java/ql/integration-tests/all-platforms/java/diagnostics/maven-http-repository/mvnw.cmd @@ -0,0 +1,187 @@ +@REM ---------------------------------------------------------------------------- +@REM Licensed to the Apache Software Foundation (ASF) under one +@REM or more contributor license agreements. See the NOTICE file +@REM distributed with this work for additional information +@REM regarding copyright ownership. The ASF licenses this file +@REM to you under the Apache License, Version 2.0 (the +@REM "License"); you may not use this file except in compliance +@REM with the License. You may obtain a copy of the License at +@REM +@REM http://www.apache.org/licenses/LICENSE-2.0 +@REM +@REM Unless required by applicable law or agreed to in writing, +@REM software distributed under the License is distributed on an +@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +@REM KIND, either express or implied. See the License for the +@REM specific language governing permissions and limitations +@REM under the License. +@REM ---------------------------------------------------------------------------- + +@REM ---------------------------------------------------------------------------- +@REM Apache Maven Wrapper startup batch script, version 3.1.1 +@REM +@REM Required ENV vars: +@REM JAVA_HOME - location of a JDK home dir +@REM +@REM Optional ENV vars +@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands +@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending +@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven +@REM e.g. to debug Maven itself, use +@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files +@REM ---------------------------------------------------------------------------- + +@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' +@echo off +@REM set title of command window +title %0 +@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on' +@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% + +@REM set %HOME% to equivalent of $HOME +if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") + +@REM Execute a user defined script before this one +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre +@REM check for pre script, once with legacy .bat ending and once with .cmd ending +if exist "%USERPROFILE%\mavenrc_pre.bat" call "%USERPROFILE%\mavenrc_pre.bat" %* +if exist "%USERPROFILE%\mavenrc_pre.cmd" call "%USERPROFILE%\mavenrc_pre.cmd" %* +:skipRcPre + +@setlocal + +set ERROR_CODE=0 + +@REM To isolate internal variables from possible post scripts, we use another setlocal +@setlocal + +@REM ==== START VALIDATION ==== +if not "%JAVA_HOME%" == "" goto OkJHome + +echo. +echo Error: JAVA_HOME not found in your environment. >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +:OkJHome +if exist "%JAVA_HOME%\bin\java.exe" goto init + +echo. +echo Error: JAVA_HOME is set to an invalid directory. >&2 +echo JAVA_HOME = "%JAVA_HOME%" >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +@REM ==== END VALIDATION ==== + +:init + +@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". +@REM Fallback to current working directory if not found. + +set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% +IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir + +set EXEC_DIR=%CD% +set WDIR=%EXEC_DIR% +:findBaseDir +IF EXIST "%WDIR%"\.mvn goto baseDirFound +cd .. +IF "%WDIR%"=="%CD%" goto baseDirNotFound +set WDIR=%CD% +goto findBaseDir + +:baseDirFound +set MAVEN_PROJECTBASEDIR=%WDIR% +cd "%EXEC_DIR%" +goto endDetectBaseDir + +:baseDirNotFound +set MAVEN_PROJECTBASEDIR=%EXEC_DIR% +cd "%EXEC_DIR%" + +:endDetectBaseDir + +IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig + +@setlocal EnableExtensions EnableDelayedExpansion +for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a +@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% + +:endReadAdditionalConfig + +SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" +set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" +set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +set WRAPPER_URL="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.1/maven-wrapper-3.1.1.jar" + +FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( + IF "%%A"=="wrapperUrl" SET WRAPPER_URL=%%B +) + +@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +@REM This allows using the maven wrapper in projects that prohibit checking in binary data. +if exist %WRAPPER_JAR% ( + if "%MVNW_VERBOSE%" == "true" ( + echo Found %WRAPPER_JAR% + ) +) else ( + if not "%MVNW_REPOURL%" == "" ( + SET WRAPPER_URL="%MVNW_REPOURL%/org/apache/maven/wrapper/maven-wrapper/3.1.1/maven-wrapper-3.1.1.jar" + ) + if "%MVNW_VERBOSE%" == "true" ( + echo Couldn't find %WRAPPER_JAR%, downloading it ... + echo Downloading from: %WRAPPER_URL% + ) + + powershell -Command "&{"^ + "$webclient = new-object System.Net.WebClient;"^ + "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^ + "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^ + "}"^ + "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%WRAPPER_URL%', '%WRAPPER_JAR%')"^ + "}" + if "%MVNW_VERBOSE%" == "true" ( + echo Finished downloading %WRAPPER_JAR% + ) +) +@REM End of extension + +@REM Provide a "standardized" way to retrieve the CLI args that will +@REM work with both Windows and non-Windows executions. +set MAVEN_CMD_LINE_ARGS=%* + +%MAVEN_JAVA_EXE% ^ + %JVM_CONFIG_MAVEN_PROPS% ^ + %MAVEN_OPTS% ^ + %MAVEN_DEBUG_OPTS% ^ + -classpath %WRAPPER_JAR% ^ + "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" ^ + %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* +if ERRORLEVEL 1 goto error +goto end + +:error +set ERROR_CODE=1 + +:end +@endlocal & set ERROR_CODE=%ERROR_CODE% + +if not "%MAVEN_SKIP_RC%"=="" goto skipRcPost +@REM check for post script, once with legacy .bat ending and once with .cmd ending +if exist "%USERPROFILE%\mavenrc_post.bat" call "%USERPROFILE%\mavenrc_post.bat" +if exist "%USERPROFILE%\mavenrc_post.cmd" call "%USERPROFILE%\mavenrc_post.cmd" +:skipRcPost + +@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' +if "%MAVEN_BATCH_PAUSE%"=="on" pause + +if "%MAVEN_TERMINATE_CMD%"=="on" exit %ERROR_CODE% + +cmd /C exit /B %ERROR_CODE% From b37bb660c50e80d2a353f478d4ea7a7d90b0fbdf Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Tue, 21 Mar 2023 09:24:35 +0000 Subject: [PATCH 92/97] C++: Add FP caused by a BufferAccess inside an unevalauted context. --- .../Critical/OverflowStatic/OverflowStatic.expected | 1 + .../CWE/CWE-119/semmle/tests/OverflowBuffer.expected | 1 + .../CWE/CWE-119/semmle/tests/OverflowStatic.expected | 1 + .../query-tests/Security/CWE/CWE-119/semmle/tests/tests.cpp | 6 ++++++ 4 files changed, 9 insertions(+) diff --git a/cpp/ql/test/query-tests/Critical/OverflowStatic/OverflowStatic.expected b/cpp/ql/test/query-tests/Critical/OverflowStatic/OverflowStatic.expected index 0e5bbee7d73..e9ee2bce6fe 100644 --- a/cpp/ql/test/query-tests/Critical/OverflowStatic/OverflowStatic.expected +++ b/cpp/ql/test/query-tests/Critical/OverflowStatic/OverflowStatic.expected @@ -14,3 +14,4 @@ | test.cpp:24:27:24:27 | 4 | Potential buffer-overflow: 'buffer1' has size 3 not 4. | | test.cpp:26:27:26:27 | 4 | Potential buffer-overflow: 'buffer2' has size 3 not 4. | | test.cpp:40:22:40:27 | amount | Potential buffer-overflow: 'buffer' has size 100 not 101. | +| test.cpp:62:33:62:43 | access to array | Potential buffer-overflow: 'buffer' has size 100 but 'buffer[101]' may be accessed here. | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-119/semmle/tests/OverflowBuffer.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-119/semmle/tests/OverflowBuffer.expected index 8006b5b61a0..f21f8ab3646 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-119/semmle/tests/OverflowBuffer.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-119/semmle/tests/OverflowBuffer.expected @@ -50,6 +50,7 @@ | tests.cpp:546:6:546:10 | call to fread | This 'fread' operation may access 400 bytes but the $@ is only 100 bytes. | tests.cpp:532:7:532:16 | charBuffer | destination buffer | | tests.cpp:569:6:569:15 | access to array | This array indexing operation accesses a negative index -1 on the $@. | tests.cpp:565:7:565:12 | buffer | array | | tests.cpp:577:7:577:13 | access to array | This array indexing operation accesses a negative index -1 on the $@. | tests.cpp:565:7:565:12 | buffer | array | +| tests.cpp:608:33:608:43 | access to array | This array indexing operation accesses byte offset 101 but the $@ is only 100 bytes. | tests.cpp:607:7:607:12 | buffer | array | | tests_restrict.c:12:2:12:7 | call to memcpy | This 'memcpy' operation accesses 2 bytes but the $@ is only 1 byte. | tests_restrict.c:7:6:7:13 | smallbuf | source buffer | | unions.cpp:26:2:26:7 | call to memset | This 'memset' operation accesses 200 bytes but the $@ is only 100 bytes. | unions.cpp:21:10:21:11 | mu | destination buffer | | unions.cpp:27:2:27:7 | call to memset | This 'memset' operation accesses 100 bytes but the $@ is only 10 bytes. | unions.cpp:15:7:15:11 | small | destination buffer | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-119/semmle/tests/OverflowStatic.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-119/semmle/tests/OverflowStatic.expected index ac44bbf028d..837d6a930ed 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-119/semmle/tests/OverflowStatic.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-119/semmle/tests/OverflowStatic.expected @@ -5,4 +5,5 @@ | tests.cpp:245:42:245:42 | 6 | Potential buffer-overflow: 'global_array_5' has size 5 not 6. | | tests.cpp:349:2:349:14 | access to array | Potential buffer-overflow: 'charArray' has size 10 but 'charArray[10]' may be accessed here. | | tests.cpp:350:17:350:29 | access to array | Potential buffer-overflow: 'charArray' has size 10 but 'charArray[10]' may be accessed here. | +| tests.cpp:608:33:608:43 | access to array | Potential buffer-overflow: 'buffer' has size 100 but 'buffer[101]' may be accessed here. | | var_size_struct.cpp:103:39:103:41 | 129 | Potential buffer-overflow: 'str' has size 128 not 129. | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-119/semmle/tests/tests.cpp b/cpp/ql/test/query-tests/Security/CWE/CWE-119/semmle/tests/tests.cpp index 6dbbcdd4b3e..8918543847f 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-119/semmle/tests/tests.cpp +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-119/semmle/tests/tests.cpp @@ -603,6 +603,11 @@ void test22(bool b, const char* source) { memcpy(dest, source, n); // GOOD } +int test23() { + char buffer[100]; + return sizeof(buffer) / sizeof(buffer[101]); // GOOD [FALSE POSITIVE] +} + int tests_main(int argc, char *argv[]) { long long arr17[19]; @@ -627,6 +632,7 @@ int tests_main(int argc, char *argv[]) test20(); test21(argc == 0); test22(argc == 0, argv[0]); + test23(); return 0; } From 8623d8eb8e4ec0e6208a72eb73491bde50e1b20e Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Tue, 21 Mar 2023 09:41:30 +0000 Subject: [PATCH 93/97] C++: Exclude unevaluated expressions from BufferAccess. --- cpp/ql/lib/semmle/code/cpp/security/BufferAccess.qll | 2 ++ .../Security/CWE/CWE-119/semmle/tests/OverflowBuffer.expected | 1 - .../query-tests/Security/CWE/CWE-119/semmle/tests/tests.cpp | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/security/BufferAccess.qll b/cpp/ql/lib/semmle/code/cpp/security/BufferAccess.qll index faeb859506d..e52babcfe2e 100644 --- a/cpp/ql/lib/semmle/code/cpp/security/BufferAccess.qll +++ b/cpp/ql/lib/semmle/code/cpp/security/BufferAccess.qll @@ -14,6 +14,8 @@ int getPointedSize(Type t) { * BufferWrite differ. */ abstract class BufferAccess extends Expr { + BufferAccess() { not this.isUnevaluated() } + abstract string getName(); /** diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-119/semmle/tests/OverflowBuffer.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-119/semmle/tests/OverflowBuffer.expected index f21f8ab3646..8006b5b61a0 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-119/semmle/tests/OverflowBuffer.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-119/semmle/tests/OverflowBuffer.expected @@ -50,7 +50,6 @@ | tests.cpp:546:6:546:10 | call to fread | This 'fread' operation may access 400 bytes but the $@ is only 100 bytes. | tests.cpp:532:7:532:16 | charBuffer | destination buffer | | tests.cpp:569:6:569:15 | access to array | This array indexing operation accesses a negative index -1 on the $@. | tests.cpp:565:7:565:12 | buffer | array | | tests.cpp:577:7:577:13 | access to array | This array indexing operation accesses a negative index -1 on the $@. | tests.cpp:565:7:565:12 | buffer | array | -| tests.cpp:608:33:608:43 | access to array | This array indexing operation accesses byte offset 101 but the $@ is only 100 bytes. | tests.cpp:607:7:607:12 | buffer | array | | tests_restrict.c:12:2:12:7 | call to memcpy | This 'memcpy' operation accesses 2 bytes but the $@ is only 1 byte. | tests_restrict.c:7:6:7:13 | smallbuf | source buffer | | unions.cpp:26:2:26:7 | call to memset | This 'memset' operation accesses 200 bytes but the $@ is only 100 bytes. | unions.cpp:21:10:21:11 | mu | destination buffer | | unions.cpp:27:2:27:7 | call to memset | This 'memset' operation accesses 100 bytes but the $@ is only 10 bytes. | unions.cpp:15:7:15:11 | small | destination buffer | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-119/semmle/tests/tests.cpp b/cpp/ql/test/query-tests/Security/CWE/CWE-119/semmle/tests/tests.cpp index 8918543847f..90f942023c4 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-119/semmle/tests/tests.cpp +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-119/semmle/tests/tests.cpp @@ -605,7 +605,7 @@ void test22(bool b, const char* source) { int test23() { char buffer[100]; - return sizeof(buffer) / sizeof(buffer[101]); // GOOD [FALSE POSITIVE] + return sizeof(buffer) / sizeof(buffer[101]); // GOOD } int tests_main(int argc, char *argv[]) From 4d2a1ea1496f25b8778c79c4b1a6a213a0763a4f Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Tue, 21 Mar 2023 09:50:47 +0000 Subject: [PATCH 94/97] C++: Also add a FP test to 'OverflowStatic'. --- cpp/ql/test/query-tests/Critical/OverflowStatic/test.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/cpp/ql/test/query-tests/Critical/OverflowStatic/test.cpp b/cpp/ql/test/query-tests/Critical/OverflowStatic/test.cpp index 01a4a0adaef..535e3eb0ce4 100644 --- a/cpp/ql/test/query-tests/Critical/OverflowStatic/test.cpp +++ b/cpp/ql/test/query-tests/Critical/OverflowStatic/test.cpp @@ -56,3 +56,8 @@ void f3() { } } } + +int unevaluated_test() { + char buffer[100]; + return sizeof(buffer) / sizeof(buffer[101]); // GOOD [FALSE POSITIVE] +} \ No newline at end of file From 40cc2e78914bc79f1c0d5e58c69de2ba44629cb6 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Tue, 21 Mar 2023 09:53:08 +0000 Subject: [PATCH 95/97] C++: Also exclude unevaluated buffers in 'OverflowStatic'. --- cpp/ql/src/Critical/OverflowStatic.ql | 3 ++- .../Critical/OverflowStatic/OverflowStatic.expected | 1 - cpp/ql/test/query-tests/Critical/OverflowStatic/test.cpp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/cpp/ql/src/Critical/OverflowStatic.ql b/cpp/ql/src/Critical/OverflowStatic.ql index 962d2ee89b0..13a4fb6bcb7 100644 --- a/cpp/ql/src/Critical/OverflowStatic.ql +++ b/cpp/ql/src/Critical/OverflowStatic.ql @@ -22,7 +22,8 @@ import LoopBounds private predicate staticBufferBase(VariableAccess access, Variable v) { v.getType().(ArrayType).getBaseType() instanceof CharType and access = v.getAnAccess() and - not memberMayBeVarSize(_, v) + not memberMayBeVarSize(_, v) and + not access.isUnevaluated() } predicate staticBuffer(VariableAccess access, Variable v, int size) { diff --git a/cpp/ql/test/query-tests/Critical/OverflowStatic/OverflowStatic.expected b/cpp/ql/test/query-tests/Critical/OverflowStatic/OverflowStatic.expected index e9ee2bce6fe..0e5bbee7d73 100644 --- a/cpp/ql/test/query-tests/Critical/OverflowStatic/OverflowStatic.expected +++ b/cpp/ql/test/query-tests/Critical/OverflowStatic/OverflowStatic.expected @@ -14,4 +14,3 @@ | test.cpp:24:27:24:27 | 4 | Potential buffer-overflow: 'buffer1' has size 3 not 4. | | test.cpp:26:27:26:27 | 4 | Potential buffer-overflow: 'buffer2' has size 3 not 4. | | test.cpp:40:22:40:27 | amount | Potential buffer-overflow: 'buffer' has size 100 not 101. | -| test.cpp:62:33:62:43 | access to array | Potential buffer-overflow: 'buffer' has size 100 but 'buffer[101]' may be accessed here. | diff --git a/cpp/ql/test/query-tests/Critical/OverflowStatic/test.cpp b/cpp/ql/test/query-tests/Critical/OverflowStatic/test.cpp index 535e3eb0ce4..deeb70ffd57 100644 --- a/cpp/ql/test/query-tests/Critical/OverflowStatic/test.cpp +++ b/cpp/ql/test/query-tests/Critical/OverflowStatic/test.cpp @@ -59,5 +59,5 @@ void f3() { int unevaluated_test() { char buffer[100]; - return sizeof(buffer) / sizeof(buffer[101]); // GOOD [FALSE POSITIVE] + return sizeof(buffer) / sizeof(buffer[101]); // GOOD } \ No newline at end of file From eab43973b7546ee222689c108b808aff9458ee9b Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Tue, 21 Mar 2023 10:00:11 +0000 Subject: [PATCH 96/97] C++: Add change note. --- cpp/ql/lib/change-notes/2023-03-21-buffer-access.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 cpp/ql/lib/change-notes/2023-03-21-buffer-access.md diff --git a/cpp/ql/lib/change-notes/2023-03-21-buffer-access.md b/cpp/ql/lib/change-notes/2023-03-21-buffer-access.md new file mode 100644 index 00000000000..7b2b6bad0dc --- /dev/null +++ b/cpp/ql/lib/change-notes/2023-03-21-buffer-access.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* The `BufferAccess` library (`semmle.code.cpp.security.BufferAccess`) no longer matches buffer accesses inside unevaluated contexts (such as inside `sizeof` or `decltype` expressions). As a result, queries using this library may see fewer false positives. \ No newline at end of file From 2ce0d2b7ee6482209dbd07d9f1bf8f9da1170e26 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen <mathiasvp@github.com> Date: Tue, 21 Mar 2023 10:07:23 +0000 Subject: [PATCH 97/97] C++: Accept more test changes. --- .../Security/CWE/CWE-119/semmle/tests/OverflowStatic.expected | 1 - 1 file changed, 1 deletion(-) diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-119/semmle/tests/OverflowStatic.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-119/semmle/tests/OverflowStatic.expected index 837d6a930ed..ac44bbf028d 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-119/semmle/tests/OverflowStatic.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-119/semmle/tests/OverflowStatic.expected @@ -5,5 +5,4 @@ | tests.cpp:245:42:245:42 | 6 | Potential buffer-overflow: 'global_array_5' has size 5 not 6. | | tests.cpp:349:2:349:14 | access to array | Potential buffer-overflow: 'charArray' has size 10 but 'charArray[10]' may be accessed here. | | tests.cpp:350:17:350:29 | access to array | Potential buffer-overflow: 'charArray' has size 10 but 'charArray[10]' may be accessed here. | -| tests.cpp:608:33:608:43 | access to array | Potential buffer-overflow: 'buffer' has size 100 but 'buffer[101]' may be accessed here. | | var_size_struct.cpp:103:39:103:41 | 129 | Potential buffer-overflow: 'str' has size 128 not 129. |