public class JvmInvokeTaintSink extends JvmTaintSink
JvmTaintSink
on a method invocation. This sinks can be sensitive to the instance, the
arguments, or the static fields. If a sink S is sensitive to X, then if X is tainted, we conclude
that the taint has reached S.Modifier and Type | Class and Description |
---|---|
static class |
JvmInvokeTaintSink.Builder
Builder for
JvmInvokeTaintSink . |
Modifier and Type | Field and Description |
---|---|
java.util.function.Predicate<Call> |
callMatcher |
java.util.Set<java.lang.Integer> |
takesArgs |
java.util.Set<java.lang.String> |
takesGlobals |
boolean |
takesInstance |
IS_VALID_FOR_SOURCE_DEFAULT, isValidForSource, signature
Modifier | Constructor and Description |
---|---|
|
JvmInvokeTaintSink(Signature signature,
boolean takesInstance,
java.util.Set<java.lang.Integer> takesArgs,
java.util.Set<java.lang.String> takesGlobals)
Deprecated.
|
|
JvmInvokeTaintSink(Signature signature,
java.util.function.Predicate<Call> callMatcher,
boolean takesInstance,
java.util.Set<java.lang.Integer> takesArgs,
java.util.Set<java.lang.String> takesGlobals)
Deprecated.
|
protected |
JvmInvokeTaintSink(Signature signature,
java.util.function.Predicate<TaintSource> isValidForSource,
boolean takesInstance,
java.util.Set<java.lang.Integer> takesArgs,
java.util.Set<java.lang.String> takesGlobals,
java.util.function.Predicate<Call> callMatcher)
Create a taint sink.
|
Modifier and Type | Method and Description |
---|---|
boolean |
equals(java.lang.Object o) |
java.util.Set<JvmMemoryLocation> |
getMemoryLocations()
Returns memory locations which trigger this taint sink.
|
int |
hashCode() |
boolean |
matchCfaEdge(JvmCfaEdge edge)
Returns true if the edge is a call to the sink method.
|
java.lang.String |
toString() |
convertSinksToMemoryLocations
public final boolean takesInstance
public final java.util.Set<java.lang.Integer> takesArgs
public final java.util.Set<java.lang.String> takesGlobals
public final java.util.function.Predicate<Call> callMatcher
@Deprecated public JvmInvokeTaintSink(Signature signature, boolean takesInstance, java.util.Set<java.lang.Integer> takesArgs, java.util.Set<java.lang.String> takesGlobals)
signature
- the signature of a sink methodtakesInstance
- whether the sink is sensitive to the calling instancetakesArgs
- a set of sensitive argumentstakesGlobals
- a set of sensitive global variables@Deprecated public JvmInvokeTaintSink(Signature signature, java.util.function.Predicate<Call> callMatcher, boolean takesInstance, java.util.Set<java.lang.Integer> takesArgs, java.util.Set<java.lang.String> takesGlobals)
signature
- the signature of a sink methodcallMatcher
- whether the call matches this taint sinktakesInstance
- whether the sink is sensitive to the calling instancetakesArgs
- a set of sensitive argumentstakesGlobals
- a set of sensitive global variablesprotected JvmInvokeTaintSink(Signature signature, java.util.function.Predicate<TaintSource> isValidForSource, boolean takesInstance, java.util.Set<java.lang.Integer> takesArgs, java.util.Set<java.lang.String> takesGlobals, java.util.function.Predicate<Call> callMatcher)
signature
- the signature of a sink methodisValidForSource
- predicate on whether the sink is valid for a given sourcetakesInstance
- whether the sink is sensitive to the calling instancetakesArgs
- a set of sensitive argumentstakesGlobals
- a set of sensitive global variablescallMatcher
- predicate on whether a call matches this taint sinkpublic java.util.Set<JvmMemoryLocation> getMemoryLocations()
getMemoryLocations
in class JvmTaintSink
public boolean matchCfaEdge(JvmCfaEdge edge)
matchCfaEdge
in class JvmTaintSink
public boolean equals(java.lang.Object o)
equals
in class JvmTaintSink
public int hashCode()
hashCode
in class JvmTaintSink