Class TaintReduceOperator
- java.lang.Object
-
- proguard.analysis.cpa.jvm.operators.DefaultReduceOperator<SetAbstractState<JvmTaintSource>>
-
- proguard.analysis.cpa.jvm.domain.taint.TaintReduceOperator
-
- All Implemented Interfaces:
ReduceOperator<SetAbstractState<JvmTaintSource>>
public class TaintReduceOperator extends DefaultReduceOperator<SetAbstractState<JvmTaintSource>>
ThisReduceOperator
inherits all the functionalities of aDefaultReduceOperator
while adding taint-analysis specific functionalities.
-
-
Constructor Summary
Constructors Constructor Description TaintReduceOperator(boolean reduceHeap)
Create the taint reduce operator for the JVM.TaintReduceOperator(boolean reduceHeap, java.util.Map<Signature,java.util.Set<JvmTaintSource>> taintSources)
Create the taint reduce operator for the JVM.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected JvmAbstractState<SetAbstractState<JvmTaintSource>>
createJvmAbstractState(JvmCfaNode programLocation, JvmFrameAbstractState<SetAbstractState<JvmTaintSource>> frame, JvmHeapAbstractState<SetAbstractState<JvmTaintSource>> heap, MapAbstractState<java.lang.String,SetAbstractState<JvmTaintSource>> staticFields)
JvmAbstractState<SetAbstractState<JvmTaintSource>>
onMethodEntry(JvmAbstractState<SetAbstractState<JvmTaintSource>> reducedState, boolean isCallStatic)
Performs additional operations on the reduced state (i.e.-
Methods inherited from class proguard.analysis.cpa.jvm.operators.DefaultReduceOperator
reduceHeap, reduceImpl, reduceStaticFields
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface proguard.analysis.cpa.bam.ReduceOperator
reduce
-
-
-
-
Constructor Detail
-
TaintReduceOperator
public TaintReduceOperator(boolean reduceHeap)
Create the taint reduce operator for the JVM.- Parameters:
reduceHeap
- whether reduction of the heap is performed
-
TaintReduceOperator
public TaintReduceOperator(boolean reduceHeap, java.util.Map<Signature,java.util.Set<JvmTaintSource>> taintSources)
Create the taint reduce operator for the JVM.- Parameters:
reduceHeap
- whether reduction of the heap is performedtaintSources
- collection of taint sources
-
-
Method Detail
-
createJvmAbstractState
protected JvmAbstractState<SetAbstractState<JvmTaintSource>> createJvmAbstractState(JvmCfaNode programLocation, JvmFrameAbstractState<SetAbstractState<JvmTaintSource>> frame, JvmHeapAbstractState<SetAbstractState<JvmTaintSource>> heap, MapAbstractState<java.lang.String,SetAbstractState<JvmTaintSource>> staticFields)
- Overrides:
createJvmAbstractState
in classDefaultReduceOperator<SetAbstractState<JvmTaintSource>>
-
onMethodEntry
public JvmAbstractState<SetAbstractState<JvmTaintSource>> onMethodEntry(JvmAbstractState<SetAbstractState<JvmTaintSource>> reducedState, boolean isCallStatic)
Description copied from interface:ReduceOperator
Performs additional operations on the reduced state (i.e. on the method entry state). Does nothing by default. NB: since this is still part of the reduction operation the result of this method is the state used by the analysis and part of the cache key for the called method.- Parameters:
reducedState
- reduced state (i.e., the entry state of the called method)isCallStatic
- is the called method static- Returns:
- the state after performing additional operations or untouched state by default
-
-