mirror of
https://github.com/github/codeql.git
synced 2026-03-26 17:28:29 +01:00
Merge pull request #11243 from michaelnebel/java/dataextensions
Java: Use data extensions for MaD models.
This commit is contained in:
@@ -1,22 +1,23 @@
|
||||
/**
|
||||
* INTERNAL use only. This is an experimental API subject to change without notice.
|
||||
*
|
||||
* Provides classes and predicates for dealing with flow models specified in CSV format.
|
||||
* Provides classes and predicates for dealing with flow models specified
|
||||
* in data extensions and CSV format.
|
||||
*
|
||||
* The CSV specification has the following columns:
|
||||
* - Sources:
|
||||
* `namespace; type; subtypes; name; signature; ext; output; kind; provenance`
|
||||
* `package; type; subtypes; name; signature; ext; output; kind; provenance`
|
||||
* - Sinks:
|
||||
* `namespace; type; subtypes; name; signature; ext; input; kind; provenance`
|
||||
* `package; type; subtypes; name; signature; ext; input; kind; provenance`
|
||||
* - Summaries:
|
||||
* `namespace; type; subtypes; name; signature; ext; input; output; kind; provenance`
|
||||
* `package; type; subtypes; name; signature; ext; input; output; kind; provenance`
|
||||
* - Negative Summaries:
|
||||
* `namespace; type; name; signature; provenance`
|
||||
* `package; type; name; signature; provenance`
|
||||
* A negative summary is used to indicate that there is no flow via a callable.
|
||||
*
|
||||
* The interpretation of a row is similar to API-graphs with a left-to-right
|
||||
* reading.
|
||||
* 1. The `namespace` column selects a package.
|
||||
* 1. The `package` column selects a package.
|
||||
* 2. The `type` column selects a type within that package.
|
||||
* 3. The `subtypes` is a boolean that indicates whether to jump to an
|
||||
* arbitrary subtype of that type.
|
||||
@@ -89,55 +90,30 @@ private module Frameworks {
|
||||
private import semmle.code.java.frameworks.android.ContentProviders
|
||||
private import semmle.code.java.frameworks.android.ExternalStorage
|
||||
private import semmle.code.java.frameworks.android.Intent
|
||||
private import semmle.code.java.frameworks.android.Notifications
|
||||
private import semmle.code.java.frameworks.android.SharedPreferences
|
||||
private import semmle.code.java.frameworks.android.Slice
|
||||
private import semmle.code.java.frameworks.android.SQLite
|
||||
private import semmle.code.java.frameworks.android.Widget
|
||||
private import semmle.code.java.frameworks.android.XssSinks
|
||||
private import semmle.code.java.frameworks.ApacheHttp
|
||||
private import semmle.code.java.frameworks.apache.Collections
|
||||
private import semmle.code.java.frameworks.apache.IO
|
||||
private import semmle.code.java.frameworks.apache.Lang
|
||||
private import semmle.code.java.frameworks.Flexjson
|
||||
private import semmle.code.java.frameworks.generated
|
||||
private import semmle.code.java.frameworks.guava.Guava
|
||||
private import semmle.code.java.frameworks.jackson.JacksonSerializability
|
||||
private import semmle.code.java.frameworks.javaee.jsf.JSFRenderer
|
||||
private import semmle.code.java.frameworks.JavaIo
|
||||
private import semmle.code.java.frameworks.JavaxJson
|
||||
private import semmle.code.java.frameworks.JaxWS
|
||||
private import semmle.code.java.frameworks.JoddJson
|
||||
private import semmle.code.java.frameworks.JsonJava
|
||||
private import semmle.code.java.frameworks.Logging
|
||||
private import semmle.code.java.frameworks.Objects
|
||||
private import semmle.code.java.frameworks.OkHttp
|
||||
private import semmle.code.java.frameworks.Optional
|
||||
private import semmle.code.java.frameworks.Regex
|
||||
private import semmle.code.java.frameworks.Retrofit
|
||||
private import semmle.code.java.frameworks.Stream
|
||||
private import semmle.code.java.frameworks.Strings
|
||||
private import semmle.code.java.frameworks.Thymeleaf
|
||||
private import semmle.code.java.frameworks.ratpack.Ratpack
|
||||
private import semmle.code.java.frameworks.ratpack.RatpackExec
|
||||
private import semmle.code.java.frameworks.spring.SpringCache
|
||||
private import semmle.code.java.frameworks.spring.SpringContext
|
||||
private import semmle.code.java.frameworks.spring.SpringData
|
||||
private import semmle.code.java.frameworks.spring.SpringHttp
|
||||
private import semmle.code.java.frameworks.spring.SpringUtil
|
||||
private import semmle.code.java.frameworks.spring.SpringUi
|
||||
private import semmle.code.java.frameworks.spring.SpringValidation
|
||||
private import semmle.code.java.frameworks.spring.SpringWebClient
|
||||
private import semmle.code.java.frameworks.spring.SpringBeans
|
||||
private import semmle.code.java.frameworks.spring.SpringWebMultipart
|
||||
private import semmle.code.java.frameworks.spring.SpringWebUtil
|
||||
private import semmle.code.java.security.AndroidIntentRedirection
|
||||
private import semmle.code.java.security.ResponseSplitting
|
||||
private import semmle.code.java.security.InformationLeak
|
||||
private import semmle.code.java.security.Files
|
||||
private import semmle.code.java.security.FragmentInjection
|
||||
private import semmle.code.java.security.GroovyInjection
|
||||
private import semmle.code.java.security.ImplicitPendingIntents
|
||||
private import semmle.code.java.security.JexlInjectionSinkModels
|
||||
private import semmle.code.java.security.JndiInjection
|
||||
private import semmle.code.java.security.LdapInjection
|
||||
private import semmle.code.java.security.MvelInjection
|
||||
@@ -146,298 +122,165 @@ private module Frameworks {
|
||||
private import semmle.code.java.security.XPath
|
||||
private import semmle.code.java.security.XsltInjection
|
||||
private import semmle.code.java.frameworks.Jdbc
|
||||
private import semmle.code.java.frameworks.Jdbi
|
||||
private import semmle.code.java.frameworks.HikariCP
|
||||
private import semmle.code.java.frameworks.SpringJdbc
|
||||
private import semmle.code.java.frameworks.MyBatis
|
||||
private import semmle.code.java.frameworks.Hibernate
|
||||
private import semmle.code.java.frameworks.jOOQ
|
||||
private import semmle.code.java.frameworks.JMS
|
||||
private import semmle.code.java.frameworks.RabbitMQ
|
||||
private import semmle.code.java.regex.RegexFlowModels
|
||||
private import semmle.code.java.frameworks.kotlin.StdLib
|
||||
}
|
||||
|
||||
/**
|
||||
* DEPRECATED: Define source models as data extensions instead.
|
||||
*
|
||||
* A unit class for adding additional source model rows.
|
||||
*
|
||||
* Extend this class to add additional source definitions.
|
||||
*/
|
||||
class SourceModelCsv extends Unit {
|
||||
class SourceModelCsv = SourceModelCsvInternal;
|
||||
|
||||
private class SourceModelCsvInternal extends Unit {
|
||||
/** Holds if `row` specifies a source definition. */
|
||||
abstract predicate row(string row);
|
||||
}
|
||||
|
||||
/**
|
||||
* DEPRECATED: Define sink models as data extensions instead.
|
||||
*
|
||||
* A unit class for adding additional sink model rows.
|
||||
*
|
||||
* Extend this class to add additional sink definitions.
|
||||
*/
|
||||
class SinkModelCsv extends Unit {
|
||||
class SinkModelCsv = SinkModelCsvInternal;
|
||||
|
||||
private class SinkModelCsvInternal extends Unit {
|
||||
/** Holds if `row` specifies a sink definition. */
|
||||
abstract predicate row(string row);
|
||||
}
|
||||
|
||||
/**
|
||||
* DEPRECATED: Define summary models as data extensions instead.
|
||||
*
|
||||
* A unit class for adding additional summary model rows.
|
||||
*
|
||||
* Extend this class to add additional flow summary definitions.
|
||||
*/
|
||||
class SummaryModelCsv extends Unit {
|
||||
class SummaryModelCsv = SummaryModelCsvInternal;
|
||||
|
||||
private class SummaryModelCsvInternal extends Unit {
|
||||
/** Holds if `row` specifies a summary definition. */
|
||||
abstract predicate row(string row);
|
||||
}
|
||||
|
||||
/**
|
||||
* A unit class for adding negative summary model rows.
|
||||
* DEPRECATED: Define negative summary models as data extensions instead.
|
||||
*
|
||||
* Extend this class to add additional flow summary definitions.
|
||||
* A unit class for adding additional negative summary model rows.
|
||||
*
|
||||
* Extend this class to add additional negative summary definitions.
|
||||
*/
|
||||
class NegativeSummaryModelCsv extends Unit {
|
||||
class NegativeSummaryModelCsv = NegativeSummaryModelCsvInternal;
|
||||
|
||||
private class NegativeSummaryModelCsvInternal extends Unit {
|
||||
/** Holds if `row` specifies a negative summary definition. */
|
||||
abstract predicate row(string row);
|
||||
}
|
||||
|
||||
private class SourceModelCsvBase extends SourceModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
// org.springframework.security.web.savedrequest.SavedRequest
|
||||
"org.springframework.security.web.savedrequest;SavedRequest;true;getRedirectUrl;;;ReturnValue;remote;manual",
|
||||
"org.springframework.security.web.savedrequest;SavedRequest;true;getCookies;;;ReturnValue;remote;manual",
|
||||
"org.springframework.security.web.savedrequest;SavedRequest;true;getHeaderValues;;;ReturnValue;remote;manual",
|
||||
"org.springframework.security.web.savedrequest;SavedRequest;true;getHeaderNames;;;ReturnValue;remote;manual",
|
||||
"org.springframework.security.web.savedrequest;SavedRequest;true;getParameterValues;;;ReturnValue;remote;manual",
|
||||
"org.springframework.security.web.savedrequest;SavedRequest;true;getParameterMap;;;ReturnValue;remote;manual",
|
||||
// ServletRequestGetParameterMethod
|
||||
"javax.servlet;ServletRequest;false;getParameter;(String);;ReturnValue;remote;manual",
|
||||
"javax.servlet;ServletRequest;false;getParameterValues;(String);;ReturnValue;remote;manual",
|
||||
"javax.servlet.http;HttpServletRequest;false;getParameter;(String);;ReturnValue;remote;manual",
|
||||
"javax.servlet.http;HttpServletRequest;false;getParameterValues;(String);;ReturnValue;remote;manual",
|
||||
// ServletRequestGetParameterMapMethod
|
||||
"javax.servlet;ServletRequest;false;getParameterMap;();;ReturnValue;remote;manual",
|
||||
"javax.servlet.http;HttpServletRequest;false;getParameterMap;();;ReturnValue;remote;manual",
|
||||
// ServletRequestGetParameterNamesMethod
|
||||
"javax.servlet;ServletRequest;false;getParameterNames;();;ReturnValue;remote;manual",
|
||||
"javax.servlet.http;HttpServletRequest;false;getParameterNames;();;ReturnValue;remote;manual",
|
||||
// HttpServletRequestGetQueryStringMethod
|
||||
"javax.servlet.http;HttpServletRequest;false;getQueryString;();;ReturnValue;remote;manual",
|
||||
//
|
||||
// URLConnectionGetInputStreamMethod
|
||||
"java.net;URLConnection;false;getInputStream;();;ReturnValue;remote;manual",
|
||||
// SocketGetInputStreamMethod
|
||||
"java.net;Socket;false;getInputStream;();;ReturnValue;remote;manual",
|
||||
// BeanValidationSource
|
||||
"javax.validation;ConstraintValidator;true;isValid;;;Parameter[0];remote;manual",
|
||||
// SpringMultipartRequestSource
|
||||
"org.springframework.web.multipart;MultipartRequest;true;getFile;(String);;ReturnValue;remote;manual",
|
||||
"org.springframework.web.multipart;MultipartRequest;true;getFileMap;();;ReturnValue;remote;manual",
|
||||
"org.springframework.web.multipart;MultipartRequest;true;getFileNames;();;ReturnValue;remote;manual",
|
||||
"org.springframework.web.multipart;MultipartRequest;true;getFiles;(String);;ReturnValue;remote;manual",
|
||||
"org.springframework.web.multipart;MultipartRequest;true;getMultiFileMap;();;ReturnValue;remote;manual",
|
||||
"org.springframework.web.multipart;MultipartRequest;true;getMultipartContentType;(String);;ReturnValue;remote;manual",
|
||||
// SpringMultipartFileSource
|
||||
"org.springframework.web.multipart;MultipartFile;true;getBytes;();;ReturnValue;remote;manual",
|
||||
"org.springframework.web.multipart;MultipartFile;true;getContentType;();;ReturnValue;remote;manual",
|
||||
"org.springframework.web.multipart;MultipartFile;true;getInputStream;();;ReturnValue;remote;manual",
|
||||
"org.springframework.web.multipart;MultipartFile;true;getName;();;ReturnValue;remote;manual",
|
||||
"org.springframework.web.multipart;MultipartFile;true;getOriginalFilename;();;ReturnValue;remote;manual",
|
||||
"org.springframework.web.multipart;MultipartFile;true;getResource;();;ReturnValue;remote;manual",
|
||||
// HttpServletRequest.get*
|
||||
"javax.servlet.http;HttpServletRequest;false;getHeader;(String);;ReturnValue;remote;manual",
|
||||
"javax.servlet.http;HttpServletRequest;false;getHeaders;(String);;ReturnValue;remote;manual",
|
||||
"javax.servlet.http;HttpServletRequest;false;getHeaderNames;();;ReturnValue;remote;manual",
|
||||
"javax.servlet.http;HttpServletRequest;false;getPathInfo;();;ReturnValue;remote;manual",
|
||||
"javax.servlet.http;HttpServletRequest;false;getRequestURI;();;ReturnValue;remote;manual",
|
||||
"javax.servlet.http;HttpServletRequest;false;getRequestURL;();;ReturnValue;remote;manual",
|
||||
"javax.servlet.http;HttpServletRequest;false;getRemoteUser;();;ReturnValue;remote;manual",
|
||||
// SpringWebRequestGetMethod
|
||||
"org.springframework.web.context.request;WebRequest;false;getDescription;;;ReturnValue;remote;manual",
|
||||
"org.springframework.web.context.request;WebRequest;false;getHeader;;;ReturnValue;remote;manual",
|
||||
"org.springframework.web.context.request;WebRequest;false;getHeaderNames;;;ReturnValue;remote;manual",
|
||||
"org.springframework.web.context.request;WebRequest;false;getHeaderValues;;;ReturnValue;remote;manual",
|
||||
"org.springframework.web.context.request;WebRequest;false;getParameter;;;ReturnValue;remote;manual",
|
||||
"org.springframework.web.context.request;WebRequest;false;getParameterMap;;;ReturnValue;remote;manual",
|
||||
"org.springframework.web.context.request;WebRequest;false;getParameterNames;;;ReturnValue;remote;manual",
|
||||
"org.springframework.web.context.request;WebRequest;false;getParameterValues;;;ReturnValue;remote;manual",
|
||||
// TODO consider org.springframework.web.context.request.WebRequest.getRemoteUser
|
||||
// ServletRequestGetBodyMethod
|
||||
"javax.servlet;ServletRequest;false;getInputStream;();;ReturnValue;remote;manual",
|
||||
"javax.servlet;ServletRequest;false;getReader;();;ReturnValue;remote;manual",
|
||||
// CookieGet*
|
||||
"javax.servlet.http;Cookie;false;getValue;();;ReturnValue;remote;manual",
|
||||
"javax.servlet.http;Cookie;false;getName;();;ReturnValue;remote;manual",
|
||||
"javax.servlet.http;Cookie;false;getComment;();;ReturnValue;remote;manual",
|
||||
// ApacheHttp*
|
||||
"org.apache.http;HttpMessage;false;getParams;();;ReturnValue;remote;manual",
|
||||
"org.apache.http;HttpEntity;false;getContent;();;ReturnValue;remote;manual",
|
||||
// In the setting of Android we assume that XML has been transmitted over
|
||||
// the network, so may be tainted.
|
||||
// XmlPullGetMethod
|
||||
"org.xmlpull.v1;XmlPullParser;false;getName;();;ReturnValue;remote;manual",
|
||||
"org.xmlpull.v1;XmlPullParser;false;getNamespace;();;ReturnValue;remote;manual",
|
||||
"org.xmlpull.v1;XmlPullParser;false;getText;();;ReturnValue;remote;manual",
|
||||
// XmlAttrSetGetMethod
|
||||
"android.util;AttributeSet;false;getAttributeBooleanValue;;;ReturnValue;remote;manual",
|
||||
"android.util;AttributeSet;false;getAttributeCount;;;ReturnValue;remote;manual",
|
||||
"android.util;AttributeSet;false;getAttributeFloatValue;;;ReturnValue;remote;manual",
|
||||
"android.util;AttributeSet;false;getAttributeIntValue;;;ReturnValue;remote;manual",
|
||||
"android.util;AttributeSet;false;getAttributeListValue;;;ReturnValue;remote;manual",
|
||||
"android.util;AttributeSet;false;getAttributeName;;;ReturnValue;remote;manual",
|
||||
"android.util;AttributeSet;false;getAttributeNameResource;;;ReturnValue;remote;manual",
|
||||
"android.util;AttributeSet;false;getAttributeNamespace;;;ReturnValue;remote;manual",
|
||||
"android.util;AttributeSet;false;getAttributeResourceValue;;;ReturnValue;remote;manual",
|
||||
"android.util;AttributeSet;false;getAttributeUnsignedIntValue;;;ReturnValue;remote;manual",
|
||||
"android.util;AttributeSet;false;getAttributeValue;;;ReturnValue;remote;manual",
|
||||
"android.util;AttributeSet;false;getClassAttribute;;;ReturnValue;remote;manual",
|
||||
"android.util;AttributeSet;false;getIdAttribute;;;ReturnValue;remote;manual",
|
||||
"android.util;AttributeSet;false;getIdAttributeResourceValue;;;ReturnValue;remote;manual",
|
||||
"android.util;AttributeSet;false;getPositionDescription;;;ReturnValue;remote;manual",
|
||||
"android.util;AttributeSet;false;getStyleAttribute;;;ReturnValue;remote;manual",
|
||||
// The current URL in a browser may be untrusted or uncontrolled.
|
||||
// WebViewGetUrlMethod
|
||||
"android.webkit;WebView;false;getUrl;();;ReturnValue;remote;manual",
|
||||
"android.webkit;WebView;false;getOriginalUrl;();;ReturnValue;remote;manual",
|
||||
// SpringRestTemplateResponseEntityMethod
|
||||
"org.springframework.web.client;RestTemplate;false;exchange;;;ReturnValue;remote;manual",
|
||||
"org.springframework.web.client;RestTemplate;false;getForEntity;;;ReturnValue;remote;manual",
|
||||
"org.springframework.web.client;RestTemplate;false;postForEntity;;;ReturnValue;remote;manual",
|
||||
// WebSocketMessageParameterSource
|
||||
"java.net.http;WebSocket$Listener;true;onText;(WebSocket,CharSequence,boolean);;Parameter[1];remote;manual",
|
||||
// PlayRequestGetMethod
|
||||
"play.mvc;Http$RequestHeader;false;queryString;;;ReturnValue;remote;manual",
|
||||
"play.mvc;Http$RequestHeader;false;getQueryString;;;ReturnValue;remote;manual",
|
||||
"play.mvc;Http$RequestHeader;false;header;;;ReturnValue;remote;manual",
|
||||
"play.mvc;Http$RequestHeader;false;getHeader;;;ReturnValue;remote;manual"
|
||||
]
|
||||
private predicate sourceModelInternal(string row) { any(SourceModelCsvInternal s).row(row) }
|
||||
|
||||
private predicate summaryModelInternal(string row) { any(SummaryModelCsvInternal s).row(row) }
|
||||
|
||||
private predicate sinkModelInternal(string row) { any(SinkModelCsvInternal s).row(row) }
|
||||
|
||||
private predicate negativeSummaryModelInternal(string row) {
|
||||
any(NegativeSummaryModelCsvInternal s).row(row)
|
||||
}
|
||||
|
||||
/**
|
||||
* Holds if an experimental source model exists for the given parameters.
|
||||
* This is only for experimental queries.
|
||||
*/
|
||||
extensible predicate extExperimentalSourceModel(
|
||||
string package, string type, boolean subtypes, string name, string signature, string ext,
|
||||
string output, string kind, string provenance, string filter
|
||||
);
|
||||
|
||||
/**
|
||||
* Holds if an experimental sink model exists for the given parameters.
|
||||
* This is only for experimental queries.
|
||||
*/
|
||||
extensible predicate extExperimentalSinkModel(
|
||||
string package, string type, boolean subtypes, string name, string signature, string ext,
|
||||
string input, string kind, string provenance, string filter
|
||||
);
|
||||
|
||||
/**
|
||||
* Holds if an experimental summary model exists for the given parameters.
|
||||
* This is only for experimental queries.
|
||||
*/
|
||||
extensible predicate extExperimentalSummaryModel(
|
||||
string package, string type, boolean subtypes, string name, string signature, string ext,
|
||||
string input, string output, string kind, string provenance, string filter
|
||||
);
|
||||
|
||||
/**
|
||||
* A class for activating additional model rows.
|
||||
*
|
||||
* Extend this class to include experimental model rows with `this` name
|
||||
* in data flow analysis.
|
||||
*/
|
||||
abstract class ActiveExperimentalModels extends string {
|
||||
bindingset[this]
|
||||
ActiveExperimentalModels() { any() }
|
||||
|
||||
/**
|
||||
* Holds if an experimental source model exists for the given parameters.
|
||||
*/
|
||||
predicate sourceModel(
|
||||
string package, string type, boolean subtypes, string name, string signature, string ext,
|
||||
string output, string kind, string provenance
|
||||
) {
|
||||
extExperimentalSourceModel(package, type, subtypes, name, signature, ext, output, kind,
|
||||
provenance, this)
|
||||
}
|
||||
|
||||
/**
|
||||
* Holds if an experimental sink model exists for the given parameters.
|
||||
*/
|
||||
predicate sinkModel(
|
||||
string package, string type, boolean subtypes, string name, string signature, string ext,
|
||||
string output, string kind, string provenance
|
||||
) {
|
||||
extExperimentalSinkModel(package, type, subtypes, name, signature, ext, output, kind,
|
||||
provenance, this)
|
||||
}
|
||||
|
||||
/**
|
||||
* Holds if an experimental summary model exists for the given parameters.
|
||||
*/
|
||||
predicate summaryModel(
|
||||
string package, string type, boolean subtypes, string name, string signature, string ext,
|
||||
string input, string output, string kind, string provenance
|
||||
) {
|
||||
extExperimentalSummaryModel(package, type, subtypes, name, signature, ext, input, output, kind,
|
||||
provenance, this)
|
||||
}
|
||||
}
|
||||
|
||||
private class SinkModelCsvBase extends SinkModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
// Open URL
|
||||
"java.net;URL;false;openConnection;;;Argument[-1];open-url;manual",
|
||||
"java.net;URL;false;openStream;;;Argument[-1];open-url;manual",
|
||||
"java.net.http;HttpRequest;false;newBuilder;;;Argument[0];open-url;manual",
|
||||
"java.net.http;HttpRequest$Builder;false;uri;;;Argument[0];open-url;manual",
|
||||
"java.net;URLClassLoader;false;URLClassLoader;(URL[]);;Argument[0];open-url;manual",
|
||||
"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;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;newInstance;;;Argument[0];open-url;manual",
|
||||
// Bean validation
|
||||
"javax.validation;ConstraintValidatorContext;true;buildConstraintViolationWithTemplate;;;Argument[0];bean-validation;manual",
|
||||
// Set hostname
|
||||
"javax.net.ssl;HttpsURLConnection;true;setDefaultHostnameVerifier;;;Argument[0];set-hostname-verifier;manual",
|
||||
"javax.net.ssl;HttpsURLConnection;true;setHostnameVerifier;;;Argument[0];set-hostname-verifier;manual"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
private class SummaryModelCsvBase extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
// qualifier to arg
|
||||
"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;readNBytes;(byte[],int,int);;Argument[-1];Argument[0];taint;manual",
|
||||
"java.io;InputStream;true;transferTo;(OutputStream);;Argument[-1];Argument[0];taint;manual",
|
||||
"java.io;ByteArrayOutputStream;false;writeTo;;;Argument[-1];Argument[0];taint;manual",
|
||||
"java.io;Reader;true;read;;;Argument[-1];Argument[0];taint;manual",
|
||||
// qualifier to return
|
||||
"java.io;ByteArrayOutputStream;false;toByteArray;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"java.io;ByteArrayOutputStream;false;toString;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"java.io;InputStream;true;readAllBytes;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"java.io;InputStream;true;readNBytes;(int);;Argument[-1];ReturnValue;taint;manual",
|
||||
"java.util;StringTokenizer;false;nextElement;();;Argument[-1];ReturnValue;taint;manual",
|
||||
"java.util;StringTokenizer;false;nextToken;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"javax.xml.transform.sax;SAXSource;false;getInputSource;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"javax.xml.transform.stream;StreamSource;false;getInputStream;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"java.nio;ByteBuffer;false;get;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"java.net;URI;false;toURL;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"java.net;URI;false;toString;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"java.net;URI;false;toAsciiString;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"java.nio;ByteBuffer;false;array;();;Argument[-1];ReturnValue;taint;manual",
|
||||
"java.io;BufferedReader;true;readLine;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"java.io;Reader;true;read;();;Argument[-1];ReturnValue;taint;manual",
|
||||
// arg to return
|
||||
"java.nio;ByteBuffer;false;wrap;(byte[]);;Argument[0];ReturnValue;taint;manual",
|
||||
"java.util;Base64$Encoder;false;encode;(byte[]);;Argument[0];ReturnValue;taint;manual",
|
||||
"java.util;Base64$Encoder;false;encode;(ByteBuffer);;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;Base64$Decoder;false;decode;(byte[]);;Argument[0];ReturnValue;taint;manual",
|
||||
"java.util;Base64$Decoder;false;decode;(ByteBuffer);;Argument[0];ReturnValue;taint;manual",
|
||||
"java.util;Base64$Decoder;false;decode;(String);;Argument[0];ReturnValue;taint;manual",
|
||||
"java.util;Base64$Decoder;false;wrap;(InputStream);;Argument[0];ReturnValue;taint;manual",
|
||||
"cn.hutool.core.codec;Base64;true;decode;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.shiro.codec;Base64;false;decode;(String);;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.codec;Encoder;true;encode;(Object);;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.codec;Decoder;true;decode;(Object);;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.codec;BinaryEncoder;true;encode;(byte[]);;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.codec;BinaryDecoder;true;decode;(byte[]);;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.codec;StringEncoder;true;encode;(String);;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.codec;StringDecoder;true;decode;(String);;Argument[0];ReturnValue;taint;manual",
|
||||
"java.net;URLDecoder;false;decode;;;Argument[0];ReturnValue;taint;manual",
|
||||
"java.net;URI;false;create;;;Argument[0];ReturnValue;taint;manual",
|
||||
"javax.xml.transform.sax;SAXSource;false;sourceToInputSource;;;Argument[0];ReturnValue;taint;manual",
|
||||
// arg to arg
|
||||
"java.lang;System;false;arraycopy;;;Argument[0];Argument[2];taint;manual",
|
||||
// constructor flow
|
||||
"java.net;URI;false;URI;(String);;Argument[0];Argument[-1];taint;manual",
|
||||
"java.net;URL;false;URL;(String);;Argument[0];Argument[-1];taint;manual",
|
||||
"javax.xml.transform.stream;StreamSource;false;StreamSource;;;Argument[0];Argument[-1];taint;manual",
|
||||
"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",
|
||||
"org.xml.sax;InputSource;false;InputSource;;;Argument[0];Argument[-1];taint;manual",
|
||||
"javax.servlet.http;Cookie;false;Cookie;;;Argument[0];Argument[-1];taint;manual",
|
||||
"javax.servlet.http;Cookie;false;Cookie;;;Argument[1];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[-1];taint;manual",
|
||||
"java.util;StringTokenizer;false;StringTokenizer;;;Argument[0];Argument[-1];taint;manual",
|
||||
"java.beans;XMLDecoder;false;XMLDecoder;;;Argument[0];Argument[-1];taint;manual",
|
||||
"com.esotericsoftware.kryo.io;Input;false;Input;;;Argument[0];Argument[-1];taint;manual",
|
||||
"com.esotericsoftware.kryo5.io;Input;false;Input;;;Argument[0];Argument[-1];taint;manual",
|
||||
"java.io;BufferedInputStream;false;BufferedInputStream;;;Argument[0];Argument[-1];taint;manual",
|
||||
"java.io;DataInputStream;false;DataInputStream;;;Argument[0];Argument[-1];taint;manual",
|
||||
"java.io;ByteArrayInputStream;false;ByteArrayInputStream;;;Argument[0];Argument[-1];taint;manual",
|
||||
"java.io;ObjectInputStream;false;ObjectInputStream;;;Argument[0];Argument[-1];taint;manual",
|
||||
"java.io;StringReader;false;StringReader;;;Argument[0];Argument[-1];taint;manual",
|
||||
"java.io;CharArrayReader;false;CharArrayReader;;;Argument[0];Argument[-1];taint;manual",
|
||||
"java.io;BufferedReader;false;BufferedReader;;;Argument[0];Argument[-1];taint;manual",
|
||||
"java.io;InputStreamReader;false;InputStreamReader;;;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;FilterOutputStream;true;FilterOutputStream;(OutputStream);;Argument[0];Argument[-1];taint;manual"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
/** Holds if `row` is a source model. */
|
||||
predicate sourceModel(string row) { any(SourceModelCsv s).row(row) }
|
||||
|
||||
/** Holds if `row` is a sink model. */
|
||||
predicate sinkModel(string row) { any(SinkModelCsv s).row(row) }
|
||||
|
||||
/** Holds if `row` is a summary model. */
|
||||
predicate summaryModel(string row) { any(SummaryModelCsv s).row(row) }
|
||||
|
||||
/** Holds if `row` is negative summary model. */
|
||||
predicate negativeSummaryModel(string row) { any(NegativeSummaryModelCsv s).row(row) }
|
||||
/**
|
||||
* Holds if a source model exists for the given parameters.
|
||||
*/
|
||||
extensible predicate extSourceModel(
|
||||
string package, string type, boolean subtypes, string name, string signature, string ext,
|
||||
string output, string kind, string provenance
|
||||
);
|
||||
|
||||
/** Holds if a source model exists for the given parameters. */
|
||||
predicate sourceModel(
|
||||
string namespace, string type, boolean subtypes, string name, string signature, string ext,
|
||||
string package, string type, boolean subtypes, string name, string signature, string ext,
|
||||
string output, string kind, string provenance
|
||||
) {
|
||||
exists(string row |
|
||||
sourceModel(row) and
|
||||
row.splitAt(";", 0) = namespace and
|
||||
sourceModelInternal(row) and
|
||||
row.splitAt(";", 0) = package and
|
||||
row.splitAt(";", 1) = type and
|
||||
row.splitAt(";", 2) = subtypes.toString() and
|
||||
subtypes = [true, false] and
|
||||
@@ -448,16 +291,27 @@ predicate sourceModel(
|
||||
row.splitAt(";", 7) = kind and
|
||||
row.splitAt(";", 8) = provenance
|
||||
)
|
||||
or
|
||||
extSourceModel(package, type, subtypes, name, signature, ext, output, kind, provenance)
|
||||
or
|
||||
any(ActiveExperimentalModels q)
|
||||
.sourceModel(package, type, subtypes, name, signature, ext, output, kind, provenance)
|
||||
}
|
||||
|
||||
/** Holds if a sink model exists for the given parameters. */
|
||||
extensible predicate extSinkModel(
|
||||
string package, string type, boolean subtypes, string name, string signature, string ext,
|
||||
string input, string kind, string provenance
|
||||
);
|
||||
|
||||
/** Holds if a sink model exists for the given parameters. */
|
||||
predicate sinkModel(
|
||||
string namespace, string type, boolean subtypes, string name, string signature, string ext,
|
||||
string package, string type, boolean subtypes, string name, string signature, string ext,
|
||||
string input, string kind, string provenance
|
||||
) {
|
||||
exists(string row |
|
||||
sinkModel(row) and
|
||||
row.splitAt(";", 0) = namespace and
|
||||
sinkModelInternal(row) and
|
||||
row.splitAt(";", 0) = package and
|
||||
row.splitAt(";", 1) = type and
|
||||
row.splitAt(";", 2) = subtypes.toString() and
|
||||
subtypes = [true, false] and
|
||||
@@ -468,53 +322,70 @@ predicate sinkModel(
|
||||
row.splitAt(";", 7) = kind and
|
||||
row.splitAt(";", 8) = provenance
|
||||
)
|
||||
or
|
||||
extSinkModel(package, type, subtypes, name, signature, ext, input, kind, provenance)
|
||||
or
|
||||
any(ActiveExperimentalModels q)
|
||||
.sinkModel(package, type, subtypes, name, signature, ext, input, kind, provenance)
|
||||
}
|
||||
|
||||
/** Holds if a summary model exists for the given parameters. */
|
||||
extensible predicate extSummaryModel(
|
||||
string package, string type, boolean subtypes, string name, string signature, string ext,
|
||||
string input, string output, string kind, string provenance
|
||||
);
|
||||
|
||||
/** Holds if a summary model exists for the given parameters. */
|
||||
predicate summaryModel(
|
||||
string namespace, string type, boolean subtypes, string name, string signature, string ext,
|
||||
string package, string type, boolean subtypes, string name, string signature, string ext,
|
||||
string input, string output, string kind, string provenance
|
||||
) {
|
||||
summaryModel(namespace, type, subtypes, name, signature, ext, input, output, kind, provenance, _)
|
||||
}
|
||||
|
||||
/** Holds if a summary model `row` exists for the given parameters. */
|
||||
predicate summaryModel(
|
||||
string namespace, string type, boolean subtypes, string name, string signature, string ext,
|
||||
string input, string output, string kind, string provenance, string row
|
||||
) {
|
||||
summaryModel(row) and
|
||||
row.splitAt(";", 0) = namespace and
|
||||
row.splitAt(";", 1) = type and
|
||||
row.splitAt(";", 2) = subtypes.toString() and
|
||||
subtypes = [true, false] and
|
||||
row.splitAt(";", 3) = name and
|
||||
row.splitAt(";", 4) = signature and
|
||||
row.splitAt(";", 5) = ext and
|
||||
row.splitAt(";", 6) = input and
|
||||
row.splitAt(";", 7) = output and
|
||||
row.splitAt(";", 8) = kind and
|
||||
row.splitAt(";", 9) = provenance
|
||||
exists(string row |
|
||||
summaryModelInternal(row) and
|
||||
row.splitAt(";", 0) = package and
|
||||
row.splitAt(";", 1) = type and
|
||||
row.splitAt(";", 2) = subtypes.toString() and
|
||||
subtypes = [true, false] and
|
||||
row.splitAt(";", 3) = name and
|
||||
row.splitAt(";", 4) = signature and
|
||||
row.splitAt(";", 5) = ext and
|
||||
row.splitAt(";", 6) = input and
|
||||
row.splitAt(";", 7) = output and
|
||||
row.splitAt(";", 8) = kind and
|
||||
row.splitAt(";", 9) = provenance
|
||||
)
|
||||
or
|
||||
extSummaryModel(package, type, subtypes, name, signature, ext, input, output, kind, provenance)
|
||||
or
|
||||
any(ActiveExperimentalModels q)
|
||||
.summaryModel(package, type, subtypes, name, signature, ext, input, output, kind, provenance)
|
||||
}
|
||||
|
||||
/** Holds if a summary model exists indicating there is no flow for the given parameters. */
|
||||
extensible predicate extNegativeSummaryModel(
|
||||
string package, string type, string name, string signature, string provenance
|
||||
);
|
||||
|
||||
/** Holds if a summary model exists indicating there is no flow for the given parameters. */
|
||||
predicate negativeSummaryModel(
|
||||
string namespace, string type, string name, string signature, string provenance
|
||||
string package, string type, string name, string signature, string provenance
|
||||
) {
|
||||
exists(string row |
|
||||
negativeSummaryModel(row) and
|
||||
row.splitAt(";", 0) = namespace and
|
||||
negativeSummaryModelInternal(row) and
|
||||
row.splitAt(";", 0) = package and
|
||||
row.splitAt(";", 1) = type and
|
||||
row.splitAt(";", 2) = name and
|
||||
row.splitAt(";", 3) = signature and
|
||||
row.splitAt(";", 4) = provenance
|
||||
)
|
||||
or
|
||||
extNegativeSummaryModel(package, type, name, signature, provenance)
|
||||
}
|
||||
|
||||
private predicate relevantPackage(string package) {
|
||||
sourceModel(package, _, _, _, _, _, _, _, _) or
|
||||
sinkModel(package, _, _, _, _, _, _, _, _) or
|
||||
summaryModel(package, _, _, _, _, _, _, _, _, _, _)
|
||||
summaryModel(package, _, _, _, _, _, _, _, _, _)
|
||||
}
|
||||
|
||||
private predicate packageLink(string shortpkg, string longpkg) {
|
||||
@@ -533,7 +404,7 @@ private predicate canonicalPkgLink(string package, string subpkg) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Holds if CSV framework coverage of `package` is `n` api endpoints of the
|
||||
* Holds if MaD framework coverage of `package` is `n` api endpoints of the
|
||||
* kind `(kind, part)`.
|
||||
*/
|
||||
predicate modelCoverage(string package, int pkgs, string kind, string part, int n) {
|
||||
@@ -565,8 +436,8 @@ predicate modelCoverage(string package, int pkgs, string kind, string part, int
|
||||
)
|
||||
}
|
||||
|
||||
/** Provides a query predicate to check the CSV data for validation errors. */
|
||||
module CsvValidation {
|
||||
/** Provides a query predicate to check the MaD models for validation errors. */
|
||||
module ModelValidation {
|
||||
private string getInvalidModelInput() {
|
||||
exists(string pred, string input, string part |
|
||||
sinkModel(_, _, _, _, _, _, input, _, _) and pred = "sink"
|
||||
@@ -600,28 +471,26 @@ module CsvValidation {
|
||||
}
|
||||
|
||||
private string getInvalidModelKind() {
|
||||
exists(string row, string kind | summaryModel(row) |
|
||||
kind = row.splitAt(";", 8) and
|
||||
exists(string kind | summaryModel(_, _, _, _, _, _, _, _, kind, _) |
|
||||
not kind = ["taint", "value"] and
|
||||
result = "Invalid kind \"" + kind + "\" in summary model."
|
||||
)
|
||||
or
|
||||
exists(string row, string kind | sinkModel(row) |
|
||||
kind = row.splitAt(";", 7) and
|
||||
exists(string kind | sinkModel(_, _, _, _, _, _, _, kind, _) |
|
||||
not kind =
|
||||
[
|
||||
"open-url", "jndi-injection", "ldap", "sql", "jdbc-url", "logging", "mvel", "xpath",
|
||||
"groovy", "xss", "ognl-injection", "intent-start", "pending-intent-sent",
|
||||
"url-open-stream", "url-redirect", "create-file", "write-file", "set-hostname-verifier",
|
||||
"header-splitting", "information-leak", "xslt", "jexl", "bean-validation", "ssti"
|
||||
"header-splitting", "information-leak", "xslt", "jexl", "bean-validation", "ssti",
|
||||
"fragment-injection"
|
||||
] and
|
||||
not kind.matches("regex-use%") and
|
||||
not kind.matches("qltest%") and
|
||||
result = "Invalid kind \"" + kind + "\" in sink model."
|
||||
)
|
||||
or
|
||||
exists(string row, string kind | sourceModel(row) |
|
||||
kind = row.splitAt(";", 7) and
|
||||
exists(string kind | sourceModel(_, _, _, _, _, _, _, kind, _) |
|
||||
not kind = ["remote", "contentprovider", "android-widget", "android-external-storage-dir"] and
|
||||
not kind.matches("qltest%") and
|
||||
result = "Invalid kind \"" + kind + "\" in source model."
|
||||
@@ -630,11 +499,11 @@ module CsvValidation {
|
||||
|
||||
private string getInvalidModelSubtype() {
|
||||
exists(string pred, string row |
|
||||
sourceModel(row) and pred = "source"
|
||||
sourceModelInternal(row) and pred = "source"
|
||||
or
|
||||
sinkModel(row) and pred = "sink"
|
||||
sinkModelInternal(row) and pred = "sink"
|
||||
or
|
||||
summaryModel(row) and pred = "summary"
|
||||
summaryModelInternal(row) and pred = "summary"
|
||||
|
|
||||
exists(string b |
|
||||
b = row.splitAt(";", 2) and
|
||||
@@ -646,13 +515,13 @@ module CsvValidation {
|
||||
|
||||
private string getInvalidModelColumnCount() {
|
||||
exists(string pred, string row, int expect |
|
||||
sourceModel(row) and expect = 9 and pred = "source"
|
||||
sourceModelInternal(row) and expect = 9 and pred = "source"
|
||||
or
|
||||
sinkModel(row) and expect = 9 and pred = "sink"
|
||||
sinkModelInternal(row) and expect = 9 and pred = "sink"
|
||||
or
|
||||
summaryModel(row) and expect = 10 and pred = "summary"
|
||||
summaryModelInternal(row) and expect = 10 and pred = "summary"
|
||||
or
|
||||
negativeSummaryModel(row) and expect = 5 and pred = "negative summary"
|
||||
negativeSummaryModelInternal(row) and expect = 5 and pred = "negative summary"
|
||||
|
|
||||
exists(int cols |
|
||||
cols = 1 + max(int n | exists(row.splitAt(";", n))) and
|
||||
@@ -666,22 +535,22 @@ module CsvValidation {
|
||||
|
||||
private string getInvalidModelSignature() {
|
||||
exists(
|
||||
string pred, string namespace, string type, string name, string signature, string ext,
|
||||
string pred, string package, string type, string name, string signature, string ext,
|
||||
string provenance
|
||||
|
|
||||
sourceModel(namespace, type, _, name, signature, ext, _, _, provenance) and pred = "source"
|
||||
sourceModel(package, type, _, name, signature, ext, _, _, provenance) and pred = "source"
|
||||
or
|
||||
sinkModel(namespace, type, _, name, signature, ext, _, _, provenance) and pred = "sink"
|
||||
sinkModel(package, type, _, name, signature, ext, _, _, provenance) and pred = "sink"
|
||||
or
|
||||
summaryModel(namespace, type, _, name, signature, ext, _, _, _, provenance) and
|
||||
summaryModel(package, type, _, name, signature, ext, _, _, _, provenance) and
|
||||
pred = "summary"
|
||||
or
|
||||
negativeSummaryModel(namespace, type, name, signature, provenance) and
|
||||
negativeSummaryModel(package, type, name, signature, provenance) and
|
||||
ext = "" and
|
||||
pred = "negative summary"
|
||||
|
|
||||
not namespace.regexpMatch("[a-zA-Z0-9_\\.]+") and
|
||||
result = "Dubious namespace \"" + namespace + "\" in " + pred + " model."
|
||||
not package.regexpMatch("[a-zA-Z0-9_\\.]*") and
|
||||
result = "Dubious package \"" + package + "\" in " + pred + " model."
|
||||
or
|
||||
not type.regexpMatch("[a-zA-Z0-9_\\$<>]+") and
|
||||
result = "Dubious type \"" + type + "\" in " + pred + " model."
|
||||
@@ -700,7 +569,7 @@ module CsvValidation {
|
||||
)
|
||||
}
|
||||
|
||||
/** Holds if some row in a CSV-based flow model appears to contain typos. */
|
||||
/** Holds if some row in a MaD flow model appears to contain typos. */
|
||||
query predicate invalidModelRow(string msg) {
|
||||
msg =
|
||||
[
|
||||
@@ -712,15 +581,15 @@ module CsvValidation {
|
||||
|
||||
pragma[nomagic]
|
||||
private predicate elementSpec(
|
||||
string namespace, string type, boolean subtypes, string name, string signature, string ext
|
||||
string package, string type, boolean subtypes, string name, string signature, string ext
|
||||
) {
|
||||
sourceModel(namespace, type, subtypes, name, signature, ext, _, _, _)
|
||||
sourceModel(package, type, subtypes, name, signature, ext, _, _, _)
|
||||
or
|
||||
sinkModel(namespace, type, subtypes, name, signature, ext, _, _, _)
|
||||
sinkModel(package, type, subtypes, name, signature, ext, _, _, _)
|
||||
or
|
||||
summaryModel(namespace, type, subtypes, name, signature, ext, _, _, _, _)
|
||||
summaryModel(package, type, subtypes, name, signature, ext, _, _, _, _)
|
||||
or
|
||||
negativeSummaryModel(namespace, type, name, signature, _) and ext = "" and subtypes = false
|
||||
negativeSummaryModel(package, type, name, signature, _) and ext = "" and subtypes = false
|
||||
}
|
||||
|
||||
private string paramsStringPart(Callable c, int i) {
|
||||
@@ -745,10 +614,10 @@ cached
|
||||
string paramsString(Callable c) { result = concat(int i | | paramsStringPart(c, i) order by i) }
|
||||
|
||||
private Element interpretElement0(
|
||||
string namespace, string type, boolean subtypes, string name, string signature
|
||||
string package, string type, boolean subtypes, string name, string signature
|
||||
) {
|
||||
elementSpec(namespace, type, subtypes, name, signature, _) and
|
||||
exists(RefType t | t.hasQualifiedName(namespace, type) |
|
||||
elementSpec(package, type, subtypes, name, signature, _) and
|
||||
exists(RefType t | t.hasQualifiedName(package, type) |
|
||||
exists(Member m |
|
||||
(
|
||||
result = m
|
||||
@@ -771,10 +640,10 @@ private Element interpretElement0(
|
||||
|
||||
/** Gets the source/sink/summary/negativesummary element corresponding to the supplied parameters. */
|
||||
Element interpretElement(
|
||||
string namespace, string type, boolean subtypes, string name, string signature, string ext
|
||||
string package, string type, boolean subtypes, string name, string signature, string ext
|
||||
) {
|
||||
elementSpec(namespace, type, subtypes, name, signature, ext) and
|
||||
exists(Element e | e = interpretElement0(namespace, type, subtypes, name, signature) |
|
||||
elementSpec(package, type, subtypes, name, signature, ext) and
|
||||
exists(Element e | e = interpretElement0(package, type, subtypes, name, signature) |
|
||||
ext = "" and result = e
|
||||
or
|
||||
ext = "Annotated" and result.(Annotatable).getAnAnnotation().getType() = e
|
||||
@@ -829,7 +698,7 @@ predicate parseContent(AccessPathToken component, Content content) {
|
||||
cached
|
||||
private module Cached {
|
||||
/**
|
||||
* Holds if `node` is specified as a source with the given kind in a CSV flow
|
||||
* Holds if `node` is specified as a source with the given kind in a MaD flow
|
||||
* model.
|
||||
*/
|
||||
cached
|
||||
@@ -838,7 +707,7 @@ private module Cached {
|
||||
}
|
||||
|
||||
/**
|
||||
* Holds if `node` is specified as a sink with the given kind in a CSV flow
|
||||
* Holds if `node` is specified as a sink with the given kind in a MaD flow
|
||||
* model.
|
||||
*/
|
||||
cached
|
||||
|
||||
@@ -91,355 +91,6 @@ class ContainerType extends RefType {
|
||||
}
|
||||
}
|
||||
|
||||
private class ContainerFlowSummaries extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"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;Object;true;clone;;;Argument[-1].Element;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.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;Iterable;true;forEach;(Consumer);;Argument[-1].Element;Argument[0].Parameter[0];value;manual",
|
||||
"java.util;Iterator;true;next;;;Argument[-1].Element;ReturnValue;value;manual",
|
||||
"java.util;Iterator;true;forEachRemaining;(Consumer);;Argument[-1].Element;Argument[0].Parameter[0];value;manual",
|
||||
"java.util;ListIterator;true;previous;;;Argument[-1].Element;ReturnValue;value;manual",
|
||||
"java.util;ListIterator;true;add;(Object);;Argument[0];Argument[-1].Element;value;manual",
|
||||
"java.util;ListIterator;true;set;(Object);;Argument[0];Argument[-1].Element;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;Map;true;computeIfAbsent;;;Argument[-1].MapValue;ReturnValue;value;manual",
|
||||
"java.util;Map;true;computeIfAbsent;;;Argument[1].ReturnValue;ReturnValue;value;manual",
|
||||
"java.util;Map;true;computeIfAbsent;;;Argument[1].ReturnValue;Argument[-1].MapValue;value;manual",
|
||||
"java.util;Map;true;entrySet;;;Argument[-1].MapValue;ReturnValue.Element.MapValue;value;manual",
|
||||
"java.util;Map;true;entrySet;;;Argument[-1].MapKey;ReturnValue.Element.MapKey;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;getOrDefault;;;Argument[1];ReturnValue;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;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;keySet;();;Argument[-1].MapKey;ReturnValue.Element;value;manual",
|
||||
"java.util;Map;true;values;();;Argument[-1].MapValue;ReturnValue.Element;value;manual",
|
||||
"java.util;Map;true;merge;(Object,Object,BiFunction);;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;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;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;ReturnValue.ArrayElement;value;manual",
|
||||
"java.util;Collection;true;toArray;;;Argument[-1].Element;Argument[0].ArrayElement;value;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;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;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;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;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;lastElement;();;Argument[-1].Element;ReturnValue;value;manual",
|
||||
"java.util;Vector;true;addElement;(Object);;Argument[0];Argument[-1].Element;value;manual",
|
||||
"java.util;Vector;true;insertElementAt;(Object,int);;Argument[0];Argument[-1].Element;value;manual",
|
||||
"java.util;Vector;true;setElementAt;(Object,int);;Argument[0];Argument[-1].Element;value;manual",
|
||||
"java.util;Vector;true;copyInto;(Object[]);;Argument[-1].Element;Argument[0].ArrayElement;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;Queue;true;element;();;Argument[-1].Element;ReturnValue;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;Queue;true;offer;(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;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;removeFirst;();;Argument[-1].Element;ReturnValue;value;manual",
|
||||
"java.util;Deque;true;removeLast;();;Argument[-1].Element;ReturnValue;value;manual",
|
||||
"java.util;Deque;true;push;(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;offerFirst;(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;addFirst;(Object);;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;takeFirst;();;Argument[-1].Element;ReturnValue;value;manual",
|
||||
"java.util.concurrent;BlockingDeque;true;takeLast;();;Argument[-1].Element;ReturnValue;value;manual",
|
||||
"java.util.concurrent;BlockingQueue;true;poll;(long,TimeUnit);;Argument[-1].Element;ReturnValue;value;manual",
|
||||
"java.util.concurrent;BlockingQueue;true;take;();;Argument[-1].Element;ReturnValue;value;manual",
|
||||
"java.util.concurrent;BlockingQueue;true;offer;(Object,long,TimeUnit);;Argument[0];Argument[-1].Element;value;manual",
|
||||
"java.util.concurrent;BlockingQueue;true;put;(Object);;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;offerFirst;(Object,long,TimeUnit);;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;putFirst;(Object);;Argument[0];Argument[-1].Element;value;manual",
|
||||
"java.util.concurrent;BlockingQueue;true;drainTo;(Collection,int);;Argument[-1].Element;Argument[0].Element;value;manual",
|
||||
"java.util.concurrent;BlockingQueue;true;drainTo;(Collection);;Argument[-1].Element;Argument[0].Element;value;manual",
|
||||
"java.util.concurrent;ConcurrentHashMap;true;elements;();;Argument[-1].MapValue;ReturnValue.Element;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;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;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;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;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;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.concurrent;TransferQueue;true;tryTransfer;(Object,long,TimeUnit);;Argument[0];Argument[-1].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;List;false;copyOf;(Collection);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"java.util;List;false;of;(Object[]);;Argument[0].ArrayElement;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",
|
||||
"java.util;List;false;of;(Object,Object,Object,Object);;Argument[0..3];ReturnValue.Element;value;manual",
|
||||
"java.util;List;false;of;(Object,Object,Object,Object,Object);;Argument[0..4];ReturnValue.Element;value;manual",
|
||||
"java.util;List;false;of;(Object,Object,Object,Object,Object,Object);;Argument[0..5];ReturnValue.Element;value;manual",
|
||||
"java.util;List;false;of;(Object,Object,Object,Object,Object,Object,Object);;Argument[0..6];ReturnValue.Element;value;manual",
|
||||
"java.util;List;false;of;(Object,Object,Object,Object,Object,Object,Object,Object);;Argument[0..7];ReturnValue.Element;value;manual",
|
||||
"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;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;false;of;;;Argument[0];ReturnValue.MapKey;value;manual",
|
||||
"java.util;Map;false;of;;;Argument[1];ReturnValue.MapValue;value;manual",
|
||||
"java.util;Map;false;of;;;Argument[2];ReturnValue.MapKey;value;manual",
|
||||
"java.util;Map;false;of;;;Argument[3];ReturnValue.MapValue;value;manual",
|
||||
"java.util;Map;false;of;;;Argument[4];ReturnValue.MapKey;value;manual",
|
||||
"java.util;Map;false;of;;;Argument[5];ReturnValue.MapValue;value;manual",
|
||||
"java.util;Map;false;of;;;Argument[6];ReturnValue.MapKey;value;manual",
|
||||
"java.util;Map;false;of;;;Argument[7];ReturnValue.MapValue;value;manual",
|
||||
"java.util;Map;false;of;;;Argument[8];ReturnValue.MapKey;value;manual",
|
||||
"java.util;Map;false;of;;;Argument[9];ReturnValue.MapValue;value;manual",
|
||||
"java.util;Map;false;of;;;Argument[10];ReturnValue.MapKey;value;manual",
|
||||
"java.util;Map;false;of;;;Argument[11];ReturnValue.MapValue;value;manual",
|
||||
"java.util;Map;false;of;;;Argument[12];ReturnValue.MapKey;value;manual",
|
||||
"java.util;Map;false;of;;;Argument[13];ReturnValue.MapValue;value;manual",
|
||||
"java.util;Map;false;of;;;Argument[14];ReturnValue.MapKey;value;manual",
|
||||
"java.util;Map;false;of;;;Argument[15];ReturnValue.MapValue;value;manual",
|
||||
"java.util;Map;false;of;;;Argument[16];ReturnValue.MapKey;value;manual",
|
||||
"java.util;Map;false;of;;;Argument[17];ReturnValue.MapValue;value;manual",
|
||||
"java.util;Map;false;of;;;Argument[18];ReturnValue.MapKey;value;manual",
|
||||
"java.util;Map;false;of;;;Argument[19];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;Set;false;copyOf;(Collection);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"java.util;Set;false;of;(Object[]);;Argument[0].ArrayElement;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",
|
||||
"java.util;Set;false;of;(Object,Object,Object);;Argument[0..2];ReturnValue.Element;value;manual",
|
||||
"java.util;Set;false;of;(Object,Object,Object,Object);;Argument[0..3];ReturnValue.Element;value;manual",
|
||||
"java.util;Set;false;of;(Object,Object,Object,Object,Object);;Argument[0..4];ReturnValue.Element;value;manual",
|
||||
"java.util;Set;false;of;(Object,Object,Object,Object,Object,Object);;Argument[0..5];ReturnValue.Element;value;manual",
|
||||
"java.util;Set;false;of;(Object,Object,Object,Object,Object,Object,Object);;Argument[0..6];ReturnValue.Element;value;manual",
|
||||
"java.util;Set;false;of;(Object,Object,Object,Object,Object,Object,Object,Object);;Argument[0..7];ReturnValue.Element;value;manual",
|
||||
"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;Arrays;false;stream;;;Argument[0].ArrayElement;ReturnValue.Element;value;manual",
|
||||
"java.util;Arrays;false;spliterator;;;Argument[0].ArrayElement;ReturnValue.Element;value;manual",
|
||||
"java.util;Arrays;false;copyOfRange;;;Argument[0].ArrayElement;ReturnValue.ArrayElement;value;manual",
|
||||
"java.util;Arrays;false;copyOf;;;Argument[0].ArrayElement;ReturnValue.ArrayElement;value;manual",
|
||||
"java.util;Collections;false;list;(Enumeration);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"java.util;Collections;false;enumeration;(Collection);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"java.util;Collections;false;nCopies;(int,Object);;Argument[1];ReturnValue.Element;value;manual",
|
||||
"java.util;Collections;false;singletonMap;(Object,Object);;Argument[0];ReturnValue.MapKey;value;manual",
|
||||
"java.util;Collections;false;singletonMap;(Object,Object);;Argument[1];ReturnValue.MapValue;value;manual",
|
||||
"java.util;Collections;false;singletonList;(Object);;Argument[0];ReturnValue.Element;value;manual",
|
||||
"java.util;Collections;false;singleton;(Object);;Argument[0];ReturnValue.Element;value;manual",
|
||||
"java.util;Collections;false;checkedNavigableMap;(NavigableMap,Class,Class);;Argument[0].MapKey;ReturnValue.MapKey;value;manual",
|
||||
"java.util;Collections;false;checkedNavigableMap;(NavigableMap,Class,Class);;Argument[0].MapValue;ReturnValue.MapValue;value;manual",
|
||||
"java.util;Collections;false;checkedSortedMap;(SortedMap,Class,Class);;Argument[0].MapKey;ReturnValue.MapKey;value;manual",
|
||||
"java.util;Collections;false;checkedSortedMap;(SortedMap,Class,Class);;Argument[0].MapValue;ReturnValue.MapValue;value;manual",
|
||||
"java.util;Collections;false;checkedMap;(Map,Class,Class);;Argument[0].MapKey;ReturnValue.MapKey;value;manual",
|
||||
"java.util;Collections;false;checkedMap;(Map,Class,Class);;Argument[0].MapValue;ReturnValue.MapValue;value;manual",
|
||||
"java.util;Collections;false;checkedList;(List,Class);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"java.util;Collections;false;checkedNavigableSet;(NavigableSet,Class);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"java.util;Collections;false;checkedSortedSet;(SortedSet,Class);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"java.util;Collections;false;checkedSet;(Set,Class);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"java.util;Collections;false;checkedCollection;(Collection,Class);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"java.util;Collections;false;synchronizedNavigableMap;(NavigableMap);;Argument[0].MapKey;ReturnValue.MapKey;value;manual",
|
||||
"java.util;Collections;false;synchronizedNavigableMap;(NavigableMap);;Argument[0].MapValue;ReturnValue.MapValue;value;manual",
|
||||
"java.util;Collections;false;synchronizedSortedMap;(SortedMap);;Argument[0].MapKey;ReturnValue.MapKey;value;manual",
|
||||
"java.util;Collections;false;synchronizedSortedMap;(SortedMap);;Argument[0].MapValue;ReturnValue.MapValue;value;manual",
|
||||
"java.util;Collections;false;synchronizedMap;(Map);;Argument[0].MapKey;ReturnValue.MapKey;value;manual",
|
||||
"java.util;Collections;false;synchronizedMap;(Map);;Argument[0].MapValue;ReturnValue.MapValue;value;manual",
|
||||
"java.util;Collections;false;synchronizedList;(List);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"java.util;Collections;false;synchronizedNavigableSet;(NavigableSet);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"java.util;Collections;false;synchronizedSortedSet;(SortedSet);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"java.util;Collections;false;synchronizedSet;(Set);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"java.util;Collections;false;synchronizedCollection;(Collection);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"java.util;Collections;false;unmodifiableNavigableMap;(NavigableMap);;Argument[0].MapKey;ReturnValue.MapKey;value;manual",
|
||||
"java.util;Collections;false;unmodifiableNavigableMap;(NavigableMap);;Argument[0].MapValue;ReturnValue.MapValue;value;manual",
|
||||
"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;unmodifiableMap;(Map);;Argument[0].MapKey;ReturnValue.MapKey;value;manual",
|
||||
"java.util;Collections;false;unmodifiableMap;(Map);;Argument[0].MapValue;ReturnValue.MapValue;value;manual",
|
||||
"java.util;Collections;false;unmodifiableList;(List);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"java.util;Collections;false;unmodifiableNavigableSet;(NavigableSet);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"java.util;Collections;false;unmodifiableSortedSet;(SortedSet);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"java.util;Collections;false;unmodifiableSet;(Set);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"java.util;Collections;false;unmodifiableCollection;(Collection);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"java.util;Collections;false;max;;;Argument[0].Element;ReturnValue;value;manual",
|
||||
"java.util;Collections;false;min;;;Argument[0].Element;ReturnValue;value;manual",
|
||||
"java.util;Arrays;false;fill;(Object[],int,int,Object);;Argument[3];Argument[0].ArrayElement;value;manual",
|
||||
"java.util;Arrays;false;fill;(Object[],Object);;Argument[1];Argument[0].ArrayElement;value;manual",
|
||||
"java.util;Arrays;false;fill;(float[],int,int,float);;Argument[3];Argument[0].ArrayElement;value;manual",
|
||||
"java.util;Arrays;false;fill;(float[],float);;Argument[1];Argument[0].ArrayElement;value;manual",
|
||||
"java.util;Arrays;false;fill;(double[],int,int,double);;Argument[3];Argument[0].ArrayElement;value;manual",
|
||||
"java.util;Arrays;false;fill;(double[],double);;Argument[1];Argument[0].ArrayElement;value;manual",
|
||||
"java.util;Arrays;false;fill;(boolean[],int,int,boolean);;Argument[3];Argument[0].ArrayElement;value;manual",
|
||||
"java.util;Arrays;false;fill;(boolean[],boolean);;Argument[1];Argument[0].ArrayElement;value;manual",
|
||||
"java.util;Arrays;false;fill;(byte[],int,int,byte);;Argument[3];Argument[0].ArrayElement;value;manual",
|
||||
"java.util;Arrays;false;fill;(byte[],byte);;Argument[1];Argument[0].ArrayElement;value;manual",
|
||||
"java.util;Arrays;false;fill;(char[],int,int,char);;Argument[3];Argument[0].ArrayElement;value;manual",
|
||||
"java.util;Arrays;false;fill;(char[],char);;Argument[1];Argument[0].ArrayElement;value;manual",
|
||||
"java.util;Arrays;false;fill;(short[],int,int,short);;Argument[3];Argument[0].ArrayElement;value;manual",
|
||||
"java.util;Arrays;false;fill;(short[],short);;Argument[1];Argument[0].ArrayElement;value;manual",
|
||||
"java.util;Arrays;false;fill;(int[],int,int,int);;Argument[3];Argument[0].ArrayElement;value;manual",
|
||||
"java.util;Arrays;false;fill;(int[],int);;Argument[1];Argument[0].ArrayElement;value;manual",
|
||||
"java.util;Arrays;false;fill;(long[],int,int,long);;Argument[3];Argument[0].ArrayElement;value;manual",
|
||||
"java.util;Arrays;false;fill;(long[],long);;Argument[1];Argument[0].ArrayElement;value;manual",
|
||||
"java.util;Collections;false;replaceAll;(List,Object,Object);;Argument[2];Argument[0].Element;value;manual",
|
||||
"java.util;Collections;false;copy;(List,List);;Argument[1].Element;Argument[0].Element;value;manual",
|
||||
"java.util;Collections;false;fill;(List,Object);;Argument[1];Argument[0].Element;value;manual",
|
||||
"java.util;Arrays;false;asList;;;Argument[0].ArrayElement;ReturnValue.Element;value;manual",
|
||||
"java.util;Collections;false;addAll;(Collection,Object[]);;Argument[1].ArrayElement;Argument[0].Element;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$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$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;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;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;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;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;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;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;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;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;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"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
private predicate taintPreservingQualifierToMethod(Method m) {
|
||||
// java.util.Map.Entry
|
||||
m.getDeclaringType() instanceof EntryType and
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
/** Provides modules for importing negative summaries. */
|
||||
|
||||
/**
|
||||
* A module importing the frameworks that provide external flow data,
|
||||
* ensuring that they are visible to the taint tracking / data flow library.
|
||||
*/
|
||||
private module Frameworks {
|
||||
private import semmle.code.java.frameworks.GeneratedNegative
|
||||
}
|
||||
@@ -42,17 +42,6 @@ class TypeApacheHttpRequestBuilder extends Class {
|
||||
}
|
||||
}
|
||||
|
||||
private class ApacheHttpSource extends SourceModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"org.apache.http.protocol;HttpRequestHandler;true;handle;(HttpRequest,HttpResponse,HttpContext);;Parameter[0];remote;manual",
|
||||
"org.apache.hc.core5.http.io;HttpRequestHandler;true;handle;(ClassicHttpRequest,ClassicHttpResponse,HttpContext);;Parameter[0];remote;manual",
|
||||
"org.apache.hc.core5.http.io;HttpServerRequestHandler;true;handle;(ClassicHttpRequest,ResponseTrigger,HttpContext);;Parameter[0];remote;manual"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* A call that sets a header of an `HttpResponse`.
|
||||
*/
|
||||
@@ -80,191 +69,3 @@ class ApacheHttpSetHeader extends Call {
|
||||
/** Gets the expression used as the value of this header. */
|
||||
Expr getValue() { result = this.getArgument(1) }
|
||||
}
|
||||
|
||||
private class ApacheHttpXssSink extends SinkModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"org.apache.http;HttpResponse;true;setEntity;(HttpEntity);;Argument[0];xss;manual",
|
||||
"org.apache.http.util;EntityUtils;true;updateEntity;(HttpResponse,HttpEntity);;Argument[1];xss;manual",
|
||||
"org.apache.hc.core5.http;HttpEntityContainer;true;setEntity;(HttpEntity);;Argument[0];xss;manual"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
private class ApacheHttpOpenUrlSink extends SinkModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"org.apache.http;HttpRequest;true;setURI;;;Argument[0];open-url;manual",
|
||||
"org.apache.http.message;BasicHttpRequest;false;BasicHttpRequest;(RequestLine);;Argument[0];open-url;manual",
|
||||
"org.apache.http.message;BasicHttpRequest;false;BasicHttpRequest;(String,String);;Argument[1];open-url;manual",
|
||||
"org.apache.http.message;BasicHttpRequest;false;BasicHttpRequest;(String,String,ProtocolVersion);;Argument[1];open-url;manual",
|
||||
"org.apache.http.message;BasicHttpEntityEnclosingRequest;false;BasicHttpEntityEnclosingRequest;(RequestLine);;Argument[0];open-url;manual",
|
||||
"org.apache.http.message;BasicHttpEntityEnclosingRequest;false;BasicHttpEntityEnclosingRequest;(String,String);;Argument[1];open-url;manual",
|
||||
"org.apache.http.message;BasicHttpEntityEnclosingRequest;false;BasicHttpEntityEnclosingRequest;(String,String,ProtocolVersion);;Argument[1];open-url;manual",
|
||||
"org.apache.http.client.methods;HttpGet;false;HttpGet;;;Argument[0];open-url;manual",
|
||||
"org.apache.http.client.methods;HttpHead;false;HttpHead;;;Argument[0];open-url;manual",
|
||||
"org.apache.http.client.methods;HttpPut;false;HttpPut;;;Argument[0];open-url;manual",
|
||||
"org.apache.http.client.methods;HttpPost;false;HttpPost;;;Argument[0];open-url;manual",
|
||||
"org.apache.http.client.methods;HttpDelete;false;HttpDelete;;;Argument[0];open-url;manual",
|
||||
"org.apache.http.client.methods;HttpOptions;false;HttpOptions;;;Argument[0];open-url;manual",
|
||||
"org.apache.http.client.methods;HttpTrace;false;HttpTrace;;;Argument[0];open-url;manual",
|
||||
"org.apache.http.client.methods;HttpPatch;false;HttpPatch;;;Argument[0];open-url;manual",
|
||||
"org.apache.http.client.methods;HttpRequestBase;true;setURI;;;Argument[0];open-url;manual",
|
||||
"org.apache.http.client.methods;RequestBuilder;false;setUri;;;Argument[0];open-url;manual",
|
||||
"org.apache.http.client.methods;RequestBuilder;false;get;;;Argument[0];open-url;manual",
|
||||
"org.apache.http.client.methods;RequestBuilder;false;post;;;Argument[0];open-url;manual",
|
||||
"org.apache.http.client.methods;RequestBuilder;false;put;;;Argument[0];open-url;manual",
|
||||
"org.apache.http.client.methods;RequestBuilder;false;options;;;Argument[0];open-url;manual",
|
||||
"org.apache.http.client.methods;RequestBuilder;false;head;;;Argument[0];open-url;manual",
|
||||
"org.apache.http.client.methods;RequestBuilder;false;delete;;;Argument[0];open-url;manual",
|
||||
"org.apache.http.client.methods;RequestBuilder;false;trace;;;Argument[0];open-url;manual",
|
||||
"org.apache.http.client.methods;RequestBuilder;false;patch;;;Argument[0];open-url;manual"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
private class ApacheHttpFlowStep extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"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;getLastHeader;(String);;Argument[-1];ReturnValue;taint;manual",
|
||||
"org.apache.http;HttpMessage;true;getHeaders;(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;HttpEntityEnclosingRequest;true;getEntity;();;Argument[-1];ReturnValue;taint;manual",
|
||||
"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;getValue;();;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;NameValuePair;true;getName;();;Argument[-1];ReturnValue;taint;manual",
|
||||
"org.apache.http;NameValuePair;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;RequestLine;true;getMethod;();;Argument[-1];ReturnValue;taint;manual",
|
||||
"org.apache.http;RequestLine;true;getUri;();;Argument[-1];ReturnValue;taint;manual",
|
||||
"org.apache.http.params;HttpParams;true;getParameter;(String);;Argument[-1];ReturnValue;taint;manual",
|
||||
"org.apache.http.params;HttpParams;true;getDoubleParameter;(String,double);;Argument[-1];ReturnValue;taint;manual",
|
||||
"org.apache.http.params;HttpParams;true;getIntParameter;(String,int);;Argument[-1];ReturnValue;taint;manual",
|
||||
"org.apache.http.params;HttpParams;true;getLongParameter;(String,long);;Argument[-1];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;value;manual",
|
||||
"org.apache.http.params;HttpParams;true;getLongParameter;(String,long);;Argument[1];ReturnValue;value;manual",
|
||||
"org.apache.hc.core5.http;MessageHeaders;true;getFirstHeader;(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;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;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;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;getUri;();;Argument[-1];ReturnValue;taint;manual",
|
||||
"org.apache.hc.core5.http;HttpRequest;true;getRequestUri;();;Argument[-1];ReturnValue;taint;manual",
|
||||
"org.apache.hc.core5.http;HttpEntityContainer;true;getEntity;();;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;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;EntityDetails;true;getContentType;();;Argument[-1];ReturnValue;taint;manual",
|
||||
"org.apache.hc.core5.http;EntityDetails;true;getContentEncoding;();;Argument[-1];ReturnValue;taint;manual",
|
||||
"org.apache.hc.core5.http;EntityDetails;true;getTrailerNames;();;Argument[-1];ReturnValue;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[-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.function;Supplier;true;get;();;Argument[-1];ReturnValue;taint;manual",
|
||||
"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.http.util;EntityUtils;true;toString;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.http.util;EntityUtils;true;toByteArray;(HttpEntity);;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.http.util;EntityUtils;true;getContentCharSet;(HttpEntity);;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.http.util;EntityUtils;true;getContentMimeType;(HttpEntity);;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.hc.core5.http.io.entity;EntityUtils;true;toString;;;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;parse;;;Argument[0];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",
|
||||
"org.apache.http.util;EncodingUtils;true;getString;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.http.util;Args;true;containsNoBlanks;(CharSequence,String);;Argument[0];ReturnValue;value;manual",
|
||||
"org.apache.http.util;Args;true;notNull;(Object,String);;Argument[0];ReturnValue;value;manual",
|
||||
"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;notBlank;(CharSequence,String);;Argument[0];ReturnValue;value;manual",
|
||||
"org.apache.hc.core5.util;Args;true;containsNoBlanks;(CharSequence,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;Args;true;notEmpty;(Collection,String);;Argument[0];ReturnValue;value;manual",
|
||||
"org.apache.hc.core5.util;Args;true;notEmpty;(CharSequence,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;notBlank;(CharSequence,String);;Argument[0];ReturnValue;value;manual",
|
||||
"org.apache.hc.core5.http.io.entity;HttpEntities;true;create;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.hc.core5.http.io.entity;HttpEntities;true;createGzipped;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.hc.core5.http.io.entity;HttpEntities;true;createUrlEncoded;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.hc.core5.http.io.entity;HttpEntities;true;gzip;(HttpEntity);;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.hc.core5.http.io.entity;HttpEntities;true;withTrailers;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.http.entity;BasicHttpEntity;true;setContent;(InputStream);;Argument[0];Argument[-1];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;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.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;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.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;append;(CharArrayBuffer,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;(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;append;(CharArrayBuffer,int,int);;Argument[0];Argument[-1];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;(String);;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;buffer;();;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;CharArrayBuffer;true;substring;(int,int);;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;substringTrimmed;(int,int);;Argument[-1];ReturnValue;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;append;(CharArrayBuffer,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;(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;append;(CharArrayBuffer,int,int);;Argument[0];Argument[-1];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;(String);;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;array;();;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;CharArrayBuffer;true;substring;(int,int);;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;substringTrimmed;(int,int);;Argument[-1];ReturnValue;taint;manual",
|
||||
"org.apache.http.message;BasicRequestLine;false;BasicRequestLine;;;Argument[1];Argument[-1];taint;manual",
|
||||
"org.apache.http;RequestLine;true;getUri;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"org.apache.http;RequestLine;true;toString;;;Argument[-1];ReturnValue;taint;manual"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,9 +33,3 @@ class FlexjsonDeserializerUseMethod extends Method {
|
||||
this.hasName("use")
|
||||
}
|
||||
}
|
||||
|
||||
private class FluentUseMethodModel extends SummaryModelCsv {
|
||||
override predicate row(string r) {
|
||||
r = "flexjson;JSONDeserializer;true;use;;;Argument[-1];ReturnValue;value;manual"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
/** Provides a module for importing negative models. */
|
||||
|
||||
/**
|
||||
* A module importing all generated negative Models as Data models.
|
||||
*/
|
||||
private module GeneratedFrameworks {
|
||||
private import apache.NegativeIOGenerated
|
||||
}
|
||||
@@ -21,19 +21,3 @@ class HibernateSharedSessionContract extends RefType {
|
||||
class HibernateSession extends RefType {
|
||||
HibernateSession() { this.hasQualifiedName("org.hibernate", "Session") }
|
||||
}
|
||||
|
||||
private class SqlSinkCsv extends SinkModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
//"package;type;overrides;name;signature;ext;spec;kind"
|
||||
"org.hibernate;QueryProducer;true;createQuery;;;Argument[0];sql;manual",
|
||||
"org.hibernate;QueryProducer;true;createNativeQuery;;;Argument[0];sql;manual",
|
||||
"org.hibernate;QueryProducer;true;createSQLQuery;;;Argument[0];sql;manual",
|
||||
"org.hibernate;SharedSessionContract;true;createQuery;;;Argument[0];sql;manual",
|
||||
"org.hibernate;SharedSessionContract;true;createSQLQuery;;;Argument[0];sql;manual",
|
||||
"org.hibernate;Session;true;createQuery;;;Argument[0];sql;manual",
|
||||
"org.hibernate;Session;true;createSQLQuery;;;Argument[0];sql;manual"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
/**
|
||||
* Definitions of sinks in the Hikari Connection Pool library.
|
||||
*/
|
||||
|
||||
import java
|
||||
private import semmle.code.java.dataflow.ExternalFlow
|
||||
|
||||
private class SsrfSinkCsv extends SinkModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
//"package;type;overrides;name;signature;ext;spec;kind"
|
||||
"com.zaxxer.hikari;HikariConfig;false;HikariConfig;(Properties);;Argument[0];jdbc-url;manual",
|
||||
"com.zaxxer.hikari;HikariConfig;false;setJdbcUrl;(String);;Argument[0];jdbc-url;manual"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,112 +0,0 @@
|
||||
/**
|
||||
* This model covers JMS API versions 1 and 2.
|
||||
*
|
||||
* https://docs.oracle.com/javaee/6/api/javax/jms/package-summary.html
|
||||
* https://docs.oracle.com/javaee/7/api/javax/jms/package-summary.html
|
||||
*/
|
||||
|
||||
import java
|
||||
private import semmle.code.java.dataflow.ExternalFlow
|
||||
|
||||
/** Defines sources of tainted data in JMS 1. */
|
||||
private class Jms1Source extends SourceModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
// incoming messages are considered tainted
|
||||
"javax.jms;MessageListener;true;onMessage;(Message);;Parameter[0];remote;manual",
|
||||
"javax.jms;MessageConsumer;true;receive;;;ReturnValue;remote;manual",
|
||||
"javax.jms;MessageConsumer;true;receiveNoWait;();;ReturnValue;remote;manual",
|
||||
"javax.jms;QueueRequestor;true;request;(Message);;ReturnValue;remote;manual",
|
||||
"javax.jms;TopicRequestor;true;request;(Message);;ReturnValue;remote;manual",
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
/** Defines taint propagation steps in JMS 1. */
|
||||
private class Jms1FlowStep extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
// if a message is tainted, then it returns tainted data
|
||||
"javax.jms;Message;true;getBody;();;Argument[-1];ReturnValue;taint;manual",
|
||||
"javax.jms;Message;true;getJMSCorrelationIDAsBytes;();;Argument[-1];ReturnValue;taint;manual",
|
||||
"javax.jms;Message;true;getJMSCorrelationID;();;Argument[-1];ReturnValue;taint;manual",
|
||||
"javax.jms;Message;true;getJMSReplyTo;();;Argument[-1];ReturnValue;taint;manual",
|
||||
"javax.jms;Message;true;getJMSDestination;();;Argument[-1];ReturnValue;taint;manual",
|
||||
"javax.jms;Message;true;getJMSType;();;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;getShortProperty;();;Argument[-1];ReturnValue;taint;manual",
|
||||
"javax.jms;Message;true;getIntProperty;();;Argument[-1];ReturnValue;taint;manual",
|
||||
"javax.jms;Message;true;getLongProperty;();;Argument[-1];ReturnValue;taint;manual",
|
||||
"javax.jms;Message;true;getFloatProperty;();;Argument[-1];ReturnValue;taint;manual",
|
||||
"javax.jms;Message;true;getDoubleProperty;();;Argument[-1];ReturnValue;taint;manual",
|
||||
"javax.jms;Message;true;getStringProperty;();;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;BytesMessage;true;readBoolean;();;Argument[-1];ReturnValue;taint;manual",
|
||||
"javax.jms;BytesMessage;true;readByte;();;Argument[-1];ReturnValue;taint;manual",
|
||||
"javax.jms;BytesMessage;true;readUnsignedByte;();;Argument[-1];ReturnValue;taint;manual",
|
||||
"javax.jms;BytesMessage;true;readShort;();;Argument[-1];ReturnValue;taint;manual",
|
||||
"javax.jms;BytesMessage;true;readUnsignedShort;();;Argument[-1];ReturnValue;taint;manual",
|
||||
"javax.jms;BytesMessage;true;readChar;();;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;readFloat;();;Argument[-1];ReturnValue;taint;manual",
|
||||
"javax.jms;BytesMessage;true;readDouble;();;Argument[-1];ReturnValue;taint;manual",
|
||||
"javax.jms;BytesMessage;true;readUTF;();;Argument[-1];ReturnValue;taint;manual",
|
||||
"javax.jms;BytesMessage;true;readBytes;;;Argument[-1];Argument[0];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;getShort;(String);;Argument[-1];ReturnValue;taint;manual",
|
||||
"javax.jms;MapMessage;true;getChar;(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;getFloat;(String);;Argument[-1];ReturnValue;taint;manual",
|
||||
"javax.jms;MapMessage;true;getDouble;(String);;Argument[-1];ReturnValue;taint;manual",
|
||||
"javax.jms;MapMessage;true;getString;(String);;Argument[-1];ReturnValue;taint;manual",
|
||||
"javax.jms;MapMessage;true;getBytes;(String);;Argument[-1];ReturnValue;taint;manual",
|
||||
"javax.jms;MapMessage;true;getObject;(String);;Argument[-1];ReturnValue;taint;manual",
|
||||
"javax.jms;MapMessage;true;getMapNames;();;Argument[-1];ReturnValue;taint;manual",
|
||||
"javax.jms;ObjectMessage;true;getObject;();;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;readShort;();;Argument[-1];ReturnValue;taint;manual",
|
||||
"javax.jms;StreamMessage;true;readChar;();;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;readFloat;();;Argument[-1];ReturnValue;taint;manual",
|
||||
"javax.jms;StreamMessage;true;readDouble;();;Argument[-1];ReturnValue;taint;manual",
|
||||
"javax.jms;StreamMessage;true;readString;();;Argument[-1];ReturnValue;taint;manual",
|
||||
"javax.jms;StreamMessage;true;readBytes;(byte[]);;Argument[-1];Argument[0];taint;manual",
|
||||
"javax.jms;StreamMessage;true;readObject;();;Argument[-1];ReturnValue;taint;manual",
|
||||
"javax.jms;TextMessage;true;getText;();;Argument[-1];ReturnValue;taint;manual",
|
||||
// if a destination is tainted, then it returns tainted data
|
||||
"javax.jms;Queue;true;getQueueName;();;Argument[-1];ReturnValue;taint;manual",
|
||||
"javax.jms;Queue;true;toString;();;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",
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
/** Defines additional sources of tainted data in JMS 2. */
|
||||
private class Jms2Source extends SourceModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"javax.jms;JMSConsumer;true;receive;;;ReturnValue;remote;manual",
|
||||
"javax.jms;JMSConsumer;true;receiveBody;;;ReturnValue;remote;manual",
|
||||
"javax.jms;JMSConsumer;true;receiveNoWait;();;ReturnValue;remote;manual",
|
||||
"javax.jms;JMSConsumer;true;receiveBodyNoWait;();;ReturnValue;remote;manual",
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
/** Defines additional taint propagation steps in JMS 2. */
|
||||
private class Jms2FlowStep extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row = "javax.jms;Message;true;getBody;();;Argument[-1];ReturnValue;taint;manual"
|
||||
}
|
||||
}
|
||||
@@ -1,24 +0,0 @@
|
||||
/** Definitions of taint steps in Objects class of the JDK */
|
||||
|
||||
import java
|
||||
private import semmle.code.java.dataflow.ExternalFlow
|
||||
|
||||
private class JavaIoSummaryCsv extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
//`namespace; type; subtypes; name; signature; ext; input; output; kind`
|
||||
"java.lang;Appendable;true;append;;;Argument[0];Argument[-1];taint;manual",
|
||||
"java.lang;Appendable;true;append;;;Argument[-1];ReturnValue;value;manual",
|
||||
"java.io;Writer;true;write;;;Argument[0];Argument[-1];taint;manual",
|
||||
"java.io;Writer;true;toString;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"java.io;CharArrayWriter;true;toCharArray;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"java.io;ObjectInput;true;read;;;Argument[-1];Argument[0];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.nio.channels;ReadableByteChannel;true;read;(ByteBuffer);;Argument[-1];Argument[0];taint;manual",
|
||||
"java.nio.channels;Channels;false;newChannel;(InputStream);;Argument[0];ReturnValue;taint;manual"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,138 +0,0 @@
|
||||
/**
|
||||
* Provides models for the `javax.json` and `jakarta.json` packages.
|
||||
*/
|
||||
|
||||
import java
|
||||
private import semmle.code.java.dataflow.ExternalFlow
|
||||
|
||||
private class FlowSummaries extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
["javax", "jakarta"] +
|
||||
[
|
||||
".json;Json;false;createArrayBuilder;(JsonArray);;Argument[0];ReturnValue;taint;manual",
|
||||
".json;Json;false;createArrayBuilder;(Collection);;Argument[0].Element;ReturnValue;taint;manual",
|
||||
".json;Json;false;createDiff;;;Argument[0..1];ReturnValue;taint;manual",
|
||||
".json;Json;false;createMergeDiff;;;Argument[0..1];ReturnValue;taint;manual",
|
||||
".json;Json;false;createMergePatch;;;Argument[0];ReturnValue;taint;manual",
|
||||
".json;Json;false;createObjectBuilder;(JsonObject);;Argument[0];ReturnValue;taint;manual",
|
||||
".json;Json;false;createObjectBuilder;(Map);;Argument[0].MapKey;ReturnValue;taint;manual",
|
||||
".json;Json;false;createObjectBuilder;(Map);;Argument[0].MapValue;ReturnValue;taint;manual",
|
||||
".json;Json;false;createPatch;;;Argument[0];ReturnValue;taint;manual",
|
||||
".json;Json;false;createPatchBuilder;;;Argument[0];ReturnValue;taint;manual",
|
||||
".json;Json;false;createPointer;;;Argument[0];ReturnValue;taint;manual",
|
||||
".json;Json;false;createReader;;;Argument[0];ReturnValue;taint;manual",
|
||||
".json;Json;false;createValue;;;Argument[0];ReturnValue;taint;manual",
|
||||
".json;Json;false;createWriter;;;Argument[0];ReturnValue;taint;manual",
|
||||
".json;Json;false;decodePointer;;;Argument[0];ReturnValue;taint;manual",
|
||||
".json;Json;false;encodePointer;;;Argument[0];ReturnValue;taint;manual",
|
||||
".json;JsonArray;false;getBoolean;;;Argument[-1];ReturnValue;taint;manual",
|
||||
".json;JsonArray;false;getBoolean;;;Argument[1];ReturnValue;value;manual",
|
||||
".json;JsonArray;false;getInt;;;Argument[-1];ReturnValue;taint;manual",
|
||||
".json;JsonArray;false;getInt;;;Argument[1];ReturnValue;value;manual",
|
||||
".json;JsonArray;false;getJsonArray;;;Argument[-1];ReturnValue;taint;manual",
|
||||
".json;JsonArray;false;getJsonNumber;;;Argument[-1];ReturnValue;taint;manual",
|
||||
".json;JsonArray;false;getJsonObject;;;Argument[-1];ReturnValue;taint;manual",
|
||||
".json;JsonArray;false;getJsonString;;;Argument[-1];ReturnValue;taint;manual",
|
||||
".json;JsonArray;false;getString;;;Argument[-1];ReturnValue;taint;manual",
|
||||
".json;JsonArray;false;getString;;;Argument[1];ReturnValue;value;manual",
|
||||
".json;JsonArray;false;getValuesAs;;;Argument[-1];ReturnValue;taint;manual",
|
||||
".json;JsonArrayBuilder;false;add;;;Argument[-1];ReturnValue;value;manual",
|
||||
".json;JsonArrayBuilder;false;add;(boolean);;Argument[0];Argument[-1];taint;manual",
|
||||
".json;JsonArrayBuilder;false;add;(double);;Argument[0];Argument[-1];taint;manual",
|
||||
".json;JsonArrayBuilder;false;add;(int);;Argument[0];Argument[-1];taint;manual",
|
||||
".json;JsonArrayBuilder;false;add;(long);;Argument[0];Argument[-1];taint;manual",
|
||||
".json;JsonArrayBuilder;false;add;(JsonArrayBuilder);;Argument[0];Argument[-1];taint;manual",
|
||||
".json;JsonArrayBuilder;false;add;(JsonObjectBuilder);;Argument[0];Argument[-1];taint;manual",
|
||||
".json;JsonArrayBuilder;false;add;(JsonValue);;Argument[0];Argument[-1];taint;manual",
|
||||
".json;JsonArrayBuilder;false;add;(String);;Argument[0];Argument[-1];taint;manual",
|
||||
".json;JsonArrayBuilder;false;add;(BigDecimal);;Argument[0];Argument[-1];taint;manual",
|
||||
".json;JsonArrayBuilder;false;add;(BigInteger);;Argument[0];Argument[-1];taint;manual",
|
||||
".json;JsonArrayBuilder;false;add;(int,boolean);;Argument[1];Argument[-1];taint;manual",
|
||||
".json;JsonArrayBuilder;false;add;(int,double);;Argument[1];Argument[-1];taint;manual",
|
||||
".json;JsonArrayBuilder;false;add;(int,int);;Argument[1];Argument[-1];taint;manual",
|
||||
".json;JsonArrayBuilder;false;add;(int,long);;Argument[1];Argument[-1];taint;manual",
|
||||
".json;JsonArrayBuilder;false;add;(int,JsonArrayBuilder);;Argument[1];Argument[-1];taint;manual",
|
||||
".json;JsonArrayBuilder;false;add;(int,JsonObjectBuilder);;Argument[1];Argument[-1];taint;manual",
|
||||
".json;JsonArrayBuilder;false;add;(int,JsonValue);;Argument[1];Argument[-1];taint;manual",
|
||||
".json;JsonArrayBuilder;false;add;(int,String);;Argument[1];Argument[-1];taint;manual",
|
||||
".json;JsonArrayBuilder;false;add;(int,BigDecimal);;Argument[1];Argument[-1];taint;manual",
|
||||
".json;JsonArrayBuilder;false;add;(int,BigInteger);;Argument[1];Argument[-1];taint;manual",
|
||||
".json;JsonArrayBuilder;false;addAll;;;Argument[0];Argument[-1];taint;manual",
|
||||
".json;JsonArrayBuilder;false;addAll;;;Argument[-1];ReturnValue;value;manual",
|
||||
".json;JsonArrayBuilder;false;addNull;;;Argument[-1];ReturnValue;value;manual",
|
||||
".json;JsonArrayBuilder;false;build;;;Argument[-1];ReturnValue;taint;manual",
|
||||
".json;JsonArrayBuilder;false;remove;;;Argument[-1];ReturnValue;value;manual",
|
||||
".json;JsonArrayBuilder;false;set;;;Argument[1];Argument[-1];taint;manual",
|
||||
".json;JsonArrayBuilder;false;set;;;Argument[-1];ReturnValue;value;manual",
|
||||
".json;JsonArrayBuilder;false;setNull;;;Argument[-1];ReturnValue;value;manual",
|
||||
".json;JsonMergePatch;false;apply;;;Argument[-1];ReturnValue;taint;manual",
|
||||
".json;JsonMergePatch;false;apply;;;Argument[0];ReturnValue;taint;manual",
|
||||
".json;JsonMergePatch;false;toJsonValue;;;Argument[-1];ReturnValue;taint;manual",
|
||||
".json;JsonNumber;false;bigDecimalValue;;;Argument[-1];ReturnValue;taint;manual",
|
||||
".json;JsonNumber;false;bigIntegerValue;;;Argument[-1];ReturnValue;taint;manual",
|
||||
".json;JsonNumber;false;bigIntegerValueExact;;;Argument[-1];ReturnValue;taint;manual",
|
||||
".json;JsonNumber;false;doubleValue;;;Argument[-1];ReturnValue;taint;manual",
|
||||
".json;JsonNumber;false;intValue;;;Argument[-1];ReturnValue;taint;manual",
|
||||
".json;JsonNumber;false;intValueExact;;;Argument[-1];ReturnValue;taint;manual",
|
||||
".json;JsonNumber;false;longValue;;;Argument[-1];ReturnValue;taint;manual",
|
||||
".json;JsonNumber;false;longValueExact;;;Argument[-1];ReturnValue;taint;manual",
|
||||
".json;JsonNumber;false;numberValue;;;Argument[-1];ReturnValue;taint;manual",
|
||||
".json;JsonObject;false;getBoolean;;;Argument[-1];ReturnValue;taint;manual",
|
||||
".json;JsonObject;false;getBoolean;;;Argument[1];ReturnValue;value;manual",
|
||||
".json;JsonObject;false;getInt;;;Argument[-1];ReturnValue;taint;manual",
|
||||
".json;JsonObject;false;getInt;;;Argument[1];ReturnValue;value;manual",
|
||||
".json;JsonObject;false;getJsonArray;;;Argument[-1];ReturnValue;taint;manual",
|
||||
".json;JsonObject;false;getJsonNumber;;;Argument[-1];ReturnValue;taint;manual",
|
||||
".json;JsonObject;false;getJsonObject;;;Argument[-1];ReturnValue;taint;manual",
|
||||
".json;JsonObject;false;getJsonString;;;Argument[-1];ReturnValue;taint;manual",
|
||||
".json;JsonObject;false;getString;;;Argument[-1];ReturnValue;taint;manual",
|
||||
".json;JsonObject;false;getString;;;Argument[1];ReturnValue;value;manual",
|
||||
".json;JsonObjectBuilder;false;add;;;Argument[-1];ReturnValue;value;manual",
|
||||
".json;JsonObjectBuilder;false;add;;;Argument[1];Argument[-1];taint;manual",
|
||||
".json;JsonObjectBuilder;false;addAll;;;Argument[0];ReturnValue;value;manual",
|
||||
".json;JsonObjectBuilder;false;addAll;;;Argument[-1];ReturnValue;value;manual",
|
||||
".json;JsonObjectBuilder;false;addNull;;;Argument[-1];ReturnValue;value;manual",
|
||||
".json;JsonObjectBuilder;false;build;;;Argument[-1];ReturnValue;taint;manual",
|
||||
".json;JsonObjectBuilder;false;remove;;;Argument[-1];ReturnValue;value;manual",
|
||||
".json;JsonPatch;false;apply;;;Argument[-1];ReturnValue;taint;manual",
|
||||
".json;JsonPatch;false;apply;;;Argument[0];ReturnValue;taint;manual",
|
||||
".json;JsonPatch;false;toJsonArray;;;Argument[-1];ReturnValue;taint;manual",
|
||||
".json;JsonPatchBuilder;false;add;;;Argument[0..1];ReturnValue;taint;manual",
|
||||
".json;JsonPatchBuilder;false;add;;;Argument[-1];ReturnValue;value;manual",
|
||||
".json;JsonPatchBuilder;false;build;;;Argument[-1];ReturnValue;taint;manual",
|
||||
".json;JsonPatchBuilder;false;copy;;;Argument[0..1];ReturnValue;taint;manual",
|
||||
".json;JsonPatchBuilder;false;copy;;;Argument[-1];ReturnValue;value;manual",
|
||||
".json;JsonPatchBuilder;false;move;;;Argument[0..1];ReturnValue;taint;manual",
|
||||
".json;JsonPatchBuilder;false;move;;;Argument[-1];ReturnValue;value;manual",
|
||||
".json;JsonPatchBuilder;false;remove;;;Argument[0];ReturnValue;taint;manual",
|
||||
".json;JsonPatchBuilder;false;remove;;;Argument[-1];ReturnValue;value;manual",
|
||||
".json;JsonPatchBuilder;false;replace;;;Argument[0..1];ReturnValue;taint;manual",
|
||||
".json;JsonPatchBuilder;false;replace;;;Argument[-1];ReturnValue;value;manual",
|
||||
".json;JsonPatchBuilder;false;test;;;Argument[0..1];ReturnValue;taint;manual",
|
||||
".json;JsonPatchBuilder;false;test;;;Argument[-1];ReturnValue;value;manual",
|
||||
".json;JsonPointer;false;add;;;Argument[-1];ReturnValue;taint;manual",
|
||||
".json;JsonPointer;false;add;;;Argument[0..1];ReturnValue;taint;manual",
|
||||
".json;JsonPointer;false;getValue;;;Argument[0];ReturnValue;taint;manual",
|
||||
".json;JsonPointer;false;remove;;;Argument[0];ReturnValue;taint;manual",
|
||||
".json;JsonPointer;false;replace;;;Argument[0..1];ReturnValue;taint;manual",
|
||||
".json;JsonPointer;false;toString;;;Argument[-1];ReturnValue;taint;manual",
|
||||
".json;JsonReader;false;read;;;Argument[-1];ReturnValue;taint;manual",
|
||||
".json;JsonReader;false;readArray;;;Argument[-1];ReturnValue;taint;manual",
|
||||
".json;JsonReader;false;readObject;;;Argument[-1];ReturnValue;taint;manual",
|
||||
".json;JsonReader;false;readValue;;;Argument[-1];ReturnValue;taint;manual",
|
||||
".json;JsonReaderFactory;false;createReader;;;Argument[0];ReturnValue;taint;manual",
|
||||
".json;JsonString;false;getChars;;;Argument[-1];ReturnValue;taint;manual",
|
||||
".json;JsonString;false;getString;;;Argument[-1];ReturnValue;taint;manual",
|
||||
".json;JsonStructure;true;getValue;;;Argument[-1];ReturnValue;taint;manual",
|
||||
".json;JsonValue;true;asJsonArray;;;Argument[-1];ReturnValue;taint;manual",
|
||||
".json;JsonValue;true;asJsonObject;;;Argument[-1];ReturnValue;taint;manual",
|
||||
".json;JsonValue;true;toString;;;Argument[-1];ReturnValue;taint;manual",
|
||||
".json;JsonWriter;false;write;;;Argument[0];Argument[-1];taint;manual",
|
||||
".json;JsonWriter;false;writeArray;;;Argument[0];Argument[-1];taint;manual",
|
||||
".json;JsonWriter;false;writeObject;;;Argument[0];Argument[-1];taint;manual",
|
||||
".json;JsonWriterFactory;false;createWriter;;;Argument[-1];Argument[0];taint;manual",
|
||||
".json.stream;JsonParserFactory;false;createParser;;;Argument[0];ReturnValue;taint;manual"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -321,323 +321,6 @@ private class JaxRSXssSink extends XssSink {
|
||||
}
|
||||
}
|
||||
|
||||
/** A URL redirection sink from JAX-RS */
|
||||
private class JaxRsUrlRedirectSink extends SinkModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
["javax", "jakarta"] + ".ws.rs.core;Response;true;" + ["seeOther", "temporaryRedirect"] +
|
||||
";;;Argument[0];url-redirect;manual"
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Model Response:
|
||||
*
|
||||
* - the returned ResponseBuilder gains taint from a tainted entity or existing Response
|
||||
*/
|
||||
private class ResponseModel extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
["javax", "jakarta"] + ".ws.rs.core;Response;false;" + ["accepted", "fromResponse", "ok"] +
|
||||
";;;Argument[0];ReturnValue;taint;manual"
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Model ResponseBuilder:
|
||||
*
|
||||
* - 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
|
||||
*/
|
||||
private class ResponseBuilderModel extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
["javax", "jakarta"] + ".ws.rs.core;Response$ResponseBuilder;true;" +
|
||||
[
|
||||
"allow", "cacheControl", "contentLocation", "cookie", "encoding", "entity", "expires",
|
||||
"header", "language", "lastModified", "link", "links", "location", "replaceAll", "status",
|
||||
"tag", "type", "variant", "variants"
|
||||
] + ";;;Argument[-1];ReturnValue;value;manual"
|
||||
or
|
||||
row =
|
||||
["javax", "jakarta"] + ".ws.rs.core;Response$ResponseBuilder;true;" +
|
||||
[
|
||||
"build;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"entity;;;Argument[0];Argument[-1];taint;manual",
|
||||
"clone;;;Argument[-1];ReturnValue;taint;manual"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Model HttpHeaders: 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.
|
||||
*/
|
||||
private class HttpHeadersModel extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
["javax", "jakarta"] + ".ws.rs.core;HttpHeaders;true;" +
|
||||
[
|
||||
"getAcceptableLanguages", "getAcceptableMediaTypes", "getCookies", "getHeaderString",
|
||||
"getLanguage", "getMediaType", "getRequestHeader", "getRequestHeaders"
|
||||
] + ";;;Argument[-1];ReturnValue;taint;manual"
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Model MultivaluedMap, which extends `Map<K, List<V>>` and provides a few extra helper methods.
|
||||
*/
|
||||
private class MultivaluedMapModel extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
["javax", "jakarta"] + ".ws.rs.core;MultivaluedMap;true;" +
|
||||
[
|
||||
"add;;;Argument[0];Argument[-1].MapKey;value;manual",
|
||||
"add;;;Argument[1];Argument[-1].MapValue.Element;value;manual",
|
||||
"addAll;;;Argument[0];Argument[-1].MapKey;value;manual",
|
||||
"addAll;(Object,List);;Argument[1].Element;Argument[-1].MapValue.Element;value;manual",
|
||||
"addAll;(Object,Object[]);;Argument[1].ArrayElement;Argument[-1].MapValue.Element;value;manual",
|
||||
"addFirst;;;Argument[0];Argument[-1].MapKey;value;manual",
|
||||
"addFirst;;;Argument[1];Argument[-1].MapValue.Element;value;manual",
|
||||
"getFirst;;;Argument[-1].MapValue.Element;ReturnValue;value;manual",
|
||||
"putSingle;;;Argument[0];Argument[-1].MapKey;value;manual",
|
||||
"putSingle;;;Argument[1];Argument[-1].MapValue.Element;value;manual"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Model AbstractMultivaluedMap, which implements MultivaluedMap.
|
||||
*/
|
||||
private class AbstractMultivaluedMapModel extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
["javax", "jakarta"] + ".ws.rs.core;AbstractMultivaluedMap;false;AbstractMultivaluedMap;;;" +
|
||||
[
|
||||
"Argument[0].MapKey;Argument[-1].MapKey;value;manual",
|
||||
"Argument[0].MapValue;Argument[-1].MapValue;value;manual"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Model MultivaluedHashMap, which extends AbstractMultivaluedMap.
|
||||
*/
|
||||
private class MultivaluedHashMapModel extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
["javax", "jakarta"] + ".ws.rs.core;MultivaluedHashMap;false;MultivaluedHashMap;" +
|
||||
[
|
||||
"(Map);;Argument[0].MapKey;Argument[-1].MapKey;value;manual",
|
||||
"(Map);;Argument[0].MapValue;Argument[-1].MapValue.Element;value;manual",
|
||||
"(MultivaluedMap);;Argument[0].MapKey;Argument[-1].MapKey;value;manual",
|
||||
"(MultivaluedMap);;Argument[0].MapValue;Argument[-1].MapValue;value;manual"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Model PathSegment, which wraps a path and its associated matrix parameters.
|
||||
*/
|
||||
private class PathSegmentModel extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
["javax", "jakarta"] + ".ws.rs.core;PathSegment;true;" + ["getMatrixParameters", "getPath"] +
|
||||
";;;Argument[-1];ReturnValue;taint;manual"
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Model UriInfo, which provides URI element accessors.
|
||||
*/
|
||||
private class UriInfoModel extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
["javax", "jakarta"] + ".ws.rs.core;UriInfo;true;" +
|
||||
[
|
||||
"getAbsolutePath;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"getAbsolutePathBuilder;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"getPath;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"getPathParameters;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"getPathSegments;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"getQueryParameters;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"getRequestUri;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"getRequestUriBuilder;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"relativize;;;Argument[0];ReturnValue;taint;manual",
|
||||
"resolve;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"resolve;;;Argument[0];ReturnValue;taint;manual"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Model Cookie, a simple tuple type.
|
||||
*/
|
||||
private class CookieModel extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
["javax", "jakarta"] + ".ws.rs.core;Cookie;" +
|
||||
[
|
||||
"true;getDomain;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"true;getName;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"true;getPath;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"true;getValue;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"true;getVersion;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"true;toString;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"false;Cookie;;;Argument[0..4];Argument[-1];taint;manual",
|
||||
"false;valueOf;;;Argument[0];ReturnValue;taint;manual"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Model NewCookie, a simple tuple type.
|
||||
*/
|
||||
private class NewCookieModel extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
["javax", "jakarta"] + ".ws.rs.core;NewCookie;" +
|
||||
[
|
||||
"true;getComment;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"true;getExpiry;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"true;getMaxAge;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"true;toCookie;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"false;NewCookie;;;Argument[0..9];Argument[-1];taint;manual",
|
||||
"false;valueOf;;;Argument[0];ReturnValue;taint;manual"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Model Form, a simple container type.
|
||||
*/
|
||||
private class FormModel extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
["javax", "jakarta"] + ".ws.rs.core;Form;" +
|
||||
[
|
||||
"false;Form;;;Argument[0].MapKey;Argument[-1];taint;manual",
|
||||
"false;Form;;;Argument[0].MapValue.Element;Argument[-1];taint;manual",
|
||||
"false;Form;;;Argument[0..1];Argument[-1];taint;manual",
|
||||
"true;asMap;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"true;param;;;Argument[0..1];Argument[-1];taint;manual",
|
||||
"true;param;;;Argument[-1];ReturnValue;value;manual"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Model GenericEntity, a wrapper for HTTP entities (e.g., documents).
|
||||
*/
|
||||
private class GenericEntityModel extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
["javax", "jakarta"] + ".ws.rs.core;GenericEntity;" +
|
||||
[
|
||||
"false;GenericEntity;;;Argument[0];Argument[-1];taint;manual",
|
||||
"true;getEntity;;;Argument[-1];ReturnValue;taint;manual"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Model MediaType, which provides accessors for elements of Content-Type and similar
|
||||
* media type specifications.
|
||||
*/
|
||||
private class MediaTypeModel extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
["javax", "jakarta"] + ".ws.rs.core;MediaType;" +
|
||||
[
|
||||
"false;MediaType;;;Argument[0..2];Argument[-1];taint;manual",
|
||||
"true;getParameters;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"true;getSubtype;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"true;getType;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"false;valueOf;;;Argument[0];ReturnValue;taint;manual",
|
||||
"true;withCharset;;;Argument[-1];ReturnValue;taint;manual"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Model UriBuilder, which provides a fluent interface to build a URI from components.
|
||||
*/
|
||||
private class UriBuilderModel extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
["javax", "jakarta"] + ".ws.rs.core;UriBuilder;" +
|
||||
[
|
||||
"true;build;;;Argument[0].ArrayElement;ReturnValue;taint;manual",
|
||||
"true;build;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"true;buildFromEncoded;;;Argument[0].ArrayElement;ReturnValue;taint;manual",
|
||||
"true;buildFromEncoded;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"true;buildFromEncodedMap;;;Argument[0].MapKey;ReturnValue;taint;manual",
|
||||
"true;buildFromEncodedMap;;;Argument[0].MapValue;ReturnValue;taint;manual",
|
||||
"true;buildFromEncodedMap;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"true;buildFromMap;;;Argument[0].MapKey;ReturnValue;taint;manual",
|
||||
"true;buildFromMap;;;Argument[0].MapValue;ReturnValue;taint;manual",
|
||||
"true;buildFromMap;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"true;clone;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"true;fragment;;;Argument[0];ReturnValue;taint;manual",
|
||||
"true;fragment;;;Argument[-1];ReturnValue;value;manual",
|
||||
"false;fromLink;;;Argument[0];ReturnValue;taint;manual",
|
||||
"false;fromPath;;;Argument[0];ReturnValue;taint;manual",
|
||||
"false;fromUri;;;Argument[0];ReturnValue;taint;manual",
|
||||
"true;host;;;Argument[0];ReturnValue;taint;manual",
|
||||
"true;host;;;Argument[-1];ReturnValue;value;manual",
|
||||
"true;matrixParam;;;Argument[0];ReturnValue;taint;manual",
|
||||
"true;matrixParam;;;Argument[1].ArrayElement;ReturnValue;taint;manual",
|
||||
"true;matrixParam;;;Argument[-1];ReturnValue;value;manual",
|
||||
"true;path;;;Argument[0..1];ReturnValue;taint;manual",
|
||||
"true;path;;;Argument[-1];ReturnValue;value;manual",
|
||||
"true;queryParam;;;Argument[0];ReturnValue;taint;manual",
|
||||
"true;queryParam;;;Argument[1].ArrayElement;ReturnValue;taint;manual",
|
||||
"true;queryParam;;;Argument[-1];ReturnValue;value;manual",
|
||||
"true;replaceMatrix;;;Argument[0];ReturnValue;taint;manual",
|
||||
"true;replaceMatrix;;;Argument[-1];ReturnValue;value;manual",
|
||||
"true;replaceMatrixParam;;;Argument[0];ReturnValue;taint;manual",
|
||||
"true;replaceMatrixParam;;;Argument[1].ArrayElement;ReturnValue;taint;manual",
|
||||
"true;replaceMatrixParam;;;Argument[-1];ReturnValue;value;manual",
|
||||
"true;replacePath;;;Argument[0];ReturnValue;taint;manual",
|
||||
"true;replacePath;;;Argument[-1];ReturnValue;value;manual",
|
||||
"true;replaceQuery;;;Argument[0];ReturnValue;taint;manual",
|
||||
"true;replaceQuery;;;Argument[-1];ReturnValue;value;manual",
|
||||
"true;replaceQueryParam;;;Argument[0];ReturnValue;taint;manual",
|
||||
"true;replaceQueryParam;;;Argument[1].ArrayElement;ReturnValue;taint;manual",
|
||||
"true;replaceQueryParam;;;Argument[-1];ReturnValue;value;manual",
|
||||
"true;resolveTemplate;;;Argument[0..2];ReturnValue;taint;manual",
|
||||
"true;resolveTemplate;;;Argument[-1];ReturnValue;value;manual",
|
||||
"true;resolveTemplateFromEncoded;;;Argument[0..1];ReturnValue;taint;manual",
|
||||
"true;resolveTemplateFromEncoded;;;Argument[-1];ReturnValue;value;manual",
|
||||
"true;resolveTemplates;;;Argument[0].MapKey;ReturnValue;taint;manual",
|
||||
"true;resolveTemplates;;;Argument[0].MapValue;ReturnValue;taint;manual",
|
||||
"true;resolveTemplates;;;Argument[-1];ReturnValue;value;manual",
|
||||
"true;resolveTemplatesFromEncoded;;;Argument[0].MapKey;ReturnValue;taint;manual",
|
||||
"true;resolveTemplatesFromEncoded;;;Argument[0].MapValue;ReturnValue;taint;manual",
|
||||
"true;resolveTemplatesFromEncoded;;;Argument[-1];ReturnValue;value;manual",
|
||||
"true;scheme;;;Argument[0];ReturnValue;taint;manual",
|
||||
"true;scheme;;;Argument[-1];ReturnValue;value;manual",
|
||||
"true;schemeSpecificPart;;;Argument[0];ReturnValue;taint;manual",
|
||||
"true;schemeSpecificPart;;;Argument[-1];ReturnValue;value;manual",
|
||||
"true;segment;;;Argument[0].ArrayElement;ReturnValue;taint;manual",
|
||||
"true;segment;;;Argument[-1];ReturnValue;value;manual",
|
||||
"true;toTemplate;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"true;uri;;;Argument[0];ReturnValue;taint;manual",
|
||||
"true;uri;;;Argument[-1];ReturnValue;value;manual",
|
||||
"true;userInfo;;;Argument[0];ReturnValue;taint;manual",
|
||||
"true;userInfo;;;Argument[-1];ReturnValue;value;manual"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
private class JaxRsUrlOpenSink extends SinkModelCsv {
|
||||
override predicate row(string row) {
|
||||
row = ["javax", "jakarta"] + ".ws.rs.client;Client;true;target;;;Argument[0];open-url;manual"
|
||||
}
|
||||
}
|
||||
|
||||
private predicate isXssVulnerableContentTypeExpr(Expr e) {
|
||||
isXssVulnerableContentType(getContentTypeString(e))
|
||||
}
|
||||
@@ -784,17 +467,3 @@ private class VulnerableEntity extends XssSinkBarrier {
|
||||
).getArgument(0)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Model sources stemming from `ContainerRequestContext`.
|
||||
*/
|
||||
private class ContainerRequestContextModel extends SourceModelCsv {
|
||||
override predicate row(string s) {
|
||||
s =
|
||||
["javax", "jakarta"] + ".ws.rs.container;ContainerRequestContext;true;" +
|
||||
[
|
||||
"getAcceptableLanguages", "getAcceptableMediaTypes", "getCookies", "getEntityStream",
|
||||
"getHeaders", "getHeaderString", "getLanguage", "getMediaType", "getUriInfo"
|
||||
] + ";;;ReturnValue;remote;manual"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,33 +34,3 @@ class ResultSetGetStringMethod extends Method {
|
||||
getReturnType() instanceof TypeString
|
||||
}
|
||||
}
|
||||
|
||||
/*--- Other definitions ---*/
|
||||
private class SqlSinkCsv extends SinkModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
//"package;type;overrides;name;signature;ext;spec;kind"
|
||||
"java.sql;Connection;true;prepareStatement;;;Argument[0];sql;manual",
|
||||
"java.sql;Connection;true;prepareCall;;;Argument[0];sql;manual",
|
||||
"java.sql;Statement;true;execute;;;Argument[0];sql;manual",
|
||||
"java.sql;Statement;true;executeQuery;;;Argument[0];sql;manual",
|
||||
"java.sql;Statement;true;executeUpdate;;;Argument[0];sql;manual",
|
||||
"java.sql;Statement;true;executeLargeUpdate;;;Argument[0];sql;manual",
|
||||
"java.sql;Statement;true;addBatch;;;Argument[0];sql;manual"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
private class SsrfSinkCsv extends SinkModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
//"package;type;overrides;name;signature;ext;spec;kind"
|
||||
"java.sql;DriverManager;false;getConnection;(String);;Argument[0];jdbc-url;manual",
|
||||
"java.sql;DriverManager;false;getConnection;(String,Properties);;Argument[0];jdbc-url;manual",
|
||||
"java.sql;DriverManager;false;getConnection;(String,String,String);;Argument[0];jdbc-url;manual",
|
||||
"java.sql;Driver;false;connect;(String,Properties);;Argument[0];jdbc-url;manual"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
/**
|
||||
* Definitions of sinks in the JDBI library.
|
||||
*/
|
||||
|
||||
import java
|
||||
private import semmle.code.java.dataflow.ExternalFlow
|
||||
|
||||
private class SsrfSinkCsv extends SinkModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
//"package;type;overrides;name;signature;ext;spec;kind"
|
||||
"org.jdbi.v3.core;Jdbi;false;create;(String);;Argument[0];jdbc-url;manual",
|
||||
"org.jdbi.v3.core;Jdbi;false;create;(String,Properties);;Argument[0];jdbc-url;manual",
|
||||
"org.jdbi.v3.core;Jdbi;false;create;(String,String,String);;Argument[0];jdbc-url;manual",
|
||||
"org.jdbi.v3.core;Jdbi;false;open;(String);;Argument[0];jdbc-url;manual",
|
||||
"org.jdbi.v3.core;Jdbi;false;open;(String,Properties);;Argument[0];jdbc-url;manual",
|
||||
"org.jdbi.v3.core;Jdbi;false;open;(String,String,String);;Argument[0];jdbc-url;manual"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -41,28 +41,3 @@ class AllowClassMethod extends Method {
|
||||
this.hasName("allowClass")
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* A partial model of jodd.json.JsonParser noting fluent methods.
|
||||
*
|
||||
* This means that DataFlow::localFlow and similar methods are aware
|
||||
* that the result of (e.g.) JsonParser.allowClass is an alias of the
|
||||
* qualifier.
|
||||
*/
|
||||
private class JsonParserFluentMethods extends SummaryModelCsv {
|
||||
override predicate row(string s) {
|
||||
s =
|
||||
[
|
||||
"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"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,252 +0,0 @@
|
||||
/**
|
||||
* Provides models for working with the JSON-java library (package `org.json`).
|
||||
*/
|
||||
|
||||
private import semmle.code.java.dataflow.ExternalFlow
|
||||
|
||||
private class FlowModels extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"org.json;JSONString;true;toJSONString;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"org.json;XMLXsiTypeConverter;true;convert;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.json;CDL;false;rowToJSONArray;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.json;CDL;false;rowToJSONObject;;;Argument[0..1];ReturnValue;taint;manual",
|
||||
"org.json;CDL;false;rowToString;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.json;CDL;false;toJSONArray;;;Argument[0..1];ReturnValue;taint;manual",
|
||||
"org.json;CDL;false;toString;;;Argument[0..1];ReturnValue;taint;manual",
|
||||
"org.json;Cookie;false;escape;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.json;Cookie;false;toJSONObject;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.json;Cookie;false;toString;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.json;Cookie;false;unescape;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.json;CookieList;false;toJSONObject;;;Argument[0];ReturnValue;taint;manual",
|
||||
"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;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;optBigInteger;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"org.json;JSONArray;false;optBoolean;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"org.json;JSONArray;false;optDouble;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"org.json;JSONArray;false;optEnum;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"org.json;JSONArray;false;optFloat;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"org.json;JSONArray;false;optInt;;;Argument[-1];ReturnValue;taint;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;optNumber;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"org.json;JSONArray;false;optQuery;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"org.json;JSONArray;false;optString;;;Argument[-1];ReturnValue;taint;manual",
|
||||
// Default values that may be returned by the `opt*` methods above:
|
||||
"org.json;JSONArray;false;optBigDecimal;;;Argument[1];ReturnValue;value;manual",
|
||||
"org.json;JSONArray;false;optBigInteger;;;Argument[1];ReturnValue;value;manual",
|
||||
"org.json;JSONArray;false;optBoolean;;;Argument[1];ReturnValue;value;manual",
|
||||
"org.json;JSONArray;false;optDouble;;;Argument[1];ReturnValue;value;manual",
|
||||
"org.json;JSONArray;false;optEnum;;;Argument[2];ReturnValue;value;manual",
|
||||
"org.json;JSONArray;false;optFloat;;;Argument[1];ReturnValue;value;manual",
|
||||
"org.json;JSONArray;false;optInt;;;Argument[1];ReturnValue;value;manual",
|
||||
"org.json;JSONArray;false;optLong;;;Argument[1];ReturnValue;value;manual",
|
||||
"org.json;JSONArray;false;optNumber;;;Argument[1];ReturnValue;value;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;(boolean);;Argument[0];Argument[-1];taint;manual",
|
||||
"org.json;JSONArray;false;put;(Collection);;Argument[0].Element;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;(long);;Argument[0];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;(int,boolean);;Argument[1];Argument[-1];taint;manual",
|
||||
"org.json;JSONArray;false;put;(int,Collection);;Argument[1].Element;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;(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;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[0];ReturnValue;taint;manual",
|
||||
"org.json;JSONArray;false;toJSONObject;;;Argument[-1];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[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[0..1];Argument[-1];taint;manual",
|
||||
"org.json;JSONObject;false;accumulate;;;Argument[-1];ReturnValue;value;manual",
|
||||
"org.json;JSONObject;false;append;;;Argument[0..1];Argument[-1];taint;manual",
|
||||
"org.json;JSONObject;false;append;;;Argument[-1];ReturnValue;value;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;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[0];Argument[-1];taint;manual",
|
||||
"org.json;JSONObject;false;increment;;;Argument[-1];ReturnValue;value;manual",
|
||||
"org.json;JSONObject;false;keys;;;Argument[-1];ReturnValue.Element;taint;manual",
|
||||
"org.json;JSONObject;false;keySet;;;Argument[-1];ReturnValue.Element;taint;manual",
|
||||
"org.json;JSONObject;false;names;;;Argument[-1];ReturnValue;taint;manual", // Returns a JSONArray, hence this has no Element qualifier or similar
|
||||
"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;optBigInteger;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"org.json;JSONObject;false;optBoolean;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"org.json;JSONObject;false;optDouble;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"org.json;JSONObject;false;optEnum;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"org.json;JSONObject;false;optFloat;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"org.json;JSONObject;false;optInt;;;Argument[-1];ReturnValue;taint;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;optNumber;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"org.json;JSONObject;false;optQuery;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"org.json;JSONObject;false;optString;;;Argument[-1];ReturnValue;taint;manual",
|
||||
// Default values that may be returned by the `opt*` methods above:
|
||||
"org.json;JSONObject;false;optBigDecimal;;;Argument[1];ReturnValue;value;manual",
|
||||
"org.json;JSONObject;false;optBigInteger;;;Argument[1];ReturnValue;value;manual",
|
||||
"org.json;JSONObject;false;optBoolean;;;Argument[1];ReturnValue;value;manual",
|
||||
"org.json;JSONObject;false;optDouble;;;Argument[1];ReturnValue;value;manual",
|
||||
"org.json;JSONObject;false;optEnum;;;Argument[2];ReturnValue;value;manual",
|
||||
"org.json;JSONObject;false;optFloat;;;Argument[1];ReturnValue;value;manual",
|
||||
"org.json;JSONObject;false;optInt;;;Argument[1];ReturnValue;value;manual",
|
||||
"org.json;JSONObject;false;optLong;;;Argument[1];ReturnValue;value;manual",
|
||||
"org.json;JSONObject;false;optNumber;;;Argument[1];ReturnValue;value;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,boolean);;Argument[0];Argument[-1];taint;manual",
|
||||
"org.json;JSONObject;false;put;(String,Collection);;Argument[0];Argument[-1];taint;manual",
|
||||
"org.json;JSONObject;false;put;(String,double);;Argument[0];Argument[-1];taint;manual",
|
||||
"org.json;JSONObject;false;put;(String,float);;Argument[0];Argument[-1];taint;manual",
|
||||
"org.json;JSONObject;false;put;(String,int);;Argument[0];Argument[-1];taint;manual",
|
||||
"org.json;JSONObject;false;put;(String,long);;Argument[0];Argument[-1];taint;manual",
|
||||
"org.json;JSONObject;false;put;(String,Map);;Argument[0];Argument[-1];taint;manual",
|
||||
"org.json;JSONObject;false;put;(String,Object);;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,Collection);;Argument[1].Element;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[1];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[1];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[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;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;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;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[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;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[0];Argument[-1];taint;manual",
|
||||
"org.json;JSONPointer$Builder;false;append;;;Argument[-1];ReturnValue;value;manual",
|
||||
"org.json;JSONPointer$Builder;false;build;;;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;JSONTokener;true;syntaxError;;;Argument[0..1];ReturnValue;taint;manual",
|
||||
"org.json;JSONTokener;true;toString;;;Argument[-1];ReturnValue;taint;manual",
|
||||
// The following model doesn't work yet due to lack of support for reverse taint flow:
|
||||
"org.json;JSONWriter;true;JSONWriter;;;Argument[-1];Argument[0];taint;manual",
|
||||
"org.json;JSONWriter;true;key;;;Argument[0];Argument[-1];taint;manual",
|
||||
"org.json;JSONWriter;true;value;;;Argument[0];Argument[-1];taint;manual",
|
||||
"org.json;JSONWriter;true;valueToString;;;Argument[0];ReturnValue;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;object;;;Argument[-1];ReturnValue;value;manual",
|
||||
"org.json;JSONWriter;true;value;;;Argument[-1];ReturnValue;value;manual",
|
||||
"org.json;Property;false;toJSONObject;;;Argument[0].MapKey;ReturnValue;taint;manual",
|
||||
"org.json;Property;false;toJSONObject;;;Argument[0].MapValue;ReturnValue;taint;manual",
|
||||
"org.json;Property;false;toProperties;;;Argument[0];ReturnValue.MapKey;taint;manual",
|
||||
"org.json;Property;false;toProperties;;;Argument[0];ReturnValue.MapValue;taint;manual",
|
||||
"org.json;XML;false;escape;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.json;XML;false;stringToValue;;;Argument[0];ReturnValue;taint;manual",
|
||||
"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"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,340 +0,0 @@
|
||||
/** Provides classes and predicates to reason about logging. */
|
||||
|
||||
import java
|
||||
private import semmle.code.java.dataflow.ExternalFlow
|
||||
|
||||
private class LoggingSummaryModels extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"org.apache.logging.log4j;Logger;true;traceEntry;(Message);;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.logging.log4j;Logger;true;traceEntry;(String,Object[]);;Argument[0..1];ReturnValue;taint;manual",
|
||||
"org.apache.logging.log4j;Logger;true;traceEntry;(String,Supplier[]);;Argument[0..1];ReturnValue;taint;manual",
|
||||
"org.apache.logging.log4j;Logger;true;traceEntry;(Supplier[]);;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.logging.log4j;Logger;true;traceExit;(EntryMessage,Object);;Argument[1];ReturnValue;value;manual",
|
||||
"org.apache.logging.log4j;Logger;true;traceExit;(Message,Object);;Argument[1];ReturnValue;value;manual",
|
||||
"org.apache.logging.log4j;Logger;true;traceExit;(Object);;Argument[0];ReturnValue;value;manual",
|
||||
"org.apache.logging.log4j;Logger;true;traceExit;(String,Object);;Argument[1];ReturnValue;value;manual",
|
||||
"org.slf4j.spi;LoggingEventBuilder;true;addArgument;;;Argument[1];Argument[-1];taint;manual",
|
||||
"org.slf4j.spi;LoggingEventBuilder;true;addArgument;;;Argument[-1];ReturnValue;value;manual",
|
||||
"org.slf4j.spi;LoggingEventBuilder;true;addKeyValue;;;Argument[1];Argument[-1];taint;manual",
|
||||
"org.slf4j.spi;LoggingEventBuilder;true;addKeyValue;;;Argument[-1];ReturnValue;value;manual",
|
||||
"org.slf4j.spi;LoggingEventBuilder;true;addMarker;;;Argument[-1];ReturnValue;value;manual",
|
||||
"org.slf4j.spi;LoggingEventBuilder;true;setCause;;;Argument[-1];ReturnValue;value;manual",
|
||||
"java.util.logging;LogRecord;false;LogRecord;;;Argument[1];Argument[-1];taint;manual"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
private string jBossLogger() { result = "org.jboss.logging;" + ["BasicLogger", "Logger"] }
|
||||
|
||||
private class LoggingSinkModels extends SinkModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
// org.apache.log4j.Category
|
||||
"org.apache.log4j;Category;true;assertLog;;;Argument[1];logging;manual",
|
||||
"org.apache.log4j;Category;true;debug;;;Argument[0];logging;manual",
|
||||
"org.apache.log4j;Category;true;error;;;Argument[0];logging;manual",
|
||||
"org.apache.log4j;Category;true;fatal;;;Argument[0];logging;manual",
|
||||
"org.apache.log4j;Category;true;forcedLog;;;Argument[2];logging;manual",
|
||||
"org.apache.log4j;Category;true;info;;;Argument[0];logging;manual",
|
||||
"org.apache.log4j;Category;true;l7dlog;(Priority,String,Object[],Throwable);;Argument[2];logging;manual",
|
||||
"org.apache.log4j;Category;true;log;(Priority,Object);;Argument[1];logging;manual",
|
||||
"org.apache.log4j;Category;true;log;(Priority,Object,Throwable);;Argument[1];logging;manual",
|
||||
"org.apache.log4j;Category;true;log;(String,Priority,Object,Throwable);;Argument[2];logging;manual",
|
||||
"org.apache.log4j;Category;true;warn;;;Argument[0];logging;manual",
|
||||
// org.apache.logging.log4j.Logger
|
||||
"org.apache.logging.log4j;Logger;true;" +
|
||||
["debug", "error", "fatal", "info", "trace", "warn"] +
|
||||
[
|
||||
";(CharSequence);;Argument[0];logging;manual",
|
||||
";(CharSequence,Throwable);;Argument[0];logging;manual",
|
||||
";(Marker,CharSequence);;Argument[1];logging;manual",
|
||||
";(Marker,CharSequence,Throwable);;Argument[1];logging;manual",
|
||||
";(Marker,Message);;Argument[1];logging;manual",
|
||||
";(Marker,MessageSupplier);;Argument[1];logging;manual",
|
||||
";(Marker,MessageSupplier);;Argument[1];logging;manual",
|
||||
";(Marker,MessageSupplier,Throwable);;Argument[1];logging;manual",
|
||||
";(Marker,Object);;Argument[1];logging;manual",
|
||||
";(Marker,Object,Throwable);;Argument[1];logging;manual",
|
||||
";(Marker,String);;Argument[1];logging;manual",
|
||||
";(Marker,String,Object[]);;Argument[1..2];logging;manual",
|
||||
";(Marker,String,Object);;Argument[1..2];logging;manual",
|
||||
";(Marker,String,Object,Object);;Argument[1..3];logging;manual",
|
||||
";(Marker,String,Object,Object,Object);;Argument[1..4];logging;manual",
|
||||
";(Marker,String,Object,Object,Object,Object);;Argument[1..5];logging;manual",
|
||||
";(Marker,String,Object,Object,Object,Object,Object);;Argument[1..6];logging;manual",
|
||||
";(Marker,String,Object,Object,Object,Object,Object,Object);;Argument[1..7];logging;manual",
|
||||
";(Marker,String,Object,Object,Object,Object,Object,Object,Object);;Argument[1..8];logging;manual",
|
||||
";(Marker,String,Object,Object,Object,Object,Object,Object,Object,Object);;Argument[1..9];logging;manual",
|
||||
";(Marker,String,Object,Object,Object,Object,Object,Object,Object,Object,Object);;Argument[1..10];logging;manual",
|
||||
";(Marker,String,Object,Object,Object,Object,Object,Object,Object,Object,Object,Object);;Argument[1..11];logging;manual",
|
||||
";(Marker,String,Supplier);;Argument[1..2];logging;manual",
|
||||
";(Marker,String,Throwable);;Argument[1];logging;manual",
|
||||
";(Marker,Supplier);;Argument[1];logging;manual",
|
||||
";(Marker,Supplier,Throwable);;Argument[1];logging;manual",
|
||||
";(MessageSupplier);;Argument[0];logging;manual",
|
||||
";(MessageSupplier,Throwable);;Argument[0];logging;manual",
|
||||
";(Message);;Argument[0];logging;manual",
|
||||
";(Message,Throwable);;Argument[0];logging;manual",
|
||||
";(Object);;Argument[0];logging;manual",
|
||||
";(Object,Throwable);;Argument[0];logging;manual",
|
||||
";(String);;Argument[0];logging;manual",
|
||||
";(String,Object[]);;Argument[0..1];logging;manual",
|
||||
";(String,Object);;Argument[0..1];logging;manual",
|
||||
";(String,Object,Object);;Argument[0..2];logging;manual",
|
||||
";(String,Object,Object,Object);;Argument[0..3];logging;manual",
|
||||
";(String,Object,Object,Object,Object);;Argument[0..4];logging;manual",
|
||||
";(String,Object,Object,Object,Object,Object);;Argument[0..5];logging;manual",
|
||||
";(String,Object,Object,Object,Object,Object,Object);;Argument[0..6];logging;manual",
|
||||
";(String,Object,Object,Object,Object,Object,Object,Object);;Argument[0..7];logging;manual",
|
||||
";(String,Object,Object,Object,Object,Object,Object,Object,Object);;Argument[0..8];logging;manual",
|
||||
";(String,Object,Object,Object,Object,Object,Object,Object,Object,Object);;Argument[0..9];logging;manual",
|
||||
";(String,Object,Object,Object,Object,Object,Object,Object,Object,Object,Object);;Argument[0..10];logging;manual",
|
||||
";(String,Supplier);;Argument[0..1];logging;manual",
|
||||
";(String,Throwable);;Argument[0];logging;manual",
|
||||
";(Supplier);;Argument[0];logging;manual",
|
||||
";(Supplier,Throwable);;Argument[0];logging;manual"
|
||||
],
|
||||
"org.apache.logging.log4j;Logger;true;log" +
|
||||
[
|
||||
";(Level,CharSequence);;Argument[1];logging;manual",
|
||||
";(Level,CharSequence,Throwable);;Argument[1];logging;manual",
|
||||
";(Level,Marker,CharSequence);;Argument[2];logging;manual",
|
||||
";(Level,Marker,CharSequence,Throwable);;Argument[2];logging;manual",
|
||||
";(Level,Marker,Message);;Argument[2];logging;manual",
|
||||
";(Level,Marker,MessageSupplier);;Argument[2];logging;manual",
|
||||
";(Level,Marker,MessageSupplier);;Argument[2];logging;manual",
|
||||
";(Level,Marker,MessageSupplier,Throwable);;Argument[2];logging;manual",
|
||||
";(Level,Marker,Object);;Argument[2];logging;manual",
|
||||
";(Level,Marker,Object,Throwable);;Argument[2];logging;manual",
|
||||
";(Level,Marker,String);;Argument[2];logging;manual",
|
||||
";(Level,Marker,String,Object[]);;Argument[2..3];logging;manual",
|
||||
";(Level,Marker,String,Object);;Argument[2..3];logging;manual",
|
||||
";(Level,Marker,String,Object,Object);;Argument[2..4];logging;manual",
|
||||
";(Level,Marker,String,Object,Object,Object);;Argument[2..5];logging;manual",
|
||||
";(Level,Marker,String,Object,Object,Object,Object);;Argument[2..6];logging;manual",
|
||||
";(Level,Marker,String,Object,Object,Object,Object,Object);;Argument[2..7];logging;manual",
|
||||
";(Level,Marker,String,Object,Object,Object,Object,Object,Object);;Argument[2..8];logging;manual",
|
||||
";(Level,Marker,String,Object,Object,Object,Object,Object,Object,Object);;Argument[2..9];logging;manual",
|
||||
";(Level,Marker,String,Object,Object,Object,Object,Object,Object,Object,Object);;Argument[2..10];logging;manual",
|
||||
";(Level,Marker,String,Object,Object,Object,Object,Object,Object,Object,Object,Object);;Argument[2..11];logging;manual",
|
||||
";(Level,Marker,String,Object,Object,Object,Object,Object,Object,Object,Object,Object,Object);;Argument[2..12];logging;manual",
|
||||
";(Level,Marker,String,Supplier);;Argument[2..3];logging;manual",
|
||||
";(Level,Marker,String,Throwable);;Argument[2];logging;manual",
|
||||
";(Level,Marker,Supplier);;Argument[2];logging;manual",
|
||||
";(Level,Marker,Supplier,Throwable);;Argument[2];logging;manual",
|
||||
";(Level,Message);;Argument[1];logging;manual",
|
||||
";(Level,MessageSupplier);;Argument[1];logging;manual",
|
||||
";(Level,MessageSupplier,Throwable);;Argument[1];logging;manual",
|
||||
";(Level,Message);;Argument[1];logging;manual",
|
||||
";(Level,Message,Throwable);;Argument[1];logging;manual",
|
||||
";(Level,Object);;Argument[1];logging;manual",
|
||||
";(Level,Object);;Argument[1];logging;manual",
|
||||
";(Level,String);;Argument[1];logging;manual",
|
||||
";(Level,Object,Throwable);;Argument[1];logging;manual",
|
||||
";(Level,String);;Argument[1];logging;manual",
|
||||
";(Level,String,Object[]);;Argument[1..2];logging;manual",
|
||||
";(Level,String,Object);;Argument[1..2];logging;manual",
|
||||
";(Level,String,Object,Object);;Argument[1..3];logging;manual",
|
||||
";(Level,String,Object,Object,Object);;Argument[1..4];logging;manual",
|
||||
";(Level,String,Object,Object,Object,Object);;Argument[1..5];logging;manual",
|
||||
";(Level,String,Object,Object,Object,Object,Object);;Argument[1..6];logging;manual",
|
||||
";(Level,String,Object,Object,Object,Object,Object,Object);;Argument[1..7];logging;manual",
|
||||
";(Level,String,Object,Object,Object,Object,Object,Object,Object);;Argument[1..8];logging;manual",
|
||||
";(Level,String,Object,Object,Object,Object,Object,Object,Object,Object);;Argument[1..9];logging;manual",
|
||||
";(Level,String,Object,Object,Object,Object,Object,Object,Object,Object,Object);;Argument[1..10];logging;manual",
|
||||
";(Level,String,Object,Object,Object,Object,Object,Object,Object,Object,Object,Object);;Argument[1..11];logging;manual",
|
||||
";(Level,String,Supplier);;Argument[1..2];logging;manual",
|
||||
";(Level,String,Throwable);;Argument[1];logging;manual",
|
||||
";(Level,Supplier);;Argument[1];logging;manual",
|
||||
";(Level,Supplier,Throwable);;Argument[1];logging;manual"
|
||||
], "org.apache.logging.log4j;Logger;true;entry;(Object[]);;Argument[0];logging;manual",
|
||||
"org.apache.logging.log4j;Logger;true;logMessage;(Level,Marker,String,StackTraceElement,Message,Throwable);;Argument[4];logging;manual",
|
||||
"org.apache.logging.log4j;Logger;true;printf;(Level,Marker,String,Object[]);;Argument[2..3];logging;manual",
|
||||
"org.apache.logging.log4j;Logger;true;printf;(Level,String,Object[]);;Argument[1..2];logging;manual",
|
||||
"org.apache.logging.log4j;Logger;true;traceEntry;(Message);;Argument[0];logging;manual",
|
||||
"org.apache.logging.log4j;Logger;true;traceEntry;(String,Object[]);;Argument[0..1];logging;manual",
|
||||
"org.apache.logging.log4j;Logger;true;traceEntry;(String,Supplier[]);;Argument[0..1];logging;manual",
|
||||
"org.apache.logging.log4j;Logger;true;traceEntry;(Supplier[]);;Argument[0];logging;manual",
|
||||
"org.apache.logging.log4j;Logger;true;traceExit;(EntryMessage);;Argument[0];logging;manual",
|
||||
"org.apache.logging.log4j;Logger;true;traceExit;(EntryMessage,Object);;Argument[0..1];logging;manual",
|
||||
"org.apache.logging.log4j;Logger;true;traceExit;(Message,Object);;Argument[0..1];logging;manual",
|
||||
"org.apache.logging.log4j;Logger;true;traceExit;(Object);;Argument[0];logging;manual",
|
||||
"org.apache.logging.log4j;Logger;true;traceExit;(String,Object);;Argument[0..1];logging;manual",
|
||||
// org.apache.logging.log4j.LogBuilder
|
||||
"org.apache.logging.log4j;LogBuilder;true;log;(CharSequence);;Argument[0];logging;manual",
|
||||
"org.apache.logging.log4j;LogBuilder;true;log;(Message);;Argument[0];logging;manual",
|
||||
"org.apache.logging.log4j;LogBuilder;true;log;(Object);;Argument[0];logging;manual",
|
||||
"org.apache.logging.log4j;LogBuilder;true;log;(String);;Argument[0];logging;manual",
|
||||
"org.apache.logging.log4j;LogBuilder;true;log;(String,Object[]);;Argument[0..1];logging;manual",
|
||||
"org.apache.logging.log4j;LogBuilder;true;log;(String,Object);;Argument[0..1];logging;manual",
|
||||
"org.apache.logging.log4j;LogBuilder;true;log;(String,Object,Object);;Argument[0..2];logging;manual",
|
||||
"org.apache.logging.log4j;LogBuilder;true;log;(String,Object,Object,Object);;Argument[0..3];logging;manual",
|
||||
"org.apache.logging.log4j;LogBuilder;true;log;(String,Object,Object,Object,Object);;Argument[0..4];logging;manual",
|
||||
"org.apache.logging.log4j;LogBuilder;true;log;(String,Object,Object,Object,Object,Object);;Argument[0..5];logging;manual",
|
||||
"org.apache.logging.log4j;LogBuilder;true;log;(String,Object,Object,Object,Object,Object,Object);;Argument[0..6];logging;manual",
|
||||
"org.apache.logging.log4j;LogBuilder;true;log;(String,Object,Object,Object,Object,Object,Object,Object);;Argument[0..7];logging;manual",
|
||||
"org.apache.logging.log4j;LogBuilder;true;log;(String,Object,Object,Object,Object,Object,Object,Object,Object);;Argument[0..8];logging;manual",
|
||||
"org.apache.logging.log4j;LogBuilder;true;log;(String,Object,Object,Object,Object,Object,Object,Object,Object,Object);;Argument[0..9];logging;manual",
|
||||
"org.apache.logging.log4j;LogBuilder;true;log;(String,Object,Object,Object,Object,Object,Object,Object,Object,Object,Object);;Argument[0..10];logging;manual",
|
||||
"org.apache.logging.log4j;LogBuilder;true;log;(String,Supplier);;Argument[0..1];logging;manual",
|
||||
"org.apache.logging.log4j;LogBuilder;true;log;(Supplier);;Argument[0];logging;manual",
|
||||
// org.apache.commons.logging.Log
|
||||
"org.apache.commons.logging;Log;true;" +
|
||||
["debug", "error", "fatal", "info", "trace", "warn"] + ";;;Argument[0];logging;manual",
|
||||
// org.jboss.logging.BasicLogger and org.jboss.logging.Logger
|
||||
// (org.jboss.logging.Logger does not implement BasicLogger in some implementations like JBoss Application Server 4.0.4)
|
||||
jBossLogger() + ";true;" + ["debug", "error", "fatal", "info", "trace", "warn"] +
|
||||
[
|
||||
";(Object);;Argument[0];logging;manual",
|
||||
";(Object,Throwable);;Argument[0];logging;manual",
|
||||
";(Object,Object[]);;Argument[0..1];logging;manual",
|
||||
";(Object,Object[],Throwable);;Argument[0..1];logging;manual",
|
||||
";(String,Object,Object[],Throwable);;Argument[1..2];logging;manual",
|
||||
";(String,Object,Throwable);;Argument[1];logging;manual"
|
||||
],
|
||||
jBossLogger() + ";true;log" +
|
||||
[
|
||||
";(Level,Object);;Argument[1];logging;manual",
|
||||
";(Level,Object,Object[]);;Argument[1..2];logging;manual",
|
||||
";(Level,Object,Object[],Throwable);;Argument[1..2];logging;manual",
|
||||
";(Level,Object,Throwable);;Argument[1];logging;manual",
|
||||
";(Level,String,Object,Throwable);;Argument[2];logging;manual",
|
||||
";(String,Level,Object,Object[],Throwable);;Argument[2..3];logging;manual"
|
||||
],
|
||||
jBossLogger() + ";true;" + ["debug", "error", "fatal", "info", "trace", "warn"] + ["f", "v"]
|
||||
+
|
||||
[
|
||||
";(String,Object[]);;Argument[0..1];logging;manual",
|
||||
";(String,Object);;Argument[0..1];logging;manual",
|
||||
";(String,Object,Object);;Argument[0..2];logging;manual",
|
||||
";(String,Object,Object,Object);;Argument[0..3];logging;manual",
|
||||
";(String,Object,Object,Object,Object);;Argument[0..4];logging;manual",
|
||||
";(Throwable,String,Object);;Argument[1..2];logging;manual",
|
||||
";(Throwable,String,Object,Object);;Argument[1..3];logging;manual",
|
||||
";(Throwable,String,Object,Object,Object);;Argument[0..4];logging;manual"
|
||||
],
|
||||
jBossLogger() + ";true;log" + ["f", "v"] +
|
||||
[
|
||||
";(Level,String,Object[]);;Argument[1..2];logging;manual",
|
||||
";(Level,String,Object);;Argument[1..2];logging;manual",
|
||||
";(Level,String,Object,Object);;Argument[1..3];logging;manual",
|
||||
";(Level,String,Object,Object,Object);;Argument[1..4];logging;manual",
|
||||
";(Level,String,Object,Object,Object,Object);;Argument[1..5];logging;manual",
|
||||
";(Level,Throwable,String,Object);;Argument[2..3];logging;manual",
|
||||
";(Level,Throwable,String,Object,Object);;Argument[2..4];logging;manual",
|
||||
";(Level,Throwable,String,Object,Object,Object);;Argument[1..5];logging;manual",
|
||||
";(String,Level,Throwable,String,Object[]);;Argument[3..4];logging;manual",
|
||||
";(String,Level,Throwable,String,Object);;Argument[3..4];logging;manual",
|
||||
";(String,Level,Throwable,String,Object,Object);;Argument[3..5];logging;manual",
|
||||
";(String,Level,Throwable,String,Object,Object,Object);;Argument[3..6];logging;manual"
|
||||
],
|
||||
// org.slf4j.spi.LoggingEventBuilder
|
||||
"org.slf4j.spi;LoggingEventBuilder;true;log;;;Argument[0];logging;manual",
|
||||
"org.slf4j.spi;LoggingEventBuilder;true;log;(String,Object);;Argument[0..1];logging;manual",
|
||||
"org.slf4j.spi;LoggingEventBuilder;true;log;(String,Object[]);;Argument[0..1];logging;manual",
|
||||
"org.slf4j.spi;LoggingEventBuilder;true;log;(String,Object,Object);;Argument[0..2];logging;manual",
|
||||
"org.slf4j.spi;LoggingEventBuilder;true;log;(Supplier);;Argument[0];logging;manual",
|
||||
// org.slf4j.Logger
|
||||
"org.slf4j;Logger;true;" + ["debug", "error", "info", "trace", "warn"] +
|
||||
[
|
||||
";(String);;Argument[0];logging;manual",
|
||||
";(String,Object);;Argument[0..1];logging;manual",
|
||||
";(String,Object[]);;Argument[0..1];logging;manual",
|
||||
";(String,Object,Object);;Argument[0..2];logging;manual",
|
||||
";(String,Throwable);;Argument[0];logging;manual",
|
||||
";(Marker,String);;Argument[1];logging;manual",
|
||||
";(Marker,String,Object);;Argument[1..2];logging;manual",
|
||||
";(Marker,String,Object[]);;Argument[1..2];logging;manual",
|
||||
";(Marker,String,Object,Object);;Argument[1..3];logging;manual",
|
||||
";(Marker,String,Object,Object,Object);;Argument[1..4];logging;manual"
|
||||
],
|
||||
// org.scijava.Logger
|
||||
"org.scijava.log;Logger;true;alwaysLog;(int,Object,Throwable);;Argument[1];logging;manual",
|
||||
"org.scijava.log;Logger;true;" + ["debug", "error", "info", "trace", "warn"] +
|
||||
[
|
||||
";(Object);;Argument[0];logging;manual",
|
||||
";(Object,Throwable);;Argument[0];logging;manual"
|
||||
], "org.scijava.log;Logger;true;log;(int,Object);;Argument[1];logging;manual",
|
||||
"org.scijava.log;Logger;true;log;(int,Object,Throwable);;Argument[1];logging;manual",
|
||||
// com.google.common.flogger.LoggingApi
|
||||
"com.google.common.flogger;LoggingApi;true;logVarargs;;;Argument[0..1];logging;manual",
|
||||
"com.google.common.flogger;LoggingApi;true;log" +
|
||||
[
|
||||
";;;Argument[0];logging;manual", ";(String,Object);;Argument[1];logging;manual",
|
||||
";(String,Object,Object);;Argument[1..2];logging;manual",
|
||||
";(String,Object,Object,Object);;Argument[1..3];logging;manual",
|
||||
";(String,Object,Object,Object,Object);;Argument[1..4];logging;manual",
|
||||
";(String,Object,Object,Object,Object,Object);;Argument[1..5];logging;manual",
|
||||
";(String,Object,Object,Object,Object,Object,Object);;Argument[1..6];logging;manual",
|
||||
";(String,Object,Object,Object,Object,Object,Object,Object);;Argument[1..7];logging;manual",
|
||||
";(String,Object,Object,Object,Object,Object,Object,Object,Object);;Argument[1..8];logging;manual",
|
||||
";(String,Object,Object,Object,Object,Object,Object,Object,Object,Object);;Argument[1..9];logging;manual",
|
||||
";(String,Object,Object,Object,Object,Object,Object,Object,Object,Object,Object);;Argument[1..10];logging;manual",
|
||||
";(String,Object,Object,Object,Object,Object,Object,Object,Object,Object,Object,Object[]);;Argument[1..11];logging;manual",
|
||||
";(String,Object,boolean);;Argument[1];logging;manual",
|
||||
";(String,Object,char);;Argument[1];logging;manual",
|
||||
";(String,Object,byte);;Argument[1];logging;manual",
|
||||
";(String,Object,short);;Argument[1];logging;manual",
|
||||
";(String,Object,int);;Argument[1];logging;manual",
|
||||
";(String,Object,long);;Argument[1];logging;manual",
|
||||
";(String,Object,float);;Argument[1];logging;manual",
|
||||
";(String,Object,double);;Argument[1];logging;manual",
|
||||
";(String,boolean,Object);;Argument[2];logging;manual",
|
||||
";(String,char,Object);;Argument[2];logging;manual",
|
||||
";(String,byte,Object);;Argument[2];logging;manual",
|
||||
";(String,short,Object);;Argument[2];logging;manual",
|
||||
";(String,int,Object);;Argument[2];logging;manual",
|
||||
";(String,long,Object);;Argument[2];logging;manual",
|
||||
";(String,float,Object);;Argument[2];logging;manual",
|
||||
";(String,double,Object);;Argument[2];logging;manual"
|
||||
],
|
||||
// java.lang.System$Logger
|
||||
"java.lang;System$Logger;true;log;" +
|
||||
[
|
||||
"(Level,Object);;Argument[1]", "(Level,String);;Argument[1]",
|
||||
"(Level,String,Object[]);;Argument[1..2]", "(Level,String,Throwable);;Argument[1]",
|
||||
"(Level,String,Supplier);;Argument[1..2]",
|
||||
"(Level,String,Supplier,Throwable);;Argument[1..2]",
|
||||
"(Level,ResourceBundle,String,Object[]);;Argument[2..3]",
|
||||
"(Level,ResourceBundle,String,Throwable);;Argument[2]"
|
||||
] + ";logging;manual",
|
||||
// java.util.logging.Logger
|
||||
"java.util.logging;Logger;true;" +
|
||||
["config", "fine", "finer", "finest", "info", "severe", "warning"] +
|
||||
";;;Argument[0];logging;manual",
|
||||
"java.util.logging;Logger;true;entering;(String,String);;Argument[0..1];logging;manual",
|
||||
"java.util.logging;Logger;true;entering;(String,String,Object);;Argument[0..2];logging;manual",
|
||||
"java.util.logging;Logger;true;entering;(String,String,Object[]);;Argument[0..2];logging;manual",
|
||||
"java.util.logging;Logger;true;exiting;(String,String);;Argument[0..1];logging;manual",
|
||||
"java.util.logging;Logger;true;exiting;(String,String,Object);;Argument[0..2];logging;manual",
|
||||
"java.util.logging;Logger;true;log;(Level,String);;Argument[1];logging;manual",
|
||||
"java.util.logging;Logger;true;log;(Level,String,Object);;Argument[1..2];logging;manual",
|
||||
"java.util.logging;Logger;true;log;(Level,String,Object[]);;Argument[1..2];logging;manual",
|
||||
"java.util.logging;Logger;true;log;(Level,String,Throwable);;Argument[1];logging;manual",
|
||||
"java.util.logging;Logger;true;log;(Level,Supplier);;Argument[1];logging;manual",
|
||||
"java.util.logging;Logger;true;log;(Level,Throwable,Supplier);;Argument[2];logging;manual",
|
||||
"java.util.logging;Logger;true;log;(LogRecord);;Argument[0];logging;manual",
|
||||
"java.util.logging;Logger;true;logp;(Level,String,String,String);;Argument[1..3];logging;manual",
|
||||
"java.util.logging;Logger;true;logp;(Level,String,String,String,Object);;Argument[1..4];logging;manual",
|
||||
"java.util.logging;Logger;true;logp;(Level,String,String,String,Object[]);;Argument[1..4];logging;manual",
|
||||
"java.util.logging;Logger;true;logp;(Level,String,String,String,Throwable);;Argument[1..3];logging;manual",
|
||||
"java.util.logging;Logger;true;logp;(Level,String,String,Supplier);;Argument[1..3];logging;manual",
|
||||
"java.util.logging;Logger;true;logp;(Level,String,String,Throwable,Supplier);;Argument[1..2];logging;manual",
|
||||
"java.util.logging;Logger;true;logp;(Level,String,String,Throwable,Supplier);;Argument[4];logging;manual",
|
||||
"java.util.logging;Logger;true;logrb;(Level,String,String,ResourceBundle,String,Object[]);;Argument[1..2];logging;manual",
|
||||
"java.util.logging;Logger;true;logrb;(Level,String,String,ResourceBundle,String,Object[]);;Argument[4..5];logging;manual",
|
||||
"java.util.logging;Logger;true;logrb;(Level,String,String,ResourceBundle,String,Throwable);;Argument[1..2];logging;manual",
|
||||
"java.util.logging;Logger;true;logrb;(Level,String,String,ResourceBundle,String,Throwable);;Argument[4];logging;manual",
|
||||
"java.util.logging;Logger;true;logrb;(Level,String,String,String,String);;Argument[1..4];logging;manual",
|
||||
"java.util.logging;Logger;true;logrb;(Level,String,String,String,String,Object);;Argument[1..5];logging;manual",
|
||||
"java.util.logging;Logger;true;logrb;(Level,String,String,String,String,Object[]);;Argument[1..5];logging;manual",
|
||||
"java.util.logging;Logger;true;logrb;(Level,String,String,String,String,Throwable);;Argument[1..4];logging;manual",
|
||||
// android.util.Log
|
||||
"android.util;Log;true;" + ["d", "v", "i", "w", "e", "wtf"] +
|
||||
";;;Argument[1];logging;manual"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -12,21 +12,6 @@ class MyBatisSqlRunner extends RefType {
|
||||
MyBatisSqlRunner() { this.hasQualifiedName("org.apache.ibatis.jdbc", "SqlRunner") }
|
||||
}
|
||||
|
||||
private class SqlSinkCsv extends SinkModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
//"package;type;overrides;name;signature;ext;spec;kind"
|
||||
"org.apache.ibatis.jdbc;SqlRunner;false;delete;(String,Object[]);;Argument[0];sql;manual",
|
||||
"org.apache.ibatis.jdbc;SqlRunner;false;insert;(String,Object[]);;Argument[0];sql;manual",
|
||||
"org.apache.ibatis.jdbc;SqlRunner;false;run;(String);;Argument[0];sql;manual",
|
||||
"org.apache.ibatis.jdbc;SqlRunner;false;selectAll;(String,Object[]);;Argument[0];sql;manual",
|
||||
"org.apache.ibatis.jdbc;SqlRunner;false;selectOne;(String,Object[]);;Argument[0];sql;manual",
|
||||
"org.apache.ibatis.jdbc;SqlRunner;false;update;(String,Object[]);;Argument[0];sql;manual"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
/** The class `org.apache.ibatis.session.Configuration`. */
|
||||
class IbatisConfiguration extends RefType {
|
||||
IbatisConfiguration() { this.hasQualifiedName("org.apache.ibatis.session", "Configuration") }
|
||||
@@ -144,74 +129,3 @@ private class MyBatisProviderStep extends TaintTracking::AdditionalValueStep {
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
private class MyBatisAbstractSqlToStringStep extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row = "org.apache.ibatis.jdbc;AbstractSQL;true;toString;;;Argument[-1];ReturnValue;taint;manual"
|
||||
}
|
||||
}
|
||||
|
||||
private class MyBatisAbstractSqlMethodsStep extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"org.apache.ibatis.jdbc;AbstractSQL;true;toString;;;Argument[-1];ReturnValue;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;VALUES;(String,String);;Argument[0..1];Argument[-1];taint;manual",
|
||||
"org.apache.ibatis.jdbc;AbstractSQL;true;UPDATE;(String);;Argument[0];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;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;SELECT;(String);;Argument[0];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;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;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;OFFSET_ROWS;(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;LIMIT;(String);;Argument[0];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;JOIN;(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;INTO_COLUMNS;(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;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;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;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;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;FETCH_FIRST_ROWS_ONLY;(String);;Argument[0];Argument[-1];taint;manual",
|
||||
"org.apache.ibatis.jdbc;AbstractSQL;true;DELETE_FROM;(String);;Argument[0];Argument[-1];taint;manual"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
/** Definitions of taint steps in Objects class of the JDK */
|
||||
|
||||
import java
|
||||
private import semmle.code.java.dataflow.ExternalFlow
|
||||
|
||||
private class ObjectsSummaryCsv extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
//`namespace; type; subtypes; name; signature; ext; input; output; kind`
|
||||
"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"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,71 +0,0 @@
|
||||
/**
|
||||
* Provides classes and predicates for working with the OkHttp client.
|
||||
*/
|
||||
|
||||
import java
|
||||
private import semmle.code.java.dataflow.ExternalFlow
|
||||
|
||||
private class OkHttpOpenUrlSinks extends SinkModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"okhttp3;Request;true;Request;;;Argument[0];open-url;manual",
|
||||
"okhttp3;Request$Builder;true;url;;;Argument[0];open-url;manual"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
private class OKHttpSummaries extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"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",
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,30 +0,0 @@
|
||||
/** Definitions related to `java.util.Optional`. */
|
||||
|
||||
private import semmle.code.java.dataflow.ExternalFlow
|
||||
|
||||
private class OptionalModel extends SummaryModelCsv {
|
||||
override predicate row(string s) {
|
||||
s =
|
||||
[
|
||||
"java.util;Optional;false;filter;;;Argument[-1].Element;ReturnValue.Element;value;manual",
|
||||
"java.util;Optional;false;filter;;;Argument[-1].Element;Argument[0].Parameter[0];value;manual",
|
||||
"java.util;Optional;false;flatMap;;;Argument[-1].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;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[0].ReturnValue;ReturnValue;value;manual",
|
||||
"java.util;Optional;false;orElse;;;Argument[-1].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[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"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,58 +0,0 @@
|
||||
/**
|
||||
* Provides classes and predicates related to RabbitMQ.
|
||||
*/
|
||||
|
||||
import java
|
||||
private import semmle.code.java.dataflow.ExternalFlow
|
||||
|
||||
/**
|
||||
* Defines remote sources in RabbitMQ.
|
||||
*/
|
||||
private class RabbitMQSource extends SourceModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
// soruces for RabbitMQ 4.x
|
||||
"com.rabbitmq.client;Command;true;getContentHeader;();;ReturnValue;remote;manual",
|
||||
"com.rabbitmq.client;Command;true;getContentBody;();;ReturnValue;remote;manual",
|
||||
"com.rabbitmq.client;Consumer;true;handleDelivery;(String,Envelope,BasicProperties,byte[]);;Parameter[3];remote;manual",
|
||||
"com.rabbitmq.client;QueueingConsumer;true;nextDelivery;;;ReturnValue;remote;manual",
|
||||
"com.rabbitmq.client;RpcServer;true;handleCall;(Delivery,BasicProperties);;Parameter[0];remote;manual",
|
||||
"com.rabbitmq.client;RpcServer;true;handleCall;(BasicProperties,byte[],BasicProperties);;Parameter[1];remote;manual",
|
||||
"com.rabbitmq.client;RpcServer;true;handleCall;(byte[],BasicProperties);;Parameter[0];remote;manual",
|
||||
"com.rabbitmq.client;RpcServer;true;preprocessReplyProperties;(Delivery,Builder);;Parameter[0];remote;manual",
|
||||
"com.rabbitmq.client;RpcServer;true;postprocessReplyProperties;(Delivery,Builder);;Parameter[0];remote;manual",
|
||||
"com.rabbitmq.client;RpcServer;true;handleCast;(Delivery);;Parameter[0];remote;manual",
|
||||
"com.rabbitmq.client;RpcServer;true;handleCast;(BasicProperties,byte[]);;Parameter[1];remote;manual",
|
||||
"com.rabbitmq.client;RpcServer;true;handleCast;(byte[]);;Parameter[0];remote;manual",
|
||||
"com.rabbitmq.client;StringRpcServer;true;handleStringCall;;;Parameter[0];remote;manual",
|
||||
"com.rabbitmq.client;RpcClient;true;doCall;;;ReturnValue;remote;manual",
|
||||
"com.rabbitmq.client;RpcClient;true;primitiveCall;;;ReturnValue;remote;manual",
|
||||
"com.rabbitmq.client;RpcClient;true;responseCall;;;ReturnValue;remote;manual",
|
||||
"com.rabbitmq.client;RpcClient;true;stringCall;(String);;ReturnValue;remote;manual",
|
||||
"com.rabbitmq.client;RpcClient;true;mapCall;;;ReturnValue;remote;manual",
|
||||
"com.rabbitmq.client.impl;Frame;true;getInputStream;();;ReturnValue;remote;manual",
|
||||
"com.rabbitmq.client.impl;Frame;true;getPayload;();;ReturnValue;remote;manual",
|
||||
"com.rabbitmq.client.impl;FrameHandler;true;readFrame;();;ReturnValue;remote;manual",
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Defines flow steps in RabbitMQ.
|
||||
*/
|
||||
private class RabbitMQSummaryCsv extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
// flow steps for RabbitMQ 4.x
|
||||
"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;RpcClient$Response;true;getBody;();;Argument[-1];ReturnValue;taint;manual",
|
||||
"com.rabbitmq.client;QueueingConsumer$Delivery;true;getBody;();;Argument[-1];ReturnValue;taint;manual",
|
||||
"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",
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -22,20 +22,3 @@ class PatternLiteralField extends Field {
|
||||
this.hasName("LITERAL")
|
||||
}
|
||||
}
|
||||
|
||||
private class RegexModel extends SummaryModelCsv {
|
||||
override predicate row(string s) {
|
||||
s =
|
||||
[
|
||||
//`namespace; type; subtypes; name; signature; ext; input; output; kind`
|
||||
"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;replaceAll;;;Argument[0];ReturnValue;taint;manual",
|
||||
"java.util.regex;Matcher;false;replaceFirst;;;Argument[-1];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",
|
||||
"java.util.regex;Pattern;false;split;;;Argument[0];ReturnValue;taint;manual",
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
/**
|
||||
* Provides classes and predicates for working with the Retrofit API client.
|
||||
*/
|
||||
|
||||
import java
|
||||
private import semmle.code.java.dataflow.ExternalFlow
|
||||
|
||||
private class RetrofitOpenUrlSinks extends SinkModelCsv {
|
||||
override predicate row(string row) {
|
||||
row = "retrofit2;Retrofit$Builder;true;baseUrl;;;Argument[0];open-url;manual"
|
||||
}
|
||||
}
|
||||
@@ -9,45 +9,3 @@ private import semmle.code.java.dataflow.ExternalFlow
|
||||
class JdbcTemplate extends RefType {
|
||||
JdbcTemplate() { this.hasQualifiedName("org.springframework.jdbc.core", "JdbcTemplate") }
|
||||
}
|
||||
|
||||
private class SqlSinkCsv extends SinkModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
//"package;type;overrides;name;signature;ext;spec;kind"
|
||||
"org.springframework.jdbc.core;JdbcTemplate;false;batchUpdate;(String[]);;Argument[0];sql;manual",
|
||||
"org.springframework.jdbc.core;JdbcTemplate;false;batchUpdate;;;Argument[0];sql;manual",
|
||||
"org.springframework.jdbc.core;JdbcTemplate;false;execute;;;Argument[0];sql;manual",
|
||||
"org.springframework.jdbc.core;JdbcTemplate;false;update;;;Argument[0];sql;manual",
|
||||
"org.springframework.jdbc.core;JdbcTemplate;false;query;;;Argument[0];sql;manual",
|
||||
"org.springframework.jdbc.core;JdbcTemplate;false;queryForList;;;Argument[0];sql;manual",
|
||||
"org.springframework.jdbc.core;JdbcTemplate;false;queryForMap;;;Argument[0];sql;manual",
|
||||
"org.springframework.jdbc.core;JdbcTemplate;false;queryForObject;;;Argument[0];sql;manual",
|
||||
"org.springframework.jdbc.core;JdbcTemplate;false;queryForRowSet;;;Argument[0];sql;manual",
|
||||
"org.springframework.jdbc.core;JdbcTemplate;false;queryForStream;;;Argument[0];sql;manual",
|
||||
"org.springframework.jdbc.object;BatchSqlUpdate;false;BatchSqlUpdate;;;Argument[1];sql;manual",
|
||||
"org.springframework.jdbc.object;MappingSqlQuery;false;BatchSqlUpdate;;;Argument[1];sql;manual",
|
||||
"org.springframework.jdbc.object;MappingSqlQueryWithParameters;false;BatchSqlUpdate;;;Argument[1];sql;manual",
|
||||
"org.springframework.jdbc.object;RdbmsOperation;true;setSql;;;Argument[0];sql;manual",
|
||||
"org.springframework.jdbc.object;SqlCall;false;SqlCall;;;Argument[1];sql;manual",
|
||||
"org.springframework.jdbc.object;SqlFunction;false;SqlFunction;;;Argument[1];sql;manual",
|
||||
"org.springframework.jdbc.object;SqlQuery;false;SqlQuery;;;Argument[1];sql;manual",
|
||||
"org.springframework.jdbc.object;SqlUpdate;false;SqlUpdate;;;Argument[1];sql;manual",
|
||||
"org.springframework.jdbc.object;UpdatableSqlQuery;false;UpdatableSqlQuery;;;Argument[1];sql;manual"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
private class SsrfSinkCsv extends SinkModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
//"package;type;overrides;name;signature;ext;spec;kind"
|
||||
"org.springframework.boot.jdbc;DataSourceBuilder;false;url;(String);;Argument[0];jdbc-url;manual",
|
||||
"org.springframework.jdbc.datasource;AbstractDriverBasedDataSource;false;setUrl;(String);;Argument[0];jdbc-url;manual",
|
||||
"org.springframework.jdbc.datasource;DriverManagerDataSource;false;DriverManagerDataSource;(String);;Argument[0];jdbc-url;manual",
|
||||
"org.springframework.jdbc.datasource;DriverManagerDataSource;false;DriverManagerDataSource;(String,String,String);;Argument[0];jdbc-url;manual",
|
||||
"org.springframework.jdbc.datasource;DriverManagerDataSource;false;DriverManagerDataSource;(String,Properties);;Argument[0];jdbc-url;manual"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -96,95 +96,3 @@ private class RequiredComponentStackForCollect extends RequiredSummaryComponentS
|
||||
tail = SummaryComponentStack::return()
|
||||
}
|
||||
}
|
||||
|
||||
private class StreamModel extends SummaryModelCsv {
|
||||
override predicate row(string s) {
|
||||
s =
|
||||
[
|
||||
"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[0].ReturnValue;Argument[1].Parameter[0];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[1].Parameter[0];Argument[2].Parameter[0..1];value;manual",
|
||||
"java.util.stream;Stream;true;collect;(Supplier,BiConsumer,BiConsumer);;Argument[2].Parameter[0..1];Argument[1].Parameter[0];value;manual",
|
||||
"java.util.stream;Stream;true;collect;(Supplier,BiConsumer,BiConsumer);;Argument[-1].Element;Argument[1].Parameter[1];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;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;generate;(Supplier);;Argument[0].ReturnValue;ReturnValue.Element;value;manual",
|
||||
"java.util.stream;Stream;true;iterate;(Object,Predicate,UnaryOperator);;Argument[0];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[2].ReturnValue;ReturnValue.Element;value;manual",
|
||||
"java.util.stream;Stream;true;iterate;(Object,Predicate,UnaryOperator);;Argument[2].ReturnValue;Argument[1..2].Parameter[0];value;manual",
|
||||
"java.util.stream;Stream;true;iterate;(Object,UnaryOperator);;Argument[0];ReturnValue.Element;value;manual",
|
||||
"java.util.stream;Stream;true;iterate;(Object,UnaryOperator);;Argument[0];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;iterate;(Object,UnaryOperator);;Argument[1].ReturnValue;Argument[1].Parameter[0];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;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;ReturnValue.Element;value;manual",
|
||||
"java.util.stream;Stream;true;max;(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;min;(Comparator);;Argument[-1].Element;Argument[0].Parameter[0..1];value;manual",
|
||||
"java.util.stream;Stream;true;noneMatch;(Predicate);;Argument[-1].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;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,BinaryOperator);;Argument[-1].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;reduce;(Object,BiFunction,BinaryOperator);;Argument[-1].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;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"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,70 +0,0 @@
|
||||
/** Definitions of taint steps in String and String-related classes of the JDK */
|
||||
|
||||
import java
|
||||
private import semmle.code.java.dataflow.ExternalFlow
|
||||
|
||||
private class StringSummaryCsv extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
//`namespace; type; subtypes; name; signature; ext; input; output; kind`
|
||||
"java.lang;String;false;concat;(String);;Argument[0];ReturnValue;taint;manual",
|
||||
"java.lang;String;false;concat;(String);;Argument[-1];ReturnValue;taint;manual",
|
||||
"java.lang;String;false;copyValueOf;;;Argument[0];ReturnValue;taint;manual",
|
||||
"java.lang;String;false;endsWith;;;Argument[-1];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[0].ArrayElement;ReturnValue;taint;manual",
|
||||
"java.lang;String;false;getChars;;;Argument[-1];Argument[2];taint;manual",
|
||||
"java.lang;String;false;getBytes;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"java.lang;String;false;getBytes;;;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;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;replace;;;Argument[1];ReturnValue;taint;manual",
|
||||
"java.lang;String;false;replaceAll;;;Argument[-1];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[1];ReturnValue;taint;manual",
|
||||
"java.lang;String;false;split;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"java.lang;String;false;String;;;Argument[0];Argument[-1];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;valueOf;(char);;Argument[0];ReturnValue;taint;manual",
|
||||
"java.lang;String;false;valueOf;(char[],int,int);;Argument[0];ReturnValue;taint;manual",
|
||||
"java.lang;String;false;valueOf;(char[]);;Argument[0];ReturnValue;taint;manual",
|
||||
"java.lang;AbstractStringBuilder;true;AbstractStringBuilder;(String);;Argument[0];Argument[-1];taint;manual",
|
||||
"java.lang;AbstractStringBuilder;true;append;;;Argument[0];Argument[-1];taint;manual",
|
||||
"java.lang;AbstractStringBuilder;true;append;;;Argument[-1];ReturnValue;value;manual",
|
||||
"java.lang;AbstractStringBuilder;true;getChars;;;Argument[-1];Argument[2];taint;manual",
|
||||
"java.lang;AbstractStringBuilder;true;insert;;;Argument[1];Argument[-1];taint;manual",
|
||||
"java.lang;AbstractStringBuilder;true;insert;;;Argument[-1];ReturnValue;value;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;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;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"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
/**
|
||||
* Provides classes and predicates for working with the Thymeleaf template engine.
|
||||
*/
|
||||
|
||||
import java
|
||||
private import semmle.code.java.dataflow.ExternalFlow
|
||||
|
||||
private class ThymeleafSummaryModels extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"org.thymeleaf;TemplateSpec;false;TemplateSpec;;;Argument[0];Argument[-1];taint;manual",
|
||||
"org.thymeleaf;TemplateSpec;false;getTemplate;;;Argument[-1];ReturnValue;taint;manual",
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -103,74 +103,6 @@ class AndroidContentResolver extends AndroidComponent {
|
||||
}
|
||||
}
|
||||
|
||||
private class UriModel extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"android.net;Uri;true;buildUpon;;;Argument[-1];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;false;parse;;;Argument[0];ReturnValue;taint;manual",
|
||||
"android.net;Uri;true;toString;;;Argument[-1];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[0];Argument[-1];taint;manual",
|
||||
"android.net;Uri$Builder;false;appendEncodedPath;;;Argument[-1];ReturnValue;value;manual",
|
||||
"android.net;Uri$Builder;false;appendPath;;;Argument[0];Argument[-1];taint;manual",
|
||||
"android.net;Uri$Builder;false;appendPath;;;Argument[-1];ReturnValue;value;manual",
|
||||
"android.net;Uri$Builder;false;appendQueryParameter;;;Argument[0..1];Argument[-1];taint;manual",
|
||||
"android.net;Uri$Builder;false;appendQueryParameter;;;Argument[-1];ReturnValue;value;manual",
|
||||
"android.net;Uri$Builder;false;authority;;;Argument[0];Argument[-1];taint;manual",
|
||||
"android.net;Uri$Builder;false;authority;;;Argument[-1];ReturnValue;value;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[0];Argument[-1];taint;manual",
|
||||
"android.net;Uri$Builder;false;encodedAuthority;;;Argument[-1];ReturnValue;value;manual",
|
||||
"android.net;Uri$Builder;false;encodedFragment;;;Argument[0];Argument[-1];taint;manual",
|
||||
"android.net;Uri$Builder;false;encodedFragment;;;Argument[-1];ReturnValue;value;manual",
|
||||
"android.net;Uri$Builder;false;encodedOpaquePart;;;Argument[0];Argument[-1];taint;manual",
|
||||
"android.net;Uri$Builder;false;encodedOpaquePart;;;Argument[-1];ReturnValue;value;manual",
|
||||
"android.net;Uri$Builder;false;encodedPath;;;Argument[0];Argument[-1];taint;manual",
|
||||
"android.net;Uri$Builder;false;encodedPath;;;Argument[-1];ReturnValue;value;manual",
|
||||
"android.net;Uri$Builder;false;encodedQuery;;;Argument[0];Argument[-1];taint;manual",
|
||||
"android.net;Uri$Builder;false;encodedQuery;;;Argument[-1];ReturnValue;value;manual",
|
||||
"android.net;Uri$Builder;false;fragment;;;Argument[0];Argument[-1];taint;manual",
|
||||
"android.net;Uri$Builder;false;fragment;;;Argument[-1];ReturnValue;value;manual",
|
||||
"android.net;Uri$Builder;false;opaquePart;;;Argument[0];Argument[-1];taint;manual",
|
||||
"android.net;Uri$Builder;false;opaquePart;;;Argument[-1];ReturnValue;value;manual",
|
||||
"android.net;Uri$Builder;false;path;;;Argument[0];Argument[-1];taint;manual",
|
||||
"android.net;Uri$Builder;false;path;;;Argument[-1];ReturnValue;value;manual",
|
||||
"android.net;Uri$Builder;false;query;;;Argument[0];Argument[-1];taint;manual",
|
||||
"android.net;Uri$Builder;false;query;;;Argument[-1];ReturnValue;value;manual",
|
||||
"android.net;Uri$Builder;false;scheme;;;Argument[0];Argument[-1];taint;manual",
|
||||
"android.net;Uri$Builder;false;scheme;;;Argument[-1];ReturnValue;value;manual",
|
||||
"android.net;Uri$Builder;false;toString;;;Argument[-1];ReturnValue;taint;manual"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
/** Interface for classes whose instances can be written to and restored from a Parcel. */
|
||||
class TypeParcelable extends Interface {
|
||||
TypeParcelable() { this.hasQualifiedName("android.os", "Parcelable") }
|
||||
@@ -185,29 +117,3 @@ class CreateFromParcelMethod extends Method {
|
||||
this.getEnclosingCallable().getDeclaringType().getAnAncestor() instanceof TypeParcelable
|
||||
}
|
||||
}
|
||||
|
||||
private class ParcelPropagationModels extends SummaryModelCsv {
|
||||
override predicate row(string s) {
|
||||
// Parcel readers that return their value
|
||||
s =
|
||||
"android.os;Parcel;false;read" +
|
||||
[
|
||||
"Array", "ArrayList", "Boolean", "Bundle", "Byte", "Double", "FileDescriptor", "Float",
|
||||
"HashMap", "Int", "Long", "Parcelable", "ParcelableArray", "PersistableBundle",
|
||||
"Serializable", "Size", "SizeF", "SparseArray", "SparseBooleanArray", "String",
|
||||
"StrongBinder", "TypedObject", "Value"
|
||||
] + ";;;Argument[-1];ReturnValue;taint;manual"
|
||||
or
|
||||
// Parcel readers that write to an existing object
|
||||
s =
|
||||
"android.os;Parcel;false;read" +
|
||||
[
|
||||
"BinderArray", "BinderList", "BooleanArray", "ByteArray", "CharArray", "DoubleArray",
|
||||
"FloatArray", "IntArray", "List", "LongArray", "Map", "ParcelableList", "StringArray",
|
||||
"StringList", "TypedArray", "TypedList"
|
||||
] + ";;;Argument[-1];Argument[0];taint;manual"
|
||||
or
|
||||
// One Parcel method that aliases an argument to a return value
|
||||
s = "android.os;Parcel;false;readParcelableList;;;Argument[0];ReturnValue;value;manual"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,107 +9,3 @@ private import semmle.code.java.dataflow.ExternalFlow
|
||||
class ContentValues extends Class {
|
||||
ContentValues() { this.hasQualifiedName("android.content", "ContentValues") }
|
||||
}
|
||||
|
||||
private class ContentProviderSourceModels extends SourceModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
// ContentInterface models are here for backwards compatibility (it was removed in API 28)
|
||||
"android.content;ContentInterface;true;call;(String,String,String,Bundle);;Parameter[0..3];contentprovider;manual",
|
||||
"android.content;ContentProvider;true;call;(String,String,String,Bundle);;Parameter[0..3];contentprovider;manual",
|
||||
"android.content;ContentProvider;true;call;(String,String,Bundle);;Parameter[0..2];contentprovider;manual",
|
||||
"android.content;ContentProvider;true;delete;(Uri,String,String[]);;Parameter[0..2];contentprovider;manual",
|
||||
"android.content;ContentInterface;true;delete;(Uri,Bundle);;Parameter[0..1];contentprovider;manual",
|
||||
"android.content;ContentProvider;true;delete;(Uri,Bundle);;Parameter[0..1];contentprovider;manual",
|
||||
"android.content;ContentInterface;true;getType;(Uri);;Parameter[0];contentprovider;manual",
|
||||
"android.content;ContentProvider;true;getType;(Uri);;Parameter[0];contentprovider;manual",
|
||||
"android.content;ContentInterface;true;insert;(Uri,ContentValues,Bundle);;Parameter[0];contentprovider;manual",
|
||||
"android.content;ContentProvider;true;insert;(Uri,ContentValues,Bundle);;Parameter[0..2];contentprovider;manual",
|
||||
"android.content;ContentProvider;true;insert;(Uri,ContentValues);;Parameter[0..1];contentprovider;manual",
|
||||
"android.content;ContentInterface;true;openAssetFile;(Uri,String,CancellationSignal);;Parameter[0];contentprovider;manual",
|
||||
"android.content;ContentProvider;true;openAssetFile;(Uri,String,CancellationSignal);;Parameter[0];contentprovider;manual",
|
||||
"android.content;ContentProvider;true;openAssetFile;(Uri,String);;Parameter[0];contentprovider;manual",
|
||||
"android.content;ContentInterface;true;openTypedAssetFile;(Uri,String,Bundle,CancellationSignal);;Parameter[0..2];contentprovider;manual",
|
||||
"android.content;ContentProvider;true;openTypedAssetFile;(Uri,String,Bundle,CancellationSignal);;Parameter[0..2];contentprovider;manual",
|
||||
"android.content;ContentProvider;true;openTypedAssetFile;(Uri,String,Bundle);;Parameter[0..2];contentprovider;manual",
|
||||
"android.content;ContentInterface;true;openFile;(Uri,String,CancellationSignal);;Parameter[0];contentprovider;manual",
|
||||
"android.content;ContentProvider;true;openFile;(Uri,String,CancellationSignal);;Parameter[0];contentprovider;manual",
|
||||
"android.content;ContentProvider;true;openFile;(Uri,String);;Parameter[0];contentprovider;manual",
|
||||
"android.content;ContentInterface;true;query;(Uri,String[],Bundle,CancellationSignal);;Parameter[0..2];contentprovider;manual",
|
||||
"android.content;ContentProvider;true;query;(Uri,String[],Bundle,CancellationSignal);;Parameter[0..2];contentprovider;manual",
|
||||
"android.content;ContentProvider;true;query;(Uri,String[],String,String[],String);;Parameter[0..4];contentprovider;manual",
|
||||
"android.content;ContentProvider;true;query;(Uri,String[],String,String[],String,CancellationSignal);;Parameter[0..4];contentprovider;manual",
|
||||
"android.content;ContentInterface;true;update;(Uri,ContentValues,Bundle);;Parameter[0..2];contentprovider;manual",
|
||||
"android.content;ContentProvider;true;update;(Uri,ContentValues,Bundle);;Parameter[0..2];contentprovider;manual",
|
||||
"android.content;ContentProvider;true;update;(Uri,ContentValues,String,String[]);;Parameter[0..3];contentprovider;manual"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
private class SummaryModels extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"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;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",
|
||||
"android.content;ContentResolver;true;call;;;Argument[0];ReturnValue;taint;manual",
|
||||
"android.content;ContentResolver;true;canonicalize;;;Argument[0];ReturnValue;taint;manual",
|
||||
"android.content;ContentResolver;true;getStreamTypes;;;Argument[0];ReturnValue;taint;manual",
|
||||
"android.content;ContentResolver;true;getType;;;Argument[0];ReturnValue;taint;manual",
|
||||
"android.content;ContentResolver;true;insert;;;Argument[0];ReturnValue;taint;manual",
|
||||
"android.content;ContentResolver;true;query;;;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",
|
||||
// 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;ContentProviderOperation;false;apply;;;Argument[0];ReturnValue;taint;manual",
|
||||
"android.content;ContentProviderOperation;false;getUri;;;Argument[-1];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",
|
||||
"android.content;ContentProviderOperation;false;newInsert;;;Argument[0];ReturnValue;taint;manual",
|
||||
"android.content;ContentProviderOperation;false;newUpdate;;;Argument[0];ReturnValue;taint;manual",
|
||||
"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;(Uri);;Argument[0];Argument[-1].Field[android.content.ContentProviderResult.uri];value;manual",
|
||||
"android.content;ContentProviderResult;false;ContentProviderResult;(Bundle);;Argument[0];Argument[-1].Field[android.content.ContentProviderResult.extras];value;manual",
|
||||
"android.content;ContentProviderResult;false;ContentProviderResult;(Throwable);;Argument[0];Argument[-1].Field[android.content.ContentProviderResult.exception];value;manual",
|
||||
"android.content;ContentProviderResult;false;ContentProviderResult;(Parcel);;Argument[0];Argument[-1];taint;manual",
|
||||
"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"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,21 +5,6 @@ private import semmle.code.java.security.FileReadWrite
|
||||
private import semmle.code.java.dataflow.DataFlow
|
||||
private import semmle.code.java.dataflow.ExternalFlow
|
||||
|
||||
private class ExternalStorageDirSourceModel extends SourceModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
//"package;type;overrides;name;signature;ext;spec;kind"
|
||||
"android.content;Context;true;getExternalFilesDir;(String);;ReturnValue;android-external-storage-dir;manual",
|
||||
"android.content;Context;true;getExternalFilesDirs;(String);;ReturnValue;android-external-storage-dir;manual",
|
||||
"android.content;Context;true;getExternalCacheDir;();;ReturnValue;android-external-storage-dir;manual",
|
||||
"android.content;Context;true;getExternalCacheDirs;();;ReturnValue;android-external-storage-dir;manual",
|
||||
"android.os;Environment;false;getExternalStorageDirectory;();;ReturnValue;android-external-storage-dir;manual",
|
||||
"android.os;Environment;false;getExternalStoragePublicDirectory;(String);;ReturnValue;android-external-storage-dir;manual",
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
private predicate externalStorageFlowStep(DataFlow::Node node1, DataFlow::Node node2) {
|
||||
DataFlow::localFlowStep(node1, node2)
|
||||
or
|
||||
|
||||
@@ -421,196 +421,3 @@ private class StartServiceIntentStep extends AdditionalValueStep {
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
private class IntentBundleFlowSteps extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
//"namespace;type;subtypes;name;signature;ext;input;output;kind"
|
||||
"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;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",
|
||||
// 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;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",
|
||||
// currently only the Extras part of the intent and the data field are fully modeled
|
||||
"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;addCategory;;;Argument[-1];ReturnValue;value;manual",
|
||||
"android.content;Intent;true;addFlags;;;Argument[-1];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;false;getIntent;;;Argument[0];ReturnValue.SyntheticField[android.content.Intent.data];taint;manual",
|
||||
"android.content;Intent;false;getIntentOld;;;Argument[0];ReturnValue.SyntheticField[android.content.Intent.data];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;false;parseUri;;;Argument[0];ReturnValue.SyntheticField[android.content.Intent.data];taint;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;putCharSequenceArrayListExtra;;;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;putExtra;;;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;(Bundle);;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;putExtras;(Intent);;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;putIntegerArrayListExtra;;;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;putParcelableArrayListExtra;;;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;putStringArrayListExtra;;;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;(Bundle);;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;replaceExtras;(Intent);;Argument[-1];ReturnValue;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;setClassName;;;Argument[-1];ReturnValue;value;manual",
|
||||
"android.content;Intent;true;setComponent;;;Argument[-1];ReturnValue;value;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;setType;;;Argument[-1];ReturnValue;value;manual",
|
||||
"android.content;Intent;true;setTypeAndNormalize;;;Argument[-1];ReturnValue;value;manual"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
private class IntentComponentTaintSteps extends SummaryModelCsv {
|
||||
override predicate row(string s) {
|
||||
s =
|
||||
[
|
||||
"android.content;Intent;true;Intent;(Intent);;Argument[0];Argument[-1];taint;manual",
|
||||
"android.content;Intent;true;Intent;(Context,Class);;Argument[1];Argument[-1];taint;manual",
|
||||
"android.content;Intent;true;Intent;(String,Uri,Context,Class);;Argument[3];Argument[-1];taint;manual",
|
||||
"android.content;Intent;true;getIntent;(String);;Argument[0];ReturnValue;taint;manual",
|
||||
"android.content;Intent;true;getIntentOld;(String);;Argument[0];ReturnValue;taint;manual",
|
||||
"android.content;Intent;true;parseUri;(String,int);;Argument[0];ReturnValue;taint;manual",
|
||||
"android.content;Intent;true;setPackage;;;Argument[0];Argument[-1];taint;manual",
|
||||
"android.content;Intent;true;setClass;;;Argument[1];Argument[-1];taint;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[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,String);;Argument[1];Argument[-1];taint;manual",
|
||||
"android.content;ComponentName;false;ComponentName;(Context,Class);;Argument[1];Argument[-1];taint;manual",
|
||||
"android.content;ComponentName;false;ComponentName;(Parcel);;Argument[0];Argument[-1];taint;manual",
|
||||
"android.content;ComponentName;false;createRelative;(String,String);;Argument[0..1];ReturnValue;taint;manual",
|
||||
"android.content;ComponentName;false;createRelative;(Context,String);;Argument[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;unflattenFromString;;;Argument[0];ReturnValue;taint;manual"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,101 +0,0 @@
|
||||
/** Provides classes and predicates related to Android notifications. */
|
||||
|
||||
import java
|
||||
private import semmle.code.java.dataflow.DataFlow
|
||||
private import semmle.code.java.dataflow.ExternalFlow
|
||||
private import semmle.code.java.dataflow.FlowSteps
|
||||
|
||||
private class NotificationBuildersSummaryModels extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"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;(int,CharSequence,PendingIntent);;Argument[2];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;(Action);;Argument[0];Argument[-1];taint;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;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;getExtras;;;Argument[-1].SyntheticField[android.content.Intent.extras];ReturnValue;value;manual",
|
||||
"androidx.core.app;NotificationCompat$Action;true;Action;(int,CharSequence,PendingIntent);;Argument[2];Argument[-1];taint;manual",
|
||||
"androidx.core.app;NotificationCompat$Action;true;Action;(IconCompat,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;(int,CharSequence,PendingIntent);;Argument[2];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;(Action);;Argument[0];Argument[-1];taint;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;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;getExtras;;;Argument[-1].SyntheticField[android.content.Intent.extras];ReturnValue;value;manual",
|
||||
"android.app;Notification$Builder;true;addAction;(int,CharSequence,PendingIntent);;Argument[2];Argument[-1];taint;manual",
|
||||
"android.app;Notification$Builder;true;addAction;(Action);;Argument[0];Argument[-1];taint;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;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;setContentIntent;;;Argument[0];Argument[-1];taint;manual",
|
||||
"android.app;Notification$Builder;true;getExtras;;;Argument[-1].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[0].ArrayElement;Argument[-1];taint;manual",
|
||||
"android.app;Notification$Builder;true;setExtras;;;Argument[0];Argument[-1].SyntheticField[android.content.Intent.extras];value;manual",
|
||||
"android.app;Notification$Builder;true;setDeleteIntent;;;Argument[0];Argument[-1];taint;manual",
|
||||
"android.app;Notification$Builder;true;setPublicVersion;;;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;addAction;(Action);;Argument[0];Argument[-1];taint;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;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;setContentIntent;;;Argument[0];Argument[-1];taint;manual",
|
||||
"androidx.core.app;NotificationCompat$Builder;true;getExtras;;;Argument[-1].SyntheticField[android.content.Intent.extras];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;setDeleteIntent;;;Argument[0];Argument[-1];taint;manual",
|
||||
"androidx.core.app;NotificationCompat$Builder;true;setPublicVersion;;;Argument[0];Argument[-1];taint;manual",
|
||||
"android.app;Notification$Style;true;build;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"android.app;Notification$BigPictureStyle;true;BigPictureStyle;(Builder);;Argument[0];Argument[-1];taint;manual",
|
||||
"android.app;Notification$BigTextStyle;true;BigTextStyle;(Builder);;Argument[0];Argument[-1];taint;manual",
|
||||
"android.app;Notification$InboxStyle;true;InboxStyle;(Builder);;Argument[0];Argument[-1];taint;manual",
|
||||
"android.app;Notification$MediaStyle;true;MediaStyle;(Builder);;Argument[0];Argument[-1];taint;manual",
|
||||
// Fluent models
|
||||
["android.app;Notification", "androidx.core.app;NotificationCompat"] +
|
||||
"$Action$Builder;true;" +
|
||||
[
|
||||
"addExtras", "addRemoteInput", "extend", "setAllowGeneratedReplies",
|
||||
"setAuthenticationRequired", "setContextual", "setSemanticAction"
|
||||
] + ";;;Argument[-1];ReturnValue;value;manual",
|
||||
["android.app;Notification", "androidx.core.app;NotificationCompat"] + "$Builder;true;" +
|
||||
[
|
||||
"addAction", "addExtras", "addPerson", "extend", "setActions", "setAutoCancel",
|
||||
"setBadgeIconType", "setBubbleMetadata", "setCategory", "setChannelId",
|
||||
"setChronometerCountDown", "setColor", "setColorized", "setContent", "setContentInfo",
|
||||
"setContentIntent", "setContentText", "setContentTitle", "setCustomBigContentView",
|
||||
"setCustomHeadsUpContentView", "setDefaults", "setDeleteIntent", "setExtras", "setFlag",
|
||||
"setForegroundServiceBehavior", "setFullScreenIntent", "setGroup",
|
||||
"setGroupAlertBehavior", "setGroupSummary", "setLargeIcon", "setLights", "setLocalOnly",
|
||||
"setLocusId", "setNumber", "setOngoing", "setOnlyAlertOnce", "setPriority",
|
||||
"setProgress", "setPublicVersion", "setRemoteInputHistory", "setSettingsText",
|
||||
"setShortcutId", "setShowWhen", "setSmallIcon", "setSortKey", "setSound", "setStyle",
|
||||
"setSubText", "setTicker", "setTimeoutAfter", "setUsesChronometer", "setVibrate",
|
||||
"setVisibility", "setWhen"
|
||||
] + ";;;Argument[-1];ReturnValue;value;manual",
|
||||
["android.app;Notification", "androidx.core.app;NotificationCompat"] +
|
||||
"$BigPictureStyle;true;" +
|
||||
[
|
||||
"bigLargeIcon", "bigPicture", "setBigContentTitle", "setContentDescription",
|
||||
"setSummaryText", "showBigPictureWhenCollapsed"
|
||||
] + ";;;Argument[-1];ReturnValue;value;manual",
|
||||
["android.app;Notification", "androidx.core.app;NotificationCompat"] + "$BigTextStyle;true;"
|
||||
+ ["bigText", "setBigContentTitle", "setSummaryText"] +
|
||||
";;;Argument[-1];ReturnValue;value;manual",
|
||||
["android.app;Notification", "androidx.core.app;NotificationCompat"] + "$InboxStyle;true;" +
|
||||
["addLine", "setBigContentTitle", "setSummaryText"] +
|
||||
";;;Argument[-1];ReturnValue;value;manual",
|
||||
"android.app;Notification$MediaStyle;true;" +
|
||||
["setMediaSession", "setShowActionsInCompactView"] +
|
||||
";;;Argument[-1];ReturnValue;value;manual"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -41,138 +41,3 @@ class TypeSQLiteOpenHelper extends Class {
|
||||
class TypeSQLiteStatement extends Class {
|
||||
TypeSQLiteStatement() { this.hasQualifiedName("android.database.sqlite", "SQLiteStatement") }
|
||||
}
|
||||
|
||||
private class SQLiteSinkCsv extends SinkModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
//"package;type;overrides;name;signature;ext;spec;kind"
|
||||
"android.database.sqlite;SQLiteDatabase;false;compileStatement;(String);;Argument[0];sql;manual",
|
||||
"android.database.sqlite;SQLiteDatabase;false;execSQL;(String);;Argument[0];sql;manual",
|
||||
"android.database.sqlite;SQLiteDatabase;false;execSQL;(String,Object[]);;Argument[0];sql;manual",
|
||||
"android.database.sqlite;SQLiteDatabase;false;execPerConnectionSQL;(String,Object[]);;Argument[0];sql;manual",
|
||||
// query(boolean distinct, String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy, String limit)
|
||||
// query(boolean distinct, String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy, String limit, CancellationSignal cancellationSignal)
|
||||
// query(String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy, String limit)
|
||||
// query(String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy)
|
||||
// queryWithFactory(SQLiteDatabase.CursorFactory cursorFactory, boolean distinct, String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy, String limit, CancellationSignal cancellationSignal)
|
||||
// queryWithFactory(SQLiteDatabase.CursorFactory cursorFactory, boolean distinct, String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy, String limit)
|
||||
// Each String / String[] arg except for selectionArgs is a sink
|
||||
"android.database.sqlite;SQLiteDatabase;false;query;(String,String[],String,String[],String,String,String,String);;Argument[0];sql;manual",
|
||||
"android.database.sqlite;SQLiteDatabase;false;query;(String,String[],String,String[],String,String,String,String);;Argument[1];sql;manual",
|
||||
"android.database.sqlite;SQLiteDatabase;false;query;(String,String[],String,String[],String,String,String,String);;Argument[2];sql;manual",
|
||||
"android.database.sqlite;SQLiteDatabase;false;query;(String,String[],String,String[],String,String,String,String);;Argument[4..7];sql;manual",
|
||||
"android.database.sqlite;SQLiteDatabase;false;query;(String,String[],String,String[],String,String,String);;Argument[0..2];sql;manual",
|
||||
"android.database.sqlite;SQLiteDatabase;false;query;(String,String[],String,String[],String,String,String);;Argument[4..6];sql;manual",
|
||||
"android.database.sqlite;SQLiteDatabase;false;query;(boolean,String,String[],String,String[],String,String,String,String);;Argument[1];sql;manual",
|
||||
"android.database.sqlite;SQLiteDatabase;false;query;(boolean,String,String[],String,String[],String,String,String,String);;Argument[2];sql;manual",
|
||||
"android.database.sqlite;SQLiteDatabase;false;query;(boolean,String,String[],String,String[],String,String,String,String);;Argument[3];sql;manual",
|
||||
"android.database.sqlite;SQLiteDatabase;false;query;(boolean,String,String[],String,String[],String,String,String,String);;Argument[5..8];sql;manual",
|
||||
"android.database.sqlite;SQLiteDatabase;false;query;(boolean,String,String[],String,String[],String,String,String,String,CancellationSignal);;Argument[1];sql;manual",
|
||||
"android.database.sqlite;SQLiteDatabase;false;query;(boolean,String,String[],String,String[],String,String,String,String,CancellationSignal);;Argument[2];sql;manual",
|
||||
"android.database.sqlite;SQLiteDatabase;false;query;(boolean,String,String[],String,String[],String,String,String,String,CancellationSignal);;Argument[3];sql;manual",
|
||||
"android.database.sqlite;SQLiteDatabase;false;query;(boolean,String,String[],String,String[],String,String,String,String,CancellationSignal);;Argument[5..8];sql;manual",
|
||||
"android.database.sqlite;SQLiteDatabase;false;queryWithFactory;(CursorFactory,boolean,String,String[],String,String[],String,String,String,String);;Argument[2];sql;manual",
|
||||
"android.database.sqlite;SQLiteDatabase;false;queryWithFactory;(CursorFactory,boolean,String,String[],String,String[],String,String,String,String);;Argument[3];sql;manual",
|
||||
"android.database.sqlite;SQLiteDatabase;false;queryWithFactory;(CursorFactory,boolean,String,String[],String,String[],String,String,String,String);;Argument[4];sql;manual",
|
||||
"android.database.sqlite;SQLiteDatabase;false;queryWithFactory;(CursorFactory,boolean,String,String[],String,String[],String,String,String,String);;Argument[6..9];sql;manual",
|
||||
"android.database.sqlite;SQLiteDatabase;false;queryWithFactory;(CursorFactory,boolean,String,String[],String,String[],String,String,String,String,CancellationSignal);;Argument[2];sql;manual",
|
||||
"android.database.sqlite;SQLiteDatabase;false;queryWithFactory;(CursorFactory,boolean,String,String[],String,String[],String,String,String,String,CancellationSignal);;Argument[3];sql;manual",
|
||||
"android.database.sqlite;SQLiteDatabase;false;queryWithFactory;(CursorFactory,boolean,String,String[],String,String[],String,String,String,String,CancellationSignal);;Argument[4];sql;manual",
|
||||
"android.database.sqlite;SQLiteDatabase;false;queryWithFactory;(CursorFactory,boolean,String,String[],String,String[],String,String,String,String,CancellationSignal);;Argument[6..9];sql;manual",
|
||||
"android.database.sqlite;SQLiteDatabase;false;rawQuery;(String,String[]);;Argument[0];sql;manual",
|
||||
"android.database.sqlite;SQLiteDatabase;false;rawQuery;(String,String[],CancellationSignal);;Argument[0];sql;manual",
|
||||
"android.database.sqlite;SQLiteDatabase;false;rawQueryWithFactory;(CursorFactory,String,String[],String);;Argument[1];sql;manual",
|
||||
"android.database.sqlite;SQLiteDatabase;false;rawQueryWithFactory;(CursorFactory,String,String[],String,CancellationSignal);;Argument[1];sql;manual",
|
||||
"android.database.sqlite;SQLiteDatabase;false;delete;(String,String,String[]);;Argument[0..1];sql;manual",
|
||||
"android.database.sqlite;SQLiteDatabase;false;update;(String,ContentValues,String,String[]);;Argument[0];sql;manual",
|
||||
"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;DatabaseUtils;false;longForQuery;(SQLiteDatabase,String,String[]);;Argument[1];sql;manual",
|
||||
"android.database;DatabaseUtils;false;stringForQuery;(SQLiteDatabase,String,String[]);;Argument[1];sql;manual",
|
||||
"android.database;DatabaseUtils;false;blobFileDescriptorForQuery;(SQLiteDatabase,String,String[]);;Argument[1];sql;manual",
|
||||
"android.database;DatabaseUtils;false;createDbFromSqlStatements;(Context,String,int,String);;Argument[3];sql;manual",
|
||||
"android.database;DatabaseUtils;false;queryNumEntries;(SQLiteDatabase,String);;Argument[1];sql;manual",
|
||||
"android.database;DatabaseUtils;false;queryNumEntries;(SQLiteDatabase,String,String);;Argument[1..2];sql;manual",
|
||||
"android.database;DatabaseUtils;false;queryNumEntries;(SQLiteDatabase,String,String,String[]);;Argument[1..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[1];sql;manual",
|
||||
"android.database.sqlite;SQLiteQueryBuilder;true;insert;(SQLiteDatabase,ContentValues);;Argument[-1];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[2];sql;manual",
|
||||
// query(SQLiteDatabase db, String[] projectionIn, String selection, String[] selectionArgs, String groupBy, String having, String sortOrder)
|
||||
// query(SQLiteDatabase db, String[] projectionIn, String selection, String[] selectionArgs, String groupBy, String having, String sortOrder, String limit)
|
||||
// query(SQLiteDatabase db, String[] projectionIn, String selection, String[] selectionArgs, String groupBy, String having, String sortOrder, String limit, CancellationSignal cancellationSignal)
|
||||
"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[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[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[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.content;ContentProvider;true;delete;(Uri,String,String[]);;Argument[1];sql;manual",
|
||||
"android.content;ContentProvider;true;update;(Uri,ContentValues,String,String[]);;Argument[2];sql;manual",
|
||||
"android.content;ContentProvider;true;query;(Uri,String[],String,String[],String,CancellationSignal);;Argument[2];sql;manual",
|
||||
"android.content;ContentProvider;true;query;(Uri,String[],String,String[],String);;Argument[2];sql;manual",
|
||||
"android.content;ContentResolver;true;delete;(Uri,String,String[]);;Argument[1];sql;manual",
|
||||
"android.content;ContentResolver;true;update;(Uri,ContentValues,String,String[]);;Argument[2];sql;manual",
|
||||
"android.content;ContentResolver;true;query;(Uri,String[],String,String[],String,CancellationSignal);;Argument[2];sql;manual",
|
||||
"android.content;ContentResolver;true;query;(Uri,String[],String,String[],String);;Argument[2];sql;manual"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
private class SqlFlowStep extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
//"package;type;overrides;name;signature;ext;inputspec;outputspec;kind",
|
||||
// buildQuery(String[] projectionIn, String selection, String groupBy, String having, String sortOrder, String limit)
|
||||
// buildQuery(String[] projectionIn, String selection, String[] selectionArgs, String groupBy, String having, String sortOrder, String limit)
|
||||
// buildUnionQuery(String[] subQueries, String sortOrder, String limit)
|
||||
"android.database.sqlite;SQLiteQueryBuilder;true;buildQuery;(String[],String,String,String,String,String);;Argument[-1];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[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;buildUnionQuery;(String[],String,String);;Argument[-1];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",
|
||||
// buildUnionSubQuery(String typeDiscriminatorColumn, String[] unionColumns, Set<String> columnsPresentInTable, int computedColumnsOffset, String typeDiscriminatorValue, String selection, String[] selectionArgs, String groupBy, String having)
|
||||
// buildUnionSubQuery(String typeDiscriminatorColumn, String[] unionColumns, Set<String> columnsPresentInTable, int computedColumnsOffset, String typeDiscriminatorValue, String selection, String groupBy, String having)
|
||||
"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[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",
|
||||
"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;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[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",
|
||||
// static buildQueryString(boolean distinct, String tables, String[] columns, String where, String groupBy, String having, String orderBy, String limit)
|
||||
"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;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;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;appendColumns;(StringBuilder,String[]);;Argument[1].ArrayElement;Argument[0];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",
|
||||
"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",
|
||||
"android.content;ContentResolver;true;query;(Uri,String[],String,String[],String);;Argument[0];ReturnValue;taint;manual",
|
||||
"android.content;ContentResolver;true;query;(Uri,String[],String,String[],String,CancellationSignal);;Argument[0];ReturnValue;taint;manual"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -56,19 +56,3 @@ class StoreSharedPreferenceMethod extends Method {
|
||||
this.hasName(["commit", "apply"])
|
||||
}
|
||||
}
|
||||
|
||||
private class SharedPreferencesSummaries extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"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"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -39,87 +39,3 @@ private class SliceActionsInheritTaint extends DataFlow::SyntheticFieldContent,
|
||||
TaintInheritingContent {
|
||||
SliceActionsInheritTaint() { this.getField() = "androidx.slice.Slice.action" }
|
||||
}
|
||||
|
||||
private class SliceBuildersSummaryModels extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"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[0].SyntheticField[androidx.slice.Slice.action];Argument[-1].SyntheticField[androidx.slice.Slice.action];taint;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[0].SyntheticField[androidx.slice.Slice.action];Argument[-1].SyntheticField[androidx.slice.Slice.action];taint;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[0].SyntheticField[androidx.slice.Slice.action];Argument[-1].SyntheticField[androidx.slice.Slice.action];taint;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;setHeader;;;Argument[0].SyntheticField[androidx.slice.Slice.action];Argument[-1].SyntheticField[androidx.slice.Slice.action];taint;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[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$HeaderBuilder;true;setPrimaryAction;;;Argument[0].SyntheticField[androidx.slice.Slice.action];Argument[-1].SyntheticField[androidx.slice.Slice.action];taint;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;setInputAction;(PendingIntent);;Argument[0];Argument[-1].SyntheticField[androidx.slice.Slice.action];taint;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$RangeBuilder;true;setPrimaryAction;;;Argument[0].SyntheticField[androidx.slice.Slice.action];Argument[-1].SyntheticField[androidx.slice.Slice.action];taint;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;setPrimaryAction;;;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;addEndItem;(SliceAction);;Argument[0].SyntheticField[androidx.slice.Slice.action];Argument[-1].SyntheticField[androidx.slice.Slice.action];taint;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;setTitleItem;(SliceAction,boolean);;Argument[0].SyntheticField[androidx.slice.Slice.action];Argument[-1].SyntheticField[androidx.slice.Slice.action];taint;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;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",
|
||||
// Fluent models
|
||||
"androidx.slice.builders;ListBuilder;true;" +
|
||||
[
|
||||
"addAction", "addGridRow", "addInputRange", "addRange", "addRating", "addRow",
|
||||
"addSelection", "setAccentColor", "setHeader", "setHostExtras", "setIsError",
|
||||
"setKeywords", "setLayoutDirection", "setSeeMoreAction", "setSeeMoreRow"
|
||||
] + ";;;Argument[-1];ReturnValue;value;manual",
|
||||
"androidx.slice.builders;ListBuilder$HeaderBuilder;true;" +
|
||||
[
|
||||
"setContentDescription", "setLayoutDirection", "setPrimaryAction", "setSubtitle",
|
||||
"setSummary", "setTitle"
|
||||
] + ";;;Argument[-1];ReturnValue;value;manual",
|
||||
"androidx.slice.builders;ListBuilder$InputRangeBuilder;true;" +
|
||||
[
|
||||
"addEndItem", "setContentDescription", "setInputAction", "setLayoutDirection", "setMax",
|
||||
"setMin", "setPrimaryAction", "setSubtitle", "setThumb", "setTitle", "setTitleItem",
|
||||
"setValue"
|
||||
] + ";;;Argument[-1];ReturnValue;value;manual",
|
||||
"androidx.slice.builders;ListBuilder$RangeBuilder;true;" +
|
||||
[
|
||||
"setContentDescription", "setMax", "setMode", "setPrimaryAction", "setSubtitle",
|
||||
"setTitle", "setTitleItem", "setValue"
|
||||
] + ";;;Argument[-1];ReturnValue;value;manual",
|
||||
"androidx.slice.builders;ListBuilder$RatingBuilder;true;" +
|
||||
[
|
||||
"setContentDescription", "setInputAction", "setMax", "setMin", "setPrimaryAction",
|
||||
"setSubtitle", "setTitle", "setTitleItem", "setValue"
|
||||
] + ";;;Argument[-1];ReturnValue;value;manual",
|
||||
"androidx.slice.builders;ListBuilder$RowBuilder;true;" +
|
||||
[
|
||||
"addEndItem", "setContentDescription", "setEndOfSection", "setLayoutDirection",
|
||||
"setPrimaryAction", "setSubtitle", "setTitle", "setTitleItem"
|
||||
] + ";;;Argument[-1];ReturnValue;value;manual",
|
||||
"androidx.slice.builders;SliceAction;true;" +
|
||||
["setChecked", "setContentDescription", "setPriority"] +
|
||||
";;;Argument[-1];ReturnValue;value;manual"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
private class SliceProviderSourceModels extends SourceModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"androidx.slice;SliceProvider;true;onBindSlice;;;Parameter[0];contentprovider;manual",
|
||||
"androidx.slice;SliceProvider;true;onCreatePermissionRequest;;;Parameter[0];contentprovider;manual",
|
||||
"androidx.slice;SliceProvider;true;onMapIntentToUri;;;Parameter[0];contentprovider;manual",
|
||||
"androidx.slice;SliceProvider;true;onSlicePinned;;;Parameter[0];contentprovider;manual",
|
||||
"androidx.slice;SliceProvider;true;onSliceUnpinned;;;Parameter[0];contentprovider;manual"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,12 +4,6 @@ import java
|
||||
private import semmle.code.java.dataflow.ExternalFlow
|
||||
private import semmle.code.java.dataflow.FlowSources
|
||||
|
||||
private class AndroidWidgetSourceModels extends SourceModelCsv {
|
||||
override predicate row(string row) {
|
||||
row = "android.widget;EditText;true;getText;;;ReturnValue;android-widget;manual"
|
||||
}
|
||||
}
|
||||
|
||||
private class DefaultAndroidWidgetSources extends RemoteFlowSource {
|
||||
DefaultAndroidWidgetSources() { sourceNode(this, "android-widget") }
|
||||
|
||||
@@ -35,9 +29,3 @@ private class EditableToStringStep extends AdditionalTaintStep {
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
private class AndroidWidgetSummaryModels extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row = "android.widget;EditText;true;getText;;;Argument[-1];ReturnValue;taint;manual"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,16 +0,0 @@
|
||||
/** Provides XSS sink models relating to the `android.webkit.WebView` class. */
|
||||
|
||||
import java
|
||||
private import semmle.code.java.dataflow.ExternalFlow
|
||||
|
||||
/** CSV sink models representing methods susceptible to XSS attacks. */
|
||||
private class DefaultXssSinkModel extends SinkModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"android.webkit;WebView;false;loadData;;;Argument[0];xss;manual",
|
||||
"android.webkit;WebView;false;loadDataWithBaseURL;;;Argument[1];xss;manual",
|
||||
"android.webkit;WebView;false;evaluateJavascript;;;Argument[0];xss;manual"
|
||||
]
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,23 +0,0 @@
|
||||
/** Custom definitions related to the Apache Commons IO library. */
|
||||
|
||||
import java
|
||||
private import semmle.code.java.dataflow.ExternalFlow
|
||||
|
||||
private class ApacheCommonsIOCustomSummaryCsv extends SummaryModelCsv {
|
||||
/**
|
||||
* Models that are not yet auto generated or where the generated summaries will
|
||||
* be ignored.
|
||||
* Note that if a callable has any handwritten summary, all generated summaries
|
||||
* will be ignored for that callable.
|
||||
*/
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"org.apache.commons.io;IOUtils;false;toBufferedInputStream;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.io;IOUtils;true;writeLines;(Collection,String,Writer);;Argument[0].Element;Argument[2];taint;manual",
|
||||
"org.apache.commons.io;IOUtils;true;writeLines;(Collection,String,Writer);;Argument[1];Argument[2];taint;manual",
|
||||
"org.apache.commons.io;IOUtils;true;toByteArray;(Reader);;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.io;IOUtils;true;toByteArray;(Reader,String);;Argument[0];ReturnValue;taint;manual",
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,680 +0,0 @@
|
||||
/**
|
||||
* THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT.
|
||||
* Definitions of taint steps in the IOGenerated framework.
|
||||
*/
|
||||
|
||||
import java
|
||||
private import semmle.code.java.dataflow.ExternalFlow
|
||||
|
||||
private class IOGeneratedSinksCsv extends SinkModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"org.apache.commons.io.file;PathFilter;true;accept;(Path,BasicFileAttributes);;Argument[0];create-file;generated",
|
||||
"org.apache.commons.io.file;PathUtils;false;copyFile;(URL,Path,CopyOption[]);;Argument[0];open-url;generated",
|
||||
"org.apache.commons.io.file;PathUtils;false;copyFile;(URL,Path,CopyOption[]);;Argument[1];create-file;generated",
|
||||
"org.apache.commons.io.file;PathUtils;false;copyFileToDirectory;(Path,Path,CopyOption[]);;Argument[1];create-file;generated",
|
||||
"org.apache.commons.io.file;PathUtils;false;copyFileToDirectory;(URL,Path,CopyOption[]);;Argument[0];open-url;generated",
|
||||
"org.apache.commons.io.file;PathUtils;false;copyFileToDirectory;(URL,Path,CopyOption[]);;Argument[1];create-file;generated",
|
||||
"org.apache.commons.io.file;PathUtils;false;newOutputStream;(Path,boolean);;Argument[0];create-file;generated",
|
||||
"org.apache.commons.io.file;PathUtils;false;writeString;(Path,CharSequence,Charset,OpenOption[]);;Argument[0];create-file;generated",
|
||||
"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;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",
|
||||
"org.apache.commons.io.output;FileWriterWithEncoding;true;FileWriterWithEncoding;(File,Charset,boolean);;Argument[0];create-file;generated",
|
||||
"org.apache.commons.io.output;FileWriterWithEncoding;true;FileWriterWithEncoding;(File,CharsetEncoder);;Argument[0];create-file;generated",
|
||||
"org.apache.commons.io.output;FileWriterWithEncoding;true;FileWriterWithEncoding;(File,CharsetEncoder,boolean);;Argument[0];create-file;generated",
|
||||
"org.apache.commons.io.output;FileWriterWithEncoding;true;FileWriterWithEncoding;(File,String);;Argument[0];create-file;generated",
|
||||
"org.apache.commons.io.output;FileWriterWithEncoding;true;FileWriterWithEncoding;(File,String,boolean);;Argument[0];create-file;generated",
|
||||
"org.apache.commons.io.output;FileWriterWithEncoding;true;FileWriterWithEncoding;(String,Charset);;Argument[0];create-file;generated",
|
||||
"org.apache.commons.io.output;FileWriterWithEncoding;true;FileWriterWithEncoding;(String,Charset,boolean);;Argument[0];create-file;generated",
|
||||
"org.apache.commons.io.output;FileWriterWithEncoding;true;FileWriterWithEncoding;(String,CharsetEncoder);;Argument[0];create-file;generated",
|
||||
"org.apache.commons.io.output;FileWriterWithEncoding;true;FileWriterWithEncoding;(String,CharsetEncoder,boolean);;Argument[0];create-file;generated",
|
||||
"org.apache.commons.io.output;FileWriterWithEncoding;true;FileWriterWithEncoding;(String,String);;Argument[0];create-file;generated",
|
||||
"org.apache.commons.io.output;FileWriterWithEncoding;true;FileWriterWithEncoding;(String,String,boolean);;Argument[0];create-file;generated",
|
||||
"org.apache.commons.io.output;LockableFileWriter;true;LockableFileWriter;(File);;Argument[0];create-file;generated",
|
||||
"org.apache.commons.io.output;LockableFileWriter;true;LockableFileWriter;(File,Charset);;Argument[0];create-file;generated",
|
||||
"org.apache.commons.io.output;LockableFileWriter;true;LockableFileWriter;(File,Charset,boolean,String);;Argument[0];create-file;generated",
|
||||
"org.apache.commons.io.output;LockableFileWriter;true;LockableFileWriter;(File,String);;Argument[0];create-file;generated",
|
||||
"org.apache.commons.io.output;LockableFileWriter;true;LockableFileWriter;(File,String,boolean,String);;Argument[0];create-file;generated",
|
||||
"org.apache.commons.io.output;LockableFileWriter;true;LockableFileWriter;(File,boolean);;Argument[0];create-file;generated",
|
||||
"org.apache.commons.io.output;LockableFileWriter;true;LockableFileWriter;(File,boolean,String);;Argument[0];create-file;generated",
|
||||
"org.apache.commons.io.output;LockableFileWriter;true;LockableFileWriter;(String);;Argument[0];create-file;generated",
|
||||
"org.apache.commons.io.output;LockableFileWriter;true;LockableFileWriter;(String,boolean);;Argument[0];create-file;generated",
|
||||
"org.apache.commons.io.output;LockableFileWriter;true;LockableFileWriter;(String,boolean,String);;Argument[0];create-file;generated",
|
||||
"org.apache.commons.io.output;XmlStreamWriter;true;XmlStreamWriter;(File);;Argument[0];create-file;generated",
|
||||
"org.apache.commons.io.output;XmlStreamWriter;true;XmlStreamWriter;(File,String);;Argument[0];create-file;generated",
|
||||
"org.apache.commons.io;FileUtils;true;copyDirectory;(File,File);;Argument[1];create-file;generated",
|
||||
"org.apache.commons.io;FileUtils;true;copyDirectory;(File,File,FileFilter);;Argument[1];create-file;generated",
|
||||
"org.apache.commons.io;FileUtils;true;copyDirectory;(File,File,FileFilter,boolean);;Argument[1];create-file;generated",
|
||||
"org.apache.commons.io;FileUtils;true;copyDirectory;(File,File,FileFilter,boolean,CopyOption[]);;Argument[1];create-file;generated",
|
||||
"org.apache.commons.io;FileUtils;true;copyDirectory;(File,File,boolean);;Argument[1];create-file;generated",
|
||||
"org.apache.commons.io;FileUtils;true;copyDirectoryToDirectory;(File,File);;Argument[1];create-file;generated",
|
||||
"org.apache.commons.io;FileUtils;true;copyFile;(File,File);;Argument[1];create-file;generated",
|
||||
"org.apache.commons.io;FileUtils;true;copyFile;(File,File,CopyOption[]);;Argument[1];create-file;generated",
|
||||
"org.apache.commons.io;FileUtils;true;copyFile;(File,File,boolean);;Argument[1];create-file;generated",
|
||||
"org.apache.commons.io;FileUtils;true;copyFile;(File,File,boolean,CopyOption[]);;Argument[1];create-file;generated",
|
||||
"org.apache.commons.io;FileUtils;true;copyFileToDirectory;(File,File);;Argument[1];create-file;generated",
|
||||
"org.apache.commons.io;FileUtils;true;copyFileToDirectory;(File,File,boolean);;Argument[1];create-file;generated",
|
||||
"org.apache.commons.io;FileUtils;true;copyInputStreamToFile;(InputStream,File);;Argument[1];create-file;generated",
|
||||
"org.apache.commons.io;FileUtils;true;copyToDirectory;(File,File);;Argument[1];create-file;generated",
|
||||
"org.apache.commons.io;FileUtils;true;copyToDirectory;(Iterable,File);;Argument[1];create-file;generated",
|
||||
"org.apache.commons.io;FileUtils;true;copyToFile;(InputStream,File);;Argument[1];create-file;generated",
|
||||
"org.apache.commons.io;FileUtils;true;copyURLToFile;(URL,File);;Argument[0];open-url;generated",
|
||||
"org.apache.commons.io;FileUtils;true;copyURLToFile;(URL,File);;Argument[1];create-file;generated",
|
||||
"org.apache.commons.io;FileUtils;true;copyURLToFile;(URL,File,int,int);;Argument[0];open-url;generated",
|
||||
"org.apache.commons.io;FileUtils;true;copyURLToFile;(URL,File,int,int);;Argument[1];create-file;generated",
|
||||
"org.apache.commons.io;FileUtils;true;moveDirectory;(File,File);;Argument[1];create-file;generated",
|
||||
"org.apache.commons.io;FileUtils;true;moveDirectoryToDirectory;(File,File,boolean);;Argument[1];create-file;generated",
|
||||
"org.apache.commons.io;FileUtils;true;moveFile;(File,File);;Argument[1];create-file;generated",
|
||||
"org.apache.commons.io;FileUtils;true;moveFile;(File,File,CopyOption[]);;Argument[1];create-file;generated",
|
||||
"org.apache.commons.io;FileUtils;true;moveFileToDirectory;(File,File,boolean);;Argument[1];create-file;generated",
|
||||
"org.apache.commons.io;FileUtils;true;moveToDirectory;(File,File,boolean);;Argument[1];create-file;generated",
|
||||
"org.apache.commons.io;FileUtils;true;newOutputStream;(File,boolean);;Argument[0];create-file;generated",
|
||||
"org.apache.commons.io;FileUtils;true;openOutputStream;(File);;Argument[0];create-file;generated",
|
||||
"org.apache.commons.io;FileUtils;true;openOutputStream;(File,boolean);;Argument[0];create-file;generated",
|
||||
"org.apache.commons.io;FileUtils;true;touch;(File);;Argument[0];create-file;generated",
|
||||
"org.apache.commons.io;FileUtils;true;write;(File,CharSequence);;Argument[0];create-file;generated",
|
||||
"org.apache.commons.io;FileUtils;true;write;(File,CharSequence,Charset);;Argument[0];create-file;generated",
|
||||
"org.apache.commons.io;FileUtils;true;write;(File,CharSequence,Charset,boolean);;Argument[0];create-file;generated",
|
||||
"org.apache.commons.io;FileUtils;true;write;(File,CharSequence,String);;Argument[0];create-file;generated",
|
||||
"org.apache.commons.io;FileUtils;true;write;(File,CharSequence,String,boolean);;Argument[0];create-file;generated",
|
||||
"org.apache.commons.io;FileUtils;true;write;(File,CharSequence,boolean);;Argument[0];create-file;generated",
|
||||
"org.apache.commons.io;FileUtils;true;writeByteArrayToFile;(File,byte[]);;Argument[0];create-file;generated",
|
||||
"org.apache.commons.io;FileUtils;true;writeByteArrayToFile;(File,byte[],boolean);;Argument[0];create-file;generated",
|
||||
"org.apache.commons.io;FileUtils;true;writeByteArrayToFile;(File,byte[],int,int);;Argument[0];create-file;generated",
|
||||
"org.apache.commons.io;FileUtils;true;writeByteArrayToFile;(File,byte[],int,int,boolean);;Argument[0];create-file;generated",
|
||||
"org.apache.commons.io;FileUtils;true;writeLines;(File,Collection);;Argument[0];create-file;generated",
|
||||
"org.apache.commons.io;FileUtils;true;writeLines;(File,Collection,String);;Argument[0];create-file;generated",
|
||||
"org.apache.commons.io;FileUtils;true;writeLines;(File,Collection,String,boolean);;Argument[0];create-file;generated",
|
||||
"org.apache.commons.io;FileUtils;true;writeLines;(File,Collection,boolean);;Argument[0];create-file;generated",
|
||||
"org.apache.commons.io;FileUtils;true;writeLines;(File,String,Collection);;Argument[0];create-file;generated",
|
||||
"org.apache.commons.io;FileUtils;true;writeLines;(File,String,Collection,String);;Argument[0];create-file;generated",
|
||||
"org.apache.commons.io;FileUtils;true;writeLines;(File,String,Collection,String,boolean);;Argument[0];create-file;generated",
|
||||
"org.apache.commons.io;FileUtils;true;writeLines;(File,String,Collection,boolean);;Argument[0];create-file;generated",
|
||||
"org.apache.commons.io;FileUtils;true;writeStringToFile;(File,String);;Argument[0];create-file;generated",
|
||||
"org.apache.commons.io;FileUtils;true;writeStringToFile;(File,String,Charset);;Argument[0];create-file;generated",
|
||||
"org.apache.commons.io;FileUtils;true;writeStringToFile;(File,String,Charset,boolean);;Argument[0];create-file;generated",
|
||||
"org.apache.commons.io;FileUtils;true;writeStringToFile;(File,String,String);;Argument[0];create-file;generated",
|
||||
"org.apache.commons.io;FileUtils;true;writeStringToFile;(File,String,String,boolean);;Argument[0];create-file;generated",
|
||||
"org.apache.commons.io;FileUtils;true;writeStringToFile;(File,String,boolean);;Argument[0];create-file;generated",
|
||||
"org.apache.commons.io;IOUtils;true;copy;(URL,File);;Argument[0];open-url;generated",
|
||||
"org.apache.commons.io;IOUtils;true;copy;(URL,File);;Argument[1];create-file;generated",
|
||||
"org.apache.commons.io;IOUtils;true;copy;(URL,OutputStream);;Argument[0];open-url;generated",
|
||||
"org.apache.commons.io;IOUtils;true;toByteArray;(URI);;Argument[0];open-url;generated",
|
||||
"org.apache.commons.io;IOUtils;true;toByteArray;(URL);;Argument[0];open-url;generated",
|
||||
"org.apache.commons.io;IOUtils;true;toString;(URI);;Argument[0];open-url;generated",
|
||||
"org.apache.commons.io;IOUtils;true;toString;(URI,Charset);;Argument[0];open-url;generated",
|
||||
"org.apache.commons.io;IOUtils;true;toString;(URI,String);;Argument[0];open-url;generated",
|
||||
"org.apache.commons.io;IOUtils;true;toString;(URL);;Argument[0];open-url;generated",
|
||||
"org.apache.commons.io;IOUtils;true;toString;(URL,Charset);;Argument[0];open-url;generated",
|
||||
"org.apache.commons.io;IOUtils;true;toString;(URL,String);;Argument[0];open-url;generated",
|
||||
"org.apache.commons.io;RandomAccessFileMode;false;create;(File);;Argument[0];create-file;generated",
|
||||
"org.apache.commons.io;RandomAccessFileMode;false;create;(Path);;Argument[0];create-file;generated",
|
||||
"org.apache.commons.io;RandomAccessFileMode;false;create;(String);;Argument[0];create-file;generated"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
private class IOGeneratedSummaryCsv extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"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.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;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",
|
||||
"org.apache.commons.io.file;PathUtils;false;visitFileTree;(FileVisitor,Path);;Argument[0];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io.file;PathUtils;false;visitFileTree;(FileVisitor,Path,Set,int);;Argument[0];ReturnValue;taint;generated",
|
||||
"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;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",
|
||||
"org.apache.commons.io.filefilter;FileFilterUtils;true;asFileFilter;(FileFilter);;Argument[0];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io.filefilter;FileFilterUtils;true;asFileFilter;(FilenameFilter);;Argument[0];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io.filefilter;FileFilterUtils;true;magicNumberFileFilter;(String);;Argument[0];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io.filefilter;FileFilterUtils;true;magicNumberFileFilter;(String,long);;Argument[0];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io.filefilter;FileFilterUtils;true;magicNumberFileFilter;(byte[]);;Argument[0];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io.filefilter;FileFilterUtils;true;magicNumberFileFilter;(byte[],long);;Argument[0];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io.filefilter;FileFilterUtils;true;makeCVSAware;(IOFileFilter);;Argument[0];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io.filefilter;FileFilterUtils;true;makeDirectoryOnly;(IOFileFilter);;Argument[0];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io.filefilter;FileFilterUtils;true;makeFileOnly;(IOFileFilter);;Argument[0];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io.filefilter;FileFilterUtils;true;makeSVNAware;(IOFileFilter);;Argument[0];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io.filefilter;FileFilterUtils;true;nameFileFilter;(String);;Argument[0];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io.filefilter;FileFilterUtils;true;nameFileFilter;(String,IOCase);;Argument[0];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io.filefilter;FileFilterUtils;true;notFileFilter;(IOFileFilter);;Argument[0];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io.filefilter;FileFilterUtils;true;or;(IOFileFilter[]);;Argument[0].ArrayElement;ReturnValue;taint;generated",
|
||||
"org.apache.commons.io.filefilter;FileFilterUtils;true;orFileFilter;(IOFileFilter,IOFileFilter);;Argument[0];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io.filefilter;FileFilterUtils;true;orFileFilter;(IOFileFilter,IOFileFilter);;Argument[1];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io.filefilter;FileFilterUtils;true;prefixFileFilter;(String);;Argument[0];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io.filefilter;FileFilterUtils;true;prefixFileFilter;(String,IOCase);;Argument[0];ReturnValue;taint;generated",
|
||||
"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[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;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.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;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",
|
||||
"org.apache.commons.io.input;Tailer;true;create;(File,TailerListener);;Argument[1];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io.input;Tailer;true;create;(File,TailerListener,long);;Argument[0];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io.input;Tailer;true;create;(File,TailerListener,long);;Argument[1];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io.input;Tailer;true;create;(File,TailerListener,long,boolean);;Argument[0];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io.input;Tailer;true;create;(File,TailerListener,long,boolean);;Argument[1];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io.input;Tailer;true;create;(File,TailerListener,long,boolean,boolean);;Argument[0];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io.input;Tailer;true;create;(File,TailerListener,long,boolean,boolean);;Argument[1];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io.input;Tailer;true;create;(File,TailerListener,long,boolean,boolean,int);;Argument[0];ReturnValue;taint;generated",
|
||||
"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;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.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.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;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;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;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",
|
||||
"org.apache.commons.io;CopyUtils;true;copy;(Reader,Writer);;Argument[0];Argument[1];taint;generated",
|
||||
"org.apache.commons.io;CopyUtils;true;copy;(String,Writer);;Argument[0];Argument[1];taint;generated",
|
||||
"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;FileSystem;false;toLegalFileName;(String,char);;Argument[0];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io;FileUtils;true;checksum;(File,Checksum);;Argument[1];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io;FileUtils;true;convertFileCollectionToFileArray;(Collection);;Argument[0].Element;ReturnValue;taint;generated",
|
||||
"org.apache.commons.io;FileUtils;true;delete;(File);;Argument[0];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io;FileUtils;true;getFile;(File,String[]);;Argument[0];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io;FileUtils;true;getFile;(File,String[]);;Argument[1].ArrayElement;ReturnValue;taint;generated",
|
||||
"org.apache.commons.io;FileUtils;true;getFile;(String[]);;Argument[0].ArrayElement;ReturnValue;taint;generated",
|
||||
"org.apache.commons.io;FileUtils;true;toURLs;(File[]);;Argument[0].ArrayElement;ReturnValue;taint;generated",
|
||||
"org.apache.commons.io;FilenameUtils;true;concat;(String,String);;Argument[0];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io;FilenameUtils;true;concat;(String,String);;Argument[1];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io;FilenameUtils;true;getBaseName;(String);;Argument[0];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io;FilenameUtils;true;getExtension;(String);;Argument[0];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io;FilenameUtils;true;getFullPath;(String);;Argument[0];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io;FilenameUtils;true;getFullPathNoEndSeparator;(String);;Argument[0];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io;FilenameUtils;true;getName;(String);;Argument[0];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io;FilenameUtils;true;getPath;(String);;Argument[0];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io;FilenameUtils;true;getPathNoEndSeparator;(String);;Argument[0];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io;FilenameUtils;true;getPrefix;(String);;Argument[0];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io;FilenameUtils;true;normalize;(String);;Argument[0];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io;FilenameUtils;true;normalize;(String,boolean);;Argument[0];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io;FilenameUtils;true;normalizeNoEndSeparator;(String);;Argument[0];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io;FilenameUtils;true;normalizeNoEndSeparator;(String,boolean);;Argument[0];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io;FilenameUtils;true;removeExtension;(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;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",
|
||||
"org.apache.commons.io;IOUtils;true;buffer;(OutputStream,int);;Argument[0];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;buffer;(Reader);;Argument[0];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;buffer;(Reader,int);;Argument[0];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;buffer;(Writer);;Argument[0];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;buffer;(Writer,int);;Argument[0];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;copy;(InputStream,OutputStream);;Argument[0];Argument[1];taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;copy;(InputStream,OutputStream,int);;Argument[0];Argument[1];taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;copy;(InputStream,Writer);;Argument[0];Argument[1];taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;copy;(InputStream,Writer,Charset);;Argument[0];Argument[1];taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;copy;(InputStream,Writer,String);;Argument[0];Argument[1];taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;copy;(Reader,Appendable);;Argument[0];Argument[1];taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;copy;(Reader,Appendable,CharBuffer);;Argument[0];Argument[1];taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;copy;(Reader,Appendable,CharBuffer);;Argument[0];Argument[2];taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;copy;(Reader,Appendable,CharBuffer);;Argument[2];Argument[0];taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;copy;(Reader,Appendable,CharBuffer);;Argument[2];Argument[1];taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;copy;(Reader,Writer);;Argument[0];Argument[1];taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;copyLarge;(InputStream,OutputStream);;Argument[0];Argument[1];taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;copyLarge;(InputStream,OutputStream,byte[]);;Argument[0];Argument[1];taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;copyLarge;(InputStream,OutputStream,byte[]);;Argument[0];Argument[2];taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;copyLarge;(InputStream,OutputStream,byte[]);;Argument[2];Argument[0];taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;copyLarge;(InputStream,OutputStream,byte[]);;Argument[2];Argument[1];taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;copyLarge;(InputStream,OutputStream,long,long);;Argument[0];Argument[1];taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;copyLarge;(InputStream,OutputStream,long,long,byte[]);;Argument[0];Argument[1];taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;copyLarge;(InputStream,OutputStream,long,long,byte[]);;Argument[0];Argument[4];taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;copyLarge;(InputStream,OutputStream,long,long,byte[]);;Argument[4];Argument[0];taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;copyLarge;(InputStream,OutputStream,long,long,byte[]);;Argument[4];Argument[1];taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;copyLarge;(Reader,Writer);;Argument[0];Argument[1];taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;copyLarge;(Reader,Writer,char[]);;Argument[0];Argument[1];taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;copyLarge;(Reader,Writer,char[]);;Argument[0];Argument[2];taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;copyLarge;(Reader,Writer,char[]);;Argument[2];Argument[0];taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;copyLarge;(Reader,Writer,char[]);;Argument[2];Argument[1];taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;copyLarge;(Reader,Writer,long,long);;Argument[0];Argument[1];taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;copyLarge;(Reader,Writer,long,long,char[]);;Argument[0];Argument[1];taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;copyLarge;(Reader,Writer,long,long,char[]);;Argument[0];Argument[4];taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;copyLarge;(Reader,Writer,long,long,char[]);;Argument[4];Argument[0];taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;copyLarge;(Reader,Writer,long,long,char[]);;Argument[4];Argument[1];taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;lineIterator;(InputStream,Charset);;Argument[0];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;lineIterator;(InputStream,String);;Argument[0];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;lineIterator;(Reader);;Argument[0];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;read;(InputStream,byte[]);;Argument[0];Argument[1];taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;read;(InputStream,byte[]);;Argument[1];Argument[0];taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;read;(InputStream,byte[],int,int);;Argument[0];Argument[1];taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;read;(InputStream,byte[],int,int);;Argument[1];Argument[0];taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;read;(ReadableByteChannel,ByteBuffer);;Argument[0];Argument[1];taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;read;(Reader,char[]);;Argument[0];Argument[1];taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;read;(Reader,char[]);;Argument[1];Argument[0];taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;read;(Reader,char[],int,int);;Argument[0];Argument[1];taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;read;(Reader,char[],int,int);;Argument[1];Argument[0];taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;readFully;(InputStream,byte[]);;Argument[0];Argument[1];taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;readFully;(InputStream,byte[]);;Argument[1];Argument[0];taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;readFully;(InputStream,byte[],int,int);;Argument[0];Argument[1];taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;readFully;(InputStream,byte[],int,int);;Argument[1];Argument[0];taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;readFully;(InputStream,int);;Argument[0];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;readFully;(ReadableByteChannel,ByteBuffer);;Argument[0];Argument[1];taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;readFully;(Reader,char[]);;Argument[0];Argument[1];taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;readFully;(Reader,char[]);;Argument[1];Argument[0];taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;readFully;(Reader,char[],int,int);;Argument[0];Argument[1];taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;readFully;(Reader,char[],int,int);;Argument[1];Argument[0];taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;readLines;(InputStream);;Argument[0];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;readLines;(InputStream,Charset);;Argument[0];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;readLines;(InputStream,String);;Argument[0];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;readLines;(Reader);;Argument[0];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;toBufferedReader;(Reader);;Argument[0];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;toBufferedReader;(Reader,int);;Argument[0];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;toByteArray;(InputStream,int);;Argument[0];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;toByteArray;(InputStream,long);;Argument[0];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;toByteArray;(String);;Argument[0];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;toCharArray;(InputStream);;Argument[0];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;toCharArray;(InputStream,Charset);;Argument[0];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;toCharArray;(InputStream,String);;Argument[0];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;toCharArray;(Reader);;Argument[0];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;toInputStream;(CharSequence);;Argument[0];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;toInputStream;(CharSequence,Charset);;Argument[0];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;toInputStream;(CharSequence,String);;Argument[0];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;toInputStream;(String);;Argument[0];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;toInputStream;(String,Charset);;Argument[0];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;toInputStream;(String,String);;Argument[0];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;toString;(InputStream);;Argument[0];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;toString;(InputStream,Charset);;Argument[0];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;toString;(InputStream,String);;Argument[0];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;toString;(Reader);;Argument[0];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;toString;(byte[]);;Argument[0];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;toString;(byte[],String);;Argument[0];ReturnValue;taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;write;(CharSequence,Writer);;Argument[0];Argument[1];taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;write;(String,Writer);;Argument[0];Argument[1];taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;write;(StringBuffer,Writer);;Argument[0];Argument[1];taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;write;(byte[],OutputStream);;Argument[0];Argument[1];taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;write;(byte[],Writer);;Argument[0];Argument[1];taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;write;(byte[],Writer,Charset);;Argument[0];Argument[1];taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;write;(byte[],Writer,String);;Argument[0];Argument[1];taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;write;(char[],Writer);;Argument[0];Argument[1];taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;writeChunked;(byte[],OutputStream);;Argument[0];Argument[1];taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;writeChunked;(char[],Writer);;Argument[0];Argument[1];taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;writeLines;(Collection,String,OutputStream);;Argument[1];Argument[2];taint;generated",
|
||||
"org.apache.commons.io;IOUtils;true;writeLines;(Collection,String,OutputStream,Charset);;Argument[1];Argument[2];taint;generated",
|
||||
"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;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"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,8 +1,6 @@
|
||||
/** Definitions related to the Apache Commons Lang library. */
|
||||
|
||||
import java
|
||||
import Lang2Generated
|
||||
import Lang3Generated
|
||||
private import semmle.code.java.dataflow.FlowSteps
|
||||
private import semmle.code.java.dataflow.ExternalFlow
|
||||
|
||||
|
||||
@@ -1,284 +0,0 @@
|
||||
/** Definitions related to the Apache Commons Lang 2 library. */
|
||||
|
||||
import java
|
||||
private import semmle.code.java.dataflow.ExternalFlow
|
||||
|
||||
private class ApacheCommonsLangModel extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"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[],int,int);;Argument[0];Argument[-1];taint;manual",
|
||||
"org.apache.commons.text;StrBuilder;false;append;(char[]);;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.CharSequence);;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,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.String);;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.StringBuffer);;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.lang.StringBuilder);;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;(java.nio.CharBuffer);;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;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[],int,int);;Argument[0];Argument[-1];taint;manual",
|
||||
"org.apache.commons.text;StrBuilder;false;appendln;(char[]);;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,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.String);;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.StringBuffer);;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;(java.lang.StringBuilder);;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;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,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;appendSeparator;(java.lang.String);;Argument[0];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;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;StrBuilder;(java.lang.String);;Argument[0];Argument[-1];taint;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;StringSubstitutor;false;replace;;;Argument[-1];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;(char[]);;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.text;StringSubstitutor;false;replace;(java.lang.CharSequence,int,int);;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.text;StringSubstitutor;false;replace;(java.lang.CharSequence);;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.text;StringSubstitutor;false;replace;(java.lang.Object,java.util.Map,java.lang.String,java.lang.String);;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.text;StringSubstitutor;false;replace;(java.lang.Object,java.util.Map,java.lang.String,java.lang.String);;Argument[1].MapValue;ReturnValue;taint;manual",
|
||||
"org.apache.commons.text;StringSubstitutor;false;replace;(java.lang.Object,java.util.Map);;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.text;StringSubstitutor;false;replace;(java.lang.Object,java.util.Map);;Argument[1].MapValue;ReturnValue;taint;manual",
|
||||
"org.apache.commons.text;StringSubstitutor;false;replace;(java.lang.Object,java.util.Properties);;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.text;StringSubstitutor;false;replace;(java.lang.Object,java.util.Properties);;Argument[1].MapValue;ReturnValue;taint;manual",
|
||||
"org.apache.commons.text;StringSubstitutor;false;replace;(java.lang.Object);;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.text;StringSubstitutor;false;replace;(java.lang.String,int,int);;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.text;StringSubstitutor;false;replace;(java.lang.String);;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.text;StringSubstitutor;false;replace;(java.lang.StringBuffer,int,int);;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.text;StringSubstitutor;false;replace;(java.lang.StringBuffer);;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;replace;(org.apache.commons.text.TextStringBuilder);;Argument[0];ReturnValue;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.StringBuffer);;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;(java.lang.StringBuilder);;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;replaceIn;(org.apache.commons.text.TextStringBuilder);;Argument[-1];Argument[0];taint;manual",
|
||||
"org.apache.commons.text;StringSubstitutor;false;setVariableResolver;;;Argument[0];Argument[-1];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;StringTokenizer;false;clone;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"org.apache.commons.text;StringTokenizer;false;getContent;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"org.apache.commons.text;StringTokenizer;false;getCSVInstance;;;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;getTSVInstance;;;Argument[0];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;reset;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.text;StringTokenizer;false;StringTokenizer;;;Argument[0];Argument[-1];taint;manual",
|
||||
"org.apache.commons.text;StringTokenizer;false;toString;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"org.apache.commons.text;StrTokenizer;false;clone;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"org.apache.commons.text;StrTokenizer;false;getContent;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"org.apache.commons.text;StrTokenizer;false;getCSVInstance;;;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;getTSVInstance;;;Argument[0];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;reset;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.text;StrTokenizer;false;StrTokenizer;;;Argument[0];Argument[-1];taint;manual",
|
||||
"org.apache.commons.text;StrTokenizer;false;toString;;;Argument[-1];ReturnValue;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[],int,int);;Argument[0];Argument[-1];taint;manual",
|
||||
"org.apache.commons.text;TextStringBuilder;false;append;(char[]);;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.CharSequence);;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,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.String);;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.StringBuffer);;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.lang.StringBuilder);;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;(java.nio.CharBuffer);;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;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[],int,int);;Argument[0];Argument[-1];taint;manual",
|
||||
"org.apache.commons.text;TextStringBuilder;false;appendln;(char[]);;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,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.String);;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.StringBuffer);;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;(java.lang.StringBuilder);;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;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,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;appendSeparator;(java.lang.String);;Argument[0];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;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;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;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;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,char[]);;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.text;WordUtils;false;capitalize;(java.lang.String);;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.text;WordUtils;false;capitalizeFully;(java.lang.String,char[]);;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.text;WordUtils;false;capitalizeFully;(java.lang.String);;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.text;WordUtils;false;initials;(java.lang.String,char[]);;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.text;WordUtils;false;initials;(java.lang.String);;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.text;WordUtils;false;swapCase;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.text;WordUtils;false;uncapitalize;(java.lang.String,char[]);;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.text;WordUtils;false;uncapitalize;(java.lang.String);;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.text;WordUtils;false;wrap;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.text;WordUtils;false;wrap;(java.lang.String,int,java.lang.String,boolean,java.lang.String);;Argument[2];ReturnValue;taint;manual",
|
||||
"org.apache.commons.text;WordUtils;false;wrap;(java.lang.String,int,java.lang.String,boolean);;Argument[2];ReturnValue;taint;manual",
|
||||
"org.apache.commons.text.lookup;StringLookup;true;lookup;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"org.apache.commons.text.lookup;StringLookupFactory;false;mapStringLookup;;;Argument[0].MapValue;ReturnValue;taint;manual",
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,436 +0,0 @@
|
||||
/** Definitions related to the Apache Commons Lang 3 library. */
|
||||
|
||||
import java
|
||||
private import semmle.code.java.dataflow.ExternalFlow
|
||||
|
||||
private class ApacheCommonsLang3Model extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"org.apache.commons.lang3;ArrayUtils;false;add;;;Argument[2];ReturnValue.ArrayElement;value;manual",
|
||||
"org.apache.commons.lang3;ArrayUtils;false;add;;;Argument[0].ArrayElement;ReturnValue.ArrayElement;value;manual",
|
||||
"org.apache.commons.lang3;ArrayUtils;false;add;(boolean[],boolean);;Argument[1];ReturnValue.ArrayElement;value;manual",
|
||||
"org.apache.commons.lang3;ArrayUtils;false;add;(byte[],byte);;Argument[1];ReturnValue.ArrayElement;value;manual",
|
||||
"org.apache.commons.lang3;ArrayUtils;false;add;(char[],char);;Argument[1];ReturnValue.ArrayElement;value;manual",
|
||||
"org.apache.commons.lang3;ArrayUtils;false;add;(double[],double);;Argument[1];ReturnValue.ArrayElement;value;manual",
|
||||
"org.apache.commons.lang3;ArrayUtils;false;add;(float[],float);;Argument[1];ReturnValue.ArrayElement;value;manual",
|
||||
"org.apache.commons.lang3;ArrayUtils;false;add;(int[],int);;Argument[1];ReturnValue.ArrayElement;value;manual",
|
||||
"org.apache.commons.lang3;ArrayUtils;false;add;(java.lang.Object[],java.lang.Object);;Argument[1];ReturnValue.ArrayElement;value;manual",
|
||||
"org.apache.commons.lang3;ArrayUtils;false;add;(long[],long);;Argument[1];ReturnValue.ArrayElement;value;manual",
|
||||
"org.apache.commons.lang3;ArrayUtils;false;add;(short[],short);;Argument[1];ReturnValue.ArrayElement;value;manual",
|
||||
"org.apache.commons.lang3;ArrayUtils;false;addAll;;;Argument[0..1].ArrayElement;ReturnValue.ArrayElement;value;manual",
|
||||
"org.apache.commons.lang3;ArrayUtils;false;addFirst;;;Argument[1];ReturnValue.ArrayElement;value;manual",
|
||||
"org.apache.commons.lang3;ArrayUtils;false;addFirst;;;Argument[0].ArrayElement;ReturnValue.ArrayElement;value;manual",
|
||||
"org.apache.commons.lang3;ArrayUtils;false;clone;;;Argument[0].ArrayElement;ReturnValue.ArrayElement;value;manual",
|
||||
"org.apache.commons.lang3;ArrayUtils;false;get;;;Argument[0].ArrayElement;ReturnValue;value;manual",
|
||||
"org.apache.commons.lang3;ArrayUtils;false;get;(java.lang.Object[],int,java.lang.Object);;Argument[2];ReturnValue;value;manual",
|
||||
"org.apache.commons.lang3;ArrayUtils;false;insert;;;Argument[1..2].ArrayElement;ReturnValue.ArrayElement;value;manual",
|
||||
"org.apache.commons.lang3;ArrayUtils;false;nullToEmpty;(java.lang.Object[],java.lang.Class);;Argument[0];ReturnValue;value;manual",
|
||||
"org.apache.commons.lang3;ArrayUtils;false;nullToEmpty;(java.lang.String[]);;Argument[0];ReturnValue;value;manual",
|
||||
"org.apache.commons.lang3;ArrayUtils;false;remove;;;Argument[0].ArrayElement;ReturnValue.ArrayElement;value;manual",
|
||||
"org.apache.commons.lang3;ArrayUtils;false;removeAll;;;Argument[0].ArrayElement;ReturnValue.ArrayElement;value;manual",
|
||||
"org.apache.commons.lang3;ArrayUtils;false;removeAllOccurences;;;Argument[0].ArrayElement;ReturnValue.ArrayElement;value;manual",
|
||||
"org.apache.commons.lang3;ArrayUtils;false;removeAllOccurrences;;;Argument[0].ArrayElement;ReturnValue.ArrayElement;value;manual",
|
||||
"org.apache.commons.lang3;ArrayUtils;false;removeElement;;;Argument[0].ArrayElement;ReturnValue.ArrayElement;value;manual",
|
||||
"org.apache.commons.lang3;ArrayUtils;false;removeElements;;;Argument[0].ArrayElement;ReturnValue.ArrayElement;value;manual",
|
||||
"org.apache.commons.lang3;ArrayUtils;false;subarray;;;Argument[0].ArrayElement;ReturnValue.ArrayElement;value;manual",
|
||||
"org.apache.commons.lang3;ArrayUtils;false;toArray;;;Argument[0].ArrayElement;ReturnValue.ArrayElement;value;manual",
|
||||
"org.apache.commons.lang3;ArrayUtils;false;toMap;;;Argument[0].ArrayElement.ArrayElement;ReturnValue.MapKey;value;manual",
|
||||
"org.apache.commons.lang3;ArrayUtils;false;toMap;;;Argument[0].ArrayElement.ArrayElement;ReturnValue.MapValue;value;manual",
|
||||
"org.apache.commons.lang3;ArrayUtils;false;toMap;;;Argument[0].ArrayElement.MapKey;ReturnValue.MapKey;value;manual",
|
||||
"org.apache.commons.lang3;ArrayUtils;false;toMap;;;Argument[0].ArrayElement.MapValue;ReturnValue.MapValue;value;manual",
|
||||
"org.apache.commons.lang3;ArrayUtils;false;toObject;;;Argument[0].ArrayElement;ReturnValue.ArrayElement;value;manual",
|
||||
"org.apache.commons.lang3;ArrayUtils;false;toPrimitive;;;Argument[1];ReturnValue.ArrayElement;value;manual",
|
||||
"org.apache.commons.lang3;ArrayUtils;false;toPrimitive;;;Argument[0].ArrayElement;ReturnValue.ArrayElement;value;manual",
|
||||
"org.apache.commons.lang3;ObjectUtils;false;clone;;;Argument[0];ReturnValue;value;manual",
|
||||
"org.apache.commons.lang3;ObjectUtils;false;cloneIfPossible;;;Argument[0];ReturnValue;value;manual",
|
||||
"org.apache.commons.lang3;ObjectUtils;false;CONST_BYTE;;;Argument[0];ReturnValue;value;manual",
|
||||
"org.apache.commons.lang3;ObjectUtils;false;CONST_SHORT;;;Argument[0];ReturnValue;value;manual",
|
||||
"org.apache.commons.lang3;ObjectUtils;false;CONST;;;Argument[0];ReturnValue;value;manual",
|
||||
"org.apache.commons.lang3;ObjectUtils;false;defaultIfNull;;;Argument[0..1];ReturnValue;value;manual",
|
||||
"org.apache.commons.lang3;ObjectUtils;false;firstNonNull;;;Argument[0].ArrayElement;ReturnValue;value;manual",
|
||||
"org.apache.commons.lang3;ObjectUtils;false;getIfNull;;;Argument[0];ReturnValue;value;manual",
|
||||
"org.apache.commons.lang3;ObjectUtils;false;max;;;Argument[0].ArrayElement;ReturnValue;value;manual",
|
||||
"org.apache.commons.lang3;ObjectUtils;false;median;;;Argument[0].ArrayElement;ReturnValue;value;manual",
|
||||
"org.apache.commons.lang3;ObjectUtils;false;min;;;Argument[0].ArrayElement;ReturnValue;value;manual",
|
||||
"org.apache.commons.lang3;ObjectUtils;false;mode;;;Argument[0].ArrayElement;ReturnValue;value;manual",
|
||||
"org.apache.commons.lang3;ObjectUtils;false;requireNonEmpty;;;Argument[0];ReturnValue;value;manual",
|
||||
"org.apache.commons.lang3;ObjectUtils;false;toString;(Object,String);;Argument[1];ReturnValue;value;manual",
|
||||
"org.apache.commons.lang3;RegExUtils;false;removeAll;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;RegExUtils;false;removeFirst;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;RegExUtils;false;removePattern;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;RegExUtils;false;replaceAll;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;RegExUtils;false;replaceAll;;;Argument[2];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;RegExUtils;false;replaceFirst;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;RegExUtils;false;replaceFirst;;;Argument[2];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;RegExUtils;false;replacePattern;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;RegExUtils;false;replacePattern;;;Argument[2];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringEscapeUtils;false;escapeJson;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;abbreviate;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;abbreviate;(java.lang.String,java.lang.String,int,int);;Argument[1];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;abbreviate;(java.lang.String,java.lang.String,int);;Argument[1];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;abbreviateMiddle;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;abbreviateMiddle;;;Argument[1];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;appendIfMissing;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;appendIfMissing;;;Argument[1];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;appendIfMissingIgnoreCase;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;appendIfMissingIgnoreCase;;;Argument[1];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;capitalize;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;center;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;center;(java.lang.String,int,java.lang.String);;Argument[2];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;chomp;(java.lang.String,java.lang.String);;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;chomp;(java.lang.String);;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;chop;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;defaultIfBlank;;;Argument[0..1];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;defaultIfEmpty;;;Argument[0..1];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;defaultString;;;Argument[0..1];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;deleteWhitespace;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;difference;;;Argument[0..1];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;firstNonBlank;;;Argument[0].ArrayElement;ReturnValue;value;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;firstNonEmpty;;;Argument[0].ArrayElement;ReturnValue;value;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;getBytes;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;getCommonPrefix;;;Argument[0].ArrayElement;ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;getDigits;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;getIfBlank;;;Argument[0..1];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;getIfEmpty;;;Argument[0..1];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;join;(char[],char,int,int);;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;join;(char[],char);;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;join;(java.lang.Iterable,char);;Argument[0].Element;ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;join;(java.lang.Iterable,java.lang.String);;Argument[1];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;join;(java.lang.Iterable,java.lang.String);;Argument[0].Element;ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;join;(java.lang.Object[],char,int,int);;Argument[0].ArrayElement;ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;join;(java.lang.Object[],char);;Argument[0].ArrayElement;ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;join;(java.lang.Object[],java.lang.String,int,int);;Argument[1];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;join;(java.lang.Object[],java.lang.String,int,int);;Argument[0].ArrayElement;ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;join;(java.lang.Object[],java.lang.String);;Argument[1];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;join;(java.lang.Object[],java.lang.String);;Argument[0].ArrayElement;ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;join;(java.lang.Object[]);;Argument[0].ArrayElement;ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;join;(java.util.Iterator,char);;Argument[0].Element;ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;join;(java.util.Iterator,java.lang.String);;Argument[1];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;join;(java.util.Iterator,java.lang.String);;Argument[0].Element;ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;join;(java.util.List,char,int,int);;Argument[0].Element;ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;join;(java.util.List,java.lang.String,int,int);;Argument[1];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;join;(java.util.List,java.lang.String,int,int);;Argument[0].Element;ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;joinWith;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;joinWith;;;Argument[1].ArrayElement;ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;left;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;leftPad;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;leftPad;(java.lang.String,int,java.lang.String);;Argument[2];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;lowerCase;(java.lang.String,java.util.Locale);;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;lowerCase;(java.lang.String);;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;mid;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;normalizeSpace;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;overlay;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;overlay;;;Argument[1];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;prependIfMissing;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;prependIfMissing;;;Argument[1];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;prependIfMissingIgnoreCase;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;prependIfMissingIgnoreCase;;;Argument[1];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;remove;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;removeAll;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;removeEnd;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;removeEndIgnoreCase;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;removeFirst;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;removeIgnoreCase;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;removePattern;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;removeStart;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;removeStartIgnoreCase;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;repeat;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;repeat;(java.lang.String,java.lang.String,int);;Argument[1];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;replace;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;replace;;;Argument[2];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;replaceAll;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;replaceAll;;;Argument[2];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;replaceChars;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;replaceChars;(java.lang.String,java.lang.String,java.lang.String);;Argument[2];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;replaceEach;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;replaceEach;;;Argument[2].ArrayElement;ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;replaceEachRepeatedly;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;replaceEachRepeatedly;;;Argument[2].ArrayElement;ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;replaceFirst;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;replaceFirst;;;Argument[2];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;replaceIgnoreCase;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;replaceIgnoreCase;;;Argument[2];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;replaceOnce;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;replaceOnce;;;Argument[2];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;replaceOnceIgnoreCase;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;replaceOnceIgnoreCase;;;Argument[2];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;replacePattern;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;replacePattern;;;Argument[2];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;reverse;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;reverseDelimited;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;right;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;rightPad;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;rightPad;(java.lang.String,int,java.lang.String);;Argument[2];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;rotate;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;split;(java.lang.String,char);;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;split;(java.lang.String,java.lang.String,int);;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;split;(java.lang.String,java.lang.String);;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;split;(java.lang.String);;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;splitByCharacterType;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;splitByCharacterTypeCamelCase;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;splitByWholeSeparator;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;splitByWholeSeparatorPreserveAllTokens;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;splitPreserveAllTokens;(java.lang.String,char);;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;splitPreserveAllTokens;(java.lang.String,java.lang.String,int);;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;splitPreserveAllTokens;(java.lang.String,java.lang.String);;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;splitPreserveAllTokens;(java.lang.String);;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;strip;(java.lang.String,java.lang.String);;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;strip;(java.lang.String);;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;stripAccents;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;stripAll;;;Argument[0].ArrayElement;ReturnValue.ArrayElement;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;stripEnd;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;stripStart;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;stripToEmpty;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;stripToNull;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;substring;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;substringAfter;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;substringAfterLast;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;substringBefore;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;substringBeforeLast;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;substringBetween;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;substringsBetween;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;swapCase;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;toCodePoints;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;toEncodedString;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;toRootLowerCase;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;toRootUpperCase;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;toString;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;trim;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;trimToEmpty;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;trimToNull;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;truncate;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;uncapitalize;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;unwrap;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;upperCase;(java.lang.String,java.util.Locale);;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;upperCase;(java.lang.String);;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;valueOf;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;wrap;(java.lang.String,char);;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;wrap;(java.lang.String,java.lang.String);;Argument[0..1];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;wrapIfMissing;(java.lang.String,char);;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3;StringUtils;false;wrapIfMissing;(java.lang.String,java.lang.String);;Argument[0..1];ReturnValue;taint;manual",
|
||||
"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[],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;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;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.mutable;Mutable;true;getValue;;;Argument[-1].SyntheticField[org.apache.commons.lang3.mutable.MutableObject.value];ReturnValue;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;setValue;;;Argument[0];Argument[-1].SyntheticField[org.apache.commons.lang3.mutable.MutableObject.value];value;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[],int,int);;Argument[0];Argument[-1];taint;manual",
|
||||
"org.apache.commons.lang3.text;StrBuilder;false;append;(char[]);;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.CharSequence);;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,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.String);;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.StringBuffer);;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.lang.StringBuilder);;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;(java.nio.CharBuffer);;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;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[],int,int);;Argument[0];Argument[-1];taint;manual",
|
||||
"org.apache.commons.lang3.text;StrBuilder;false;appendln;(char[]);;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,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.String);;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.StringBuffer);;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;(java.lang.StringBuilder);;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;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,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;appendSeparator;(java.lang.String);;Argument[0];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;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;StrBuilder;(java.lang.String);;Argument[0];Argument[-1];taint;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;StrLookup;false;mapLookup;;;Argument[0].MapValue;ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3.text;StrSubstitutor;false;replace;;;Argument[-1];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;(char[]);;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3.text;StrSubstitutor;false;replace;(java.lang.CharSequence,int,int);;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3.text;StrSubstitutor;false;replace;(java.lang.CharSequence);;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3.text;StrSubstitutor;false;replace;(java.lang.Object,java.util.Map,java.lang.String,java.lang.String);;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3.text;StrSubstitutor;false;replace;(java.lang.Object,java.util.Map,java.lang.String,java.lang.String);;Argument[1].MapValue;ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3.text;StrSubstitutor;false;replace;(java.lang.Object,java.util.Map);;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3.text;StrSubstitutor;false;replace;(java.lang.Object,java.util.Map);;Argument[1].MapValue;ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3.text;StrSubstitutor;false;replace;(java.lang.Object,java.util.Properties);;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3.text;StrSubstitutor;false;replace;(java.lang.Object,java.util.Properties);;Argument[1].MapValue;ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3.text;StrSubstitutor;false;replace;(java.lang.Object);;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3.text;StrSubstitutor;false;replace;(java.lang.String,int,int);;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3.text;StrSubstitutor;false;replace;(java.lang.String);;Argument[0];ReturnValue;taint;manual",
|
||||
"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;(java.lang.StringBuffer);;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;replace;(org.apache.commons.lang3.text.StrBuilder);;Argument[0];ReturnValue;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.StringBuffer);;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;(java.lang.StringBuilder);;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;replaceIn;(org.apache.commons.lang3.text.StrBuilder);;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;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;StrTokenizer;false;clone;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3.text;StrTokenizer;false;getContent;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3.text;StrTokenizer;false;getCSVInstance;;;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;getTSVInstance;;;Argument[0];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;reset;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3.text;StrTokenizer;false;StrTokenizer;;;Argument[0];Argument[-1];taint;manual",
|
||||
"org.apache.commons.lang3.text;StrTokenizer;false;toString;;;Argument[-1];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;capitalize;(java.lang.String);;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3.text;WordUtils;false;capitalizeFully;(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",
|
||||
"org.apache.commons.lang3.text;WordUtils;false;initials;(java.lang.String,char[]);;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3.text;WordUtils;false;initials;(java.lang.String);;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3.text;WordUtils;false;swapCase;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3.text;WordUtils;false;uncapitalize;(java.lang.String,char[]);;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3.text;WordUtils;false;uncapitalize;(java.lang.String);;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3.text;WordUtils;false;wrap;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3.text;WordUtils;false;wrap;(java.lang.String,int,java.lang.String,boolean,java.lang.String);;Argument[2];ReturnValue;taint;manual",
|
||||
"org.apache.commons.lang3.text;WordUtils;false;wrap;(java.lang.String,int,java.lang.String,boolean);;Argument[2];ReturnValue;taint;manual",
|
||||
"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;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;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;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;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;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;getMiddle;;;Argument[-1].Field[org.apache.commons.lang3.tuple.ImmutableTriple.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;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.MutableTriple.middle];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;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",
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,769 +0,0 @@
|
||||
/**
|
||||
* THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT.
|
||||
* Definitions of negative summaries in the IOGenerated framework.
|
||||
*/
|
||||
|
||||
import java
|
||||
private import semmle.code.java.dataflow.ExternalFlow
|
||||
|
||||
private class IOGeneratedNegativesummaryCsv extends NegativeSummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"org.apache.commons.io.charset;CharsetDecoders;CharsetDecoders;();generated",
|
||||
"org.apache.commons.io.charset;CharsetEncoders;CharsetEncoders;();generated",
|
||||
"org.apache.commons.io.comparator;DefaultFileComparator;DefaultFileComparator;();generated",
|
||||
"org.apache.commons.io.comparator;DirectoryFileComparator;DirectoryFileComparator;();generated",
|
||||
"org.apache.commons.io.comparator;ExtensionFileComparator;ExtensionFileComparator;();generated",
|
||||
"org.apache.commons.io.comparator;ExtensionFileComparator;ExtensionFileComparator;(IOCase);generated",
|
||||
"org.apache.commons.io.comparator;ExtensionFileComparator;toString;();generated",
|
||||
"org.apache.commons.io.comparator;LastModifiedFileComparator;LastModifiedFileComparator;();generated",
|
||||
"org.apache.commons.io.comparator;NameFileComparator;NameFileComparator;();generated",
|
||||
"org.apache.commons.io.comparator;NameFileComparator;NameFileComparator;(IOCase);generated",
|
||||
"org.apache.commons.io.comparator;NameFileComparator;toString;();generated",
|
||||
"org.apache.commons.io.comparator;PathFileComparator;PathFileComparator;();generated",
|
||||
"org.apache.commons.io.comparator;PathFileComparator;PathFileComparator;(IOCase);generated",
|
||||
"org.apache.commons.io.comparator;PathFileComparator;toString;();generated",
|
||||
"org.apache.commons.io.comparator;SizeFileComparator;SizeFileComparator;();generated",
|
||||
"org.apache.commons.io.comparator;SizeFileComparator;SizeFileComparator;(boolean);generated",
|
||||
"org.apache.commons.io.comparator;SizeFileComparator;toString;();generated",
|
||||
"org.apache.commons.io.file.attribute;FileTimes;minusMillis;(FileTime,long);generated",
|
||||
"org.apache.commons.io.file.attribute;FileTimes;minusNanos;(FileTime,long);generated",
|
||||
"org.apache.commons.io.file.attribute;FileTimes;minusSeconds;(FileTime,long);generated",
|
||||
"org.apache.commons.io.file.attribute;FileTimes;now;();generated",
|
||||
"org.apache.commons.io.file.attribute;FileTimes;ntfsTimeToDate;(long);generated",
|
||||
"org.apache.commons.io.file.attribute;FileTimes;ntfsTimeToFileTime;(long);generated",
|
||||
"org.apache.commons.io.file.attribute;FileTimes;plusMillis;(FileTime,long);generated",
|
||||
"org.apache.commons.io.file.attribute;FileTimes;plusNanos;(FileTime,long);generated",
|
||||
"org.apache.commons.io.file.attribute;FileTimes;plusSeconds;(FileTime,long);generated",
|
||||
"org.apache.commons.io.file.attribute;FileTimes;setLastModifiedTime;(Path);generated",
|
||||
"org.apache.commons.io.file.attribute;FileTimes;toDate;(FileTime);generated",
|
||||
"org.apache.commons.io.file.attribute;FileTimes;toFileTime;(Date);generated",
|
||||
"org.apache.commons.io.file.attribute;FileTimes;toNtfsTime;(Date);generated",
|
||||
"org.apache.commons.io.file.attribute;FileTimes;toNtfsTime;(FileTime);generated",
|
||||
"org.apache.commons.io.file.spi;FileSystemProviders;getFileSystemProvider;(Path);generated",
|
||||
"org.apache.commons.io.file.spi;FileSystemProviders;installed;();generated",
|
||||
"org.apache.commons.io.file;AccumulatorPathVisitor;AccumulatorPathVisitor;();generated",
|
||||
"org.apache.commons.io.file;AccumulatorPathVisitor;relativizeDirectories;(Path,boolean,Comparator);generated",
|
||||
"org.apache.commons.io.file;AccumulatorPathVisitor;relativizeFiles;(Path,boolean,Comparator);generated",
|
||||
"org.apache.commons.io.file;AccumulatorPathVisitor;withBigIntegerCounters;();generated",
|
||||
"org.apache.commons.io.file;AccumulatorPathVisitor;withLongCounters;();generated",
|
||||
"org.apache.commons.io.file;CleaningPathVisitor;withBigIntegerCounters;();generated",
|
||||
"org.apache.commons.io.file;CleaningPathVisitor;withLongCounters;();generated",
|
||||
"org.apache.commons.io.file;Counters$Counter;add;(long);generated",
|
||||
"org.apache.commons.io.file;Counters$Counter;get;();generated",
|
||||
"org.apache.commons.io.file;Counters$Counter;getBigInteger;();generated",
|
||||
"org.apache.commons.io.file;Counters$Counter;getLong;();generated",
|
||||
"org.apache.commons.io.file;Counters$Counter;increment;();generated",
|
||||
"org.apache.commons.io.file;Counters$Counter;reset;();generated",
|
||||
"org.apache.commons.io.file;Counters$PathCounters;getByteCounter;();generated",
|
||||
"org.apache.commons.io.file;Counters$PathCounters;getDirectoryCounter;();generated",
|
||||
"org.apache.commons.io.file;Counters$PathCounters;getFileCounter;();generated",
|
||||
"org.apache.commons.io.file;Counters$PathCounters;reset;();generated",
|
||||
"org.apache.commons.io.file;Counters;Counters;();generated",
|
||||
"org.apache.commons.io.file;Counters;bigIntegerCounter;();generated",
|
||||
"org.apache.commons.io.file;Counters;bigIntegerPathCounters;();generated",
|
||||
"org.apache.commons.io.file;Counters;longCounter;();generated",
|
||||
"org.apache.commons.io.file;Counters;longPathCounters;();generated",
|
||||
"org.apache.commons.io.file;Counters;noopCounter;();generated",
|
||||
"org.apache.commons.io.file;Counters;noopPathCounters;();generated",
|
||||
"org.apache.commons.io.file;CountingPathVisitor;toString;();generated",
|
||||
"org.apache.commons.io.file;CountingPathVisitor;withBigIntegerCounters;();generated",
|
||||
"org.apache.commons.io.file;CountingPathVisitor;withLongCounters;();generated",
|
||||
"org.apache.commons.io.file;DeletingPathVisitor;withBigIntegerCounters;();generated",
|
||||
"org.apache.commons.io.file;DeletingPathVisitor;withLongCounters;();generated",
|
||||
"org.apache.commons.io.file;NoopPathVisitor;NoopPathVisitor;();generated",
|
||||
"org.apache.commons.io.file;PathFilter;accept;(Path,BasicFileAttributes);generated",
|
||||
"org.apache.commons.io.file;PathUtils;cleanDirectory;(Path);generated",
|
||||
"org.apache.commons.io.file;PathUtils;cleanDirectory;(Path,DeleteOption[]);generated",
|
||||
"org.apache.commons.io.file;PathUtils;copyDirectory;(Path,Path,CopyOption[]);generated",
|
||||
"org.apache.commons.io.file;PathUtils;copyFileToDirectory;(Path,Path,CopyOption[]);generated",
|
||||
"org.apache.commons.io.file;PathUtils;countDirectory;(Path);generated",
|
||||
"org.apache.commons.io.file;PathUtils;countDirectoryAsBigInteger;(Path);generated",
|
||||
"org.apache.commons.io.file;PathUtils;createParentDirectories;(Path,FileAttribute[]);generated",
|
||||
"org.apache.commons.io.file;PathUtils;createParentDirectories;(Path,LinkOption,FileAttribute[]);generated",
|
||||
"org.apache.commons.io.file;PathUtils;current;();generated",
|
||||
"org.apache.commons.io.file;PathUtils;delete;(Path);generated",
|
||||
"org.apache.commons.io.file;PathUtils;delete;(Path,DeleteOption[]);generated",
|
||||
"org.apache.commons.io.file;PathUtils;delete;(Path,LinkOption[],DeleteOption[]);generated",
|
||||
"org.apache.commons.io.file;PathUtils;deleteDirectory;(Path);generated",
|
||||
"org.apache.commons.io.file;PathUtils;deleteDirectory;(Path,DeleteOption[]);generated",
|
||||
"org.apache.commons.io.file;PathUtils;deleteDirectory;(Path,LinkOption[],DeleteOption[]);generated",
|
||||
"org.apache.commons.io.file;PathUtils;deleteFile;(Path);generated",
|
||||
"org.apache.commons.io.file;PathUtils;deleteFile;(Path,DeleteOption[]);generated",
|
||||
"org.apache.commons.io.file;PathUtils;deleteFile;(Path,LinkOption[],DeleteOption[]);generated",
|
||||
"org.apache.commons.io.file;PathUtils;directoryAndFileContentEquals;(Path,Path);generated",
|
||||
"org.apache.commons.io.file;PathUtils;directoryAndFileContentEquals;(Path,Path,LinkOption[],OpenOption[],FileVisitOption[]);generated",
|
||||
"org.apache.commons.io.file;PathUtils;directoryContentEquals;(Path,Path);generated",
|
||||
"org.apache.commons.io.file;PathUtils;directoryContentEquals;(Path,Path,int,LinkOption[],FileVisitOption[]);generated",
|
||||
"org.apache.commons.io.file;PathUtils;fileContentEquals;(Path,Path);generated",
|
||||
"org.apache.commons.io.file;PathUtils;fileContentEquals;(Path,Path,LinkOption[],OpenOption[]);generated",
|
||||
"org.apache.commons.io.file;PathUtils;filter;(PathFilter,Path[]);generated",
|
||||
"org.apache.commons.io.file;PathUtils;getAclEntryList;(Path);generated",
|
||||
"org.apache.commons.io.file;PathUtils;getAclFileAttributeView;(Path,LinkOption[]);generated",
|
||||
"org.apache.commons.io.file;PathUtils;getDosFileAttributeView;(Path,LinkOption[]);generated",
|
||||
"org.apache.commons.io.file;PathUtils;getPosixFileAttributeView;(Path,LinkOption[]);generated",
|
||||
"org.apache.commons.io.file;PathUtils;getTempDirectory;();generated",
|
||||
"org.apache.commons.io.file;PathUtils;isDirectory;(Path,LinkOption[]);generated",
|
||||
"org.apache.commons.io.file;PathUtils;isEmpty;(Path);generated",
|
||||
"org.apache.commons.io.file;PathUtils;isEmptyDirectory;(Path);generated",
|
||||
"org.apache.commons.io.file;PathUtils;isEmptyFile;(Path);generated",
|
||||
"org.apache.commons.io.file;PathUtils;isNewer;(Path,ChronoZonedDateTime,LinkOption[]);generated",
|
||||
"org.apache.commons.io.file;PathUtils;isNewer;(Path,FileTime,LinkOption[]);generated",
|
||||
"org.apache.commons.io.file;PathUtils;isNewer;(Path,Instant,LinkOption[]);generated",
|
||||
"org.apache.commons.io.file;PathUtils;isNewer;(Path,Path);generated",
|
||||
"org.apache.commons.io.file;PathUtils;isNewer;(Path,long,LinkOption[]);generated",
|
||||
"org.apache.commons.io.file;PathUtils;isOlder;(Path,FileTime,LinkOption[]);generated",
|
||||
"org.apache.commons.io.file;PathUtils;isOlder;(Path,Instant,LinkOption[]);generated",
|
||||
"org.apache.commons.io.file;PathUtils;isOlder;(Path,Path);generated",
|
||||
"org.apache.commons.io.file;PathUtils;isOlder;(Path,long,LinkOption[]);generated",
|
||||
"org.apache.commons.io.file;PathUtils;isPosix;(Path,LinkOption[]);generated",
|
||||
"org.apache.commons.io.file;PathUtils;isRegularFile;(Path,LinkOption[]);generated",
|
||||
"org.apache.commons.io.file;PathUtils;newDirectoryStream;(Path,PathFilter);generated",
|
||||
"org.apache.commons.io.file;PathUtils;newOutputStream;(Path,boolean);generated",
|
||||
"org.apache.commons.io.file;PathUtils;noFollowLinkOptionArray;();generated",
|
||||
"org.apache.commons.io.file;PathUtils;readAttributes;(Path,Class,LinkOption[]);generated",
|
||||
"org.apache.commons.io.file;PathUtils;readBasicFileAttributes;(Path);generated",
|
||||
"org.apache.commons.io.file;PathUtils;readBasicFileAttributes;(Path,LinkOption[]);generated",
|
||||
"org.apache.commons.io.file;PathUtils;readBasicFileAttributesUnchecked;(Path);generated",
|
||||
"org.apache.commons.io.file;PathUtils;readDosFileAttributes;(Path,LinkOption[]);generated",
|
||||
"org.apache.commons.io.file;PathUtils;readOsFileAttributes;(Path,LinkOption[]);generated",
|
||||
"org.apache.commons.io.file;PathUtils;readPosixFileAttributes;(Path,LinkOption[]);generated",
|
||||
"org.apache.commons.io.file;PathUtils;readString;(Path,Charset);generated",
|
||||
"org.apache.commons.io.file;PathUtils;setLastModifiedTime;(Path,Path);generated",
|
||||
"org.apache.commons.io.file;PathUtils;sizeOf;(Path);generated",
|
||||
"org.apache.commons.io.file;PathUtils;sizeOfAsBigInteger;(Path);generated",
|
||||
"org.apache.commons.io.file;PathUtils;sizeOfDirectory;(Path);generated",
|
||||
"org.apache.commons.io.file;PathUtils;sizeOfDirectoryAsBigInteger;(Path);generated",
|
||||
"org.apache.commons.io.file;PathUtils;waitFor;(Path,Duration,LinkOption[]);generated",
|
||||
"org.apache.commons.io.file;PathUtils;walk;(Path,PathFilter,int,boolean,FileVisitOption[]);generated",
|
||||
"org.apache.commons.io.file;StandardDeleteOption;overrideReadOnly;(DeleteOption[]);generated",
|
||||
"org.apache.commons.io.filefilter;AbstractFileFilter;AbstractFileFilter;();generated",
|
||||
"org.apache.commons.io.filefilter;AbstractFileFilter;toString;();generated",
|
||||
"org.apache.commons.io.filefilter;AgeFileFilter;AgeFileFilter;(Date);generated",
|
||||
"org.apache.commons.io.filefilter;AgeFileFilter;AgeFileFilter;(Date,boolean);generated",
|
||||
"org.apache.commons.io.filefilter;AgeFileFilter;AgeFileFilter;(File);generated",
|
||||
"org.apache.commons.io.filefilter;AgeFileFilter;AgeFileFilter;(File,boolean);generated",
|
||||
"org.apache.commons.io.filefilter;AgeFileFilter;AgeFileFilter;(long);generated",
|
||||
"org.apache.commons.io.filefilter;AgeFileFilter;AgeFileFilter;(long,boolean);generated",
|
||||
"org.apache.commons.io.filefilter;AndFileFilter;AndFileFilter;();generated",
|
||||
"org.apache.commons.io.filefilter;ConditionalFileFilter;addFileFilter;(IOFileFilter);generated",
|
||||
"org.apache.commons.io.filefilter;ConditionalFileFilter;getFileFilters;();generated",
|
||||
"org.apache.commons.io.filefilter;ConditionalFileFilter;removeFileFilter;(IOFileFilter);generated",
|
||||
"org.apache.commons.io.filefilter;ConditionalFileFilter;setFileFilters;(List);generated",
|
||||
"org.apache.commons.io.filefilter;FalseFileFilter;toString;();generated",
|
||||
"org.apache.commons.io.filefilter;FileFilterUtils;FileFilterUtils;();generated",
|
||||
"org.apache.commons.io.filefilter;FileFilterUtils;ageFileFilter;(Date);generated",
|
||||
"org.apache.commons.io.filefilter;FileFilterUtils;ageFileFilter;(Date,boolean);generated",
|
||||
"org.apache.commons.io.filefilter;FileFilterUtils;ageFileFilter;(File);generated",
|
||||
"org.apache.commons.io.filefilter;FileFilterUtils;ageFileFilter;(File,boolean);generated",
|
||||
"org.apache.commons.io.filefilter;FileFilterUtils;ageFileFilter;(long);generated",
|
||||
"org.apache.commons.io.filefilter;FileFilterUtils;ageFileFilter;(long,boolean);generated",
|
||||
"org.apache.commons.io.filefilter;FileFilterUtils;directoryFileFilter;();generated",
|
||||
"org.apache.commons.io.filefilter;FileFilterUtils;falseFileFilter;();generated",
|
||||
"org.apache.commons.io.filefilter;FileFilterUtils;fileFileFilter;();generated",
|
||||
"org.apache.commons.io.filefilter;FileFilterUtils;filter;(IOFileFilter,File[]);generated",
|
||||
"org.apache.commons.io.filefilter;FileFilterUtils;filter;(IOFileFilter,Iterable);generated",
|
||||
"org.apache.commons.io.filefilter;FileFilterUtils;filterList;(IOFileFilter,File[]);generated",
|
||||
"org.apache.commons.io.filefilter;FileFilterUtils;filterList;(IOFileFilter,Iterable);generated",
|
||||
"org.apache.commons.io.filefilter;FileFilterUtils;filterSet;(IOFileFilter,File[]);generated",
|
||||
"org.apache.commons.io.filefilter;FileFilterUtils;filterSet;(IOFileFilter,Iterable);generated",
|
||||
"org.apache.commons.io.filefilter;FileFilterUtils;sizeFileFilter;(long);generated",
|
||||
"org.apache.commons.io.filefilter;FileFilterUtils;sizeFileFilter;(long,boolean);generated",
|
||||
"org.apache.commons.io.filefilter;FileFilterUtils;sizeRangeFileFilter;(long,long);generated",
|
||||
"org.apache.commons.io.filefilter;FileFilterUtils;trueFileFilter;();generated",
|
||||
"org.apache.commons.io.filefilter;IOFileFilter;and;(IOFileFilter);generated",
|
||||
"org.apache.commons.io.filefilter;IOFileFilter;negate;();generated",
|
||||
"org.apache.commons.io.filefilter;IOFileFilter;or;(IOFileFilter);generated",
|
||||
"org.apache.commons.io.filefilter;OrFileFilter;OrFileFilter;();generated",
|
||||
"org.apache.commons.io.filefilter;RegexFileFilter;RegexFileFilter;(String);generated",
|
||||
"org.apache.commons.io.filefilter;RegexFileFilter;RegexFileFilter;(String,IOCase);generated",
|
||||
"org.apache.commons.io.filefilter;RegexFileFilter;RegexFileFilter;(String,int);generated",
|
||||
"org.apache.commons.io.filefilter;SizeFileFilter;SizeFileFilter;(long);generated",
|
||||
"org.apache.commons.io.filefilter;SizeFileFilter;SizeFileFilter;(long,boolean);generated",
|
||||
"org.apache.commons.io.filefilter;SizeFileFilter;toString;();generated",
|
||||
"org.apache.commons.io.filefilter;SymbolicLinkFileFilter;SymbolicLinkFileFilter;(FileVisitResult,FileVisitResult);generated",
|
||||
"org.apache.commons.io.filefilter;TrueFileFilter;toString;();generated",
|
||||
"org.apache.commons.io.function;IOBiConsumer;accept;(Object,Object);generated",
|
||||
"org.apache.commons.io.function;IOBiConsumer;andThen;(IOBiConsumer);generated",
|
||||
"org.apache.commons.io.function;IOBiFunction;andThen;(Function);generated",
|
||||
"org.apache.commons.io.function;IOBiFunction;andThen;(IOFunction);generated",
|
||||
"org.apache.commons.io.function;IOBiFunction;apply;(Object,Object);generated",
|
||||
"org.apache.commons.io.function;IOConsumer;accept;(Object);generated",
|
||||
"org.apache.commons.io.function;IOConsumer;andThen;(IOConsumer);generated",
|
||||
"org.apache.commons.io.function;IOConsumer;forEach;(Object[],IOConsumer);generated",
|
||||
"org.apache.commons.io.function;IOConsumer;forEachIndexed;(Stream,IOConsumer);generated",
|
||||
"org.apache.commons.io.function;IOConsumer;noop;();generated",
|
||||
"org.apache.commons.io.function;IOFunction;andThen;(Consumer);generated",
|
||||
"org.apache.commons.io.function;IOFunction;andThen;(Function);generated",
|
||||
"org.apache.commons.io.function;IOFunction;andThen;(IOConsumer);generated",
|
||||
"org.apache.commons.io.function;IOFunction;andThen;(IOFunction);generated",
|
||||
"org.apache.commons.io.function;IOFunction;apply;(Object);generated",
|
||||
"org.apache.commons.io.function;IOFunction;compose;(Function);generated",
|
||||
"org.apache.commons.io.function;IOFunction;compose;(IOFunction);generated",
|
||||
"org.apache.commons.io.function;IOFunction;compose;(IOSupplier);generated",
|
||||
"org.apache.commons.io.function;IOFunction;compose;(Supplier);generated",
|
||||
"org.apache.commons.io.function;IOFunction;identity;();generated",
|
||||
"org.apache.commons.io.function;IORunnable;run;();generated",
|
||||
"org.apache.commons.io.function;IOSupplier;get;();generated",
|
||||
"org.apache.commons.io.function;IOTriFunction;andThen;(Function);generated",
|
||||
"org.apache.commons.io.function;IOTriFunction;andThen;(IOFunction);generated",
|
||||
"org.apache.commons.io.function;IOTriFunction;apply;(Object,Object,Object);generated",
|
||||
"org.apache.commons.io.input.buffer;CircularByteBuffer;CircularByteBuffer;();generated",
|
||||
"org.apache.commons.io.input.buffer;CircularByteBuffer;CircularByteBuffer;(int);generated",
|
||||
"org.apache.commons.io.input.buffer;CircularByteBuffer;add;(byte);generated",
|
||||
"org.apache.commons.io.input.buffer;CircularByteBuffer;add;(byte[],int,int);generated",
|
||||
"org.apache.commons.io.input.buffer;CircularByteBuffer;clear;();generated",
|
||||
"org.apache.commons.io.input.buffer;CircularByteBuffer;getCurrentNumberOfBytes;();generated",
|
||||
"org.apache.commons.io.input.buffer;CircularByteBuffer;getSpace;();generated",
|
||||
"org.apache.commons.io.input.buffer;CircularByteBuffer;hasBytes;();generated",
|
||||
"org.apache.commons.io.input.buffer;CircularByteBuffer;hasSpace;();generated",
|
||||
"org.apache.commons.io.input.buffer;CircularByteBuffer;hasSpace;(int);generated",
|
||||
"org.apache.commons.io.input.buffer;CircularByteBuffer;peek;(byte[],int,int);generated",
|
||||
"org.apache.commons.io.input.buffer;CircularByteBuffer;read;();generated",
|
||||
"org.apache.commons.io.input.buffer;CircularByteBuffer;read;(byte[],int,int);generated",
|
||||
"org.apache.commons.io.input.buffer;PeekableInputStream;peek;(byte[]);generated",
|
||||
"org.apache.commons.io.input.buffer;PeekableInputStream;peek;(byte[],int,int);generated",
|
||||
"org.apache.commons.io.input;AutoCloseInputStream;AutoCloseInputStream;(InputStream);generated",
|
||||
"org.apache.commons.io.input;BOMInputStream;BOMInputStream;(InputStream);generated",
|
||||
"org.apache.commons.io.input;BOMInputStream;BOMInputStream;(InputStream,boolean);generated",
|
||||
"org.apache.commons.io.input;BOMInputStream;hasBOM;();generated",
|
||||
"org.apache.commons.io.input;BOMInputStream;hasBOM;(ByteOrderMark);generated",
|
||||
"org.apache.commons.io.input;BoundedInputStream;isPropagateClose;();generated",
|
||||
"org.apache.commons.io.input;BoundedInputStream;setPropagateClose;(boolean);generated",
|
||||
"org.apache.commons.io.input;BoundedInputStream;toString;();generated",
|
||||
"org.apache.commons.io.input;BrokenInputStream;BrokenInputStream;();generated",
|
||||
"org.apache.commons.io.input;BrokenInputStream;BrokenInputStream;(IOException);generated",
|
||||
"org.apache.commons.io.input;BrokenReader;BrokenReader;();generated",
|
||||
"org.apache.commons.io.input;BrokenReader;BrokenReader;(IOException);generated",
|
||||
"org.apache.commons.io.input;BufferedFileChannelInputStream;BufferedFileChannelInputStream;(File);generated",
|
||||
"org.apache.commons.io.input;BufferedFileChannelInputStream;BufferedFileChannelInputStream;(File,int);generated",
|
||||
"org.apache.commons.io.input;BufferedFileChannelInputStream;BufferedFileChannelInputStream;(Path);generated",
|
||||
"org.apache.commons.io.input;BufferedFileChannelInputStream;BufferedFileChannelInputStream;(Path,int);generated",
|
||||
"org.apache.commons.io.input;CharSequenceInputStream;CharSequenceInputStream;(CharSequence,Charset);generated",
|
||||
"org.apache.commons.io.input;CharSequenceInputStream;CharSequenceInputStream;(CharSequence,Charset,int);generated",
|
||||
"org.apache.commons.io.input;CharSequenceInputStream;CharSequenceInputStream;(CharSequence,String);generated",
|
||||
"org.apache.commons.io.input;CharSequenceInputStream;CharSequenceInputStream;(CharSequence,String,int);generated",
|
||||
"org.apache.commons.io.input;CharacterFilterReader;CharacterFilterReader;(Reader,int);generated",
|
||||
"org.apache.commons.io.input;CharacterSetFilterReader;CharacterSetFilterReader;(Reader,Integer[]);generated",
|
||||
"org.apache.commons.io.input;CharacterSetFilterReader;CharacterSetFilterReader;(Reader,Set);generated",
|
||||
"org.apache.commons.io.input;CloseShieldInputStream;CloseShieldInputStream;(InputStream);generated",
|
||||
"org.apache.commons.io.input;CloseShieldReader;CloseShieldReader;(Reader);generated",
|
||||
"org.apache.commons.io.input;CloseShieldReader;wrap;(Reader);generated",
|
||||
"org.apache.commons.io.input;ClosedInputStream;ClosedInputStream;();generated",
|
||||
"org.apache.commons.io.input;ClosedReader;ClosedReader;();generated",
|
||||
"org.apache.commons.io.input;CountingInputStream;CountingInputStream;(InputStream);generated",
|
||||
"org.apache.commons.io.input;CountingInputStream;getByteCount;();generated",
|
||||
"org.apache.commons.io.input;CountingInputStream;getCount;();generated",
|
||||
"org.apache.commons.io.input;CountingInputStream;resetByteCount;();generated",
|
||||
"org.apache.commons.io.input;CountingInputStream;resetCount;();generated",
|
||||
"org.apache.commons.io.input;DemuxInputStream;DemuxInputStream;();generated",
|
||||
"org.apache.commons.io.input;DemuxInputStream;bindStream;(InputStream);generated",
|
||||
"org.apache.commons.io.input;MarkShieldInputStream;MarkShieldInputStream;(InputStream);generated",
|
||||
"org.apache.commons.io.input;MemoryMappedFileInputStream;MemoryMappedFileInputStream;(Path);generated",
|
||||
"org.apache.commons.io.input;MemoryMappedFileInputStream;MemoryMappedFileInputStream;(Path,int);generated",
|
||||
"org.apache.commons.io.input;MessageDigestCalculatingInputStream;MessageDigestCalculatingInputStream;(InputStream);generated",
|
||||
"org.apache.commons.io.input;MessageDigestCalculatingInputStream;MessageDigestCalculatingInputStream;(InputStream,String);generated",
|
||||
"org.apache.commons.io.input;NullInputStream;NullInputStream;();generated",
|
||||
"org.apache.commons.io.input;NullInputStream;NullInputStream;(long);generated",
|
||||
"org.apache.commons.io.input;NullInputStream;NullInputStream;(long,boolean,boolean);generated",
|
||||
"org.apache.commons.io.input;NullInputStream;getPosition;();generated",
|
||||
"org.apache.commons.io.input;NullInputStream;getSize;();generated",
|
||||
"org.apache.commons.io.input;NullReader;NullReader;();generated",
|
||||
"org.apache.commons.io.input;NullReader;NullReader;(long);generated",
|
||||
"org.apache.commons.io.input;NullReader;NullReader;(long,boolean,boolean);generated",
|
||||
"org.apache.commons.io.input;NullReader;getPosition;();generated",
|
||||
"org.apache.commons.io.input;NullReader;getSize;();generated",
|
||||
"org.apache.commons.io.input;ObservableInputStream$Observer;Observer;();generated",
|
||||
"org.apache.commons.io.input;ObservableInputStream$Observer;closed;();generated",
|
||||
"org.apache.commons.io.input;ObservableInputStream$Observer;data;(byte[],int,int);generated",
|
||||
"org.apache.commons.io.input;ObservableInputStream$Observer;data;(int);generated",
|
||||
"org.apache.commons.io.input;ObservableInputStream$Observer;error;(IOException);generated",
|
||||
"org.apache.commons.io.input;ObservableInputStream$Observer;finished;();generated",
|
||||
"org.apache.commons.io.input;ObservableInputStream;ObservableInputStream;(InputStream);generated",
|
||||
"org.apache.commons.io.input;ObservableInputStream;consume;();generated",
|
||||
"org.apache.commons.io.input;ObservableInputStream;remove;(Observer);generated",
|
||||
"org.apache.commons.io.input;ObservableInputStream;removeAllObservers;();generated",
|
||||
"org.apache.commons.io.input;ProxyInputStream;ProxyInputStream;(InputStream);generated",
|
||||
"org.apache.commons.io.input;ProxyReader;ProxyReader;(Reader);generated",
|
||||
"org.apache.commons.io.input;QueueInputStream;QueueInputStream;();generated",
|
||||
"org.apache.commons.io.input;QueueInputStream;QueueInputStream;(BlockingQueue);generated",
|
||||
"org.apache.commons.io.input;QueueInputStream;newQueueOutputStream;();generated",
|
||||
"org.apache.commons.io.input;RandomAccessFileInputStream;availableLong;();generated",
|
||||
"org.apache.commons.io.input;RandomAccessFileInputStream;isCloseOnClose;();generated",
|
||||
"org.apache.commons.io.input;ReversedLinesFileReader;ReversedLinesFileReader;(File);generated",
|
||||
"org.apache.commons.io.input;ReversedLinesFileReader;ReversedLinesFileReader;(File,Charset);generated",
|
||||
"org.apache.commons.io.input;ReversedLinesFileReader;ReversedLinesFileReader;(File,int,Charset);generated",
|
||||
"org.apache.commons.io.input;ReversedLinesFileReader;ReversedLinesFileReader;(File,int,String);generated",
|
||||
"org.apache.commons.io.input;ReversedLinesFileReader;ReversedLinesFileReader;(Path,Charset);generated",
|
||||
"org.apache.commons.io.input;ReversedLinesFileReader;ReversedLinesFileReader;(Path,int,Charset);generated",
|
||||
"org.apache.commons.io.input;ReversedLinesFileReader;ReversedLinesFileReader;(Path,int,String);generated",
|
||||
"org.apache.commons.io.input;SwappedDataInputStream;SwappedDataInputStream;(InputStream);generated",
|
||||
"org.apache.commons.io.input;TaggedInputStream;TaggedInputStream;(InputStream);generated",
|
||||
"org.apache.commons.io.input;TaggedInputStream;isCauseOf;(Throwable);generated",
|
||||
"org.apache.commons.io.input;TaggedInputStream;throwIfCauseOf;(Throwable);generated",
|
||||
"org.apache.commons.io.input;TaggedReader;TaggedReader;(Reader);generated",
|
||||
"org.apache.commons.io.input;TaggedReader;isCauseOf;(Throwable);generated",
|
||||
"org.apache.commons.io.input;TaggedReader;throwIfCauseOf;(Throwable);generated",
|
||||
"org.apache.commons.io.input;Tailer$RandomAccessResourceBridge;getPointer;();generated",
|
||||
"org.apache.commons.io.input;Tailer$RandomAccessResourceBridge;read;(byte[]);generated",
|
||||
"org.apache.commons.io.input;Tailer$RandomAccessResourceBridge;seek;(long);generated",
|
||||
"org.apache.commons.io.input;Tailer$Tailable;getRandomAccess;(String);generated",
|
||||
"org.apache.commons.io.input;Tailer$Tailable;isNewer;(FileTime);generated",
|
||||
"org.apache.commons.io.input;Tailer$Tailable;lastModifiedFileTime;();generated",
|
||||
"org.apache.commons.io.input;Tailer$Tailable;size;();generated",
|
||||
"org.apache.commons.io.input;Tailer;getDelay;();generated",
|
||||
"org.apache.commons.io.input;Tailer;stop;();generated",
|
||||
"org.apache.commons.io.input;TailerListener;fileNotFound;();generated",
|
||||
"org.apache.commons.io.input;TailerListener;fileRotated;();generated",
|
||||
"org.apache.commons.io.input;TailerListener;handle;(Exception);generated",
|
||||
"org.apache.commons.io.input;TailerListener;handle;(String);generated",
|
||||
"org.apache.commons.io.input;TailerListener;init;(Tailer);generated",
|
||||
"org.apache.commons.io.input;TailerListenerAdapter;TailerListenerAdapter;();generated",
|
||||
"org.apache.commons.io.input;TailerListenerAdapter;endOfFileReached;();generated",
|
||||
"org.apache.commons.io.input;TimestampedObserver;TimestampedObserver;();generated",
|
||||
"org.apache.commons.io.input;TimestampedObserver;getOpenToCloseDuration;();generated",
|
||||
"org.apache.commons.io.input;TimestampedObserver;getOpenToNowDuration;();generated",
|
||||
"org.apache.commons.io.input;UncheckedFilterInputStream;UncheckedFilterInputStream;(InputStream);generated",
|
||||
"org.apache.commons.io.input;UncheckedFilterReader;UncheckedFilterReader;(Reader);generated",
|
||||
"org.apache.commons.io.input;UncheckedFilterReader;on;(Reader);generated",
|
||||
"org.apache.commons.io.input;XmlStreamReader;XmlStreamReader;(File);generated",
|
||||
"org.apache.commons.io.input;XmlStreamReader;XmlStreamReader;(Path);generated",
|
||||
"org.apache.commons.io.input;XmlStreamReader;XmlStreamReader;(URL);generated",
|
||||
"org.apache.commons.io.monitor;FileAlterationListener;onDirectoryChange;(File);generated",
|
||||
"org.apache.commons.io.monitor;FileAlterationListener;onDirectoryCreate;(File);generated",
|
||||
"org.apache.commons.io.monitor;FileAlterationListener;onDirectoryDelete;(File);generated",
|
||||
"org.apache.commons.io.monitor;FileAlterationListener;onFileChange;(File);generated",
|
||||
"org.apache.commons.io.monitor;FileAlterationListener;onFileCreate;(File);generated",
|
||||
"org.apache.commons.io.monitor;FileAlterationListener;onFileDelete;(File);generated",
|
||||
"org.apache.commons.io.monitor;FileAlterationListener;onStart;(FileAlterationObserver);generated",
|
||||
"org.apache.commons.io.monitor;FileAlterationListener;onStop;(FileAlterationObserver);generated",
|
||||
"org.apache.commons.io.monitor;FileAlterationListenerAdaptor;FileAlterationListenerAdaptor;();generated",
|
||||
"org.apache.commons.io.monitor;FileAlterationMonitor;FileAlterationMonitor;();generated",
|
||||
"org.apache.commons.io.monitor;FileAlterationMonitor;FileAlterationMonitor;(long);generated",
|
||||
"org.apache.commons.io.monitor;FileAlterationMonitor;getInterval;();generated",
|
||||
"org.apache.commons.io.monitor;FileAlterationMonitor;removeObserver;(FileAlterationObserver);generated",
|
||||
"org.apache.commons.io.monitor;FileAlterationMonitor;start;();generated",
|
||||
"org.apache.commons.io.monitor;FileAlterationMonitor;stop;();generated",
|
||||
"org.apache.commons.io.monitor;FileAlterationMonitor;stop;(long);generated",
|
||||
"org.apache.commons.io.monitor;FileAlterationObserver;checkAndNotify;();generated",
|
||||
"org.apache.commons.io.monitor;FileAlterationObserver;destroy;();generated",
|
||||
"org.apache.commons.io.monitor;FileAlterationObserver;initialize;();generated",
|
||||
"org.apache.commons.io.monitor;FileAlterationObserver;removeListener;(FileAlterationListener);generated",
|
||||
"org.apache.commons.io.monitor;FileEntry;getLastModified;();generated",
|
||||
"org.apache.commons.io.monitor;FileEntry;getLength;();generated",
|
||||
"org.apache.commons.io.monitor;FileEntry;getLevel;();generated",
|
||||
"org.apache.commons.io.monitor;FileEntry;isDirectory;();generated",
|
||||
"org.apache.commons.io.monitor;FileEntry;isExists;();generated",
|
||||
"org.apache.commons.io.monitor;FileEntry;refresh;(File);generated",
|
||||
"org.apache.commons.io.monitor;FileEntry;setDirectory;(boolean);generated",
|
||||
"org.apache.commons.io.monitor;FileEntry;setExists;(boolean);generated",
|
||||
"org.apache.commons.io.monitor;FileEntry;setLastModified;(long);generated",
|
||||
"org.apache.commons.io.monitor;FileEntry;setLength;(long);generated",
|
||||
"org.apache.commons.io.output;AbstractByteArrayOutputStream;AbstractByteArrayOutputStream;();generated",
|
||||
"org.apache.commons.io.output;AbstractByteArrayOutputStream;reset;();generated",
|
||||
"org.apache.commons.io.output;AbstractByteArrayOutputStream;size;();generated",
|
||||
"org.apache.commons.io.output;AbstractByteArrayOutputStream;toByteArray;();generated",
|
||||
"org.apache.commons.io.output;AbstractByteArrayOutputStream;toInputStream;();generated",
|
||||
"org.apache.commons.io.output;AbstractByteArrayOutputStream;write;(InputStream);generated",
|
||||
"org.apache.commons.io.output;AbstractByteArrayOutputStream;writeTo;(OutputStream);generated",
|
||||
"org.apache.commons.io.output;BrokenOutputStream;BrokenOutputStream;();generated",
|
||||
"org.apache.commons.io.output;BrokenOutputStream;BrokenOutputStream;(IOException);generated",
|
||||
"org.apache.commons.io.output;BrokenWriter;BrokenWriter;();generated",
|
||||
"org.apache.commons.io.output;BrokenWriter;BrokenWriter;(IOException);generated",
|
||||
"org.apache.commons.io.output;ByteArrayOutputStream;ByteArrayOutputStream;();generated",
|
||||
"org.apache.commons.io.output;ByteArrayOutputStream;ByteArrayOutputStream;(int);generated",
|
||||
"org.apache.commons.io.output;ByteArrayOutputStream;toBufferedInputStream;(InputStream);generated",
|
||||
"org.apache.commons.io.output;ByteArrayOutputStream;toBufferedInputStream;(InputStream,int);generated",
|
||||
"org.apache.commons.io.output;ChunkedWriter;ChunkedWriter;(Writer);generated",
|
||||
"org.apache.commons.io.output;ChunkedWriter;ChunkedWriter;(Writer,int);generated",
|
||||
"org.apache.commons.io.output;CloseShieldWriter;CloseShieldWriter;(Writer);generated",
|
||||
"org.apache.commons.io.output;CloseShieldWriter;wrap;(Writer);generated",
|
||||
"org.apache.commons.io.output;ClosedOutputStream;ClosedOutputStream;();generated",
|
||||
"org.apache.commons.io.output;ClosedWriter;ClosedWriter;();generated",
|
||||
"org.apache.commons.io.output;CountingOutputStream;getByteCount;();generated",
|
||||
"org.apache.commons.io.output;CountingOutputStream;getCount;();generated",
|
||||
"org.apache.commons.io.output;CountingOutputStream;resetByteCount;();generated",
|
||||
"org.apache.commons.io.output;CountingOutputStream;resetCount;();generated",
|
||||
"org.apache.commons.io.output;DeferredFileOutputStream;isInMemory;();generated",
|
||||
"org.apache.commons.io.output;DeferredFileOutputStream;toInputStream;();generated",
|
||||
"org.apache.commons.io.output;DemuxOutputStream;DemuxOutputStream;();generated",
|
||||
"org.apache.commons.io.output;DemuxOutputStream;bindStream;(OutputStream);generated",
|
||||
"org.apache.commons.io.output;FileWriterWithEncoding;FileWriterWithEncoding;(File,Charset);generated",
|
||||
"org.apache.commons.io.output;FileWriterWithEncoding;FileWriterWithEncoding;(File,Charset,boolean);generated",
|
||||
"org.apache.commons.io.output;FileWriterWithEncoding;FileWriterWithEncoding;(File,CharsetEncoder);generated",
|
||||
"org.apache.commons.io.output;FileWriterWithEncoding;FileWriterWithEncoding;(File,CharsetEncoder,boolean);generated",
|
||||
"org.apache.commons.io.output;FileWriterWithEncoding;FileWriterWithEncoding;(File,String);generated",
|
||||
"org.apache.commons.io.output;FileWriterWithEncoding;FileWriterWithEncoding;(File,String,boolean);generated",
|
||||
"org.apache.commons.io.output;FileWriterWithEncoding;FileWriterWithEncoding;(String,Charset);generated",
|
||||
"org.apache.commons.io.output;FileWriterWithEncoding;FileWriterWithEncoding;(String,Charset,boolean);generated",
|
||||
"org.apache.commons.io.output;FileWriterWithEncoding;FileWriterWithEncoding;(String,CharsetEncoder);generated",
|
||||
"org.apache.commons.io.output;FileWriterWithEncoding;FileWriterWithEncoding;(String,CharsetEncoder,boolean);generated",
|
||||
"org.apache.commons.io.output;FileWriterWithEncoding;FileWriterWithEncoding;(String,String);generated",
|
||||
"org.apache.commons.io.output;FileWriterWithEncoding;FileWriterWithEncoding;(String,String,boolean);generated",
|
||||
"org.apache.commons.io.output;LockableFileWriter;LockableFileWriter;(File);generated",
|
||||
"org.apache.commons.io.output;LockableFileWriter;LockableFileWriter;(File,Charset);generated",
|
||||
"org.apache.commons.io.output;LockableFileWriter;LockableFileWriter;(File,String);generated",
|
||||
"org.apache.commons.io.output;LockableFileWriter;LockableFileWriter;(File,boolean);generated",
|
||||
"org.apache.commons.io.output;LockableFileWriter;LockableFileWriter;(String);generated",
|
||||
"org.apache.commons.io.output;LockableFileWriter;LockableFileWriter;(String,boolean);generated",
|
||||
"org.apache.commons.io.output;NullOutputStream;NullOutputStream;();generated",
|
||||
"org.apache.commons.io.output;NullPrintStream;NullPrintStream;();generated",
|
||||
"org.apache.commons.io.output;NullWriter;NullWriter;();generated",
|
||||
"org.apache.commons.io.output;ProxyWriter;ProxyWriter;(Writer);generated",
|
||||
"org.apache.commons.io.output;QueueOutputStream;QueueOutputStream;();generated",
|
||||
"org.apache.commons.io.output;QueueOutputStream;QueueOutputStream;(BlockingQueue);generated",
|
||||
"org.apache.commons.io.output;QueueOutputStream;newQueueInputStream;();generated",
|
||||
"org.apache.commons.io.output;StringBuilderWriter;StringBuilderWriter;();generated",
|
||||
"org.apache.commons.io.output;StringBuilderWriter;StringBuilderWriter;(int);generated",
|
||||
"org.apache.commons.io.output;TaggedOutputStream;isCauseOf;(Exception);generated",
|
||||
"org.apache.commons.io.output;TaggedOutputStream;throwIfCauseOf;(Exception);generated",
|
||||
"org.apache.commons.io.output;TaggedWriter;TaggedWriter;(Writer);generated",
|
||||
"org.apache.commons.io.output;TaggedWriter;isCauseOf;(Exception);generated",
|
||||
"org.apache.commons.io.output;TaggedWriter;throwIfCauseOf;(Exception);generated",
|
||||
"org.apache.commons.io.output;ThresholdingOutputStream;ThresholdingOutputStream;(int);generated",
|
||||
"org.apache.commons.io.output;ThresholdingOutputStream;getByteCount;();generated",
|
||||
"org.apache.commons.io.output;ThresholdingOutputStream;getThreshold;();generated",
|
||||
"org.apache.commons.io.output;ThresholdingOutputStream;isThresholdExceeded;();generated",
|
||||
"org.apache.commons.io.output;UncheckedFilterWriter;on;(Writer);generated",
|
||||
"org.apache.commons.io.output;UnsynchronizedByteArrayOutputStream;UnsynchronizedByteArrayOutputStream;();generated",
|
||||
"org.apache.commons.io.output;UnsynchronizedByteArrayOutputStream;UnsynchronizedByteArrayOutputStream;(int);generated",
|
||||
"org.apache.commons.io.output;UnsynchronizedByteArrayOutputStream;toBufferedInputStream;(InputStream);generated",
|
||||
"org.apache.commons.io.output;UnsynchronizedByteArrayOutputStream;toBufferedInputStream;(InputStream,int);generated",
|
||||
"org.apache.commons.io.output;XmlStreamWriter;XmlStreamWriter;(File);generated",
|
||||
"org.apache.commons.io.serialization;ClassNameMatcher;matches;(String);generated",
|
||||
"org.apache.commons.io;ByteOrderMark;get;(int);generated",
|
||||
"org.apache.commons.io;ByteOrderMark;getBytes;();generated",
|
||||
"org.apache.commons.io;ByteOrderMark;length;();generated",
|
||||
"org.apache.commons.io;ByteOrderParser;parseByteOrder;(String);generated",
|
||||
"org.apache.commons.io;Charsets;Charsets;();generated",
|
||||
"org.apache.commons.io;Charsets;requiredCharsets;();generated",
|
||||
"org.apache.commons.io;Charsets;toCharset;(Charset);generated",
|
||||
"org.apache.commons.io;Charsets;toCharset;(String);generated",
|
||||
"org.apache.commons.io;CopyUtils;CopyUtils;();generated",
|
||||
"org.apache.commons.io;CopyUtils;copy;(Reader,OutputStream);generated",
|
||||
"org.apache.commons.io;CopyUtils;copy;(Reader,OutputStream,String);generated",
|
||||
"org.apache.commons.io;CopyUtils;copy;(String,OutputStream);generated",
|
||||
"org.apache.commons.io;CopyUtils;copy;(String,OutputStream,String);generated",
|
||||
"org.apache.commons.io;DirectoryWalker$CancelException;getDepth;();generated",
|
||||
"org.apache.commons.io;EndianUtils;EndianUtils;();generated",
|
||||
"org.apache.commons.io;EndianUtils;readSwappedDouble;(InputStream);generated",
|
||||
"org.apache.commons.io;EndianUtils;readSwappedDouble;(byte[],int);generated",
|
||||
"org.apache.commons.io;EndianUtils;readSwappedFloat;(InputStream);generated",
|
||||
"org.apache.commons.io;EndianUtils;readSwappedFloat;(byte[],int);generated",
|
||||
"org.apache.commons.io;EndianUtils;readSwappedInteger;(InputStream);generated",
|
||||
"org.apache.commons.io;EndianUtils;readSwappedInteger;(byte[],int);generated",
|
||||
"org.apache.commons.io;EndianUtils;readSwappedLong;(InputStream);generated",
|
||||
"org.apache.commons.io;EndianUtils;readSwappedLong;(byte[],int);generated",
|
||||
"org.apache.commons.io;EndianUtils;readSwappedShort;(InputStream);generated",
|
||||
"org.apache.commons.io;EndianUtils;readSwappedShort;(byte[],int);generated",
|
||||
"org.apache.commons.io;EndianUtils;readSwappedUnsignedInteger;(InputStream);generated",
|
||||
"org.apache.commons.io;EndianUtils;readSwappedUnsignedInteger;(byte[],int);generated",
|
||||
"org.apache.commons.io;EndianUtils;readSwappedUnsignedShort;(InputStream);generated",
|
||||
"org.apache.commons.io;EndianUtils;readSwappedUnsignedShort;(byte[],int);generated",
|
||||
"org.apache.commons.io;EndianUtils;swapDouble;(double);generated",
|
||||
"org.apache.commons.io;EndianUtils;swapFloat;(float);generated",
|
||||
"org.apache.commons.io;EndianUtils;swapInteger;(int);generated",
|
||||
"org.apache.commons.io;EndianUtils;swapLong;(long);generated",
|
||||
"org.apache.commons.io;EndianUtils;swapShort;(short);generated",
|
||||
"org.apache.commons.io;EndianUtils;writeSwappedDouble;(OutputStream,double);generated",
|
||||
"org.apache.commons.io;EndianUtils;writeSwappedDouble;(byte[],int,double);generated",
|
||||
"org.apache.commons.io;EndianUtils;writeSwappedFloat;(OutputStream,float);generated",
|
||||
"org.apache.commons.io;EndianUtils;writeSwappedFloat;(byte[],int,float);generated",
|
||||
"org.apache.commons.io;EndianUtils;writeSwappedInteger;(OutputStream,int);generated",
|
||||
"org.apache.commons.io;EndianUtils;writeSwappedInteger;(byte[],int,int);generated",
|
||||
"org.apache.commons.io;EndianUtils;writeSwappedLong;(OutputStream,long);generated",
|
||||
"org.apache.commons.io;EndianUtils;writeSwappedLong;(byte[],int,long);generated",
|
||||
"org.apache.commons.io;EndianUtils;writeSwappedShort;(OutputStream,short);generated",
|
||||
"org.apache.commons.io;EndianUtils;writeSwappedShort;(byte[],int,short);generated",
|
||||
"org.apache.commons.io;FileCleaner;FileCleaner;();generated",
|
||||
"org.apache.commons.io;FileCleaner;exitWhenFinished;();generated",
|
||||
"org.apache.commons.io;FileCleaner;getInstance;();generated",
|
||||
"org.apache.commons.io;FileCleaner;getTrackCount;();generated",
|
||||
"org.apache.commons.io;FileCleaner;track;(File,Object);generated",
|
||||
"org.apache.commons.io;FileCleaner;track;(File,Object,FileDeleteStrategy);generated",
|
||||
"org.apache.commons.io;FileCleaner;track;(String,Object);generated",
|
||||
"org.apache.commons.io;FileCleaner;track;(String,Object,FileDeleteStrategy);generated",
|
||||
"org.apache.commons.io;FileCleaningTracker;FileCleaningTracker;();generated",
|
||||
"org.apache.commons.io;FileCleaningTracker;exitWhenFinished;();generated",
|
||||
"org.apache.commons.io;FileCleaningTracker;getTrackCount;();generated",
|
||||
"org.apache.commons.io;FileCleaningTracker;track;(File,Object);generated",
|
||||
"org.apache.commons.io;FileCleaningTracker;track;(File,Object,FileDeleteStrategy);generated",
|
||||
"org.apache.commons.io;FileCleaningTracker;track;(String,Object);generated",
|
||||
"org.apache.commons.io;FileCleaningTracker;track;(String,Object,FileDeleteStrategy);generated",
|
||||
"org.apache.commons.io;FileDeleteStrategy;delete;(File);generated",
|
||||
"org.apache.commons.io;FileDeleteStrategy;deleteQuietly;(File);generated",
|
||||
"org.apache.commons.io;FileExistsException;FileExistsException;();generated",
|
||||
"org.apache.commons.io;FileExistsException;FileExistsException;(File);generated",
|
||||
"org.apache.commons.io;FileExistsException;FileExistsException;(String);generated",
|
||||
"org.apache.commons.io;FileSystem;getCurrent;();generated",
|
||||
"org.apache.commons.io;FileSystem;getIllegalFileNameChars;();generated",
|
||||
"org.apache.commons.io;FileSystem;getMaxFileNameLength;();generated",
|
||||
"org.apache.commons.io;FileSystem;getMaxPathLength;();generated",
|
||||
"org.apache.commons.io;FileSystem;getNameSeparator;();generated",
|
||||
"org.apache.commons.io;FileSystem;getReservedFileNames;();generated",
|
||||
"org.apache.commons.io;FileSystem;isCasePreserving;();generated",
|
||||
"org.apache.commons.io;FileSystem;isCaseSensitive;();generated",
|
||||
"org.apache.commons.io;FileSystem;isLegalFileName;(CharSequence);generated",
|
||||
"org.apache.commons.io;FileSystem;isReservedFileName;(CharSequence);generated",
|
||||
"org.apache.commons.io;FileSystem;normalizeSeparators;(String);generated",
|
||||
"org.apache.commons.io;FileSystem;supportsDriveLetter;();generated",
|
||||
"org.apache.commons.io;FileSystemUtils;FileSystemUtils;();generated",
|
||||
"org.apache.commons.io;FileSystemUtils;freeSpace;(String);generated",
|
||||
"org.apache.commons.io;FileSystemUtils;freeSpaceKb;();generated",
|
||||
"org.apache.commons.io;FileSystemUtils;freeSpaceKb;(String);generated",
|
||||
"org.apache.commons.io;FileSystemUtils;freeSpaceKb;(String,long);generated",
|
||||
"org.apache.commons.io;FileSystemUtils;freeSpaceKb;(long);generated",
|
||||
"org.apache.commons.io;FileUtils;FileUtils;();generated",
|
||||
"org.apache.commons.io;FileUtils;byteCountToDisplaySize;(BigInteger);generated",
|
||||
"org.apache.commons.io;FileUtils;byteCountToDisplaySize;(Number);generated",
|
||||
"org.apache.commons.io;FileUtils;byteCountToDisplaySize;(long);generated",
|
||||
"org.apache.commons.io;FileUtils;checksumCRC32;(File);generated",
|
||||
"org.apache.commons.io;FileUtils;cleanDirectory;(File);generated",
|
||||
"org.apache.commons.io;FileUtils;contentEquals;(File,File);generated",
|
||||
"org.apache.commons.io;FileUtils;contentEqualsIgnoreEOL;(File,File,String);generated",
|
||||
"org.apache.commons.io;FileUtils;copyDirectory;(File,File);generated",
|
||||
"org.apache.commons.io;FileUtils;copyDirectory;(File,File,FileFilter);generated",
|
||||
"org.apache.commons.io;FileUtils;copyDirectory;(File,File,FileFilter,boolean);generated",
|
||||
"org.apache.commons.io;FileUtils;copyDirectory;(File,File,FileFilter,boolean,CopyOption[]);generated",
|
||||
"org.apache.commons.io;FileUtils;copyDirectory;(File,File,boolean);generated",
|
||||
"org.apache.commons.io;FileUtils;copyDirectoryToDirectory;(File,File);generated",
|
||||
"org.apache.commons.io;FileUtils;copyFile;(File,File);generated",
|
||||
"org.apache.commons.io;FileUtils;copyFile;(File,File,CopyOption[]);generated",
|
||||
"org.apache.commons.io;FileUtils;copyFile;(File,File,boolean);generated",
|
||||
"org.apache.commons.io;FileUtils;copyFile;(File,File,boolean,CopyOption[]);generated",
|
||||
"org.apache.commons.io;FileUtils;copyFile;(File,OutputStream);generated",
|
||||
"org.apache.commons.io;FileUtils;copyFileToDirectory;(File,File);generated",
|
||||
"org.apache.commons.io;FileUtils;copyFileToDirectory;(File,File,boolean);generated",
|
||||
"org.apache.commons.io;FileUtils;copyInputStreamToFile;(InputStream,File);generated",
|
||||
"org.apache.commons.io;FileUtils;copyToDirectory;(File,File);generated",
|
||||
"org.apache.commons.io;FileUtils;copyToDirectory;(Iterable,File);generated",
|
||||
"org.apache.commons.io;FileUtils;copyToFile;(InputStream,File);generated",
|
||||
"org.apache.commons.io;FileUtils;copyURLToFile;(URL,File);generated",
|
||||
"org.apache.commons.io;FileUtils;copyURLToFile;(URL,File,int,int);generated",
|
||||
"org.apache.commons.io;FileUtils;createParentDirectories;(File);generated",
|
||||
"org.apache.commons.io;FileUtils;current;();generated",
|
||||
"org.apache.commons.io;FileUtils;deleteDirectory;(File);generated",
|
||||
"org.apache.commons.io;FileUtils;deleteQuietly;(File);generated",
|
||||
"org.apache.commons.io;FileUtils;directoryContains;(File,File);generated",
|
||||
"org.apache.commons.io;FileUtils;forceDelete;(File);generated",
|
||||
"org.apache.commons.io;FileUtils;forceDeleteOnExit;(File);generated",
|
||||
"org.apache.commons.io;FileUtils;forceMkdir;(File);generated",
|
||||
"org.apache.commons.io;FileUtils;forceMkdirParent;(File);generated",
|
||||
"org.apache.commons.io;FileUtils;getTempDirectory;();generated",
|
||||
"org.apache.commons.io;FileUtils;getTempDirectoryPath;();generated",
|
||||
"org.apache.commons.io;FileUtils;getUserDirectory;();generated",
|
||||
"org.apache.commons.io;FileUtils;getUserDirectoryPath;();generated",
|
||||
"org.apache.commons.io;FileUtils;isDirectory;(File,LinkOption[]);generated",
|
||||
"org.apache.commons.io;FileUtils;isEmptyDirectory;(File);generated",
|
||||
"org.apache.commons.io;FileUtils;isFileNewer;(File,ChronoLocalDate);generated",
|
||||
"org.apache.commons.io;FileUtils;isFileNewer;(File,ChronoLocalDate,LocalTime);generated",
|
||||
"org.apache.commons.io;FileUtils;isFileNewer;(File,ChronoLocalDateTime);generated",
|
||||
"org.apache.commons.io;FileUtils;isFileNewer;(File,ChronoLocalDateTime,ZoneId);generated",
|
||||
"org.apache.commons.io;FileUtils;isFileNewer;(File,ChronoZonedDateTime);generated",
|
||||
"org.apache.commons.io;FileUtils;isFileNewer;(File,Date);generated",
|
||||
"org.apache.commons.io;FileUtils;isFileNewer;(File,File);generated",
|
||||
"org.apache.commons.io;FileUtils;isFileNewer;(File,FileTime);generated",
|
||||
"org.apache.commons.io;FileUtils;isFileNewer;(File,Instant);generated",
|
||||
"org.apache.commons.io;FileUtils;isFileNewer;(File,long);generated",
|
||||
"org.apache.commons.io;FileUtils;isFileOlder;(File,ChronoLocalDate);generated",
|
||||
"org.apache.commons.io;FileUtils;isFileOlder;(File,ChronoLocalDate,LocalTime);generated",
|
||||
"org.apache.commons.io;FileUtils;isFileOlder;(File,ChronoLocalDateTime);generated",
|
||||
"org.apache.commons.io;FileUtils;isFileOlder;(File,ChronoLocalDateTime,ZoneId);generated",
|
||||
"org.apache.commons.io;FileUtils;isFileOlder;(File,ChronoZonedDateTime);generated",
|
||||
"org.apache.commons.io;FileUtils;isFileOlder;(File,Date);generated",
|
||||
"org.apache.commons.io;FileUtils;isFileOlder;(File,File);generated",
|
||||
"org.apache.commons.io;FileUtils;isFileOlder;(File,FileTime);generated",
|
||||
"org.apache.commons.io;FileUtils;isFileOlder;(File,Instant);generated",
|
||||
"org.apache.commons.io;FileUtils;isFileOlder;(File,long);generated",
|
||||
"org.apache.commons.io;FileUtils;isRegularFile;(File,LinkOption[]);generated",
|
||||
"org.apache.commons.io;FileUtils;isSymlink;(File);generated",
|
||||
"org.apache.commons.io;FileUtils;iterateFiles;(File,IOFileFilter,IOFileFilter);generated",
|
||||
"org.apache.commons.io;FileUtils;iterateFiles;(File,String[],boolean);generated",
|
||||
"org.apache.commons.io;FileUtils;iterateFilesAndDirs;(File,IOFileFilter,IOFileFilter);generated",
|
||||
"org.apache.commons.io;FileUtils;lastModified;(File);generated",
|
||||
"org.apache.commons.io;FileUtils;lastModifiedFileTime;(File);generated",
|
||||
"org.apache.commons.io;FileUtils;lastModifiedUnchecked;(File);generated",
|
||||
"org.apache.commons.io;FileUtils;lineIterator;(File);generated",
|
||||
"org.apache.commons.io;FileUtils;lineIterator;(File,String);generated",
|
||||
"org.apache.commons.io;FileUtils;listFiles;(File,IOFileFilter,IOFileFilter);generated",
|
||||
"org.apache.commons.io;FileUtils;listFiles;(File,String[],boolean);generated",
|
||||
"org.apache.commons.io;FileUtils;listFilesAndDirs;(File,IOFileFilter,IOFileFilter);generated",
|
||||
"org.apache.commons.io;FileUtils;moveDirectory;(File,File);generated",
|
||||
"org.apache.commons.io;FileUtils;moveDirectoryToDirectory;(File,File,boolean);generated",
|
||||
"org.apache.commons.io;FileUtils;moveFile;(File,File);generated",
|
||||
"org.apache.commons.io;FileUtils;moveFile;(File,File,CopyOption[]);generated",
|
||||
"org.apache.commons.io;FileUtils;moveFileToDirectory;(File,File,boolean);generated",
|
||||
"org.apache.commons.io;FileUtils;moveToDirectory;(File,File,boolean);generated",
|
||||
"org.apache.commons.io;FileUtils;newOutputStream;(File,boolean);generated",
|
||||
"org.apache.commons.io;FileUtils;openInputStream;(File);generated",
|
||||
"org.apache.commons.io;FileUtils;openOutputStream;(File);generated",
|
||||
"org.apache.commons.io;FileUtils;openOutputStream;(File,boolean);generated",
|
||||
"org.apache.commons.io;FileUtils;readFileToByteArray;(File);generated",
|
||||
"org.apache.commons.io;FileUtils;readFileToString;(File);generated",
|
||||
"org.apache.commons.io;FileUtils;readFileToString;(File,Charset);generated",
|
||||
"org.apache.commons.io;FileUtils;readFileToString;(File,String);generated",
|
||||
"org.apache.commons.io;FileUtils;readLines;(File);generated",
|
||||
"org.apache.commons.io;FileUtils;readLines;(File,Charset);generated",
|
||||
"org.apache.commons.io;FileUtils;readLines;(File,String);generated",
|
||||
"org.apache.commons.io;FileUtils;sizeOf;(File);generated",
|
||||
"org.apache.commons.io;FileUtils;sizeOfAsBigInteger;(File);generated",
|
||||
"org.apache.commons.io;FileUtils;sizeOfDirectory;(File);generated",
|
||||
"org.apache.commons.io;FileUtils;sizeOfDirectoryAsBigInteger;(File);generated",
|
||||
"org.apache.commons.io;FileUtils;streamFiles;(File,boolean,String[]);generated",
|
||||
"org.apache.commons.io;FileUtils;toFile;(URL);generated",
|
||||
"org.apache.commons.io;FileUtils;toFiles;(URL[]);generated",
|
||||
"org.apache.commons.io;FileUtils;touch;(File);generated",
|
||||
"org.apache.commons.io;FileUtils;waitFor;(File,int);generated",
|
||||
"org.apache.commons.io;FileUtils;write;(File,CharSequence);generated",
|
||||
"org.apache.commons.io;FileUtils;write;(File,CharSequence,Charset);generated",
|
||||
"org.apache.commons.io;FileUtils;write;(File,CharSequence,Charset,boolean);generated",
|
||||
"org.apache.commons.io;FileUtils;write;(File,CharSequence,String);generated",
|
||||
"org.apache.commons.io;FileUtils;write;(File,CharSequence,String,boolean);generated",
|
||||
"org.apache.commons.io;FileUtils;write;(File,CharSequence,boolean);generated",
|
||||
"org.apache.commons.io;FileUtils;writeByteArrayToFile;(File,byte[]);generated",
|
||||
"org.apache.commons.io;FileUtils;writeByteArrayToFile;(File,byte[],boolean);generated",
|
||||
"org.apache.commons.io;FileUtils;writeByteArrayToFile;(File,byte[],int,int);generated",
|
||||
"org.apache.commons.io;FileUtils;writeByteArrayToFile;(File,byte[],int,int,boolean);generated",
|
||||
"org.apache.commons.io;FileUtils;writeLines;(File,Collection);generated",
|
||||
"org.apache.commons.io;FileUtils;writeLines;(File,Collection,String);generated",
|
||||
"org.apache.commons.io;FileUtils;writeLines;(File,Collection,String,boolean);generated",
|
||||
"org.apache.commons.io;FileUtils;writeLines;(File,Collection,boolean);generated",
|
||||
"org.apache.commons.io;FileUtils;writeLines;(File,String,Collection);generated",
|
||||
"org.apache.commons.io;FileUtils;writeLines;(File,String,Collection,String);generated",
|
||||
"org.apache.commons.io;FileUtils;writeLines;(File,String,Collection,String,boolean);generated",
|
||||
"org.apache.commons.io;FileUtils;writeLines;(File,String,Collection,boolean);generated",
|
||||
"org.apache.commons.io;FileUtils;writeStringToFile;(File,String);generated",
|
||||
"org.apache.commons.io;FileUtils;writeStringToFile;(File,String,Charset);generated",
|
||||
"org.apache.commons.io;FileUtils;writeStringToFile;(File,String,Charset,boolean);generated",
|
||||
"org.apache.commons.io;FileUtils;writeStringToFile;(File,String,String);generated",
|
||||
"org.apache.commons.io;FileUtils;writeStringToFile;(File,String,String,boolean);generated",
|
||||
"org.apache.commons.io;FileUtils;writeStringToFile;(File,String,boolean);generated",
|
||||
"org.apache.commons.io;FilenameUtils;FilenameUtils;();generated",
|
||||
"org.apache.commons.io;FilenameUtils;directoryContains;(String,String);generated",
|
||||
"org.apache.commons.io;FilenameUtils;equals;(String,String);generated",
|
||||
"org.apache.commons.io;FilenameUtils;equals;(String,String,boolean,IOCase);generated",
|
||||
"org.apache.commons.io;FilenameUtils;equalsNormalized;(String,String);generated",
|
||||
"org.apache.commons.io;FilenameUtils;equalsNormalizedOnSystem;(String,String);generated",
|
||||
"org.apache.commons.io;FilenameUtils;equalsOnSystem;(String,String);generated",
|
||||
"org.apache.commons.io;FilenameUtils;getPrefixLength;(String);generated",
|
||||
"org.apache.commons.io;FilenameUtils;indexOfExtension;(String);generated",
|
||||
"org.apache.commons.io;FilenameUtils;indexOfLastSeparator;(String);generated",
|
||||
"org.apache.commons.io;FilenameUtils;isExtension;(String,Collection);generated",
|
||||
"org.apache.commons.io;FilenameUtils;isExtension;(String,String);generated",
|
||||
"org.apache.commons.io;FilenameUtils;isExtension;(String,String[]);generated",
|
||||
"org.apache.commons.io;FilenameUtils;separatorsToSystem;(String);generated",
|
||||
"org.apache.commons.io;FilenameUtils;separatorsToUnix;(String);generated",
|
||||
"org.apache.commons.io;FilenameUtils;separatorsToWindows;(String);generated",
|
||||
"org.apache.commons.io;FilenameUtils;wildcardMatch;(String,String);generated",
|
||||
"org.apache.commons.io;FilenameUtils;wildcardMatch;(String,String,IOCase);generated",
|
||||
"org.apache.commons.io;FilenameUtils;wildcardMatchOnSystem;(String,String);generated",
|
||||
"org.apache.commons.io;HexDump;HexDump;();generated",
|
||||
"org.apache.commons.io;HexDump;dump;(byte[],long,OutputStream,int);generated",
|
||||
"org.apache.commons.io;IOCase;checkCompareTo;(String,String);generated",
|
||||
"org.apache.commons.io;IOCase;checkEndsWith;(String,String);generated",
|
||||
"org.apache.commons.io;IOCase;checkEquals;(String,String);generated",
|
||||
"org.apache.commons.io;IOCase;checkIndexOf;(String,int,String);generated",
|
||||
"org.apache.commons.io;IOCase;checkRegionMatches;(String,int,String);generated",
|
||||
"org.apache.commons.io;IOCase;checkStartsWith;(String,String);generated",
|
||||
"org.apache.commons.io;IOCase;forName;(String);generated",
|
||||
"org.apache.commons.io;IOCase;getName;();generated",
|
||||
"org.apache.commons.io;IOCase;isCaseSensitive;();generated",
|
||||
"org.apache.commons.io;IOCase;isCaseSensitive;(IOCase);generated",
|
||||
"org.apache.commons.io;IOCase;toString;();generated",
|
||||
"org.apache.commons.io;IOCase;value;(IOCase,IOCase);generated",
|
||||
"org.apache.commons.io;IOExceptionList;checkEmpty;(List,Object);generated",
|
||||
"org.apache.commons.io;IOExceptionList;getCause;(int,Class);generated",
|
||||
"org.apache.commons.io;IOExceptionWithCause;IOExceptionWithCause;(String,Throwable);generated",
|
||||
"org.apache.commons.io;IOExceptionWithCause;IOExceptionWithCause;(Throwable);generated",
|
||||
"org.apache.commons.io;IOIndexedException;IOIndexedException;(int,Throwable);generated",
|
||||
"org.apache.commons.io;IOIndexedException;getIndex;();generated",
|
||||
"org.apache.commons.io;IOUtils;IOUtils;();generated",
|
||||
"org.apache.commons.io;IOUtils;byteArray;();generated",
|
||||
"org.apache.commons.io;IOUtils;byteArray;(int);generated",
|
||||
"org.apache.commons.io;IOUtils;close;(Closeable);generated",
|
||||
"org.apache.commons.io;IOUtils;close;(Closeable,IOConsumer);generated",
|
||||
"org.apache.commons.io;IOUtils;close;(Closeable[]);generated",
|
||||
"org.apache.commons.io;IOUtils;close;(URLConnection);generated",
|
||||
"org.apache.commons.io;IOUtils;closeQuietly;(Closeable);generated",
|
||||
"org.apache.commons.io;IOUtils;closeQuietly;(Closeable,Consumer);generated",
|
||||
"org.apache.commons.io;IOUtils;closeQuietly;(Closeable[]);generated",
|
||||
"org.apache.commons.io;IOUtils;closeQuietly;(InputStream);generated",
|
||||
"org.apache.commons.io;IOUtils;closeQuietly;(OutputStream);generated",
|
||||
"org.apache.commons.io;IOUtils;closeQuietly;(Reader);generated",
|
||||
"org.apache.commons.io;IOUtils;closeQuietly;(Selector);generated",
|
||||
"org.apache.commons.io;IOUtils;closeQuietly;(ServerSocket);generated",
|
||||
"org.apache.commons.io;IOUtils;closeQuietly;(Socket);generated",
|
||||
"org.apache.commons.io;IOUtils;closeQuietly;(Writer);generated",
|
||||
"org.apache.commons.io;IOUtils;consume;(InputStream);generated",
|
||||
"org.apache.commons.io;IOUtils;contentEquals;(InputStream,InputStream);generated",
|
||||
"org.apache.commons.io;IOUtils;contentEquals;(Reader,Reader);generated",
|
||||
"org.apache.commons.io;IOUtils;contentEqualsIgnoreEOL;(Reader,Reader);generated",
|
||||
"org.apache.commons.io;IOUtils;copy;(ByteArrayOutputStream);generated",
|
||||
"org.apache.commons.io;IOUtils;copy;(Reader,OutputStream);generated",
|
||||
"org.apache.commons.io;IOUtils;copy;(Reader,OutputStream,Charset);generated",
|
||||
"org.apache.commons.io;IOUtils;copy;(Reader,OutputStream,String);generated",
|
||||
"org.apache.commons.io;IOUtils;copy;(URL,File);generated",
|
||||
"org.apache.commons.io;IOUtils;copy;(URL,OutputStream);generated",
|
||||
"org.apache.commons.io;IOUtils;length;(CharSequence);generated",
|
||||
"org.apache.commons.io;IOUtils;length;(Object[]);generated",
|
||||
"org.apache.commons.io;IOUtils;length;(byte[]);generated",
|
||||
"org.apache.commons.io;IOUtils;length;(char[]);generated",
|
||||
"org.apache.commons.io;IOUtils;resourceToByteArray;(String);generated",
|
||||
"org.apache.commons.io;IOUtils;resourceToByteArray;(String,ClassLoader);generated",
|
||||
"org.apache.commons.io;IOUtils;resourceToString;(String,Charset);generated",
|
||||
"org.apache.commons.io;IOUtils;resourceToString;(String,Charset,ClassLoader);generated",
|
||||
"org.apache.commons.io;IOUtils;resourceToURL;(String);generated",
|
||||
"org.apache.commons.io;IOUtils;resourceToURL;(String,ClassLoader);generated",
|
||||
"org.apache.commons.io;IOUtils;skip;(InputStream,long);generated",
|
||||
"org.apache.commons.io;IOUtils;skip;(ReadableByteChannel,long);generated",
|
||||
"org.apache.commons.io;IOUtils;skip;(Reader,long);generated",
|
||||
"org.apache.commons.io;IOUtils;skipFully;(InputStream,long);generated",
|
||||
"org.apache.commons.io;IOUtils;skipFully;(ReadableByteChannel,long);generated",
|
||||
"org.apache.commons.io;IOUtils;skipFully;(Reader,long);generated",
|
||||
"org.apache.commons.io;IOUtils;toBufferedInputStream;(InputStream);generated",
|
||||
"org.apache.commons.io;IOUtils;toBufferedInputStream;(InputStream,int);generated",
|
||||
"org.apache.commons.io;IOUtils;toByteArray;(InputStream);generated",
|
||||
"org.apache.commons.io;IOUtils;toByteArray;(Reader);generated",
|
||||
"org.apache.commons.io;IOUtils;toByteArray;(Reader,Charset);generated",
|
||||
"org.apache.commons.io;IOUtils;toByteArray;(Reader,String);generated",
|
||||
"org.apache.commons.io;IOUtils;toByteArray;(URI);generated",
|
||||
"org.apache.commons.io;IOUtils;toByteArray;(URL);generated",
|
||||
"org.apache.commons.io;IOUtils;toByteArray;(URLConnection);generated",
|
||||
"org.apache.commons.io;IOUtils;toString;(URI);generated",
|
||||
"org.apache.commons.io;IOUtils;toString;(URI,Charset);generated",
|
||||
"org.apache.commons.io;IOUtils;toString;(URI,String);generated",
|
||||
"org.apache.commons.io;IOUtils;toString;(URL);generated",
|
||||
"org.apache.commons.io;IOUtils;toString;(URL,Charset);generated",
|
||||
"org.apache.commons.io;IOUtils;toString;(URL,String);generated",
|
||||
"org.apache.commons.io;IOUtils;write;(CharSequence,OutputStream);generated",
|
||||
"org.apache.commons.io;IOUtils;write;(CharSequence,OutputStream,Charset);generated",
|
||||
"org.apache.commons.io;IOUtils;write;(CharSequence,OutputStream,String);generated",
|
||||
"org.apache.commons.io;IOUtils;write;(String,OutputStream);generated",
|
||||
"org.apache.commons.io;IOUtils;write;(String,OutputStream,Charset);generated",
|
||||
"org.apache.commons.io;IOUtils;write;(String,OutputStream,String);generated",
|
||||
"org.apache.commons.io;IOUtils;write;(StringBuffer,OutputStream);generated",
|
||||
"org.apache.commons.io;IOUtils;write;(StringBuffer,OutputStream,String);generated",
|
||||
"org.apache.commons.io;IOUtils;write;(char[],OutputStream);generated",
|
||||
"org.apache.commons.io;IOUtils;write;(char[],OutputStream,Charset);generated",
|
||||
"org.apache.commons.io;IOUtils;write;(char[],OutputStream,String);generated",
|
||||
"org.apache.commons.io;LineIterator;closeQuietly;(LineIterator);generated",
|
||||
"org.apache.commons.io;RandomAccessFileMode;create;(File);generated",
|
||||
"org.apache.commons.io;RandomAccessFileMode;create;(Path);generated",
|
||||
"org.apache.commons.io;RandomAccessFileMode;create;(String);generated",
|
||||
"org.apache.commons.io;RandomAccessFileMode;toString;();generated",
|
||||
"org.apache.commons.io;StandardLineSeparator;getBytes;(Charset);generated",
|
||||
"org.apache.commons.io;StandardLineSeparator;getString;();generated",
|
||||
"org.apache.commons.io;TaggedIOException;isTaggedWith;(Throwable,Object);generated",
|
||||
"org.apache.commons.io;TaggedIOException;throwCauseIfTaggedWith;(Throwable,Object);generated",
|
||||
"org.apache.commons.io;UncheckedIO;UncheckedIO;();generated",
|
||||
"org.apache.commons.io;UncheckedIO;accept;(IOConsumer,Object);generated",
|
||||
"org.apache.commons.io;UncheckedIO;apply;(IOBiFunction,Object,Object);generated",
|
||||
"org.apache.commons.io;UncheckedIO;get;(IOSupplier);generated",
|
||||
"org.apache.commons.io;UncheckedIO;run;(IORunnable);generated",
|
||||
"org.apache.commons.io;UncheckedIOExceptions;UncheckedIOExceptions;();generated",
|
||||
"org.apache.commons.io;UncheckedIOExceptions;create;(Object);generated",
|
||||
"org.apache.commons.io;UncheckedIOExceptions;wrap;(IOException,Object);generated"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -5,6 +5,5 @@
|
||||
import java
|
||||
|
||||
private module GeneratedFrameworks {
|
||||
private import apache.IOGenerated
|
||||
private import kotlin.StdLibGenerated
|
||||
}
|
||||
|
||||
@@ -1,98 +0,0 @@
|
||||
/** Definitions of flow steps through utility methods of `com.google.common.base`. */
|
||||
|
||||
import java
|
||||
private import semmle.code.java.dataflow.ExternalFlow
|
||||
|
||||
private class GuavaBaseCsv extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
//`namespace; type; subtypes; name; signature; ext; input; output; kind`
|
||||
"com.google.common.base;Strings;false;emptyToNull;(String);;Argument[0];ReturnValue;value;manual",
|
||||
"com.google.common.base;Strings;false;nullToEmpty;(String);;Argument[0];ReturnValue;value;manual",
|
||||
"com.google.common.base;Strings;false;padStart;(String,int,char);;Argument[0];ReturnValue;taint;manual",
|
||||
"com.google.common.base;Strings;false;padEnd;(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;Strings;false;lenientFormat;(String,Object[]);;Argument[0];ReturnValue;taint;manual",
|
||||
"com.google.common.base;Strings;false;lenientFormat;(String,Object[]);;Argument[1].ArrayElement;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;useForNull;(String);;Argument[0];ReturnValue;taint;manual",
|
||||
"com.google.common.base;Joiner;false;withKeyValueSeparator;(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;(char);;Argument[-1];ReturnValue;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,Iterable);;Argument[1].Element;Argument[-1];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;(Appendable,Iterator);;Argument[1].Element;Argument[-1];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,Iterable);;Argument[1].Element;Argument[-1];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,Iterator);;Argument[1].Element;Argument[-1];taint;manual",
|
||||
"com.google.common.base;Joiner;false;appendTo;;;Argument[-1];Argument[0];taint;manual",
|
||||
"com.google.common.base;Joiner;false;appendTo;;;Argument[0];ReturnValue;value;manual",
|
||||
"com.google.common.base;Joiner;false;join;;;Argument[-1..2];ReturnValue;taint;manual",
|
||||
"com.google.common.base;Joiner$MapJoiner;false;useForNull;(String);;Argument[0];ReturnValue;taint;manual",
|
||||
"com.google.common.base;Joiner$MapJoiner;false;useForNull;(String);;Argument[-1];ReturnValue;taint;manual",
|
||||
"com.google.common.base;Joiner$MapJoiner;false;appendTo;;;Argument[1];Argument[0];taint;manual",
|
||||
"com.google.common.base;Joiner$MapJoiner;false;appendTo;;;Argument[0];ReturnValue;value;manual",
|
||||
"com.google.common.base;Joiner$MapJoiner;false;join;;;Argument[-1];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;Splitter;false;split;(CharSequence);;Argument[0];ReturnValue;taint;manual",
|
||||
"com.google.common.base;Splitter;false;splitToList;(CharSequence);;Argument[0];ReturnValue;taint;manual",
|
||||
"com.google.common.base;Splitter;false;splitToStream;(CharSequence);;Argument[0];ReturnValue;taint;manual",
|
||||
"com.google.common.base;Splitter$MapSplitter;false;split;(CharSequence);;Argument[0];ReturnValue;taint;manual",
|
||||
"com.google.common.base;Preconditions;false;checkNotNull;;;Argument[0];ReturnValue;value;manual",
|
||||
"com.google.common.base;Verify;false;verifyNotNull;;;Argument[0];ReturnValue;value;manual",
|
||||
"com.google.common.base;Ascii;false;toLowerCase;(CharSequence);;Argument[0];ReturnValue;taint;manual",
|
||||
"com.google.common.base;Ascii;false;toLowerCase;(String);;Argument[0];ReturnValue;taint;manual",
|
||||
"com.google.common.base;Ascii;false;toUpperCase;(CharSequence);;Argument[0];ReturnValue;taint;manual",
|
||||
"com.google.common.base;Ascii;false;toUpperCase;(String);;Argument[0];ReturnValue;taint;manual",
|
||||
"com.google.common.base;Ascii;false;truncate;(CharSequence,int,String);;Argument[0];ReturnValue;taint;manual",
|
||||
"com.google.common.base;Ascii;false;truncate;(CharSequence,int,String);;Argument[2];ReturnValue;taint;manual",
|
||||
"com.google.common.base;CaseFormat;true;to;(CaseFormat,String);;Argument[1];ReturnValue;taint;manual",
|
||||
"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;Supplier;true;get;();;Argument[-1];ReturnValue;taint;manual",
|
||||
"com.google.common.base;Suppliers;false;ofInstance;(Object);;Argument[0];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;synchronizedSupplier;(Supplier);;Argument[0];ReturnValue;taint;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;asSet;();;Argument[-1].Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.base;Optional;true;of;(Object);;Argument[0];ReturnValue.Element;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[0];ReturnValue;taint;manual",
|
||||
"com.google.common.base;Optional;true;or;(Object);;Argument[-1].Element;ReturnValue;value;manual",
|
||||
"com.google.common.base;Optional;true;or;(Object);;Argument[0];ReturnValue;value;manual",
|
||||
"com.google.common.base;Optional;true;orNull;();;Argument[-1].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;(Optional);;Argument[0].Element;ReturnValue.Element;value;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[0];ReturnValue;taint;manual",
|
||||
"com.google.common.base;MoreObjects$ToStringHelper;false;add;;;Argument[0];Argument[-1];taint;manual",
|
||||
"com.google.common.base;MoreObjects$ToStringHelper;false;add;;;Argument[-1];ReturnValue;value;manual",
|
||||
"com.google.common.base;MoreObjects$ToStringHelper;false;add;(String,Object);;Argument[1];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;addValue;;;Argument[-1];ReturnValue;value;manual",
|
||||
"com.google.common.base;MoreObjects$ToStringHelper;false;addValue;(Object);;Argument[0];ReturnValue;taint;manual",
|
||||
"com.google.common.base;MoreObjects$ToStringHelper;false;addValue;(Object);;Argument[0];Argument[-1];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"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,32 +0,0 @@
|
||||
/** Flow steps through methods of `com.google.common.cache` */
|
||||
|
||||
import java
|
||||
private import semmle.code.java.dataflow.ExternalFlow
|
||||
|
||||
private class GuavaBaseCsv extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
//`namespace; type; subtypes; name; signature; ext; input; output; kind`
|
||||
"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",
|
||||
// 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;getIfPresent;(Object);;Argument[-1].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[0].Element;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;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;get;(Object);;Argument[-1].MapValue;ReturnValue;value;manual",
|
||||
"com.google.common.cache;LoadingCache;true;getUnchecked;(Object);;Argument[-1].MapValue;ReturnValue;value;manual",
|
||||
"com.google.common.cache;LoadingCache;true;apply;(Object);;Argument[-1].MapValue;ReturnValue;value;manual",
|
||||
"com.google.common.cache;LoadingCache;true;getAll;(Iterable);;Argument[0].Element;ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.cache;LoadingCache;true;getAll;(Iterable);;Argument[0].Element;Argument[-1].MapKey;value;manual",
|
||||
"com.google.common.cache;LoadingCache;true;getAll;(Iterable);;Argument[-1].MapValue;ReturnValue.MapValue;value;manual"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -8,571 +8,6 @@ private import semmle.code.java.Collections
|
||||
|
||||
private string guavaCollectPackage() { result = "com.google.common.collect" }
|
||||
|
||||
private class GuavaCollectCsv extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
//"package;type;overrides;name;signature;ext;inputspec;outputspec;kind",
|
||||
// Methods depending on lambda flow are not currently modeled
|
||||
// Methods depending on stronger aliasing properties than we support are also not modeled.
|
||||
"com.google.common.collect;ArrayListMultimap;true;create;(Multimap);;Argument[0].MapKey;ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;ArrayListMultimap;true;create;(Multimap);;Argument[0].MapValue;ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;ArrayTable;true;create;(Iterable,Iterable);;Argument[0].Element;ReturnValue.SyntheticField[com.google.common.collect.Table.rowKey];value;manual",
|
||||
"com.google.common.collect;ArrayTable;true;create;(Iterable,Iterable);;Argument[1].Element;ReturnValue.SyntheticField[com.google.common.collect.Table.columnKey];value;manual",
|
||||
"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];Argument[-1].MapValue;value;manual",
|
||||
"com.google.common.collect;ClassToInstanceMap;true;putInstance;(Class,Object);;Argument[-1].MapValue;ReturnValue;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",
|
||||
"com.google.common.collect;Collections2;false;permutations;(Collection);;Argument[0].Element;ReturnValue.Element.Element;value;manual",
|
||||
"com.google.common.collect;ConcurrentHashMultiset;true;create;(Iterable);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;HashBasedTable;true;create;(Table);;Argument[0].MapValue;ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;HashBasedTable;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;HashBasedTable;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;HashBiMap;true;create;(Map);;Argument[0].MapKey;ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;HashBiMap;true;create;(Map);;Argument[0].MapValue;ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;HashMultimap;true;create;(Multimap);;Argument[0].MapKey;ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;HashMultimap;true;create;(Multimap);;Argument[0].MapValue;ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;HashMultiset;true;create;(Iterable);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;ImmutableBiMap;true;of;;;Argument[0];ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;ImmutableBiMap;true;of;;;Argument[1];ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;ImmutableBiMap;true;of;;;Argument[2];ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;ImmutableBiMap;true;of;;;Argument[3];ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;ImmutableBiMap;true;of;;;Argument[4];ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;ImmutableBiMap;true;of;;;Argument[5];ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;ImmutableBiMap;true;of;;;Argument[6];ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;ImmutableBiMap;true;of;;;Argument[7];ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;ImmutableBiMap;true;of;;;Argument[8];ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;ImmutableBiMap;true;of;;;Argument[9];ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;ImmutableClassToInstanceMap;true;copyOf;(Map);;Argument[0].MapKey;ReturnValue.MapKey;value;manual",
|
||||
"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$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;add;;;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;addAll;;;Argument[-1];ReturnValue;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[-1].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;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",
|
||||
"com.google.common.collect;ImmutableListMultimap;true;of;;;Argument[1];ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;ImmutableListMultimap;true;of;;;Argument[2];ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;ImmutableListMultimap;true;of;;;Argument[3];ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;ImmutableListMultimap;true;of;;;Argument[4];ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;ImmutableListMultimap;true;of;;;Argument[5];ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;ImmutableListMultimap;true;of;;;Argument[6];ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;ImmutableListMultimap;true;of;;;Argument[7];ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;ImmutableListMultimap;true;of;;;Argument[8];ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;ImmutableListMultimap;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;(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;put;;;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;putAll;;;Argument[-1];ReturnValue;value;manual",
|
||||
"com.google.common.collect;ImmutableMap;true;copyOf;(Iterable);;Argument[0].Element.MapKey;ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;ImmutableMap;true;copyOf;(Iterable);;Argument[0].Element.MapValue;ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;ImmutableMap;true;copyOf;(Map);;Argument[0].MapKey;ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;ImmutableMap;true;copyOf;(Map);;Argument[0].MapValue;ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;ImmutableMap;true;of;;;Argument[0];ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;ImmutableMap;true;of;;;Argument[1];ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;ImmutableMap;true;of;;;Argument[2];ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;ImmutableMap;true;of;;;Argument[3];ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;ImmutableMap;true;of;;;Argument[4];ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;ImmutableMap;true;of;;;Argument[5];ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;ImmutableMap;true;of;;;Argument[6];ReturnValue.MapKey;value;manual",
|
||||
"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;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;(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;put;;;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;putAll;;;Argument[-1];ReturnValue;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;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",
|
||||
"com.google.common.collect;ImmutableMultimap;true;of;;;Argument[3];ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;ImmutableMultimap;true;of;;;Argument[4];ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;ImmutableMultimap;true;of;;;Argument[5];ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;ImmutableMultimap;true;of;;;Argument[6];ReturnValue.MapKey;value;manual",
|
||||
"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;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;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;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",
|
||||
"com.google.common.collect;ImmutableSet;true;copyOf;(Object[]);;Argument[0].ArrayElement;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;ImmutableSet;true;of;;;Argument[0..5];ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;ImmutableSet;true;of;;;Argument[6].ArrayElement;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;ImmutableSetMultimap;true;of;;;Argument[0];ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;ImmutableSetMultimap;true;of;;;Argument[1];ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;ImmutableSetMultimap;true;of;;;Argument[2];ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;ImmutableSetMultimap;true;of;;;Argument[3];ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;ImmutableSetMultimap;true;of;;;Argument[4];ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;ImmutableSetMultimap;true;of;;;Argument[5];ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;ImmutableSetMultimap;true;of;;;Argument[6];ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;ImmutableSetMultimap;true;of;;;Argument[7];ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;ImmutableSetMultimap;true;of;;;Argument[8];ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;ImmutableSetMultimap;true;of;;;Argument[9];ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;ImmutableSortedMap;true;copyOf;(Iterable);;Argument[0].Element.MapKey;ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;ImmutableSortedMap;true;copyOf;(Iterable);;Argument[0].Element.MapValue;ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;ImmutableSortedMap;true;copyOf;(Iterable,Comparator);;Argument[0].Element.MapKey;ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;ImmutableSortedMap;true;copyOf;(Iterable,Comparator);;Argument[0].Element.MapValue;ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;ImmutableSortedMap;true;copyOf;(Map);;Argument[0].MapKey;ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;ImmutableSortedMap;true;copyOf;(Map);;Argument[0].MapValue;ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;ImmutableSortedMap;true;copyOf;(Map,Comparator);;Argument[0].MapKey;ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;ImmutableSortedMap;true;copyOf;(Map,Comparator);;Argument[0].MapValue;ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;ImmutableSortedMap;true;copyOfSorted;(SortedMap);;Argument[0].MapKey;ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;ImmutableSortedMap;true;copyOfSorted;(SortedMap);;Argument[0].MapValue;ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;ImmutableSortedMap;true;of;;;Argument[0];ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;ImmutableSortedMap;true;of;;;Argument[1];ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;ImmutableSortedMap;true;of;;;Argument[2];ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;ImmutableSortedMap;true;of;;;Argument[3];ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;ImmutableSortedMap;true;of;;;Argument[4];ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;ImmutableSortedMap;true;of;;;Argument[5];ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;ImmutableSortedMap;true;of;;;Argument[6];ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;ImmutableSortedMap;true;of;;;Argument[7];ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;ImmutableSortedMap;true;of;;;Argument[8];ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;ImmutableSortedMap;true;of;;;Argument[9];ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;ImmutableSortedMultiset;true;copyOf;(Comparable[]);;Argument[0].ArrayElement;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;ImmutableSortedMultiset;true;copyOf;(Comparator,Iterable);;Argument[1].Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;ImmutableSortedMultiset;true;copyOf;(Comparator,Iterator);;Argument[1].Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;ImmutableSortedMultiset;true;copyOf;(Iterable);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;ImmutableSortedMultiset;true;copyOf;(Iterator);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;ImmutableSortedMultiset;true;copyOfSorted;(SortedMultiset);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;ImmutableSortedMultiset;true;of;;;Argument[0..5];ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;ImmutableSortedMultiset;true;of;;;Argument[6].ArrayElement;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;ImmutableSortedSet;true;copyOf;(Collection);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;ImmutableSortedSet;true;copyOf;(Comparable[]);;Argument[0].ArrayElement;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;ImmutableSortedSet;true;copyOf;(Comparator,Collection);;Argument[1].Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;ImmutableSortedSet;true;copyOf;(Comparator,Iterable);;Argument[1].Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;ImmutableSortedSet;true;copyOf;(Comparator,Iterator);;Argument[1].Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;ImmutableSortedSet;true;copyOf;(Iterable);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;ImmutableSortedSet;true;copyOf;(Iterator);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;ImmutableSortedSet;true;copyOfSorted;(SortedSet);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;ImmutableSortedSet;true;of;;;Argument[0..5];ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;ImmutableSortedSet;true;of;;;Argument[6].ArrayElement;ReturnValue.Element;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;true;copyOf;(Table);;Argument[0].MapValue;ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;ImmutableTable;true;copyOf;(Table);;Argument[0].SyntheticField[com.google.common.collect.Table.columnKey];ReturnValue.SyntheticField[com.google.common.collect.Table.columnKey];value;manual",
|
||||
"com.google.common.collect;ImmutableTable;true;copyOf;(Table);;Argument[0].SyntheticField[com.google.common.collect.Table.rowKey];ReturnValue.SyntheticField[com.google.common.collect.Table.rowKey];value;manual",
|
||||
"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;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",
|
||||
"com.google.common.collect;Iterables;false;concat;(Iterable,Iterable,Iterable);;Argument[0..2].Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;Iterables;false;concat;(Iterable,Iterable,Iterable,Iterable);;Argument[0..3].Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;Iterables;false;concat;(Iterable[]);;Argument[0].ArrayElement.Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;Iterables;false;consumingIterable;(Iterable);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;Iterables;false;cycle;(Iterable);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;Iterables;false;cycle;(Object[]);;Argument[0].ArrayElement;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;Iterables;false;filter;(Iterable,Class);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;Iterables;false;filter;(Iterable,Predicate);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;Iterables;false;find;(Iterable,Predicate);;Argument[0].Element;ReturnValue;value;manual",
|
||||
"com.google.common.collect;Iterables;false;find;(Iterable,Predicate,Object);;Argument[2];ReturnValue;value;manual",
|
||||
"com.google.common.collect;Iterables;false;find;(Iterable,Predicate,Object);;Argument[0].Element;ReturnValue;value;manual",
|
||||
"com.google.common.collect;Iterables;false;get;(Iterable,int);;Argument[0].Element;ReturnValue;value;manual",
|
||||
"com.google.common.collect;Iterables;false;get;(Iterable,int,Object);;Argument[2];ReturnValue;value;manual",
|
||||
"com.google.common.collect;Iterables;false;get;(Iterable,int,Object);;Argument[0].Element;ReturnValue;value;manual",
|
||||
"com.google.common.collect;Iterables;false;getLast;(Iterable);;Argument[0].Element;ReturnValue;value;manual",
|
||||
"com.google.common.collect;Iterables;false;getLast;(Iterable,Object);;Argument[1];ReturnValue;value;manual",
|
||||
"com.google.common.collect;Iterables;false;getLast;(Iterable,Object);;Argument[0].Element;ReturnValue;value;manual",
|
||||
"com.google.common.collect;Iterables;false;getOnlyElement;(Iterable);;Argument[0].Element;ReturnValue;value;manual",
|
||||
"com.google.common.collect;Iterables;false;getOnlyElement;(Iterable,Object);;Argument[1];ReturnValue;value;manual",
|
||||
"com.google.common.collect;Iterables;false;getOnlyElement;(Iterable,Object);;Argument[0].Element;ReturnValue;value;manual",
|
||||
"com.google.common.collect;Iterables;false;limit;(Iterable,int);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;Iterables;false;mergeSorted;(Iterable,Comparator);;Argument[0].Element.Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;Iterables;false;paddedPartition;(Iterable,int);;Argument[0].Element;ReturnValue.Element.Element;value;manual",
|
||||
"com.google.common.collect;Iterables;false;partition;(Iterable,int);;Argument[0].Element;ReturnValue.Element.Element;value;manual",
|
||||
"com.google.common.collect;Iterables;false;skip;(Iterable,int);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;Iterables;false;toArray;(Iterable,Class);;Argument[0].Element;ReturnValue.ArrayElement;value;manual",
|
||||
//"com.google.common.collect;Iterables;false;toString;(Iterable);;Element of Argument[0];ReturnValue;taint;manual",
|
||||
"com.google.common.collect;Iterables;false;tryFind;(Iterable,Predicate);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;Iterables;false;unmodifiableIterable;(ImmutableCollection);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;Iterables;false;unmodifiableIterable;(Iterable);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;Iterators;false;addAll;(Collection,Iterator);;Argument[1].Element;Argument[0].Element;value;manual",
|
||||
"com.google.common.collect;Iterators;false;asEnumeration;(Iterator);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;Iterators;false;concat;(Iterator);;Argument[0].Element.Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;Iterators;false;concat;(Iterator,Iterator);;Argument[0..1].Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;Iterators;false;concat;(Iterator,Iterator,Iterator);;Argument[0..2].Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;Iterators;false;concat;(Iterator,Iterator,Iterator,Iterator);;Argument[0..3].Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;Iterators;false;concat;(Iterator[]);;Argument[0].ArrayElement.Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;Iterators;false;consumingIterator;(Iterator);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;Iterators;false;cycle;(Iterable);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;Iterators;false;cycle;(Object[]);;Argument[0].ArrayElement;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;Iterators;false;filter;(Iterator,Class);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;Iterators;false;filter;(Iterator,Predicate);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;Iterators;false;find;(Iterator,Predicate);;Argument[0].Element;ReturnValue;value;manual",
|
||||
"com.google.common.collect;Iterators;false;find;(Iterator,Predicate,Object);;Argument[2];ReturnValue;value;manual",
|
||||
"com.google.common.collect;Iterators;false;find;(Iterator,Predicate,Object);;Argument[0].Element;ReturnValue;value;manual",
|
||||
"com.google.common.collect;Iterators;false;forArray;(Object[]);;Argument[0].ArrayElement;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;Iterators;false;forEnumeration;(Enumeration);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;Iterators;false;get;(Iterator,int);;Argument[0].Element;ReturnValue;value;manual",
|
||||
"com.google.common.collect;Iterators;false;get;(Iterator,int,Object);;Argument[2];ReturnValue;value;manual",
|
||||
"com.google.common.collect;Iterators;false;get;(Iterator,int,Object);;Argument[0].Element;ReturnValue;value;manual",
|
||||
"com.google.common.collect;Iterators;false;getLast;(Iterator);;Argument[0].Element;ReturnValue;value;manual",
|
||||
"com.google.common.collect;Iterators;false;getLast;(Iterator,Object);;Argument[1];ReturnValue;value;manual",
|
||||
"com.google.common.collect;Iterators;false;getLast;(Iterator,Object);;Argument[0].Element;ReturnValue;value;manual",
|
||||
"com.google.common.collect;Iterators;false;getNext;(Iterator,Object);;Argument[1];ReturnValue;value;manual",
|
||||
"com.google.common.collect;Iterators;false;getNext;(Iterator,Object);;Argument[0].Element;ReturnValue;value;manual",
|
||||
"com.google.common.collect;Iterators;false;getOnlyElement;(Iterator);;Argument[0].Element;ReturnValue;value;manual",
|
||||
"com.google.common.collect;Iterators;false;getOnlyElement;(Iterator,Object);;Argument[1];ReturnValue;value;manual",
|
||||
"com.google.common.collect;Iterators;false;getOnlyElement;(Iterator,Object);;Argument[0].Element;ReturnValue;value;manual",
|
||||
"com.google.common.collect;Iterators;false;limit;(Iterator,int);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;Iterators;false;mergeSorted;(Iterable,Comparator);;Argument[0].Element.Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;Iterators;false;paddedPartition;(Iterator,int);;Argument[0].Element;ReturnValue.Element.Element;value;manual",
|
||||
"com.google.common.collect;Iterators;false;partition;(Iterator,int);;Argument[0].Element;ReturnValue.Element.Element;value;manual",
|
||||
"com.google.common.collect;Iterators;false;peekingIterator;(Iterator);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;Iterators;false;peekingIterator;(PeekingIterator);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;Iterators;false;singletonIterator;(Object);;Argument[0];ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;Iterators;false;toArray;(Iterator,Class);;Argument[0].Element;ReturnValue.ArrayElement;value;manual",
|
||||
"com.google.common.collect;Iterators;false;tryFind;(Iterator,Predicate);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;Iterators;false;unmodifiableIterator;(Iterator);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;Iterators;false;unmodifiableIterator;(UnmodifiableIterator);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;LinkedHashMultimap;true;create;(Multimap);;Argument[0].MapKey;ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;LinkedHashMultimap;true;create;(Multimap);;Argument[0].MapValue;ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;LinkedHashMultiset;true;create;(Iterable);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;LinkedListMultimap;true;create;(Multimap);;Argument[0].MapKey;ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;LinkedListMultimap;true;create;(Multimap);;Argument[0].MapValue;ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;Lists;false;asList;(Object,Object,Object[]);;Argument[0..1];ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;Lists;false;asList;(Object,Object,Object[]);;Argument[2].ArrayElement;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;Lists;false;asList;(Object,Object[]);;Argument[0];ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;Lists;false;asList;(Object,Object[]);;Argument[1].ArrayElement;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;Lists;false;cartesianProduct;(List);;Argument[0].Element.Element;ReturnValue.Element.Element;value;manual",
|
||||
"com.google.common.collect;Lists;false;cartesianProduct;(List[]);;Argument[0].ArrayElement.Element;ReturnValue.Element.Element;value;manual",
|
||||
"com.google.common.collect;Lists;false;charactersOf;(CharSequence);;Argument[0];ReturnValue.Element;taint;manual",
|
||||
"com.google.common.collect;Lists;false;charactersOf;(String);;Argument[0];ReturnValue.Element;taint;manual",
|
||||
"com.google.common.collect;Lists;false;newArrayList;(Iterable);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;Lists;false;newArrayList;(Iterator);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;Lists;false;newArrayList;(Object[]);;Argument[0].ArrayElement;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;Lists;false;newCopyOnWriteArrayList;(Iterable);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"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$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[-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.right].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].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.right].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].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;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",
|
||||
"com.google.common.collect;Maps;false;difference;(Map,Map);;Argument[0].MapKey;ReturnValue.SyntheticField[com.google.common.collect.MapDifference.left].MapKey;value;manual",
|
||||
"com.google.common.collect;Maps;false;difference;(Map,Map);;Argument[1].MapKey;ReturnValue.SyntheticField[com.google.common.collect.MapDifference.right].MapKey;value;manual",
|
||||
"com.google.common.collect;Maps;false;difference;(Map,Map);;Argument[0].MapValue;ReturnValue.SyntheticField[com.google.common.collect.MapDifference.left].MapValue;value;manual",
|
||||
"com.google.common.collect;Maps;false;difference;(Map,Map);;Argument[1].MapValue;ReturnValue.SyntheticField[com.google.common.collect.MapDifference.right].MapValue;value;manual",
|
||||
"com.google.common.collect;Maps;false;difference;(Map,Map,Equivalence);;Argument[0].MapKey;ReturnValue.SyntheticField[com.google.common.collect.MapDifference.left].MapKey;value;manual",
|
||||
"com.google.common.collect;Maps;false;difference;(Map,Map,Equivalence);;Argument[1].MapKey;ReturnValue.SyntheticField[com.google.common.collect.MapDifference.right].MapKey;value;manual",
|
||||
"com.google.common.collect;Maps;false;difference;(Map,Map,Equivalence);;Argument[0].MapValue;ReturnValue.SyntheticField[com.google.common.collect.MapDifference.left].MapValue;value;manual",
|
||||
"com.google.common.collect;Maps;false;difference;(Map,Map,Equivalence);;Argument[1].MapValue;ReturnValue.SyntheticField[com.google.common.collect.MapDifference.right].MapValue;value;manual",
|
||||
"com.google.common.collect;Maps;false;difference;(SortedMap,Map);;Argument[0].MapKey;ReturnValue.SyntheticField[com.google.common.collect.MapDifference.left].MapKey;value;manual",
|
||||
"com.google.common.collect;Maps;false;difference;(SortedMap,Map);;Argument[1].MapKey;ReturnValue.SyntheticField[com.google.common.collect.MapDifference.right].MapKey;value;manual",
|
||||
"com.google.common.collect;Maps;false;difference;(SortedMap,Map);;Argument[0].MapValue;ReturnValue.SyntheticField[com.google.common.collect.MapDifference.left].MapValue;value;manual",
|
||||
"com.google.common.collect;Maps;false;difference;(SortedMap,Map);;Argument[1].MapValue;ReturnValue.SyntheticField[com.google.common.collect.MapDifference.right].MapValue;value;manual",
|
||||
"com.google.common.collect;Maps;false;filterEntries;;;Argument[0].MapKey;ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;Maps;false;filterKeys;;;Argument[0].MapKey;ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;Maps;false;filterValues;;;Argument[0].MapKey;ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;Maps;false;fromProperties;(Properties);;Argument[0].MapKey;ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;Maps;false;fromProperties;(Properties);;Argument[0].MapValue;ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;Maps;false;immutableEntry;(Object,Object);;Argument[0];ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;Maps;false;immutableEntry;(Object,Object);;Argument[1];ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;Maps;false;immutableEnumMap;(Map);;Argument[0].MapValue;ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;Maps;false;newEnumMap;(Map);;Argument[0].MapValue;ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;Maps;false;newHashMap;(Map);;Argument[0].MapKey;ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;Maps;false;newHashMap;(Map);;Argument[0].MapValue;ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;Maps;false;newLinkedHashMap;(Map);;Argument[0].MapKey;ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;Maps;false;newLinkedHashMap;(Map);;Argument[0].MapValue;ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;Maps;false;newTreeMap;(SortedMap);;Argument[0].MapKey;ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;Maps;false;newTreeMap;(SortedMap);;Argument[0].MapValue;ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;Maps;false;subMap;(NavigableMap,Range);;Argument[0].MapKey;ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;Maps;false;subMap;(NavigableMap,Range);;Argument[0].MapValue;ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;Maps;false;synchronizedBiMap;(BiMap);;Argument[0].MapKey;ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;Maps;false;synchronizedBiMap;(BiMap);;Argument[0].MapValue;ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;Maps;false;synchronizedNavigableMap;(NavigableMap);;Argument[0].MapKey;ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;Maps;false;synchronizedNavigableMap;(NavigableMap);;Argument[0].MapValue;ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;Maps;false;toMap;(Iterable,Function);;Argument[0].Element;ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;Maps;false;toMap;(Iterator,Function);;Argument[0].Element;ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;Maps;false;transformValues;(Map,Function);;Argument[0].MapKey;ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;Maps;false;transformValues;(NavigableMap,Function);;Argument[0].MapKey;ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;Maps;false;transformValues;(SortedMap,Function);;Argument[0].MapKey;ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;Maps;false;uniqueIndex;(Iterable,Function);;Argument[0].Element;ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;Maps;false;uniqueIndex;(Iterator,Function);;Argument[0].Element;ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;Maps;false;unmodifiableBiMap;(BiMap);;Argument[0].MapKey;ReturnValue.MapKey;value;manual",
|
||||
"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[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;replaceValues;(Object,Iterable);;Argument[-1].MapValue;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;Multimap;true;values;();;Argument[-1].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",
|
||||
"com.google.common.collect;Multimaps;false;asMap;(Multimap);;Argument[0].MapValue;ReturnValue.MapValue.Element;value;manual",
|
||||
"com.google.common.collect;Multimaps;false;asMap;(SetMultimap);;Argument[0].MapKey;ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;Multimaps;false;asMap;(SetMultimap);;Argument[0].MapValue;ReturnValue.MapValue.Element;value;manual",
|
||||
"com.google.common.collect;Multimaps;false;asMap;(SortedSetMultimap);;Argument[0].MapKey;ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;Multimaps;false;asMap;(SortedSetMultimap);;Argument[0].MapValue;ReturnValue.MapValue.Element;value;manual",
|
||||
"com.google.common.collect;Multimaps;false;filterEntries;(Multimap,Predicate);;Argument[0].MapKey;ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;Multimaps;false;filterEntries;(Multimap,Predicate);;Argument[0].MapValue;ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;Multimaps;false;filterEntries;(SetMultimap,Predicate);;Argument[0].MapKey;ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;Multimaps;false;filterEntries;(SetMultimap,Predicate);;Argument[0].MapValue;ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;Multimaps;false;filterKeys;(Multimap,Predicate);;Argument[0].MapKey;ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;Multimaps;false;filterKeys;(Multimap,Predicate);;Argument[0].MapValue;ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;Multimaps;false;filterKeys;(SetMultimap,Predicate);;Argument[0].MapKey;ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;Multimaps;false;filterKeys;(SetMultimap,Predicate);;Argument[0].MapValue;ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;Multimaps;false;filterValues;(Multimap,Predicate);;Argument[0].MapKey;ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;Multimaps;false;filterValues;(Multimap,Predicate);;Argument[0].MapValue;ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;Multimaps;false;filterValues;(SetMultimap,Predicate);;Argument[0].MapKey;ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;Multimaps;false;filterValues;(SetMultimap,Predicate);;Argument[0].MapValue;ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;Multimaps;false;forMap;(Map);;Argument[0].MapKey;ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;Multimaps;false;forMap;(Map);;Argument[0].MapValue;ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;Multimaps;false;index;(Iterable,Function);;Argument[0].Element;ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;Multimaps;false;index;(Iterator,Function);;Argument[0].Element;ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;Multimaps;false;invertFrom;(Multimap,Multimap);;Argument[1];ReturnValue;value;manual",
|
||||
"com.google.common.collect;Multimaps;false;invertFrom;(Multimap,Multimap);;Argument[0].MapKey;Argument[1].MapValue;value;manual",
|
||||
"com.google.common.collect;Multimaps;false;invertFrom;(Multimap,Multimap);;Argument[0].MapValue;Argument[1].MapKey;value;manual",
|
||||
"com.google.common.collect;Multimaps;false;newListMultimap;(Map,Supplier);;Argument[0].MapValue.Element;ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;Multimaps;false;newListMultimap;(Map,Supplier);;Argument[0].MapKey;ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;Multimaps;false;newMultimap;(Map,Supplier);;Argument[0].MapValue.Element;ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;Multimaps;false;newMultimap;(Map,Supplier);;Argument[0].MapKey;ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;Multimaps;false;newSetMultimap;(Map,Supplier);;Argument[0].MapValue.Element;ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;Multimaps;false;newSetMultimap;(Map,Supplier);;Argument[0].MapKey;ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;Multimaps;false;newSortedSetMultimap;(Map,Supplier);;Argument[0].MapValue.Element;ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;Multimaps;false;newSortedSetMultimap;(Map,Supplier);;Argument[0].MapKey;ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;Multimaps;false;synchronizedListMultimap;(ListMultimap);;Argument[0].MapKey;ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;Multimaps;false;synchronizedListMultimap;(ListMultimap);;Argument[0].MapValue;ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;Multimaps;false;synchronizedMultimap;(Multimap);;Argument[0].MapKey;ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;Multimaps;false;synchronizedMultimap;(Multimap);;Argument[0].MapValue;ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;Multimaps;false;synchronizedSetMultimap;(SetMultimap);;Argument[0].MapKey;ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;Multimaps;false;synchronizedSetMultimap;(SetMultimap);;Argument[0].MapValue;ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;Multimaps;false;synchronizedSortedSetMultimap;(SortedSetMultimap);;Argument[0].MapKey;ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;Multimaps;false;synchronizedSortedSetMultimap;(SortedSetMultimap);;Argument[0].MapValue;ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;Multimaps;false;transformValues;(ListMultimap,Function);;Argument[0].MapKey;ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;Multimaps;false;transformValues;(Multimap,Function);;Argument[0].MapKey;ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;Multimaps;false;unmodifiableListMultimap;(ImmutableListMultimap);;Argument[0].MapKey;ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;Multimaps;false;unmodifiableListMultimap;(ImmutableListMultimap);;Argument[0].MapValue;ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;Multimaps;false;unmodifiableListMultimap;(ListMultimap);;Argument[0].MapKey;ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;Multimaps;false;unmodifiableListMultimap;(ListMultimap);;Argument[0].MapValue;ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;Multimaps;false;unmodifiableMultimap;(ImmutableMultimap);;Argument[0].MapKey;ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;Multimaps;false;unmodifiableMultimap;(ImmutableMultimap);;Argument[0].MapValue;ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;Multimaps;false;unmodifiableMultimap;(Multimap);;Argument[0].MapKey;ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;Multimaps;false;unmodifiableMultimap;(Multimap);;Argument[0].MapValue;ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;Multimaps;false;unmodifiableSetMultimap;(ImmutableSetMultimap);;Argument[0].MapKey;ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;Multimaps;false;unmodifiableSetMultimap;(ImmutableSetMultimap);;Argument[0].MapValue;ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;Multimaps;false;unmodifiableSetMultimap;(SetMultimap);;Argument[0].MapKey;ReturnValue.MapKey;value;manual",
|
||||
"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$Entry;true;getElement;();;Argument[-1].Element;ReturnValue;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;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",
|
||||
"com.google.common.collect;Multisets;false;immutableEntry;(Object,int);;Argument[0];ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;Multisets;false;intersection;(Multiset,Multiset);;Argument[0..1].Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;Multisets;false;sum;(Multiset,Multiset);;Argument[0..1].Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;Multisets;false;union;(Multiset,Multiset);;Argument[0..1].Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;Multisets;false;unmodifiableMultiset;(ImmutableMultiset);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;Multisets;false;unmodifiableMultiset;(Multiset);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;Multisets;false;unmodifiableSortedMultiset;(SortedMultiset);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;MutableClassToInstanceMap;true;create;(Map);;Argument[0].MapKey;ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;MutableClassToInstanceMap;true;create;(Map);;Argument[0].MapValue;ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;ObjectArrays;false;concat;(Object,Object[]);;Argument[0];ReturnValue.ArrayElement;value;manual",
|
||||
"com.google.common.collect;ObjectArrays;false;concat;(Object,Object[]);;Argument[1].ArrayElement;ReturnValue.ArrayElement;value;manual",
|
||||
"com.google.common.collect;ObjectArrays;false;concat;(Object[],Object);;Argument[1];ReturnValue.ArrayElement;value;manual",
|
||||
"com.google.common.collect;ObjectArrays;false;concat;(Object[],Object);;Argument[0].ArrayElement;ReturnValue.ArrayElement;value;manual",
|
||||
"com.google.common.collect;ObjectArrays;false;concat;(Object[],Object[],Class);;Argument[0..1].ArrayElement;ReturnValue.ArrayElement;value;manual",
|
||||
"com.google.common.collect;Queues;false;drain;(BlockingQueue,Collection,int,Duration);;Argument[0].Element;Argument[1].Element;value;manual",
|
||||
"com.google.common.collect;Queues;false;drain;(BlockingQueue,Collection,int,long,TimeUnit);;Argument[0].Element;Argument[1].Element;value;manual",
|
||||
"com.google.common.collect;Queues;false;newArrayDeque;(Iterable);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;Queues;false;newConcurrentLinkedQueue;(Iterable);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;Queues;false;newLinkedBlockingDeque;(Iterable);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;Queues;false;newLinkedBlockingQueue;(Iterable);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;Queues;false;newPriorityBlockingQueue;(Iterable);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;Queues;false;newPriorityQueue;(Iterable);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;Queues;false;synchronizedDeque;(Deque);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;Queues;false;synchronizedQueue;(Queue);;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;Sets;false;cartesianProduct;(List);;Argument[0].Element.Element;ReturnValue.Element.Element;value;manual",
|
||||
"com.google.common.collect;Sets;false;cartesianProduct;(Set[]);;Argument[0].ArrayElement.Element;ReturnValue.Element.Element;value;manual",
|
||||
"com.google.common.collect;Sets;false;combinations;(Set,int);;Argument[0].Element;ReturnValue.Element.Element;value;manual",
|
||||
"com.google.common.collect;Sets;false;difference;(Set,Set);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;Sets;false;filter;(NavigableSet,Predicate);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;Sets;false;filter;(Set,Predicate);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;Sets;false;filter;(SortedSet,Predicate);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;Sets;false;intersection;(Set,Set);;Argument[0..1].Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;Sets;false;newConcurrentHashSet;(Iterable);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;Sets;false;newCopyOnWriteArraySet;(Iterable);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;Sets;false;newHashSet;(Iterable);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;Sets;false;newHashSet;(Iterator);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;Sets;false;newHashSet;(Object[]);;Argument[0].ArrayElement;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;Sets;false;newLinkedHashSet;(Iterable);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;Sets;false;newSetFromMap;(Map);;Argument[0].MapKey;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;Sets;false;newTreeSet;(Iterable);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;Sets;false;powerSet;(Set);;Argument[0].Element;ReturnValue.Element.Element;value;manual",
|
||||
"com.google.common.collect;Sets;false;subSet;(NavigableSet,Range);;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"com.google.common.collect;Sets;false;symmetricDifference;(Set,Set);;Argument[0..1].Element;ReturnValue.Element;value;manual",
|
||||
"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;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;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;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",
|
||||
"com.google.common.collect;Tables;false;newCustomTable;(Map,Supplier);;Argument[0].MapKey;ReturnValue.SyntheticField[com.google.common.collect.Table.rowKey];value;manual",
|
||||
"com.google.common.collect;Tables;false;newCustomTable;(Map,Supplier);;Argument[0].MapValue.MapKey;ReturnValue.SyntheticField[com.google.common.collect.Table.columnKey];value;manual",
|
||||
"com.google.common.collect;Tables;false;newCustomTable;(Map,Supplier);;Argument[0].MapValue.MapValue;ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;Tables;false;synchronizedTable;(Table);;Argument[0].MapValue;ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;Tables;false;synchronizedTable;(Table);;Argument[0].SyntheticField[com.google.common.collect.Table.columnKey];ReturnValue.SyntheticField[com.google.common.collect.Table.columnKey];value;manual",
|
||||
"com.google.common.collect;Tables;false;synchronizedTable;(Table);;Argument[0].SyntheticField[com.google.common.collect.Table.rowKey];ReturnValue.SyntheticField[com.google.common.collect.Table.rowKey];value;manual",
|
||||
"com.google.common.collect;Tables;false;transformValues;(Table,Function);;Argument[0].SyntheticField[com.google.common.collect.Table.columnKey];ReturnValue.SyntheticField[com.google.common.collect.Table.columnKey];value;manual",
|
||||
"com.google.common.collect;Tables;false;transformValues;(Table,Function);;Argument[0].SyntheticField[com.google.common.collect.Table.rowKey];ReturnValue.SyntheticField[com.google.common.collect.Table.rowKey];value;manual",
|
||||
"com.google.common.collect;Tables;false;transpose;(Table);;Argument[0].MapValue;ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;Tables;false;transpose;(Table);;Argument[0].SyntheticField[com.google.common.collect.Table.columnKey];ReturnValue.SyntheticField[com.google.common.collect.Table.rowKey];value;manual",
|
||||
"com.google.common.collect;Tables;false;transpose;(Table);;Argument[0].SyntheticField[com.google.common.collect.Table.rowKey];ReturnValue.SyntheticField[com.google.common.collect.Table.columnKey];value;manual",
|
||||
"com.google.common.collect;Tables;false;unmodifiableRowSortedTable;(RowSortedTable);;Argument[0].MapValue;ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;Tables;false;unmodifiableRowSortedTable;(RowSortedTable);;Argument[0].SyntheticField[com.google.common.collect.Table.columnKey];ReturnValue.SyntheticField[com.google.common.collect.Table.columnKey];value;manual",
|
||||
"com.google.common.collect;Tables;false;unmodifiableRowSortedTable;(RowSortedTable);;Argument[0].SyntheticField[com.google.common.collect.Table.rowKey];ReturnValue.SyntheticField[com.google.common.collect.Table.rowKey];value;manual",
|
||||
"com.google.common.collect;Tables;false;unmodifiableTable;(Table);;Argument[0].MapValue;ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;Tables;false;unmodifiableTable;(Table);;Argument[0].SyntheticField[com.google.common.collect.Table.columnKey];ReturnValue.SyntheticField[com.google.common.collect.Table.columnKey];value;manual",
|
||||
"com.google.common.collect;Tables;false;unmodifiableTable;(Table);;Argument[0].SyntheticField[com.google.common.collect.Table.rowKey];ReturnValue.SyntheticField[com.google.common.collect.Table.rowKey];value;manual",
|
||||
"com.google.common.collect;TreeBasedTable;true;create;(TreeBasedTable);;Argument[0].MapValue;ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;TreeBasedTable;true;create;(TreeBasedTable);;Argument[0].SyntheticField[com.google.common.collect.Table.columnKey];ReturnValue.SyntheticField[com.google.common.collect.Table.columnKey];value;manual",
|
||||
"com.google.common.collect;TreeBasedTable;true;create;(TreeBasedTable);;Argument[0].SyntheticField[com.google.common.collect.Table.rowKey];ReturnValue.SyntheticField[com.google.common.collect.Table.rowKey];value;manual",
|
||||
"com.google.common.collect;TreeMultimap;true;create;(Multimap);;Argument[0].MapKey;ReturnValue.MapKey;value;manual",
|
||||
"com.google.common.collect;TreeMultimap;true;create;(Multimap);;Argument[0].MapValue;ReturnValue.MapValue;value;manual",
|
||||
"com.google.common.collect;TreeMultiset;true;create;(Iterable);;Argument[0].Element;ReturnValue.Element;value;manual"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* A reference type that extends a parameterization of `com.google.common.collect.Multimap`.
|
||||
*/
|
||||
|
||||
@@ -3,7 +3,4 @@
|
||||
*/
|
||||
|
||||
import java
|
||||
import Base
|
||||
import Collections
|
||||
import IO
|
||||
import Cache
|
||||
|
||||
@@ -1,101 +0,0 @@
|
||||
/** Definitions of taint steps in the IO package of the Guava framework */
|
||||
|
||||
import java
|
||||
private import semmle.code.java.dataflow.ExternalFlow
|
||||
|
||||
private class GuavaIoCsv extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
//`namespace; type; subtypes; name; signature; ext; input; output; kind`
|
||||
"com.google.common.io;BaseEncoding;true;decode;(CharSequence);;Argument[0];ReturnValue;taint;manual",
|
||||
"com.google.common.io;BaseEncoding;true;decodingStream;(Reader);;Argument[0];ReturnValue;taint;manual",
|
||||
"com.google.common.io;BaseEncoding;true;decodingSource;(CharSource);;Argument[0];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[0];ReturnValue;taint;manual",
|
||||
"com.google.common.io;BaseEncoding;true;withSeparator;(String,int);;Argument[0];ReturnValue;taint;manual",
|
||||
"com.google.common.io;BaseEncoding;true;decode;(CharSequence);;Argument[-1];ReturnValue;taint;manual",
|
||||
"com.google.common.io;BaseEncoding;true;decodingStream;(Reader);;Argument[-1];ReturnValue;taint;manual",
|
||||
"com.google.common.io;BaseEncoding;true;decodingSource;(CharSource);;Argument[-1];ReturnValue;taint;manual",
|
||||
"com.google.common.io;BaseEncoding;true;encode;(byte[]);;Argument[-1];ReturnValue;taint;manual",
|
||||
"com.google.common.io;BaseEncoding;true;upperCase;();;Argument[-1];ReturnValue;taint;manual",
|
||||
"com.google.common.io;BaseEncoding;true;lowerCase;();;Argument[-1];ReturnValue;taint;manual",
|
||||
"com.google.common.io;BaseEncoding;true;withPadChar;(char);;Argument[-1];ReturnValue;taint;manual",
|
||||
"com.google.common.io;BaseEncoding;true;omitPadding;();;Argument[-1];ReturnValue;taint;manual",
|
||||
"com.google.common.io;BaseEncoding;true;encode;(byte[],int,int);;Argument[-1];ReturnValue;taint;manual",
|
||||
"com.google.common.io;ByteSource;true;asCharSource;(Charset);;Argument[-1];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;openStream;();;Argument[-1];ReturnValue;taint;manual",
|
||||
"com.google.common.io;ByteSource;true;openBufferedStream;();;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;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",
|
||||
"com.google.common.io;ByteStreams;false;limit;(InputStream,long);;Argument[0];ReturnValue;taint;manual",
|
||||
"com.google.common.io;ByteStreams;false;newDataInput;(byte[]);;Argument[0];ReturnValue;taint;manual",
|
||||
"com.google.common.io;ByteStreams;false;newDataInput;(byte[],int);;Argument[0];ReturnValue;taint;manual",
|
||||
"com.google.common.io;ByteStreams;false;newDataInput;(ByteArrayInputStream);;Argument[0];ReturnValue;taint;manual",
|
||||
"com.google.common.io;ByteStreams;false;newDataOutput;(ByteArrayOutputStream);;Argument[0];ReturnValue;taint;manual",
|
||||
"com.google.common.io;ByteStreams;false;read;(InputStream,byte[],int,int);;Argument[0];Argument[1];taint;manual",
|
||||
"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;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;openStream;();;Argument[-1];ReturnValue;taint;manual",
|
||||
"com.google.common.io;CharSource;true;openBufferedStream;();;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;lines;();;Argument[-1];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",
|
||||
"com.google.common.io;CharStreams;false;toString;(Readable);;Argument[0];ReturnValue;taint;manual",
|
||||
"com.google.common.io;Closer;true;register;;;Argument[0];ReturnValue;value;manual",
|
||||
"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;MoreFiles;false;getFileExtension;(Path);;Argument[0];ReturnValue;taint;manual",
|
||||
"com.google.common.io;MoreFiles;false;getNameWithoutExtension;(Path);;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;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"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
private class GuavaIoSinkCsv extends SinkModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
//`namespace; type; subtypes; name; signature; ext; input; kind`
|
||||
"com.google.common.io;Resources;false;asByteSource;(URL);;Argument[0];url-open-stream;manual",
|
||||
"com.google.common.io;Resources;false;asCharSource;(URL,Charset);;Argument[0];url-open-stream;manual",
|
||||
"com.google.common.io;Resources;false;copy;(URL,OutputStream);;Argument[0];url-open-stream;manual",
|
||||
"com.google.common.io;Resources;false;readLines;;;Argument[0];url-open-stream;manual",
|
||||
"com.google.common.io;Resources;false;toByteArray;(URL);;Argument[0];url-open-stream;manual",
|
||||
"com.google.common.io;Resources;false;toString;(URL,Charset);;Argument[0];url-open-stream;manual"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -22,9 +22,3 @@ predicate jOOQSqlMethod(Method m) {
|
||||
m.getAnAnnotation() instanceof PlainSqlType and
|
||||
m.getParameterType(0) instanceof TypeString
|
||||
}
|
||||
|
||||
private class SqlSinkCsv extends SinkModelCsv {
|
||||
override predicate row(string row) {
|
||||
row = "org.jooq;PlainSQL;false;;;Annotated;Argument[0];sql;manual"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -282,18 +282,3 @@ class JacksonMixedInCallable extends Callable {
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
private class JacksonModel extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"com.fasterxml.jackson.databind;ObjectMapper;true;valueToTree;;;Argument[0];ReturnValue;taint;manual",
|
||||
"com.fasterxml.jackson.databind;ObjectMapper;true;valueToTree;;;Argument[0].MapValue;ReturnValue;taint;manual",
|
||||
"com.fasterxml.jackson.databind;ObjectMapper;true;valueToTree;;;Argument[0].MapValue.Element;ReturnValue;taint;manual",
|
||||
"com.fasterxml.jackson.databind;ObjectMapper;true;convertValue;;;Argument[0];ReturnValue;taint;manual",
|
||||
"com.fasterxml.jackson.databind;ObjectMapper;false;createParser;;;Argument[0];ReturnValue;taint;manual",
|
||||
"com.fasterxml.jackson.databind;ObjectReader;false;createParser;;;Argument[0];ReturnValue;taint;manual",
|
||||
"com.fasterxml.jackson.core;JsonFactory;false;createParser;;;Argument[0];ReturnValue;taint;manual"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,22 +12,6 @@ class FacesContext extends RefType {
|
||||
}
|
||||
}
|
||||
|
||||
private class ExternalContextSource extends SourceModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
["javax.", "jakarta."] +
|
||||
[
|
||||
"faces.context;ExternalContext;true;getRequestParameterMap;();;ReturnValue;remote;manual",
|
||||
"faces.context;ExternalContext;true;getRequestParameterNames;();;ReturnValue;remote;manual",
|
||||
"faces.context;ExternalContext;true;getRequestParameterValuesMap;();;ReturnValue;remote;manual",
|
||||
"faces.context;ExternalContext;true;getRequestPathInfo;();;ReturnValue;remote;manual",
|
||||
"faces.context;ExternalContext;true;getRequestCookieMap;();;ReturnValue;remote;manual",
|
||||
"faces.context;ExternalContext;true;getRequestHeaderMap;();;ReturnValue;remote;manual",
|
||||
"faces.context;ExternalContext;true;getRequestHeaderValuesMap;();;ReturnValue;remote;manual"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* The method `getResponseWriter()` declared in JSF `ExternalContext`.
|
||||
*/
|
||||
@@ -49,15 +33,3 @@ class FacesGetResponseStreamMethod extends Method {
|
||||
this.getNumberOfParameters() = 0
|
||||
}
|
||||
}
|
||||
|
||||
private class ExternalContextXssSink extends SinkModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"javax.faces.context;ResponseWriter;true;write;;;Argument[0];xss;manual",
|
||||
"javax.faces.context;ResponseStream;true;write;;;Argument[0];xss;manual",
|
||||
"jakarta.faces.context;ResponseWriter;true;write;;;Argument[0];xss;manual",
|
||||
"jakarta.faces.context;ResponseStream;true;write;;;Argument[0];xss;manual"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
/** Definitions of taint steps in the KotlinStdLib framework */
|
||||
|
||||
import java
|
||||
private import semmle.code.java.dataflow.ExternalFlow
|
||||
|
||||
private class KotlinStdLibSummaryCsv extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"kotlin.jvm.internal;ArrayIteratorKt;false;iterator;(Object[]);;Argument[0].ArrayElement;ReturnValue.Element;value;manual",
|
||||
"kotlin.collections;ArraysKt;false;withIndex;(Object[]);;Argument[0].ArrayElement;ReturnValue;taint;manual"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,135 +0,0 @@
|
||||
/**
|
||||
* Provides classes and predicates related to `ratpack.*`.
|
||||
*/
|
||||
|
||||
import java
|
||||
private import semmle.code.java.dataflow.DataFlow
|
||||
private import semmle.code.java.dataflow.FlowSteps
|
||||
private import semmle.code.java.dataflow.ExternalFlow
|
||||
|
||||
/**
|
||||
* Ratpack methods that access user-supplied request data.
|
||||
*/
|
||||
private class RatpackHttpSource extends SourceModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
["ratpack.http;", "ratpack.core.http;"] +
|
||||
[
|
||||
"Request;true;getContentLength;;;ReturnValue;remote;manual",
|
||||
"Request;true;getCookies;;;ReturnValue;remote;manual",
|
||||
"Request;true;oneCookie;;;ReturnValue;remote;manual",
|
||||
"Request;true;getHeaders;;;ReturnValue;remote;manual",
|
||||
"Request;true;getPath;;;ReturnValue;remote;manual",
|
||||
"Request;true;getQuery;;;ReturnValue;remote;manual",
|
||||
"Request;true;getQueryParams;;;ReturnValue;remote;manual",
|
||||
"Request;true;getRawUri;;;ReturnValue;remote;manual",
|
||||
"Request;true;getUri;;;ReturnValue;remote;manual",
|
||||
"Request;true;getBody;;;ReturnValue;remote;manual"
|
||||
]
|
||||
or
|
||||
// All Context#parse methods that return a Promise are remote flow sources.
|
||||
row =
|
||||
["ratpack.handling;", "ratpack.core.handling;"] + "Context;true;parse;" +
|
||||
[
|
||||
"(java.lang.Class);", "(com.google.common.reflect.TypeToken);",
|
||||
"(java.lang.Class,java.lang.Object);",
|
||||
"(com.google.common.reflect.TypeToken,java.lang.Object);", "(ratpack.core.parse.Parse);",
|
||||
"(ratpack.parse.Parse);"
|
||||
] + ";ReturnValue;remote;manual"
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Ratpack methods that propagate user-supplied request data as tainted.
|
||||
*/
|
||||
private class RatpackModel extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
["ratpack.http;", "ratpack.core.http;"] +
|
||||
[
|
||||
"TypedData;true;getBuffer;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"TypedData;true;getBytes;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"TypedData;true;getContentType;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"TypedData;true;getInputStream;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"TypedData;true;getText;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"TypedData;true;writeTo;;;Argument[-1];Argument[0];taint;manual",
|
||||
"Headers;true;get;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"Headers;true;getAll;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"Headers;true;getNames;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"Headers;true;asMultiValueMap;;;Argument[-1];ReturnValue;taint;manual"
|
||||
]
|
||||
or
|
||||
row =
|
||||
["ratpack.form;", "ratpack.core.form;"] +
|
||||
[
|
||||
"UploadedFile;true;getFileName;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"Form;true;file;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"Form;true;files;;;Argument[-1];ReturnValue;taint;manual"
|
||||
]
|
||||
or
|
||||
row =
|
||||
["ratpack.handling;", "ratpack.core.handling;"] +
|
||||
[
|
||||
"Context;true;parse;(ratpack.http.TypedData,ratpack.parse.Parse);;Argument[0];ReturnValue;taint;manual",
|
||||
"Context;true;parse;(ratpack.core.http.TypedData,ratpack.core.parse.Parse);;Argument[0];ReturnValue;taint;manual",
|
||||
"Context;true;parse;(ratpack.core.http.TypedData,ratpack.core.parse.Parse);;Argument[0];ReturnValue.MapKey;taint;manual",
|
||||
"Context;true;parse;(ratpack.core.http.TypedData,ratpack.core.parse.Parse);;Argument[0];ReturnValue.MapValue;taint;manual"
|
||||
]
|
||||
or
|
||||
row =
|
||||
["ratpack.util;", "ratpack.func;"] +
|
||||
[
|
||||
"MultiValueMap;true;getAll;;;Argument[-1].MapKey;ReturnValue.MapKey;value;manual",
|
||||
"MultiValueMap;true;getAll;();;Argument[-1].MapValue;ReturnValue.MapValue.Element;value;manual",
|
||||
"MultiValueMap;true;getAll;(Object);;Argument[-1].MapValue;ReturnValue.Element;value;manual",
|
||||
"MultiValueMap;true;asMultimap;;;Argument[-1].MapKey;ReturnValue.MapKey;value;manual",
|
||||
"MultiValueMap;true;asMultimap;;;Argument[-1].MapValue;ReturnValue.MapValue;value;manual"
|
||||
]
|
||||
or
|
||||
exists(string left, string right |
|
||||
left = "Field[ratpack.func.Pair.left]" and
|
||||
right = "Field[ratpack.func.Pair.right]"
|
||||
|
|
||||
row =
|
||||
["ratpack.util;", "ratpack.func;"] + "Pair;true;" +
|
||||
[
|
||||
"of;;;Argument[0];ReturnValue." + left + ";value;manual",
|
||||
"of;;;Argument[1];ReturnValue." + right + ";value;manual",
|
||||
"pair;;;Argument[0];ReturnValue." + left + ";value;manual",
|
||||
"pair;;;Argument[1];ReturnValue." + right + ";value;manual",
|
||||
"left;();;Argument[-1]." + left + ";ReturnValue;value;manual",
|
||||
"right;();;Argument[-1]." + right + ";ReturnValue;value;manual",
|
||||
"getLeft;;;Argument[-1]." + left + ";ReturnValue;value;manual",
|
||||
"getRight;;;Argument[-1]." + right + ";ReturnValue;value;manual",
|
||||
"left;(Object);;Argument[0];ReturnValue." + left + ";value;manual",
|
||||
"left;(Object);;Argument[-1]." + right + ";ReturnValue." + right + ";value;manual",
|
||||
"right;(Object);;Argument[0];ReturnValue." + right + ";value;manual",
|
||||
"right;(Object);;Argument[-1]." + left + ";ReturnValue." + left + ";value;manual",
|
||||
"pushLeft;(Object);;Argument[-1];ReturnValue." + right + ";value;manual",
|
||||
"pushRight;(Object);;Argument[-1];ReturnValue." + left + ";value;manual",
|
||||
"pushLeft;(Object);;Argument[0];ReturnValue." + left + ";value;manual",
|
||||
"pushRight;(Object);;Argument[0];ReturnValue." + right + ";value;manual",
|
||||
// `nestLeft` Pair<A, B>.nestLeft(C) -> Pair<Pair<C, A>, B>
|
||||
"nestLeft;(Object);;Argument[0];ReturnValue." + left + "." + left + ";value;manual",
|
||||
"nestLeft;(Object);;Argument[-1]." + left + ";ReturnValue." + left + "." + right +
|
||||
";value;manual",
|
||||
"nestLeft;(Object);;Argument[-1]." + right + ";ReturnValue." + right + ";value;manual",
|
||||
// `nestRight` Pair<A, B>.nestRight(C) -> Pair<A, Pair<C, B>>
|
||||
"nestRight;(Object);;Argument[0];ReturnValue." + right + "." + left + ";value;manual",
|
||||
"nestRight;(Object);;Argument[-1]." + left + ";ReturnValue." + left + ";value;manual",
|
||||
"nestRight;(Object);;Argument[-1]." + right + ";ReturnValue." + right + "." + right +
|
||||
";value;manual",
|
||||
// `mapLeft` & `mapRight` map over their respective fields
|
||||
"mapLeft;;;Argument[-1]." + left + ";Argument[0].Parameter[0];value;manual",
|
||||
"mapLeft;;;Argument[-1]." + right + ";ReturnValue." + right + ";value;manual",
|
||||
"mapRight;;;Argument[-1]." + right + ";Argument[0].Parameter[0];value;manual",
|
||||
"mapRight;;;Argument[-1]." + left + ";ReturnValue." + left + ";value;manual",
|
||||
"mapLeft;;;Argument[0].ReturnValue;ReturnValue." + left + ";value;manual",
|
||||
"mapRight;;;Argument[0].ReturnValue;ReturnValue." + right + ";value;manual",
|
||||
// `map` maps over the `Pair`
|
||||
"map;;;Argument[-1];Argument[0].Parameter[0];value;manual",
|
||||
"map;;;Argument[0].ReturnValue;ReturnValue;value;manual"
|
||||
]
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -7,102 +7,6 @@ private import semmle.code.java.dataflow.DataFlow
|
||||
private import semmle.code.java.dataflow.FlowSteps
|
||||
private import semmle.code.java.dataflow.ExternalFlow
|
||||
|
||||
/**
|
||||
* Model for Ratpack `Promise` methods.
|
||||
*/
|
||||
private class RatpackExecModel extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
//"namespace;type;overrides;name;signature;ext;inputspec;outputspec;kind",
|
||||
row =
|
||||
"ratpack.exec;Promise;true;" +
|
||||
[
|
||||
// `Promise` creation methods
|
||||
"value;;;Argument[0];ReturnValue.Element;value;manual",
|
||||
"flatten;;;Argument[0].ReturnValue.Element;ReturnValue.Element;value;manual",
|
||||
"sync;;;Argument[0].ReturnValue;ReturnValue.Element;value;manual",
|
||||
// `Promise` value transformation methods
|
||||
"map;;;Argument[-1].Element;Argument[0].Parameter[0];value;manual",
|
||||
"map;;;Argument[0].ReturnValue;ReturnValue.Element;value;manual",
|
||||
"blockingMap;;;Argument[-1].Element;Argument[0].Parameter[0];value;manual",
|
||||
"blockingMap;;;Argument[0].ReturnValue;ReturnValue.Element;value;manual",
|
||||
"mapError;;;Argument[1].ReturnValue;ReturnValue.Element;value;manual",
|
||||
// `apply` passes the qualifier to the function as the first argument
|
||||
"apply;;;Argument[-1].Element;Argument[0].Parameter[0].Element;value;manual",
|
||||
"apply;;;Argument[0].ReturnValue.Element;ReturnValue.Element;value;manual",
|
||||
// `Promise` termination method
|
||||
"then;;;Argument[-1].Element;Argument[0].Parameter[0];value;manual",
|
||||
// 'next' accesses qualifier the 'Promise' value and also returns the qualifier
|
||||
"next;;;Argument[-1].Element;Argument[0].Parameter[0];value;manual",
|
||||
"nextOp;;;Argument[-1].Element;Argument[0].Parameter[0];value;manual",
|
||||
"flatOp;;;Argument[-1].Element;Argument[0].Parameter[0];value;manual",
|
||||
// `nextOpIf` accesses qualifier the 'Promise' value and also returns the qualifier
|
||||
"nextOpIf;;;Argument[-1].Element;Argument[0].Parameter[0];value;manual",
|
||||
"nextOpIf;;;Argument[-1].Element;Argument[1].Parameter[0];value;manual",
|
||||
// 'cacheIf' accesses qualifier the 'Promise' value and also returns the qualifier
|
||||
"cacheIf;;;Argument[-1].Element;Argument[0].Parameter[0];value;manual",
|
||||
// 'route' accesses qualifier the 'Promise' value, and conditionally returns the qualifier or
|
||||
// the result of the second argument
|
||||
"route;;;Argument[-1].Element;Argument[0].Parameter[0];value;manual",
|
||||
"route;;;Argument[-1].Element;Argument[1].Parameter[0];value;manual",
|
||||
"route;;;Argument[-1];ReturnValue;value;manual",
|
||||
// `flatMap` type methods return their returned `Promise`
|
||||
"flatMap;;;Argument[-1].Element;Argument[0].Parameter[0];value;manual",
|
||||
"flatMap;;;Argument[0].ReturnValue.Element;ReturnValue.Element;value;manual",
|
||||
"flatMapError;;;Argument[1].ReturnValue.Element;ReturnValue.Element;value;manual",
|
||||
// `blockingOp` passes the value to the argument
|
||||
"blockingOp;;;Argument[-1].Element;Argument[0].Parameter[0];value;manual",
|
||||
// `replace` returns the passed `Promise`
|
||||
"replace;;;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
// `mapIf` methods conditionally map their values, or return themselves
|
||||
"mapIf;;;Argument[-1].Element;Argument[0].Parameter[0];value;manual",
|
||||
"mapIf;;;Argument[-1].Element;Argument[1].Parameter[0];value;manual",
|
||||
"mapIf;;;Argument[-1].Element;Argument[2].Parameter[0];value;manual",
|
||||
"mapIf;;;Argument[1].ReturnValue;ReturnValue.Element;value;manual",
|
||||
"mapIf;;;Argument[2].ReturnValue;ReturnValue.Element;value;manual",
|
||||
// `wiretap` wraps the qualifier `Promise` value in a `Result` and passes it to the argument
|
||||
"wiretap;;;Argument[-1].Element;Argument[0].Parameter[0].Element;value;manual"
|
||||
]
|
||||
or
|
||||
exists(string left, string right |
|
||||
left = "Field[ratpack.func.Pair.left]" and
|
||||
right = "Field[ratpack.func.Pair.right]"
|
||||
|
|
||||
row =
|
||||
"ratpack.exec;Promise;true;" +
|
||||
[
|
||||
// `left`, `right`, `flatLeft`, `flatRight` all pass the qualifier `Promise` element as the other `Pair` field
|
||||
"left;;;Argument[-1].Element;ReturnValue.Element." + right + ";value;manual",
|
||||
"right;;;Argument[-1].Element;ReturnValue.Element." + left + ";value;manual",
|
||||
"flatLeft;;;Argument[-1].Element;ReturnValue.Element." + right + ";value;manual",
|
||||
"flatRight;;;Argument[-1].Element;ReturnValue.Element." + left + ";value;manual",
|
||||
// `left` and `right` taking a `Promise` create a `Promise` of the `Pair`
|
||||
"left;(Promise);;Argument[0].Element;ReturnValue.Element." + left + ";value;manual",
|
||||
"right;(Promise);;Argument[0].Element;ReturnValue.Element." + right + ";value;manual",
|
||||
// `left` and `right` taking a `Function` pass the qualifier element then create a `Pair` with the returned value
|
||||
"left;(Function);;Argument[-1].Element;Argument[0].Parameter[0];value;manual",
|
||||
"flatLeft;(Function);;Argument[-1].Element;Argument[0].Parameter[0];value;manual",
|
||||
"right;(Function);;Argument[-1].Element;Argument[0].Parameter[0];value;manual",
|
||||
"flatRight;(Function);;Argument[-1].Element;Argument[0].Parameter[0];value;manual",
|
||||
"left;(Function);;Argument[0].ReturnValue;ReturnValue.Element." + left + ";value;manual",
|
||||
"flatLeft;(Function);;Argument[0].ReturnValue.Element;ReturnValue.Element." + left +
|
||||
";value;manual",
|
||||
"right;(Function);;Argument[0].ReturnValue;ReturnValue.Element." + right +
|
||||
";value;manual",
|
||||
"flatRight;(Function);;Argument[0].ReturnValue.Element;ReturnValue.Element." + right +
|
||||
";value;manual"
|
||||
]
|
||||
)
|
||||
or
|
||||
row =
|
||||
"ratpack.exec;Result;true;" +
|
||||
[
|
||||
"success;;;Argument[0];ReturnValue.Element;value;manual",
|
||||
"getValue;;;Argument[-1].Element;ReturnValue;value;manual",
|
||||
"getValueOrThrow;;;Argument[-1].Element;ReturnValue;value;manual"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
/** A reference type that extends a parameterization the Promise type. */
|
||||
private class RatpackPromise extends RefType {
|
||||
RatpackPromise() {
|
||||
|
||||
@@ -6,14 +6,10 @@ import semmle.code.java.frameworks.spring.SpringAttribute
|
||||
import semmle.code.java.frameworks.spring.SpringAutowire
|
||||
import semmle.code.java.frameworks.spring.SpringBean
|
||||
import semmle.code.java.frameworks.spring.SpringBeanFile
|
||||
import semmle.code.java.frameworks.spring.SpringBeans
|
||||
import semmle.code.java.frameworks.spring.SpringBeanRefType
|
||||
import semmle.code.java.frameworks.spring.SpringCache
|
||||
import semmle.code.java.frameworks.spring.SpringContext
|
||||
import semmle.code.java.frameworks.spring.SpringComponentScan
|
||||
import semmle.code.java.frameworks.spring.SpringConstructorArg
|
||||
import semmle.code.java.frameworks.spring.SpringController
|
||||
import semmle.code.java.frameworks.spring.SpringData
|
||||
import semmle.code.java.frameworks.spring.SpringDescription
|
||||
import semmle.code.java.frameworks.spring.SpringEntry
|
||||
import semmle.code.java.frameworks.spring.SpringFlex
|
||||
@@ -36,12 +32,7 @@ import semmle.code.java.frameworks.spring.SpringQualifier
|
||||
import semmle.code.java.frameworks.spring.SpringRef
|
||||
import semmle.code.java.frameworks.spring.SpringReplacedMethod
|
||||
import semmle.code.java.frameworks.spring.SpringSet
|
||||
import semmle.code.java.frameworks.spring.SpringUi
|
||||
import semmle.code.java.frameworks.spring.SpringUtil
|
||||
import semmle.code.java.frameworks.spring.SpringValidation
|
||||
import semmle.code.java.frameworks.spring.SpringValue
|
||||
import semmle.code.java.frameworks.spring.SpringWebMultipart
|
||||
import semmle.code.java.frameworks.spring.SpringWebUtil
|
||||
import semmle.code.java.frameworks.spring.SpringXMLElement
|
||||
import semmle.code.java.frameworks.spring.metrics.MetricSpringBean
|
||||
import semmle.code.java.frameworks.spring.metrics.MetricSpringBeanFile
|
||||
|
||||
@@ -1,48 +0,0 @@
|
||||
/**
|
||||
* Provides classes and predicates for working with Spring classes and interfaces from
|
||||
* `org.springframework.beans`.
|
||||
*/
|
||||
|
||||
import java
|
||||
private import semmle.code.java.dataflow.ExternalFlow
|
||||
|
||||
/**
|
||||
* Provides models for the `org.springframework.beans` package.
|
||||
*/
|
||||
private class FlowSummaries extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"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;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;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[-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[0];Argument[-1].Element.MapKey;value;manual",
|
||||
"org.springframework.beans;MutablePropertyValues;true;add;(String,Object);;Argument[-1];ReturnValue;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[0];Argument[-1].Element;value;manual",
|
||||
"org.springframework.beans;MutablePropertyValues;true;addPropertyValue;(PropertyValue);;Argument[-1];ReturnValue;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[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;(Map);;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;addPropertyValues;(PropertyValues);;Argument[-1];ReturnValue;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"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,27 +0,0 @@
|
||||
/**
|
||||
* Provides models for the `org.springframework.cache` package.
|
||||
*/
|
||||
|
||||
import java
|
||||
private import semmle.code.java.dataflow.ExternalFlow
|
||||
|
||||
private class FlowSummaries extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"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[-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[0];Argument[-1].MapKey;value;manual",
|
||||
"org.springframework.cache;Cache;true;putIfAbsent;;;Argument[1];Argument[-1].MapValue;value;manual",
|
||||
"org.springframework.cache;Cache;true;putIfAbsent;;;Argument[-1].MapValue;ReturnValue.MapValue;value;manual"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
/**
|
||||
* Provides models for the `org.springframework.context` package.
|
||||
*/
|
||||
|
||||
import java
|
||||
private import semmle.code.java.dataflow.ExternalFlow
|
||||
|
||||
private class StringSummaryCsv extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
//`namespace; type; subtypes; name; signature; ext; input; output; kind`
|
||||
"org.springframework.context;MessageSource;true;getMessage;(String,Object[],String,Locale);;Argument[1].ArrayElement;ReturnValue;taint;manual",
|
||||
"org.springframework.context;MessageSource;true;getMessage;(String,Object[],String,Locale);;Argument[2];ReturnValue;taint;manual",
|
||||
"org.springframework.context;MessageSource;true;getMessage;(String,Object[],Locale);;Argument[1].ArrayElement;ReturnValue;taint;manual"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
/**
|
||||
* Provides classes and predicates for working with Spring classes and interfaces from
|
||||
* `org.springframework.data`.
|
||||
*/
|
||||
|
||||
import java
|
||||
private import semmle.code.java.dataflow.ExternalFlow
|
||||
|
||||
/**
|
||||
* Provides models for the `org.springframework.data` package.
|
||||
*/
|
||||
private class FlowSummaries extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
"org.springframework.data.repository;CrudRepository;true;save;;;Argument[0];ReturnValue;value;manual"
|
||||
}
|
||||
}
|
||||
@@ -43,107 +43,6 @@ class SpringHttpHeaders extends Class {
|
||||
SpringHttpHeaders() { this.hasQualifiedName("org.springframework.http", "HttpHeaders") }
|
||||
}
|
||||
|
||||
private class UrlOpenSink extends SinkModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"org.springframework.http;RequestEntity;false;get;;;Argument[0];open-url;manual",
|
||||
"org.springframework.http;RequestEntity;false;post;;;Argument[0];open-url;manual",
|
||||
"org.springframework.http;RequestEntity;false;head;;;Argument[0];open-url;manual",
|
||||
"org.springframework.http;RequestEntity;false;delete;;;Argument[0];open-url;manual",
|
||||
"org.springframework.http;RequestEntity;false;options;;;Argument[0];open-url;manual",
|
||||
"org.springframework.http;RequestEntity;false;patch;;;Argument[0];open-url;manual",
|
||||
"org.springframework.http;RequestEntity;false;put;;;Argument[0];open-url;manual",
|
||||
"org.springframework.http;RequestEntity;false;method;;;Argument[1];open-url;manual",
|
||||
"org.springframework.http;RequestEntity;false;RequestEntity;(HttpMethod,URI);;Argument[1];open-url;manual",
|
||||
"org.springframework.http;RequestEntity;false;RequestEntity;(MultiValueMap,HttpMethod,URI);;Argument[2];open-url;manual",
|
||||
"org.springframework.http;RequestEntity;false;RequestEntity;(Object,HttpMethod,URI);;Argument[2];open-url;manual",
|
||||
"org.springframework.http;RequestEntity;false;RequestEntity;(Object,HttpMethod,URI,Type);;Argument[2];open-url;manual",
|
||||
"org.springframework.http;RequestEntity;false;RequestEntity;(Object,MultiValueMap,HttpMethod,URI);;Argument[3];open-url;manual",
|
||||
"org.springframework.http;RequestEntity;false;RequestEntity;(Object,MultiValueMap,HttpMethod,URI,Type);;Argument[3];open-url;manual"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
private class SpringHttpFlowStep extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
//"package;type;overrides;name;signature;ext;inputspec;outputspec;kind",
|
||||
"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;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;getBody;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"org.springframework.http;HttpEntity;true;getHeaders;;;Argument[-1];ReturnValue;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;(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,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;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;true;created;(URI);;Argument[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$BodyBuilder;true;body;(Object);;Argument[-1..0];ReturnValue;taint;manual",
|
||||
"org.springframework.http;ResponseEntity$HeadersBuilder;true;allow;(HttpMethod[]);;Argument[-1];ReturnValue;value;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$HeadersBuilder;true;build;();;Argument[-1];ReturnValue;taint;manual",
|
||||
"org.springframework.http;RequestEntity;true;getUrl;();;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;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;getIfMatch;();;Argument[-1];ReturnValue.Element;taint;manual",
|
||||
"org.springframework.http;HttpHeaders;true;getIfNoneMatch;();;Argument[-1];ReturnValue.Element;taint;manual",
|
||||
"org.springframework.http;HttpHeaders;true;getHost;();;Argument[-1];ReturnValue;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;add;(String,String);;Argument[0..1];Argument[-1];taint;manual",
|
||||
"org.springframework.http;HttpHeaders;true;set;(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;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;encodeBasicAuth;(String,String,Charset);;Argument[0..1];ReturnValue;taint;manual"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
private predicate specifiesContentType(SpringRequestMappingMethod method) {
|
||||
exists(method.getAProducesExpr())
|
||||
}
|
||||
|
||||
@@ -1,46 +0,0 @@
|
||||
/**
|
||||
* Provides models for the `org.springframework.ui` package.
|
||||
*/
|
||||
|
||||
import java
|
||||
private import semmle.code.java.dataflow.ExternalFlow
|
||||
|
||||
private class FlowSummaries extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"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[-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"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,153 +0,0 @@
|
||||
/**
|
||||
* Provides models for the `org.springframework.util` package.
|
||||
*/
|
||||
|
||||
import java
|
||||
private import semmle.code.java.dataflow.ExternalFlow
|
||||
|
||||
private class FlowSummaries extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"org.springframework.util;AntPathMatcher;false;combine;;;Argument[0..1];ReturnValue;taint;manual",
|
||||
"org.springframework.util;AntPathMatcher;false;doMatch;;;Argument[1];Argument[3].MapValue;taint;manual",
|
||||
"org.springframework.util;AntPathMatcher;false;extractPathWithinPattern;;;Argument[1];ReturnValue;taint;manual",
|
||||
"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,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[-1].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",
|
||||
"org.springframework.util;Base64Utils;false;decodeUrlSafe;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.springframework.util;Base64Utils;false;encode;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.springframework.util;Base64Utils;false;encodeToString;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.springframework.util;Base64Utils;false;encodeToUrlSafeString;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.springframework.util;Base64Utils;false;encodeUrlSafe;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.springframework.util;CollectionUtils;false;arrayToList;;;Argument[0].ArrayElement;ReturnValue.Element;value;manual",
|
||||
"org.springframework.util;CollectionUtils;false;findFirstMatch;;;Argument[0].Element;ReturnValue;value;manual",
|
||||
"org.springframework.util;CollectionUtils;false;findValueOfType;;;Argument[0].Element;ReturnValue;value;manual",
|
||||
"org.springframework.util;CollectionUtils;false;firstElement;;;Argument[0].Element;ReturnValue;value;manual",
|
||||
"org.springframework.util;CollectionUtils;false;lastElement;;;Argument[0].Element;ReturnValue;value;manual",
|
||||
"org.springframework.util;CollectionUtils;false;mergeArrayIntoCollection;;;Argument[0].ArrayElement;Argument[1].Element;value;manual",
|
||||
"org.springframework.util;CollectionUtils;false;mergePropertiesIntoMap;;;Argument[0].MapKey;Argument[1].MapKey;value;manual",
|
||||
"org.springframework.util;CollectionUtils;false;mergePropertiesIntoMap;;;Argument[0].MapValue;Argument[1].MapValue;value;manual",
|
||||
"org.springframework.util;CollectionUtils;false;toArray;;;Argument[0].Element;ReturnValue.ArrayElement;value;manual",
|
||||
"org.springframework.util;CollectionUtils;false;toIterator;;;Argument[0].Element;ReturnValue.Element;value;manual",
|
||||
"org.springframework.util;CollectionUtils;false;toMultiValueMap;;;Argument[0].MapKey;ReturnValue.MapKey;value;manual",
|
||||
"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;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;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",
|
||||
"org.springframework.util;ObjectUtils;false;unwrapOptional;;;Argument[0].Element;ReturnValue;value;manual",
|
||||
"org.springframework.util;PropertiesPersister;true;load;;;Argument[1];Argument[0];taint;manual",
|
||||
"org.springframework.util;PropertiesPersister;true;loadFromXml;;;Argument[1];Argument[0];taint;manual",
|
||||
"org.springframework.util;PropertiesPersister;true;store;;;Argument[0];Argument[1];taint;manual",
|
||||
"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;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",
|
||||
"org.springframework.util;ResourceUtils;false;extractArchiveURL;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.springframework.util;ResourceUtils;false;extractJarFileURL;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.springframework.util;ResourceUtils;false;getFile;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.springframework.util;ResourceUtils;false;getURL;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.springframework.util;ResourceUtils;false;toURI;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.springframework.util;RouteMatcher;true;combine;;;Argument[0..1];ReturnValue;taint;manual",
|
||||
"org.springframework.util;RouteMatcher;true;matchAndExtract;;;Argument[0];ReturnValue.MapKey;taint;manual",
|
||||
"org.springframework.util;RouteMatcher;true;matchAndExtract;;;Argument[1];ReturnValue.MapValue;taint;manual",
|
||||
"org.springframework.util;RouteMatcher;true;parseRoute;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.springframework.util;SerializationUtils;false;deserialize;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.springframework.util;SerializationUtils;false;serialize;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.springframework.util;StreamUtils;false;copy;(byte[],java.io.OutputStream);;Argument[0];Argument[1];taint;manual",
|
||||
"org.springframework.util;StreamUtils;false;copy;(java.io.InputStream,java.io.OutputStream);;Argument[0];Argument[1];taint;manual",
|
||||
"org.springframework.util;StreamUtils;false;copy;(java.lang.String,java.nio.charset.Charset,java.io.OutputStream);;Argument[0];Argument[2];taint;manual",
|
||||
"org.springframework.util;StreamUtils;false;copyRange;;;Argument[0];Argument[1];taint;manual",
|
||||
"org.springframework.util;StreamUtils;false;copyToByteArray;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.springframework.util;StreamUtils;false;copyToString;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.springframework.util;StringUtils;false;addStringToArray;;;Argument[0].ArrayElement;ReturnValue.ArrayElement;value;manual",
|
||||
"org.springframework.util;StringUtils;false;addStringToArray;;;Argument[1];ReturnValue.ArrayElement;value;manual",
|
||||
"org.springframework.util;StringUtils;false;applyRelativePath;;;Argument[0..1];ReturnValue;taint;manual",
|
||||
"org.springframework.util;StringUtils;false;arrayToCommaDelimitedString;;;Argument[0].ArrayElement;ReturnValue;taint;manual",
|
||||
"org.springframework.util;StringUtils;false;arrayToDelimitedString;;;Argument[0].ArrayElement;ReturnValue;taint;manual",
|
||||
"org.springframework.util;StringUtils;false;arrayToDelimitedString;;;Argument[1];ReturnValue;taint;manual",
|
||||
"org.springframework.util;StringUtils;false;capitalize;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.springframework.util;StringUtils;false;cleanPath;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.springframework.util;StringUtils;false;collectionToCommaDelimitedString;;;Argument[0].Element;ReturnValue;taint;manual",
|
||||
"org.springframework.util;StringUtils;false;collectionToDelimitedString;;;Argument[0].Element;ReturnValue;taint;manual",
|
||||
"org.springframework.util;StringUtils;false;collectionToDelimitedString;;;Argument[1..3];ReturnValue;taint;manual",
|
||||
"org.springframework.util;StringUtils;false;commaDelimitedListToSet;;;Argument[0];ReturnValue.Element;taint;manual",
|
||||
"org.springframework.util;StringUtils;false;commaDelimitedListToStringArray;;;Argument[0];ReturnValue.ArrayElement;taint;manual",
|
||||
"org.springframework.util;StringUtils;false;concatenateStringArrays;;;Argument[0..1].ArrayElement;ReturnValue.ArrayElement;taint;manual",
|
||||
"org.springframework.util;StringUtils;false;delete;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.springframework.util;StringUtils;false;deleteAny;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.springframework.util;StringUtils;false;delimitedListToStringArray;;;Argument[0];ReturnValue.ArrayElement;taint;manual",
|
||||
"org.springframework.util;StringUtils;false;getFilename;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.springframework.util;StringUtils;false;getFilenameExtension;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.springframework.util;StringUtils;false;mergeStringArrays;;;Argument[0..1].ArrayElement;ReturnValue.ArrayElement;value;manual",
|
||||
"org.springframework.util;StringUtils;false;quote;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.springframework.util;StringUtils;false;quoteIfString;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.springframework.util;StringUtils;false;removeDuplicateStrings;;;Argument[0].ArrayElement;ReturnValue.ArrayElement;value;manual",
|
||||
"org.springframework.util;StringUtils;false;replace;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.springframework.util;StringUtils;false;replace;;;Argument[2];ReturnValue;taint;manual",
|
||||
"org.springframework.util;StringUtils;false;sortStringArray;;;Argument[0].ArrayElement;ReturnValue.ArrayElement;value;manual",
|
||||
"org.springframework.util;StringUtils;false;split;;;Argument[0];ReturnValue.ArrayElement;taint;manual",
|
||||
"org.springframework.util;StringUtils;false;splitArrayElementsIntoProperties;;;Argument[0].ArrayElement;ReturnValue.MapKey;taint;manual",
|
||||
"org.springframework.util;StringUtils;false;splitArrayElementsIntoProperties;;;Argument[0].ArrayElement;ReturnValue.MapValue;taint;manual",
|
||||
"org.springframework.util;StringUtils;false;stripFilenameExtension;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.springframework.util;StringUtils;false;tokenizeToStringArray;;;Argument[0];ReturnValue.ArrayElement;taint;manual",
|
||||
"org.springframework.util;StringUtils;false;toStringArray;;;Argument[0].Element;ReturnValue.ArrayElement;value;manual",
|
||||
"org.springframework.util;StringUtils;false;trimAllWhitespace;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.springframework.util;StringUtils;false;trimArrayElements;;;Argument[0].ArrayElement;ReturnValue.ArrayElement;taint;manual",
|
||||
"org.springframework.util;StringUtils;false;trimLeadingCharacter;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.springframework.util;StringUtils;false;trimLeadingWhitespace;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.springframework.util;StringUtils;false;trimTrailingCharacter;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.springframework.util;StringUtils;false;trimTrailingWhitespace;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.springframework.util;StringUtils;false;trimWhitespace;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.springframework.util;StringUtils;false;uncapitalize;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.springframework.util;StringUtils;false;unqualify;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.springframework.util;StringUtils;false;uriDecode;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.springframework.util;StringValueResolver;false;resolveStringValue;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.springframework.util;SystemPropertyUtils;false;resolvePlaceholders;;;Argument[0];ReturnValue;taint;manual"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
/** Definitions of flow steps through utility methods of `org.springframework.validation.Errors`. */
|
||||
|
||||
import java
|
||||
private import semmle.code.java.dataflow.ExternalFlow
|
||||
|
||||
private class SpringValidationErrorModel extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"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"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -28,26 +28,3 @@ class SpringWebClient extends Interface {
|
||||
this.hasQualifiedName("org.springframework.web.reactive.function.client", "WebClient")
|
||||
}
|
||||
}
|
||||
|
||||
private class UrlOpenSink extends SinkModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"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",
|
||||
"org.springframework.web.client;RestTemplate;false;execute;;;Argument[0];open-url;manual",
|
||||
"org.springframework.web.client;RestTemplate;false;getForEntity;;;Argument[0];open-url;manual",
|
||||
"org.springframework.web.client;RestTemplate;false;getForObject;;;Argument[0];open-url;manual",
|
||||
"org.springframework.web.client;RestTemplate;false;headForHeaders;;;Argument[0];open-url;manual",
|
||||
"org.springframework.web.client;RestTemplate;false;optionsForAllow;;;Argument[0];open-url;manual",
|
||||
"org.springframework.web.client;RestTemplate;false;patchForObject;;;Argument[0];open-url;manual",
|
||||
"org.springframework.web.client;RestTemplate;false;postForEntity;;;Argument[0];open-url;manual",
|
||||
"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.reactive.function.client;WebClient;false;create;;;Argument[0];open-url;manual",
|
||||
"org.springframework.web.reactive.function.client;WebClient$Builder;false;baseUrl;;;Argument[0];open-url;manual"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
/** Provides models of taint flow in `org.springframework.web.multipart` */
|
||||
|
||||
import java
|
||||
private import semmle.code.java.dataflow.ExternalFlow
|
||||
|
||||
private class FlowSummaries extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"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;MultipartResolver;true;resolveMultipart;;;Argument[0];ReturnValue;taint;manual"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,176 +0,0 @@
|
||||
/** Provides models of taint flow in `org.springframework.web.util` */
|
||||
|
||||
import java
|
||||
private import semmle.code.java.dataflow.ExternalFlow
|
||||
|
||||
private class FlowSummaries extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"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;(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;UriBuilderFactory;true;uriString;;;Argument[-1..0];ReturnValue;taint;manual",
|
||||
"org.springframework.web.util;UriComponents$UriTemplateVariables;true;getValue;;;Argument[-1].MapValue;ReturnValue;value;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",
|
||||
"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",
|
||||
// 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;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",
|
||||
"org.springframework.web.util;HtmlUtils;false;htmlUnescape;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.springframework.web.util;ServletContextPropertyUtils;false;resolvePlaceholders;;;Argument[0..1];ReturnValue;taint;manual",
|
||||
"org.springframework.web.util;ServletRequestPathUtils;false;getCachedPath;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.springframework.web.util;ServletRequestPathUtils;false;getCachedPathValue;;;Argument[0];ReturnValue;taint;manual",
|
||||
"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;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;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;toUri;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"org.springframework.web.util;UriComponents;false;toUriString;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"org.springframework.web.util;UriComponents;false;toString;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"org.springframework.web.util;UriComponents;false;normalize;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"org.springframework.web.util;UriComponentsBuilder;false;build;;;Argument[-1];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;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",
|
||||
"org.springframework.web.util;UriComponentsBuilder;false;fromPath;;;Argument[0];ReturnValue;taint;manual",
|
||||
"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;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;match;;;Argument[0];ReturnValue.MapValue;taint;manual",
|
||||
"org.springframework.web.util;UriTemplate;false;toString;;;Argument[-1];ReturnValue;taint;manual",
|
||||
"org.springframework.web.util;UriUtils;false;decode;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.springframework.web.util;UriUtils;false;encode;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.springframework.web.util;UriUtils;false;encodeAuthority;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.springframework.web.util;UriUtils;false;encodeFragment;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.springframework.web.util;UriUtils;false;encodeHost;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.springframework.web.util;UriUtils;false;encodePath;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.springframework.web.util;UriUtils;false;encodePathSegment;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.springframework.web.util;UriUtils;false;encodePort;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.springframework.web.util;UriUtils;false;encodeQuery;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.springframework.web.util;UriUtils;false;encodeQueryParam;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.springframework.web.util;UriUtils;false;encodeQueryParams;;;Argument[0].MapKey;ReturnValue.MapKey;taint;manual",
|
||||
"org.springframework.web.util;UriUtils;false;encodeQueryParams;;;Argument[0].MapValue;ReturnValue.MapValue;taint;manual",
|
||||
"org.springframework.web.util;UriUtils;false;encodeScheme;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.springframework.web.util;UriUtils;false;encodeUriVariables;(Map);;Argument[0].MapValue;ReturnValue.MapValue;taint;manual",
|
||||
"org.springframework.web.util;UriUtils;false;encodeUriVariables;(Map);;Argument[0].MapKey;ReturnValue.MapKey;taint;manual",
|
||||
"org.springframework.web.util;UriUtils;false;encodeUriVariables;(Object[]);;Argument[0].ArrayElement;ReturnValue.ArrayElement;taint;manual",
|
||||
"org.springframework.web.util;UriUtils;false;encodeUserInfo;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.springframework.web.util;UriUtils;false;extractFileExtension;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.springframework.web.util;UrlPathHelper;false;decodeMatrixVariables;;;Argument[1].MapKey;ReturnValue.MapKey;value;manual",
|
||||
"org.springframework.web.util;UrlPathHelper;false;decodeMatrixVariables;;;Argument[1].MapValue;ReturnValue.MapValue;taint;manual",
|
||||
"org.springframework.web.util;UrlPathHelper;false;decodePathVariables;;;Argument[1].MapKey;ReturnValue.MapKey;value;manual",
|
||||
"org.springframework.web.util;UrlPathHelper;false;decodePathVariables;;;Argument[1].MapValue;ReturnValue.MapValue;taint;manual",
|
||||
"org.springframework.web.util;UrlPathHelper;false;decodeRequestString;;;Argument[1];ReturnValue;taint;manual",
|
||||
"org.springframework.web.util;UrlPathHelper;false;getContextPath;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.springframework.web.util;UrlPathHelper;false;getOriginatingContextPath;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.springframework.web.util;UrlPathHelper;false;getOriginatingQueryString;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.springframework.web.util;UrlPathHelper;false;getOriginatingRequestUri;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.springframework.web.util;UrlPathHelper;false;getPathWithinApplication;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.springframework.web.util;UrlPathHelper;false;getPathWithinServletMapping;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.springframework.web.util;UrlPathHelper;false;getRequestUri;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.springframework.web.util;UrlPathHelper;false;getResolvedLookupPath;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.springframework.web.util;UrlPathHelper;false;getServletPath;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.springframework.web.util;UrlPathHelper;false;removeSemicolonContent;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.springframework.web.util;UrlPathHelper;false;resolveAndCacheLookupPath;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.springframework.web.util;WebUtils;false;findParameterValue;(Map,String);;Argument[0].MapValue;ReturnValue;value;manual",
|
||||
"org.springframework.web.util;WebUtils;false;findParameterValue;(ServletRequest,String);;Argument[0];ReturnValue;taint;manual",
|
||||
"org.springframework.web.util;WebUtils;false;getCookie;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.springframework.web.util;WebUtils;false;getNativeRequest;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.springframework.web.util;WebUtils;false;getNativeResponse;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.springframework.web.util;WebUtils;false;getParametersStartingWith;;;Argument[0];ReturnValue.MapKey;taint;manual",
|
||||
"org.springframework.web.util;WebUtils;false;getParametersStartingWith;;;Argument[0];ReturnValue.MapValue;taint;manual",
|
||||
"org.springframework.web.util;WebUtils;false;getRealPath;;;Argument[0..1];ReturnValue;taint;manual",
|
||||
"org.springframework.web.util;WebUtils;false;getRequiredSessionAttribute;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.springframework.web.util;WebUtils;false;getSessionAttribute;;;Argument[0];ReturnValue;taint;manual",
|
||||
"org.springframework.web.util;WebUtils;false;parseMatrixVariables;;;Argument[0];ReturnValue.MapKey;taint;manual",
|
||||
"org.springframework.web.util;WebUtils;false;parseMatrixVariables;;;Argument[0];ReturnValue.MapValue;taint;manual",
|
||||
"org.springframework.web.util;WebUtils;false;setSessionAttribute;;;Argument[2];Argument[0];taint;manual"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -6,7 +6,6 @@ import java
|
||||
import semmle.code.java.dataflow.ExternalFlow
|
||||
private import semmle.code.java.dataflow.DataFlow
|
||||
private import semmle.code.java.dataflow.DataFlow2
|
||||
private import RegexFlowModels
|
||||
private import semmle.code.java.security.SecurityTests
|
||||
|
||||
private class ExploitableStringLiteral extends StringLiteral {
|
||||
|
||||
@@ -1,38 +0,0 @@
|
||||
/** Definitions of data flow steps for determining flow of regular expressions. */
|
||||
|
||||
import java
|
||||
import semmle.code.java.dataflow.ExternalFlow
|
||||
|
||||
private class RegexSinkCsv extends SinkModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
//"namespace;type;subtypes;name;signature;ext;input;kind"
|
||||
"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;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;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.function;Predicate;false;test;(Object);;Argument[-1];regex-use[0];manual",
|
||||
"java.lang;String;false;matches;(String);;Argument[0];regex-use[f-1];manual",
|
||||
"java.lang;String;false;split;(String);;Argument[0];regex-use[-1];manual",
|
||||
"java.lang;String;false;split;(String,int);;Argument[0];regex-use[-1];manual",
|
||||
"java.lang;String;false;replaceAll;(String,String);;Argument[0];regex-use[-1];manual",
|
||||
"java.lang;String;false;replaceFirst;(String,String);;Argument[0];regex-use[-1];manual",
|
||||
"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",
|
||||
"org.apache.commons.lang3;RegExUtils;false;removeAll;(String,String);;Argument[1];regex-use;manual",
|
||||
"org.apache.commons.lang3;RegExUtils;false;removeFirst;(String,String);;Argument[1];regex-use;manual",
|
||||
"org.apache.commons.lang3;RegExUtils;false;removePattern;(String,String);;Argument[1];regex-use;manual",
|
||||
"org.apache.commons.lang3;RegExUtils;false;replaceAll;(String,String,String);;Argument[1];regex-use;manual",
|
||||
"org.apache.commons.lang3;RegExUtils;false;replaceFirst;(String,String,String);;Argument[1];regex-use;manual",
|
||||
"org.apache.commons.lang3;RegExUtils;false;replacePattern;(String,String,String);;Argument[1];regex-use;manual",
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -28,37 +28,6 @@ class IntentRedirectionAdditionalTaintStep extends Unit {
|
||||
abstract predicate step(DataFlow::Node node1, DataFlow::Node node2);
|
||||
}
|
||||
|
||||
private class DefaultIntentRedirectionSinkModel extends SinkModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"android.app;Activity;true;bindService;;;Argument[0];intent-start;manual",
|
||||
"android.app;Activity;true;bindServiceAsUser;;;Argument[0];intent-start;manual",
|
||||
"android.app;Activity;true;startActivityAsCaller;;;Argument[0];intent-start;manual",
|
||||
"android.app;Activity;true;startActivityForResult;(Intent,int);;Argument[0];intent-start;manual",
|
||||
"android.app;Activity;true;startActivityForResult;(Intent,int,Bundle);;Argument[0];intent-start;manual",
|
||||
"android.app;Activity;true;startActivityForResult;(String,Intent,int,Bundle);;Argument[1];intent-start;manual",
|
||||
"android.app;Activity;true;startActivityForResultAsUser;;;Argument[0];intent-start;manual",
|
||||
"android.content;Context;true;startActivities;;;Argument[0];intent-start;manual",
|
||||
"android.content;Context;true;startActivity;;;Argument[0];intent-start;manual",
|
||||
"android.content;Context;true;startActivityAsUser;;;Argument[0];intent-start;manual",
|
||||
"android.content;Context;true;startActivityFromChild;;;Argument[1];intent-start;manual",
|
||||
"android.content;Context;true;startActivityFromFragment;;;Argument[1];intent-start;manual",
|
||||
"android.content;Context;true;startActivityIfNeeded;;;Argument[0];intent-start;manual",
|
||||
"android.content;Context;true;startForegroundService;;;Argument[0];intent-start;manual",
|
||||
"android.content;Context;true;startService;;;Argument[0];intent-start;manual",
|
||||
"android.content;Context;true;startServiceAsUser;;;Argument[0];intent-start;manual",
|
||||
"android.content;Context;true;sendBroadcast;;;Argument[0];intent-start;manual",
|
||||
"android.content;Context;true;sendBroadcastAsUser;;;Argument[0];intent-start;manual",
|
||||
"android.content;Context;true;sendBroadcastWithMultiplePermissions;;;Argument[0];intent-start;manual",
|
||||
"android.content;Context;true;sendStickyBroadcast;;;Argument[0];intent-start;manual",
|
||||
"android.content;Context;true;sendStickyBroadcastAsUser;;;Argument[0];intent-start;manual",
|
||||
"android.content;Context;true;sendStickyOrderedBroadcast;;;Argument[0];intent-start;manual",
|
||||
"android.content;Context;true;sendStickyOrderedBroadcastAsUser;;;Argument[0];intent-start;manual"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
/** Default sink for Intent redirection vulnerabilities. */
|
||||
private class DefaultIntentRedirectionSink extends IntentRedirectionSink {
|
||||
DefaultIntentRedirectionSink() { sinkNode(this, "intent-start") }
|
||||
|
||||
@@ -7,7 +7,6 @@ import java
|
||||
import semmle.code.java.dataflow.DataFlow
|
||||
private import semmle.code.java.dataflow.ExternalFlow
|
||||
import semmle.code.java.security.CleartextStorageQuery
|
||||
import semmle.code.java.security.Files
|
||||
import semmle.code.xml.AndroidManifest
|
||||
|
||||
private class AndroidFilesystemCleartextStorageSink extends CleartextStorageSink {
|
||||
|
||||
@@ -1,100 +0,0 @@
|
||||
/** Provides classes and predicates to work with File objects. */
|
||||
|
||||
import java
|
||||
private import semmle.code.java.dataflow.ExternalFlow
|
||||
|
||||
private class CreateFileSinkModels extends SinkModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"java.io;FileOutputStream;false;FileOutputStream;;;Argument[0];create-file;manual",
|
||||
"java.io;RandomAccessFile;false;RandomAccessFile;;;Argument[0];create-file;manual",
|
||||
"java.io;FileWriter;false;FileWriter;;;Argument[0];create-file;manual",
|
||||
"java.io;PrintStream;false;PrintStream;(File);;Argument[0];create-file;manual",
|
||||
"java.io;PrintStream;false;PrintStream;(File,String);;Argument[0];create-file;manual",
|
||||
"java.io;PrintStream;false;PrintStream;(File,Charset);;Argument[0];create-file;manual",
|
||||
"java.io;PrintStream;false;PrintStream;(String);;Argument[0];create-file;manual",
|
||||
"java.io;PrintStream;false;PrintStream;(String,String);;Argument[0];create-file;manual",
|
||||
"java.io;PrintStream;false;PrintStream;(String,Charset);;Argument[0];create-file;manual",
|
||||
"java.io;PrintWriter;false;PrintWriter;(File);;Argument[0];create-file;manual",
|
||||
"java.io;PrintWriter;false;PrintWriter;(File,String);;Argument[0];create-file;manual",
|
||||
"java.io;PrintWriter;false;PrintWriter;(File,Charset);;Argument[0];create-file;manual",
|
||||
"java.io;PrintWriter;false;PrintWriter;(String);;Argument[0];create-file;manual",
|
||||
"java.io;PrintWriter;false;PrintWriter;(String,String);;Argument[0];create-file;manual",
|
||||
"java.io;PrintWriter;false;PrintWriter;(String,Charset);;Argument[0];create-file;manual",
|
||||
"java.nio.file;Files;false;copy;;;Argument[1];create-file;manual",
|
||||
"java.nio.file;Files;false;createDirectories;;;Argument[0];create-file;manual",
|
||||
"java.nio.file;Files;false;createDirectory;;;Argument[0];create-file;manual",
|
||||
"java.nio.file;Files;false;createFile;;;Argument[0];create-file;manual",
|
||||
"java.nio.file;Files;false;createLink;;;Argument[0];create-file;manual",
|
||||
"java.nio.file;Files;false;createSymbolicLink;;;Argument[0];create-file;manual",
|
||||
"java.nio.file;Files;false;createTempDirectory;;;Argument[0];create-file;manual",
|
||||
"java.nio.file;Files;false;createTempFile;(Path,String,String,FileAttribute[]);;Argument[0];create-file;manual",
|
||||
"java.nio.file;Files;false;move;;;Argument[1];create-file;manual",
|
||||
"java.nio.file;Files;false;newBufferedWriter;;;Argument[0];create-file;manual",
|
||||
"java.nio.file;Files;false;newOutputStream;;;Argument[0];create-file;manual",
|
||||
"java.nio.file;Files;false;write;;;Argument[0];create-file;manual",
|
||||
"java.nio.file;Files;false;writeString;;;Argument[0];create-file;manual"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
private class WriteFileSinkModels extends SinkModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"java.io;FileOutputStream;false;write;;;Argument[0];write-file;manual",
|
||||
"java.io;RandomAccessFile;false;write;;;Argument[0];write-file;manual",
|
||||
"java.io;RandomAccessFile;false;writeBytes;;;Argument[0];write-file;manual",
|
||||
"java.io;RandomAccessFile;false;writeChars;;;Argument[0];write-file;manual",
|
||||
"java.io;RandomAccessFile;false;writeUTF;;;Argument[0];write-file;manual",
|
||||
"java.io;Writer;true;append;;;Argument[0];write-file;manual",
|
||||
"java.io;Writer;true;write;;;Argument[0];write-file;manual",
|
||||
"java.io;PrintStream;true;append;;;Argument[0];write-file;manual",
|
||||
"java.io;PrintStream;true;format;(String,Object[]);;Argument[0..1];write-file;manual",
|
||||
"java.io;PrintStream;true;format;(Locale,String,Object[]);;Argument[1..2];write-file;manual",
|
||||
"java.io;PrintStream;true;print;;;Argument[0];write-file;manual",
|
||||
"java.io;PrintStream;true;printf;(String,Object[]);;Argument[0..1];write-file;manual",
|
||||
"java.io;PrintStream;true;printf;(Locale,String,Object[]);;Argument[1..2];write-file;manual",
|
||||
"java.io;PrintStream;true;println;;;Argument[0];write-file;manual",
|
||||
"java.io;PrintStream;true;write;;;Argument[0];write-file;manual",
|
||||
"java.io;PrintStream;true;writeBytes;;;Argument[0];write-file;manual",
|
||||
"java.io;PrintWriter;false;format;(String,Object[]);;Argument[0..1];write-file;manual",
|
||||
"java.io;PrintWriter;false;format;(Locale,String,Object[]);;Argument[1..2];write-file;manual",
|
||||
"java.io;PrintWriter;false;print;;;Argument[0];write-file;manual",
|
||||
"java.io;PrintWriter;false;printf;(String,Object[]);;Argument[0..1];write-file;manual",
|
||||
"java.io;PrintWriter;false;printf;(Locale,String,Object[]);;Argument[1..2];write-file;manual",
|
||||
"java.io;PrintWriter;false;println;;;Argument[0];write-file;manual",
|
||||
"java.nio.file;Files;false;write;;;Argument[1];write-file;manual",
|
||||
"java.nio.file;Files;false;writeString;;;Argument[1];write-file;manual"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
private class FileSummaryModels extends SummaryModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"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;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.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;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;Paths;true;get;;;Argument[0];ReturnValue;taint;manual",
|
||||
"java.nio.file;Paths;true;get;;;Argument[1].ArrayElement;ReturnValue;taint;manual",
|
||||
"java.nio.file;FileSystem;true;getPath;;;Argument[0];ReturnValue;taint;manual",
|
||||
"java.nio.file;FileSystem;true;getRootDirectories;;;Argument[0];ReturnValue;taint;manual"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -43,22 +43,6 @@ class FragmentInjectionAdditionalTaintStep extends Unit {
|
||||
abstract predicate step(DataFlow::Node n1, DataFlow::Node n2);
|
||||
}
|
||||
|
||||
private class FragmentInjectionSinkModels extends SinkModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
["android.app", "android.support.v4.app", "androidx.fragment.app"] +
|
||||
";FragmentTransaction;true;" +
|
||||
[
|
||||
"add;(Class,Bundle,String);;Argument[0]", "add;(Fragment,String);;Argument[0]",
|
||||
"add;(int,Class,Bundle);;Argument[1]", "add;(int,Fragment);;Argument[1]",
|
||||
"add;(int,Class,Bundle,String);;Argument[1]", "add;(int,Fragment,String);;Argument[1]",
|
||||
"attach;(Fragment);;Argument[0]", "replace;(int,Class,Bundle);;Argument[1]",
|
||||
"replace;(int,Fragment);;Argument[1]", "replace;(int,Class,Bundle,String);;Argument[1]",
|
||||
"replace;(int,Fragment,String);;Argument[1]",
|
||||
] + ";fragment-injection;manual"
|
||||
}
|
||||
}
|
||||
|
||||
private class DefaultFragmentInjectionSink extends FragmentInjectionSink {
|
||||
DefaultFragmentInjectionSink() { sinkNode(this, "fragment-injection") }
|
||||
}
|
||||
|
||||
@@ -24,47 +24,6 @@ private class DefaultGroovyInjectionSink extends GroovyInjectionSink {
|
||||
DefaultGroovyInjectionSink() { sinkNode(this, "groovy") }
|
||||
}
|
||||
|
||||
private class DefaultGroovyInjectionSinkModel extends SinkModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
// Signatures are specified to exclude sinks of the type `File`
|
||||
"groovy.lang;GroovyShell;false;evaluate;(GroovyCodeSource);;Argument[0];groovy;manual",
|
||||
"groovy.lang;GroovyShell;false;evaluate;(Reader);;Argument[0];groovy;manual",
|
||||
"groovy.lang;GroovyShell;false;evaluate;(Reader,String);;Argument[0];groovy;manual",
|
||||
"groovy.lang;GroovyShell;false;evaluate;(String);;Argument[0];groovy;manual",
|
||||
"groovy.lang;GroovyShell;false;evaluate;(String,String);;Argument[0];groovy;manual",
|
||||
"groovy.lang;GroovyShell;false;evaluate;(String,String,String);;Argument[0];groovy;manual",
|
||||
"groovy.lang;GroovyShell;false;evaluate;(URI);;Argument[0];groovy;manual",
|
||||
"groovy.lang;GroovyShell;false;parse;(Reader);;Argument[0];groovy;manual",
|
||||
"groovy.lang;GroovyShell;false;parse;(Reader,String);;Argument[0];groovy;manual",
|
||||
"groovy.lang;GroovyShell;false;parse;(String);;Argument[0];groovy;manual",
|
||||
"groovy.lang;GroovyShell;false;parse;(String,String);;Argument[0];groovy;manual",
|
||||
"groovy.lang;GroovyShell;false;parse;(URI);;Argument[0];groovy;manual",
|
||||
"groovy.lang;GroovyShell;false;run;(GroovyCodeSource,String[]);;Argument[0];groovy;manual",
|
||||
"groovy.lang;GroovyShell;false;run;(GroovyCodeSource,List);;Argument[0];groovy;manual",
|
||||
"groovy.lang;GroovyShell;false;run;(Reader,String,String[]);;Argument[0];groovy;manual",
|
||||
"groovy.lang;GroovyShell;false;run;(Reader,String,List);;Argument[0];groovy;manual",
|
||||
"groovy.lang;GroovyShell;false;run;(String,String,String[]);;Argument[0];groovy;manual",
|
||||
"groovy.lang;GroovyShell;false;run;(String,String,List);;Argument[0];groovy;manual",
|
||||
"groovy.lang;GroovyShell;false;run;(URI,String[]);;Argument[0];groovy;manual",
|
||||
"groovy.lang;GroovyShell;false;run;(URI,List);;Argument[0];groovy;manual",
|
||||
"groovy.util;Eval;false;me;(String);;Argument[0];groovy;manual",
|
||||
"groovy.util;Eval;false;me;(String,Object,String);;Argument[2];groovy;manual",
|
||||
"groovy.util;Eval;false;x;(Object,String);;Argument[1];groovy;manual",
|
||||
"groovy.util;Eval;false;xy;(Object,Object,String);;Argument[2];groovy;manual",
|
||||
"groovy.util;Eval;false;xyz;(Object,Object,Object,String);;Argument[3];groovy;manual",
|
||||
"groovy.lang;GroovyClassLoader;false;parseClass;(GroovyCodeSource);;Argument[0];groovy;manual",
|
||||
"groovy.lang;GroovyClassLoader;false;parseClass;(GroovyCodeSource,boolean);;Argument[0];groovy;manual",
|
||||
"groovy.lang;GroovyClassLoader;false;parseClass;(InputStream,String);;Argument[0];groovy;manual",
|
||||
"groovy.lang;GroovyClassLoader;false;parseClass;(Reader,String);;Argument[0];groovy;manual",
|
||||
"groovy.lang;GroovyClassLoader;false;parseClass;(String);;Argument[0];groovy;manual",
|
||||
"groovy.lang;GroovyClassLoader;false;parseClass;(String,String);;Argument[0];groovy;manual",
|
||||
"org.codehaus.groovy.control;CompilationUnit;false;compile;;;Argument[-1];groovy;manual"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
/** A set of additional taint steps to consider when taint tracking Groovy related data flows. */
|
||||
private class DefaultGroovyInjectionAdditionalTaintStep extends GroovyInjectionAdditionalTaintStep {
|
||||
override predicate step(DataFlow::Node node1, DataFlow::Node node2) {
|
||||
|
||||
@@ -94,39 +94,6 @@ private class MutablePendingIntentFlowStep extends ImplicitPendingIntentAddition
|
||||
}
|
||||
}
|
||||
|
||||
private class PendingIntentSentSinkModels extends SinkModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"androidx.slice;SliceProvider;true;onBindSlice;;;ReturnValue;pending-intent-sent;manual",
|
||||
"androidx.slice;SliceProvider;true;onCreatePermissionRequest;;;ReturnValue;pending-intent-sent;manual",
|
||||
"android.app;NotificationManager;true;notify;(int,Notification);;Argument[1];pending-intent-sent;manual",
|
||||
"android.app;NotificationManager;true;notify;(String,int,Notification);;Argument[2];pending-intent-sent;manual",
|
||||
"android.app;NotificationManager;true;notifyAsPackage;(String,String,int,Notification);;Argument[3];pending-intent-sent;manual",
|
||||
"android.app;NotificationManager;true;notifyAsUser;(String,int,Notification,UserHandle);;Argument[2];pending-intent-sent;manual",
|
||||
"androidx.core.app;NotificationManagerCompat;true;notify;(int,Notification);;Argument[1];pending-intent-sent;manual",
|
||||
"androidx.core.app;NotificationManagerCompat;true;notify;(String,int,Notification);;Argument[2];pending-intent-sent;manual",
|
||||
"android.app;PendingIntent;false;send;(Context,int,Intent,OnFinished,Handler,String,Bundle);;Argument[2];pending-intent-sent;manual",
|
||||
"android.app;PendingIntent;false;send;(Context,int,Intent,OnFinished,Handler,String);;Argument[2];pending-intent-sent;manual",
|
||||
"android.app;PendingIntent;false;send;(Context,int,Intent,OnFinished,Handler);;Argument[2];pending-intent-sent;manual",
|
||||
"android.app;PendingIntent;false;send;(Context,int,Intent);;Argument[2];pending-intent-sent;manual",
|
||||
"android.app;Activity;true;setResult;(int,Intent);;Argument[1];pending-intent-sent;manual",
|
||||
"android.app;AlarmManager;true;set;(int,long,PendingIntent);;Argument[2];pending-intent-sent;manual",
|
||||
"android.app;AlarmManager;true;setAlarmClock;;;Argument[1];pending-intent-sent;manual",
|
||||
"android.app;AlarmManager;true;setAndAllowWhileIdle;;;Argument[2];pending-intent-sent;manual",
|
||||
"android.app;AlarmManager;true;setExact;(int,long,PendingIntent);;Argument[2];pending-intent-sent;manual",
|
||||
"android.app;AlarmManager;true;setExactAndAllowWhileIdle;;;Argument[2];pending-intent-sent;manual",
|
||||
"android.app;AlarmManager;true;setInexactRepeating;;;Argument[3];pending-intent-sent;manual",
|
||||
"android.app;AlarmManager;true;setRepeating;;;Argument[3];pending-intent-sent;manual",
|
||||
"android.app;AlarmManager;true;setWindow;(int,long,long,PendingIntent);;Argument[3];pending-intent-sent;manual",
|
||||
"androidx.core.app;AlarmManagerCompat;true;setAlarmClock;;;Argument[2..3];pending-intent-sent;manual",
|
||||
"androidx.core.app;AlarmManagerCompat;true;setAndAllowWhileIdle;;;Argument[3];pending-intent-sent;manual",
|
||||
"androidx.core.app;AlarmManagerCompat;true;setExact;;;Argument[3];pending-intent-sent;manual",
|
||||
"androidx.core.app;AlarmManagerCompat;true;setExactAndAllowWhileIdle;;;Argument[3];pending-intent-sent;manual",
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Holds if taint can flow from `source` to `sink` in one local step,
|
||||
* including bitwise operations.
|
||||
|
||||
@@ -5,14 +5,6 @@ import semmle.code.java.dataflow.DataFlow
|
||||
private import semmle.code.java.dataflow.ExternalFlow
|
||||
import semmle.code.java.security.XSS
|
||||
|
||||
/** CSV sink models representing methods not susceptible to XSS but outputing to an HTTP response body. */
|
||||
private class DefaultInformationLeakSinkModel extends SinkModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
"javax.servlet.http;HttpServletResponse;false;sendError;(int,String);;Argument[1];information-leak;manual"
|
||||
}
|
||||
}
|
||||
|
||||
/** A sink that represent a method that outputs data to an HTTP response. */
|
||||
abstract class InformationLeakSink extends DataFlow::Node { }
|
||||
|
||||
|
||||
@@ -1,43 +0,0 @@
|
||||
/** Provides sink models relating to Expression Language (JEXL) injection vulnerabilities. */
|
||||
|
||||
private import semmle.code.java.dataflow.ExternalFlow
|
||||
|
||||
private class DefaultJexlInjectionSinkModel extends SinkModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
// JEXL2
|
||||
"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;Expression;false;evaluate;;;Argument[-1];jexl;manual",
|
||||
"org.apache.commons.jexl2;Expression;false;callable;;;Argument[-1];jexl;manual",
|
||||
"org.apache.commons.jexl2;JexlExpression;false;evaluate;;;Argument[-1];jexl;manual",
|
||||
"org.apache.commons.jexl2;JexlExpression;false;callable;;;Argument[-1];jexl;manual",
|
||||
"org.apache.commons.jexl2;Script;false;execute;;;Argument[-1];jexl;manual",
|
||||
"org.apache.commons.jexl2;Script;false;callable;;;Argument[-1];jexl;manual",
|
||||
"org.apache.commons.jexl2;JexlScript;false;execute;;;Argument[-1];jexl;manual",
|
||||
"org.apache.commons.jexl2;JexlScript;false;callable;;;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",
|
||||
// JEXL3
|
||||
"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;Expression;false;evaluate;;;Argument[-1];jexl;manual",
|
||||
"org.apache.commons.jexl3;Expression;false;callable;;;Argument[-1];jexl;manual",
|
||||
"org.apache.commons.jexl3;JexlExpression;false;evaluate;;;Argument[-1];jexl;manual",
|
||||
"org.apache.commons.jexl3;JexlExpression;false;callable;;;Argument[-1];jexl;manual",
|
||||
"org.apache.commons.jexl3;Script;false;execute;;;Argument[-1];jexl;manual",
|
||||
"org.apache.commons.jexl3;Script;false;callable;;;Argument[-1];jexl;manual",
|
||||
"org.apache.commons.jexl3;JexlScript;false;execute;;;Argument[-1];jexl;manual",
|
||||
"org.apache.commons.jexl3;JexlScript;false;callable;;;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"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -72,62 +72,6 @@ private class ProviderUrlJndiInjectionSink extends JndiInjectionSink, DataFlow::
|
||||
}
|
||||
}
|
||||
|
||||
/** CSV sink models representing methods susceptible to JNDI injection attacks. */
|
||||
private class DefaultJndiInjectionSinkModel extends SinkModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"javax.naming;Context;true;lookup;;;Argument[0];jndi-injection;manual",
|
||||
"javax.naming;Context;true;lookupLink;;;Argument[0];jndi-injection;manual",
|
||||
"javax.naming;Context;true;rename;;;Argument[0];jndi-injection;manual",
|
||||
"javax.naming;Context;true;list;;;Argument[0];jndi-injection;manual",
|
||||
"javax.naming;Context;true;listBindings;;;Argument[0];jndi-injection;manual",
|
||||
"javax.naming;InitialContext;true;doLookup;;;Argument[0];jndi-injection;manual",
|
||||
"javax.management.remote;JMXConnector;true;connect;;;Argument[-1];jndi-injection;manual",
|
||||
"javax.management.remote;JMXConnectorFactory;false;connect;;;Argument[0];jndi-injection;manual",
|
||||
// Spring
|
||||
"org.springframework.jndi;JndiTemplate;false;lookup;;;Argument[0];jndi-injection;manual",
|
||||
// spring-ldap 1.2.x and newer
|
||||
"org.springframework.ldap.core;LdapOperations;true;lookup;(Name);;Argument[0];jndi-injection;manual",
|
||||
"org.springframework.ldap.core;LdapOperations;true;lookup;(Name,ContextMapper);;Argument[0];jndi-injection;manual",
|
||||
"org.springframework.ldap.core;LdapOperations;true;lookup;(Name,String[],ContextMapper);;Argument[0];jndi-injection;manual",
|
||||
"org.springframework.ldap.core;LdapOperations;true;lookup;(String);;Argument[0];jndi-injection;manual",
|
||||
"org.springframework.ldap.core;LdapOperations;true;lookup;(String,ContextMapper);;Argument[0];jndi-injection;manual",
|
||||
"org.springframework.ldap.core;LdapOperations;true;lookup;(String,String[],ContextMapper);;Argument[0];jndi-injection;manual",
|
||||
"org.springframework.ldap.core;LdapOperations;true;lookupContext;;;Argument[0];jndi-injection;manual",
|
||||
"org.springframework.ldap.core;LdapOperations;true;findByDn;;;Argument[0];jndi-injection;manual",
|
||||
"org.springframework.ldap.core;LdapOperations;true;rename;;;Argument[0];jndi-injection;manual",
|
||||
"org.springframework.ldap.core;LdapOperations;true;list;;;Argument[0];jndi-injection;manual",
|
||||
"org.springframework.ldap.core;LdapOperations;true;listBindings;;;Argument[0];jndi-injection;manual",
|
||||
"org.springframework.ldap.core;LdapOperations;true;search;(Name,String,ContextMapper);;Argument[0];jndi-injection;manual",
|
||||
"org.springframework.ldap.core;LdapOperations;true;search;(Name,String,int,ContextMapper);;Argument[0];jndi-injection;manual",
|
||||
"org.springframework.ldap.core;LdapOperations;true;search;(Name,String,int,String[],ContextMapper);;Argument[0];jndi-injection;manual",
|
||||
"org.springframework.ldap.core;LdapOperations;true;search;(String,String,ContextMapper);;Argument[0];jndi-injection;manual",
|
||||
"org.springframework.ldap.core;LdapOperations;true;search;(String,String,int,ContextMapper);;Argument[0];jndi-injection;manual",
|
||||
"org.springframework.ldap.core;LdapOperations;true;search;(String,String,int,String[],ContextMapper);;Argument[0];jndi-injection;manual",
|
||||
"org.springframework.ldap.core;LdapOperations;true;searchForObject;(Name,String,ContextMapper);;Argument[0];jndi-injection;manual",
|
||||
"org.springframework.ldap.core;LdapOperations;true;searchForObject;(String,String,ContextMapper);;Argument[0];jndi-injection;manual",
|
||||
// spring-ldap 1.1.x
|
||||
"org.springframework.ldap;LdapOperations;true;lookup;;;Argument[0];jndi-injection;manual",
|
||||
"org.springframework.ldap;LdapOperations;true;lookupContext;;;Argument[0];jndi-injection;manual",
|
||||
"org.springframework.ldap;LdapOperations;true;findByDn;;;Argument[0];jndi-injection;manual",
|
||||
"org.springframework.ldap;LdapOperations;true;rename;;;Argument[0];jndi-injection;manual",
|
||||
"org.springframework.ldap;LdapOperations;true;list;;;Argument[0];jndi-injection;manual",
|
||||
"org.springframework.ldap;LdapOperations;true;listBindings;;;Argument[0];jndi-injection;manual",
|
||||
"org.springframework.ldap;LdapOperations;true;search;(Name,String,ContextMapper);;Argument[0];jndi-injection;manual",
|
||||
"org.springframework.ldap;LdapOperations;true;search;(Name,String,int,ContextMapper);;Argument[0];jndi-injection;manual",
|
||||
"org.springframework.ldap;LdapOperations;true;search;(Name,String,int,String[],ContextMapper);;Argument[0];jndi-injection;manual",
|
||||
"org.springframework.ldap;LdapOperations;true;search;(String,String,ContextMapper);;Argument[0];jndi-injection;manual",
|
||||
"org.springframework.ldap;LdapOperations;true;search;(String,String,int,ContextMapper);;Argument[0];jndi-injection;manual",
|
||||
"org.springframework.ldap;LdapOperations;true;search;(String,String,int,String[],ContextMapper);;Argument[0];jndi-injection;manual",
|
||||
"org.springframework.ldap;LdapOperations;true;searchForObject;(Name,String,ContextMapper);;Argument[0];jndi-injection;manual",
|
||||
"org.springframework.ldap;LdapOperations;true;searchForObject;(String,String,ContextMapper);;Argument[0];jndi-injection;manual",
|
||||
// Shiro
|
||||
"org.apache.shiro.jndi;JndiTemplate;false;lookup;;;Argument[0];jndi-injection;manual"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
/** A set of additional taint steps to consider when taint tracking JNDI injection related data flows. */
|
||||
private class DefaultJndiInjectionAdditionalTaintStep extends JndiInjectionAdditionalTaintStep {
|
||||
override predicate step(DataFlow::Node node1, DataFlow::Node node2) {
|
||||
|
||||
@@ -32,53 +32,6 @@ private class DefaultLdapInjectionSink extends LdapInjectionSink {
|
||||
DefaultLdapInjectionSink() { sinkNode(this, "ldap") }
|
||||
}
|
||||
|
||||
private class DefaultLdapInjectionSinkModel extends SinkModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
// jndi
|
||||
"javax.naming.directory;DirContext;true;search;;;Argument[0..1];ldap;manual",
|
||||
// apache
|
||||
"org.apache.directory.ldap.client.api;LdapConnection;true;search;;;Argument[0..2];ldap;manual",
|
||||
// UnboundID: search
|
||||
"com.unboundid.ldap.sdk;LDAPConnection;false;search;(ReadOnlySearchRequest);;Argument[0];ldap;manual",
|
||||
"com.unboundid.ldap.sdk;LDAPConnection;false;search;(SearchRequest);;Argument[0];ldap;manual",
|
||||
"com.unboundid.ldap.sdk;LDAPConnection;false;search;(SearchResultListener,String,SearchScope,DereferencePolicy,int,int,boolean,Filter,String[]);;Argument[0..7];ldap;manual",
|
||||
"com.unboundid.ldap.sdk;LDAPConnection;false;search;(SearchResultListener,String,SearchScope,DereferencePolicy,int,int,boolean,String,String[]);;Argument[0..7];ldap;manual",
|
||||
"com.unboundid.ldap.sdk;LDAPConnection;false;search;(SearchResultListener,String,SearchScope,Filter,String[]);;Argument[0..3];ldap;manual",
|
||||
"com.unboundid.ldap.sdk;LDAPConnection;false;search;(SearchResultListener,String,SearchScope,String,String[]);;Argument[0..3];ldap;manual",
|
||||
"com.unboundid.ldap.sdk;LDAPConnection;false;search;(String,SearchScope,DereferencePolicy,int,int,boolean,Filter,String[]);;Argument[0..6];ldap;manual",
|
||||
"com.unboundid.ldap.sdk;LDAPConnection;false;search;(String,SearchScope,DereferencePolicy,int,int,boolean,String,String[]);;Argument[0..6];ldap;manual",
|
||||
"com.unboundid.ldap.sdk;LDAPConnection;false;search;(String,SearchScope,Filter,String[]);;Argument[0..2];ldap;manual",
|
||||
"com.unboundid.ldap.sdk;LDAPConnection;false;search;(String,SearchScope,String,String[]);;Argument[0..2];ldap;manual",
|
||||
// UnboundID: searchForEntry
|
||||
"com.unboundid.ldap.sdk;LDAPConnection;false;searchForEntry;(ReadOnlySearchRequest);;Argument[0];ldap;manual",
|
||||
"com.unboundid.ldap.sdk;LDAPConnection;false;searchForEntry;(SearchRequest);;Argument[0];ldap;manual",
|
||||
"com.unboundid.ldap.sdk;LDAPConnection;false;searchForEntry;(String,SearchScope,DereferencePolicy,int,boolean,Filter,String[]);;Argument[0..5];ldap;manual",
|
||||
"com.unboundid.ldap.sdk;LDAPConnection;false;searchForEntry;(String,SearchScope,DereferencePolicy,int,boolean,String,String[]);;Argument[0..5];ldap;manual",
|
||||
"com.unboundid.ldap.sdk;LDAPConnection;false;searchForEntry;(String,SearchScope,Filter,String[]);;Argument[0..2];ldap;manual",
|
||||
"com.unboundid.ldap.sdk;LDAPConnection;false;searchForEntry;(String,SearchScope,String,String[]);;Argument[0..2];ldap;manual",
|
||||
// UnboundID: asyncSearch
|
||||
"com.unboundid.ldap.sdk;LDAPConnection;false;asyncSearch;;;Argument[0];ldap;manual",
|
||||
// Spring
|
||||
"org.springframework.ldap.core;LdapTemplate;false;find;;;Argument[0..1];ldap;manual",
|
||||
"org.springframework.ldap.core;LdapTemplate;false;findOne;;;Argument[0..1];ldap;manual",
|
||||
"org.springframework.ldap.core;LdapTemplate;false;search;;;Argument[0..1];ldap;manual",
|
||||
"org.springframework.ldap.core;LdapTemplate;false;searchForContext;;;Argument[0..1];ldap;manual",
|
||||
"org.springframework.ldap.core;LdapTemplate;false;searchForObject;;;Argument[0..1];ldap;manual",
|
||||
"org.springframework.ldap.core;LdapTemplate;false;authenticate;(LdapQuery,String);;Argument[0];ldap;manual",
|
||||
"org.springframework.ldap.core;LdapTemplate;false;authenticate;(Name,String,String);;Argument[0..1];ldap;manual",
|
||||
"org.springframework.ldap.core;LdapTemplate;false;authenticate;(Name,String,String,AuthenticatedLdapEntryContextCallback);;Argument[0..1];ldap;manual",
|
||||
"org.springframework.ldap.core;LdapTemplate;false;authenticate;(Name,String,String,AuthenticatedLdapEntryContextCallback,AuthenticationErrorCallback);;Argument[0..1];ldap;manual",
|
||||
"org.springframework.ldap.core;LdapTemplate;false;authenticate;(Name,String,String,AuthenticationErrorCallback);;Argument[0..1];ldap;manual",
|
||||
"org.springframework.ldap.core;LdapTemplate;false;authenticate;(String,String,String);;Argument[0..1];ldap;manual",
|
||||
"org.springframework.ldap.core;LdapTemplate;false;authenticate;(String,String,String,AuthenticatedLdapEntryContextCallback);;Argument[0..1];ldap;manual",
|
||||
"org.springframework.ldap.core;LdapTemplate;false;authenticate;(String,String,String,AuthenticatedLdapEntryContextCallback,AuthenticationErrorCallback);;Argument[0..1];ldap;manual",
|
||||
"org.springframework.ldap.core;LdapTemplate;false;authenticate;(String,String,String,AuthenticationErrorCallback);;Argument[0..1];ldap;manual"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
/** A sanitizer that clears the taint on (boxed) primitive types. */
|
||||
private class DefaultLdapSanitizer extends LdapInjectionSanitizer {
|
||||
DefaultLdapSanitizer() {
|
||||
|
||||
@@ -28,31 +28,6 @@ private class DefaultMvelEvaluationSink extends MvelEvaluationSink {
|
||||
DefaultMvelEvaluationSink() { sinkNode(this, "mvel") }
|
||||
}
|
||||
|
||||
private class DefaulMvelEvaluationSinkModel extends SinkModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"javax.script;CompiledScript;false;eval;;;Argument[-1];mvel;manual",
|
||||
"org.mvel2;MVEL;false;eval;;;Argument[0];mvel;manual",
|
||||
"org.mvel2;MVEL;false;executeExpression;;;Argument[0];mvel;manual",
|
||||
"org.mvel2;MVEL;false;evalToBoolean;;;Argument[0];mvel;manual",
|
||||
"org.mvel2;MVEL;false;evalToString;;;Argument[0];mvel;manual",
|
||||
"org.mvel2;MVEL;false;executeAllExpression;;;Argument[0];mvel;manual",
|
||||
"org.mvel2;MVEL;false;executeSetExpression;;;Argument[0];mvel;manual",
|
||||
"org.mvel2;MVELRuntime;false;execute;;;Argument[1];mvel;manual",
|
||||
"org.mvel2.templates;TemplateRuntime;false;eval;;;Argument[0];mvel;manual",
|
||||
"org.mvel2.templates;TemplateRuntime;false;execute;;;Argument[0];mvel;manual",
|
||||
"org.mvel2.jsr223;MvelScriptEngine;false;eval;;;Argument[0];mvel;manual",
|
||||
"org.mvel2.jsr223;MvelScriptEngine;false;evaluate;;;Argument[0];mvel;manual",
|
||||
"org.mvel2.jsr223;MvelCompiledScript;false;eval;;;Argument[-1];mvel;manual",
|
||||
"org.mvel2.compiler;ExecutableStatement;false;getValue;;;Argument[-1];mvel;manual",
|
||||
"org.mvel2.compiler;CompiledExpression;false;getDirectValue;;;Argument[-1];mvel;manual",
|
||||
"org.mvel2.compiler;CompiledAccExpression;false;getValue;;;Argument[-1];mvel;manual",
|
||||
"org.mvel2.compiler;Accessor;false;getValue;;;Argument[-1];mvel;manual"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
/** A default sanitizer that considers numeric and boolean typed data safe for building MVEL expressions */
|
||||
private class DefaultMvelInjectionSanitizer extends MvelInjectionSanitizer {
|
||||
DefaultMvelInjectionSanitizer() {
|
||||
|
||||
@@ -25,29 +25,6 @@ class OgnlInjectionAdditionalTaintStep extends Unit {
|
||||
abstract predicate step(DataFlow::Node node1, DataFlow::Node node2);
|
||||
}
|
||||
|
||||
private class DefaultOgnlInjectionSinkModel extends SinkModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"org.apache.commons.ognl;Ognl;false;getValue;;;Argument[0];ognl-injection;manual",
|
||||
"org.apache.commons.ognl;Ognl;false;setValue;;;Argument[0];ognl-injection;manual",
|
||||
"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.enhance;ExpressionAccessor;true;get;;;Argument[-1];ognl-injection;manual",
|
||||
"org.apache.commons.ognl.enhance;ExpressionAccessor;true;set;;;Argument[-1];ognl-injection;manual",
|
||||
"ognl;Ognl;false;getValue;;;Argument[0];ognl-injection;manual",
|
||||
"ognl;Ognl;false;setValue;;;Argument[0];ognl-injection;manual",
|
||||
"ognl;Node;false;getValue;;;Argument[-1];ognl-injection;manual",
|
||||
"ognl;Node;false;setValue;;;Argument[-1];ognl-injection;manual",
|
||||
"ognl.enhance;ExpressionAccessor;true;get;;;Argument[-1];ognl-injection;manual",
|
||||
"ognl.enhance;ExpressionAccessor;true;set;;;Argument[-1];ognl-injection;manual",
|
||||
"com.opensymphony.xwork2.ognl;OgnlUtil;false;getValue;;;Argument[0];ognl-injection;manual",
|
||||
"com.opensymphony.xwork2.ognl;OgnlUtil;false;setValue;;;Argument[0];ognl-injection;manual",
|
||||
"com.opensymphony.xwork2.ognl;OgnlUtil;false;callMethod;;;Argument[0];ognl-injection;manual"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
private class DefaultOgnlInjectionSink extends OgnlInjectionSink {
|
||||
DefaultOgnlInjectionSink() { sinkNode(this, "ognl-injection") }
|
||||
}
|
||||
|
||||
@@ -14,18 +14,6 @@ private class DefaultHeaderSplittingSink extends HeaderSplittingSink {
|
||||
DefaultHeaderSplittingSink() { sinkNode(this, "header-splitting") }
|
||||
}
|
||||
|
||||
private class HeaderSplittingSinkModel extends SinkModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"javax.servlet.http;HttpServletResponse;false;addCookie;;;Argument[0];header-splitting;manual",
|
||||
"javax.servlet.http;HttpServletResponse;false;addHeader;;;Argument[0..1];header-splitting;manual",
|
||||
"javax.servlet.http;HttpServletResponse;false;setHeader;;;Argument[0..1];header-splitting;manual",
|
||||
"javax.ws.rs.core;ResponseBuilder;false;header;;;Argument[1];header-splitting;manual"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
/** A source that introduces data considered safe to use by a header splitting source. */
|
||||
abstract class SafeHeaderSplittingSource extends DataFlow::Node {
|
||||
SafeHeaderSplittingSource() { this instanceof RemoteFlowSource }
|
||||
|
||||
@@ -76,33 +76,3 @@ private class DefaultTemplateInjectionSanitizer extends TemplateInjectionSanitiz
|
||||
this.getType() instanceof NumericType
|
||||
}
|
||||
}
|
||||
|
||||
private class TemplateInjectionSinkModels extends SinkModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"freemarker.template;Template;true;Template;(String,Reader);;Argument[1];ssti;manual",
|
||||
"freemarker.template;Template;true;Template;(String,Reader,Configuration);;Argument[1];ssti;manual",
|
||||
"freemarker.template;Template;true;Template;(String,Reader,Configuration,String);;Argument[1];ssti;manual",
|
||||
"freemarker.template;Template;true;Template;(String,String,Reader,Configuration);;Argument[2];ssti;manual",
|
||||
"freemarker.template;Template;true;Template;(String,String,Reader,Configuration,String);;Argument[2];ssti;manual",
|
||||
"freemarker.template;Template;true;Template;(String,String,Reader,Configuration,ParserConfiguration,String);;Argument[2];ssti;manual",
|
||||
"freemarker.template;Template;true;Template;(String,String,Configuration);;Argument[1];ssti;manual",
|
||||
"freemarker.cache;StringTemplateLoader;true;putTemplate;;;Argument[1];ssti;manual",
|
||||
"com.mitchellbosecke.pebble;PebbleEngine;true;getTemplate;;;Argument[0];ssti;manual",
|
||||
"com.mitchellbosecke.pebble;PebbleEngine;true;getLiteralTemplate;;;Argument[0];ssti;manual",
|
||||
"com.hubspot.jinjava;Jinjava;true;renderForResult;;;Argument[0];ssti;manual",
|
||||
"com.hubspot.jinjava;Jinjava;true;render;;;Argument[0];ssti;manual",
|
||||
"org.thymeleaf;ITemplateEngine;true;process;;;Argument[0];ssti;manual",
|
||||
"org.thymeleaf;ITemplateEngine;true;processThrottled;;;Argument[0];ssti;manual",
|
||||
"org.apache.velocity.app;Velocity;true;evaluate;;;Argument[3];ssti;manual",
|
||||
"org.apache.velocity.app;Velocity;true;mergeTemplate;;;Argument[2];ssti;manual",
|
||||
"org.apache.velocity.app;VelocityEngine;true;evaluate;;;Argument[3];ssti;manual",
|
||||
"org.apache.velocity.app;VelocityEngine;true;mergeTemplate;;;Argument[2];ssti;manual",
|
||||
"org.apache.velocity.runtime.resource.util;StringResourceRepository;true;putStringResource;;;Argument[1];ssti;manual",
|
||||
"org.apache.velocity.runtime;RuntimeServices;true;evaluate;;;Argument[3];ssti;manual",
|
||||
"org.apache.velocity.runtime;RuntimeServices;true;parse;;;Argument[0];ssti;manual",
|
||||
"org.apache.velocity.runtime;RuntimeSingleton;true;parse;;;Argument[0];ssti;manual"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,38 +10,6 @@ private import semmle.code.java.dataflow.ExternalFlow
|
||||
*/
|
||||
abstract class XPathInjectionSink extends DataFlow::Node { }
|
||||
|
||||
/** CSV sink models representing methods susceptible to XPath Injection attacks. */
|
||||
private class DefaultXPathInjectionSinkModel extends SinkModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"javax.xml.xpath;XPath;true;evaluate;;;Argument[0];xpath;manual",
|
||||
"javax.xml.xpath;XPath;true;evaluateExpression;;;Argument[0];xpath;manual",
|
||||
"javax.xml.xpath;XPath;true;compile;;;Argument[0];xpath;manual",
|
||||
"org.dom4j;Node;true;selectObject;;;Argument[0];xpath;manual",
|
||||
"org.dom4j;Node;true;selectNodes;;;Argument[0..1];xpath;manual",
|
||||
"org.dom4j;Node;true;selectSingleNode;;;Argument[0];xpath;manual",
|
||||
"org.dom4j;Node;true;numberValueOf;;;Argument[0];xpath;manual",
|
||||
"org.dom4j;Node;true;valueOf;;;Argument[0];xpath;manual",
|
||||
"org.dom4j;Node;true;matches;;;Argument[0];xpath;manual",
|
||||
"org.dom4j;Node;true;createXPath;;;Argument[0];xpath;manual",
|
||||
"org.dom4j;DocumentFactory;true;createPattern;;;Argument[0];xpath;manual",
|
||||
"org.dom4j;DocumentFactory;true;createXPath;;;Argument[0];xpath;manual",
|
||||
"org.dom4j;DocumentFactory;true;createXPathFilter;;;Argument[0];xpath;manual",
|
||||
"org.dom4j;DocumentHelper;false;createPattern;;;Argument[0];xpath;manual",
|
||||
"org.dom4j;DocumentHelper;false;createXPath;;;Argument[0];xpath;manual",
|
||||
"org.dom4j;DocumentHelper;false;createXPathFilter;;;Argument[0];xpath;manual",
|
||||
"org.dom4j;DocumentHelper;false;selectNodes;;;Argument[0];xpath;manual",
|
||||
"org.dom4j;DocumentHelper;false;sort;;;Argument[1];xpath;manual",
|
||||
"org.dom4j.tree;AbstractNode;true;createXPathFilter;;;Argument[0];xpath;manual",
|
||||
"org.dom4j.tree;AbstractNode;true;createPattern;;;Argument[0];xpath;manual",
|
||||
"org.dom4j.util;ProxyDocumentFactory;true;createPattern;;;Argument[0];xpath;manual",
|
||||
"org.dom4j.util;ProxyDocumentFactory;true;createXPath;;;Argument[0];xpath;manual",
|
||||
"org.dom4j.util;ProxyDocumentFactory;true;createXPathFilter;;;Argument[0];xpath;manual"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
/** A default sink representing methods susceptible to XPath Injection attacks. */
|
||||
private class DefaultXPathInjectionSink extends XPathInjectionSink {
|
||||
DefaultXPathInjectionSink() {
|
||||
|
||||
@@ -15,20 +15,6 @@ private class DefaultXsltInjectionSink extends XsltInjectionSink {
|
||||
DefaultXsltInjectionSink() { sinkNode(this, "xslt") }
|
||||
}
|
||||
|
||||
private class DefaultXsltInjectionSinkModel extends SinkModelCsv {
|
||||
override predicate row(string row) {
|
||||
row =
|
||||
[
|
||||
"javax.xml.transform;Transformer;false;transform;;;Argument[-1];xslt;manual",
|
||||
"net.sf.saxon.s9api;XsltTransformer;false;transform;;;Argument[-1];xslt;manual",
|
||||
"net.sf.saxon.s9api;Xslt30Transformer;false;transform;;;Argument[-1];xslt;manual",
|
||||
"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"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* A unit class for adding additional taint steps.
|
||||
*
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
|
||||
import java
|
||||
private import semmle.code.java.dataflow.DataFlow
|
||||
private import semmle.code.java.dataflow.ExternalFlow
|
||||
private import semmle.code.java.frameworks.Regex
|
||||
private import semmle.code.java.regex.RegexFlowModels
|
||||
|
||||
/** A data flow sink for untrusted user input used to construct regular expressions. */
|
||||
abstract class RegexInjectionSink extends DataFlow::ExprNode { }
|
||||
|
||||
Reference in New Issue
Block a user