Class JvmTaintSink
- java.lang.Object
-
- proguard.analysis.cpa.domain.taint.TaintSink
-
- proguard.analysis.cpa.jvm.domain.taint.JvmTaintSink
-
- Direct Known Subclasses:
JvmInvokeTaintSink
,JvmReturnTaintSink
public abstract class JvmTaintSink extends TaintSink
TheJvmTaintSink
adds an interface for extracting sensitive JVM memory locations and to check if the sink matches a given cfa edge.
-
-
Field Summary
-
Fields inherited from class proguard.analysis.cpa.domain.taint.TaintSink
IS_VALID_FOR_SOURCE_DEFAULT, isValidForSource, signature
-
-
Constructor Summary
Constructors Constructor Description JvmTaintSink(Signature signature)
JvmTaintSink(Signature signature, java.util.function.Predicate<TaintSource> isValidForSource)
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description static java.util.Map<Signature,java.util.Map<JvmTaintSink,java.util.Set<JvmMemoryLocation>>>
convertSinksToMemoryLocations(java.util.Collection<? extends JvmTaintSink> taintSinks)
Helper method taking a collection of sinks and converting it to a mapping that associates each sink with the memory locations which triggers it.boolean
equals(java.lang.Object other)
abstract java.util.Set<JvmMemoryLocation>
getMemoryLocations()
Returns memory locations which trigger this taint sink.int
hashCode()
abstract boolean
matchCfaEdge(JvmCfaEdge edge)
Returns whether the sink matches a given CFA edge.
-
-
-
Constructor Detail
-
JvmTaintSink
public JvmTaintSink(Signature signature)
-
JvmTaintSink
public JvmTaintSink(Signature signature, java.util.function.Predicate<TaintSource> isValidForSource)
-
-
Method Detail
-
getMemoryLocations
public abstract java.util.Set<JvmMemoryLocation> getMemoryLocations()
Returns memory locations which trigger this taint sink.
-
matchCfaEdge
public abstract boolean matchCfaEdge(JvmCfaEdge edge)
Returns whether the sink matches a given CFA edge.
-
convertSinksToMemoryLocations
public static java.util.Map<Signature,java.util.Map<JvmTaintSink,java.util.Set<JvmMemoryLocation>>> convertSinksToMemoryLocations(java.util.Collection<? extends JvmTaintSink> taintSinks)
Helper method taking a collection of sinks and converting it to a mapping that associates each sink with the memory locations which triggers it. For convenience the sinks are further grouped by their method signature.
-
-